1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-02 19:21:53 +03:00
systemd/configure.ac
Alan Jenkins f503f6b22f udevd: implement a more efficient queue file format
Directory lookups show up in profiling. The queue files are responsible
for a large proportion of file-related system calls in udev coldplug.

Instead of creating a file for each event, append their details to a
log file.  The file is periodically rebuilt (garbage-collected) to
prevent it from growing indefinitely.

This single queue file replaces both the queue directory and the
uevent_seqnum file. On desktop systems the file tends not to grow
beyond one page. So it should also save a small amount of memory in
tmpfs.

Tests on a running EeePC indicate average savings of 5% *udevd* cpu time
as measured by oprofile. __link_path_walk is reduced from 1.5% to
1.3%. It is not completely clear where the rest of the gains come from.

In tests running ~400 events, the queue file is rebuilt about 5 times.

Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
2009-05-21 22:22:37 +02:00

117 lines
2.9 KiB
Plaintext

AC_INIT([udev],
[143],
[linux-hotplug@vger.kernel.org])
AC_PREREQ(2.60)
AM_INIT_AUTOMAKE([check-news foreign 1.9 dist-bzip2])
AC_DISABLE_STATIC
AC_USE_SYSTEM_EXTENSIONS
AC_SYS_LARGEFILE
AC_CONFIG_MACRO_DIR([m4])
AC_PROG_LIBTOOL
dnl /* prefix is /usr, exec_prefix is /, if overridden exec_prefix follows prefix */
AC_PREFIX_DEFAULT([/usr])
test "$prefix" = NONE && test "$exec_prefix" = NONE && exec_prefix=
dnl /* libudev version */
LIBUDEV_LT_CURRENT=4
LIBUDEV_LT_REVISION=0
LIBUDEV_LT_AGE=4
AC_SUBST(LIBUDEV_LT_CURRENT)
AC_SUBST(LIBUDEV_LT_REVISION)
AC_SUBST(LIBUDEV_LT_AGE)
AC_PATH_PROG([XSLTPROC], [xsltproc])
AC_CHECK_LIB(c, inotify_init,
[AC_DEFINE([HAVE_INOTIFY], 1, [inotify available])],
[AC_MSG_WARN([inotify support disabled])])
AC_ARG_WITH(udev-prefix,
AS_HELP_STRING([--with-udev-prefix=DIR], [add prefix to internal udev path names]),
[], [with_udev_prefix='${exec_prefix}'])
udev_prefix=$with_udev_prefix
AC_SUBST(udev_prefix)
AC_ARG_WITH(libdir-name,
AS_HELP_STRING([--with-libdir-name=DIR], [name of the arch lib directory]),
[], [with_libdir_name=lib])
libdir_name=$with_libdir_name
AC_SUBST(libdir_name)
AC_ARG_WITH(selinux,
AS_HELP_STRING([--with-selinux], [compile with SELinux support]),
[], with_selinux=no)
if test "x$with_selinux" = xyes; then
LIBS_save=$LIBS
AC_CHECK_LIB(selinux, getprevcon,
[],
AC_MSG_ERROR([SELinux selected but libselinux not found]))
LIBS=$LIBS_save
AC_DEFINE(USE_SELINUX, [1] ,[compile with SELinux support])
SELINUX_LIBS="-lselinux -lsepol"
fi
AC_SUBST([SELINUX_LIBS])
AM_CONDITIONAL(USE_SELINUX, [test "x$with_selinux" = xyes], [compile with SELinux support])
AC_ARG_ENABLE(debug,
AS_HELP_STRING([--enable-debug], [turn on debugging]),
[], enable_debug=no)
if test "x$enable_debug" = "xyes"; then
AC_DEFINE(DEBUG, [1] ,[Compile in debug messages])
DEBUG_CFLAGS="-DDEBUG"
fi
AC_SUBST(DEBUG_CFLAGS)
AC_ARG_ENABLE(logging,
AS_HELP_STRING([--disable-logging], [turn off logging/syslog]),
[], enable_logging=yes)
if test "x$enable_logging" != "xno"; then
AC_DEFINE(USE_LOG, [1] ,[Use logging/syslog])
fi
AC_CONFIG_HEADERS(config.h)
AC_CONFIG_FILES([
Makefile
udev/Makefile
udev/lib/Makefile
udev/lib/libudev.pc
rules/Makefile
extras/Makefile
extras/ata_id/Makefile
extras/cdrom_id/Makefile
extras/edd_id/Makefile
extras/path_id/Makefile
extras/firmware/Makefile
extras/collect/Makefile
extras/floppy/Makefile
extras/fstab_import/Makefile
extras/rule_generator/Makefile
extras/scsi_id/Makefile
extras/usb_id/Makefile
])
AC_OUTPUT
AC_MSG_RESULT([
udev $VERSION
========
prefix: ${prefix}
exec_prefix: ${exec_prefix}
udev_prefix: ${udev_prefix}
libdir_name: ${libdir_name}
datarootdir: ${datarootdir}
mandir: ${mandir}
includedir: ${includedir}
logging: ${enable_logging}
debug: ${enable_debug}
selinux: ${with_selinux}
compiler: ${CC}
cflags: ${CFLAGS}
ldflags: ${LDFLAGS}
xsltproc: ${XSLTPROC}
])