Hi Richard

There was a followup patch to this and you took the old one. Thats ok. I have 
refreshed the pull tree again
and the follow up patch is there. Please pull

-Khem

On Mar 29, 2013, at 1:12 AM, Koen Kooi <k...@dominion.thruhere.net> wrote:

> 
> Op 29 mrt. 2013, om 06:28 heeft Khem Raj <raj.k...@gmail.com> het volgende 
> geschreven:
> 
>> 
>> On Mar 28, 2013, at 5:21 AM, Martin Jansa <martin.ja...@gmail.com> wrote:
>> 
>>> On Thu, Mar 28, 2013 at 12:48:29AM -0700, Khem Raj wrote:
>>>> udevadm is now moved from /usr/bin to /bin so account for that
>>>> bash completions for udevadm should be packages with udev-utils
>>>> since thats where udevadm itself is, they were in systemd package
>>>> which is not correct location for it
>>>> 
>>>> Backport patches for readahead fixes on spinning disks
>>>> and to tackle error reported on missing /etc/sysctl.conf
>>> 
>>> Looks like it creates few new (empty) directories:
>>> 
>>> WARNING: QA Issue: systemd: Files/directories were installed but not
>>> shipped
>>> /etc/kernel
>>> /etc/kernel/install.d
>>> /usr/lib/kernel
>>> /usr/lib/kernel/install.d
>> 
>> 
>> OK I have created a new package called systems-kernel-install and these dirs 
>> along with
>> kernel-install binary are moved into the new package and updated the pull 
>> request.
> 
> There's a new releases, 200, mostly bugfixes and some hwdp and  keymap 
> updates. Your 199 patch has the most important fixes, so I'm not sure if it's 
> worth to respin to 200 or get this in and update to 200 (or 201) later.
> 
>> 
>> 
>>> 
>>> Doesn't look very useful for our use-case, maybe whole kernel-install
>>> should be in separate package.
>>> http://www.freedesktop.org/software/systemd/man/kernel-install.html
>>> 
>>>> 
>>>> Signed-off-by: Khem Raj <raj.k...@gmail.com>
>>>> ---
>>>> .../0002-readahead-chunk-on-spinning-media.patch   |  142 
>>>> ++++++++++++++++++++
>>>> .../systemd/systemd/0003-readahead-cleanups.patch  |   86 ++++++++++++
>>>> ...ctl-Handle-missing-etc-sysctl.conf-proper.patch |   33 +++++
>>>> .../systemd/{systemd_198.bb => systemd_199.bb}     |   11 +-
>>>> 4 files changed, 268 insertions(+), 4 deletions(-)
>>>> create mode 100644 
>>>> meta/recipes-core/systemd/systemd/0002-readahead-chunk-on-spinning-media.patch
>>>> create mode 100644 
>>>> meta/recipes-core/systemd/systemd/0003-readahead-cleanups.patch
>>>> create mode 100644 
>>>> meta/recipes-core/systemd/systemd/0013-systemd-sysctl-Handle-missing-etc-sysctl.conf-proper.patch
>>>> rename meta/recipes-core/systemd/{systemd_198.bb => systemd_199.bb} (95%)
>>>> 
>>>> diff --git 
>>>> a/meta/recipes-core/systemd/systemd/0002-readahead-chunk-on-spinning-media.patch
>>>>  
>>>> b/meta/recipes-core/systemd/systemd/0002-readahead-chunk-on-spinning-media.patch
>>>> new file mode 100644
>>>> index 0000000..d57a01c
>>>> --- /dev/null
>>>> +++ 
>>>> b/meta/recipes-core/systemd/systemd/0002-readahead-chunk-on-spinning-media.patch
>>>> @@ -0,0 +1,142 @@
>>>> +Upstream-Status: Backport
>>>> +
>>>> +-Khem 2013/03/28
>>>> +
>>>> +From 94243ef299425d6c7089a7a05c48c9bb8f6cf3da Mon Sep 17 00:00:00 2001
>>>> +From: Auke Kok <auke-jan.h....@intel.com>
>>>> +Date: Fri, 22 Mar 2013 15:09:45 -0700
>>>> +Subject: [PATCH 02/17] readahead: chunk on spinning media
>>>> +
>>>> +Readahead has all sorts of bad side effects depending on your
>>>> +storage media. On rotating disks, it may be degrading startup
>>>> +performance if enough requests are queued spanning linearly
>>>> +over all blocks early at boot, and mount, blkid and friends
>>>> +want to insert reads to the start of these block devices after.
>>>> +
>>>> +The end result is that on spinning disks with ext3/4 that udev
>>>> +and mounts take a very long time, and nothing really happens until
>>>> +readahead is completely finished.
>>>> +
>>>> +This has the net effect that the CPU is almost entirely idle
>>>> +for the entire period that readahead is working. We could have
>>>> +finished starting up quite a lot of services in this time if
>>>> +we were smarter at how we do readahead.
>>>> +
>>>> +This patch sorts all requests into 2 second "chunks" and sub-sorts
>>>> +each chunk by block. This adds a single cross-drive seek per "chunk"
>>>> +but has the benefit that we will have a lot of the blocks we need
>>>> +early on in the boot sequence loaded into memory faster.
>>>> +
>>>> +For a comparison of how before/after bootcharts look (ext4 on a
>>>> +mobile 5400rpm 250GB drive) please look at:
>>>> +
>>>> +    http://foo-projects.org/~sofar/blocked-tests/
>>>> +
>>>> +There are bootcharts in the "before" and "after" folders where you
>>>> +should be able to see that many low-level services finish 5-7
>>>> +seconds earlier with the patch applied (after).
>>>> +---
>>>> + Makefile.am                       |    2 +-
>>>> + src/readahead/readahead-collect.c |   28 +++++++++++++++++++++++++---
>>>> + 2 files changed, 26 insertions(+), 4 deletions(-)
>>>> +
>>>> +diff --git a/Makefile.am b/Makefile.am
>>>> +index 37c1cc2..5861976 100644
>>>> +--- a/Makefile.am
>>>> ++++ b/Makefile.am
>>>> +@@ -2956,7 +2956,7 @@ systemd_readahead_SOURCES = \
>>>> + systemd_readahead_LDADD = \
>>>> +  libsystemd-shared.la \
>>>> +  libsystemd-daemon.la \
>>>> +- libudev.la
>>>> ++ libudev.la -lm
>>>> + 
>>>> + dist_doc_DATA += \
>>>> +  src/readahead/sd-readahead.c \
>>>> +diff --git a/src/readahead/readahead-collect.c 
>>>> b/src/readahead/readahead-collect.c
>>>> +index 5d07f47..5d22949 100644
>>>> +--- a/src/readahead/readahead-collect.c
>>>> ++++ b/src/readahead/readahead-collect.c
>>>> +@@ -42,6 +42,7 @@
>>>> + #include <sys/vfs.h>
>>>> + #include <getopt.h>
>>>> + #include <sys/inotify.h>
>>>> ++#include <math.h>
>>>> + 
>>>> + #ifdef HAVE_FANOTIFY_INIT
>>>> + #include <sys/fanotify.h>
>>>> +@@ -67,6 +68,7 @@
>>>> +  */
>>>> + 
>>>> + static ReadaheadShared *shared = NULL;
>>>> ++static struct timespec starttime;
>>>> + 
>>>> + /* Avoid collisions with the NULL pointer */
>>>> + #define SECTOR_TO_PTR(s) ULONG_TO_PTR((s)+1)
>>>> +@@ -205,6 +207,7 @@ static unsigned long fd_first_block(int fd) {
>>>> + struct item {
>>>> +         const char *path;
>>>> +         unsigned long block;
>>>> ++        unsigned long bin;
>>>> + };
>>>> + 
>>>> + static int qsort_compare(const void *a, const void *b) {
>>>> +@@ -213,6 +216,13 @@ static int qsort_compare(const void *a, const void 
>>>> *b) {
>>>> +         i = a;
>>>> +         j = b;
>>>> + 
>>>> ++        /* sort by bin first */
>>>> ++        if (i->bin < j->bin)
>>>> ++                return -1;
>>>> ++        if (i->bin > j->bin)
>>>> ++                return 1;
>>>> ++
>>>> ++        /* then sort by sector */
>>>> +         if (i->block < j->block)
>>>> +                 return -1;
>>>> +         if (i->block > j->block)
>>>> +@@ -250,6 +260,8 @@ static int collect(const char *root) {
>>>> +                 goto finish;
>>>> +         }
>>>> + 
>>>> ++        clock_gettime(CLOCK_MONOTONIC, &starttime);
>>>> ++
>>>> +         /* If there's no pack file yet we lower the kernel readahead
>>>> +          * so that mincore() is accurate. If there is a pack file
>>>> +          * already we assume it is accurate enough so that kernel
>>>> +@@ -447,10 +459,21 @@ static int collect(const char *root) {
>>>> +                                         free(p);
>>>> +                                 else {
>>>> +                                         unsigned long ul;
>>>> ++                                        struct timespec ts;
>>>> ++                                        struct item *entry;
>>>> ++
>>>> ++                                        entry = new0(struct item, 1);
>>>> + 
>>>> +                                         ul = fd_first_block(m->fd);
>>>> + 
>>>> +-                                        if ((k = hashmap_put(files, p, 
>>>> SECTOR_TO_PTR(ul))) < 0) {
>>>> ++                                        clock_gettime(CLOCK_MONOTONIC, 
>>>> &ts);
>>>> ++
>>>> ++                                        entry->block = ul;
>>>> ++                                        entry->path = strdup(p);
>>>> ++                                        entry->bin = round((ts.tv_sec - 
>>>> starttime.tv_sec +
>>>> ++                                                     ((ts.tv_nsec - 
>>>> starttime.tv_nsec) / 1000000000.0)) / 2.0);
>>>> ++
>>>> ++                                        if ((k = hashmap_put(files, p, 
>>>> entry)) < 0) {
>>>> +                                                 log_warning("set_put() 
>>>> failed: %s", strerror(-k));
>>>> +                                                 free(p);
>>>> +                                         }
>>>> +@@ -518,8 +541,7 @@ done:
>>>> + 
>>>> +                 j = ordered;
>>>> +                 HASHMAP_FOREACH_KEY(q, p, files, i) {
>>>> +-                        j->path = p;
>>>> +-                        j->block = PTR_TO_SECTOR(q);
>>>> ++                        memcpy(j, q, sizeof(struct item));
>>>> +                         j++;
>>>> +                 }
>>>> + 
>>>> +-- 
>>>> +1.7.9.5
>>>> +
>>>> diff --git 
>>>> a/meta/recipes-core/systemd/systemd/0003-readahead-cleanups.patch 
>>>> b/meta/recipes-core/systemd/systemd/0003-readahead-cleanups.patch
>>>> new file mode 100644
>>>> index 0000000..e0b68df
>>>> --- /dev/null
>>>> +++ b/meta/recipes-core/systemd/systemd/0003-readahead-cleanups.patch
>>>> @@ -0,0 +1,86 @@
>>>> +Upstream-Status: Backport
>>>> +
>>>> +-Khem 2013/03/28
>>>> +
>>>> +From b0640287f784a320661f7206c9ade07b99003fd5 Mon Sep 17 00:00:00 2001
>>>> +From: Auke Kok <auke-jan.h....@intel.com>
>>>> +Date: Tue, 26 Mar 2013 11:13:47 -0700
>>>> +Subject: [PATCH 03/17] readahead: cleanups
>>>> +
>>>> +- check for OOM
>>>> +- no need to use floats and round()
>>>> +---
>>>> + Makefile.am                       |    2 +-
>>>> + src/readahead/readahead-collect.c |   20 ++++++++++++++------
>>>> + 2 files changed, 15 insertions(+), 7 deletions(-)
>>>> +
>>>> +diff --git a/Makefile.am b/Makefile.am
>>>> +index 5861976..37c1cc2 100644
>>>> +--- a/Makefile.am
>>>> ++++ b/Makefile.am
>>>> +@@ -2956,7 +2956,7 @@ systemd_readahead_SOURCES = \
>>>> + systemd_readahead_LDADD = \
>>>> +  libsystemd-shared.la \
>>>> +  libsystemd-daemon.la \
>>>> +- libudev.la -lm
>>>> ++ libudev.la
>>>> + 
>>>> + dist_doc_DATA += \
>>>> +  src/readahead/sd-readahead.c \
>>>> +diff --git a/src/readahead/readahead-collect.c 
>>>> b/src/readahead/readahead-collect.c
>>>> +index 5d22949..e2fd8df 100644
>>>> +--- a/src/readahead/readahead-collect.c
>>>> ++++ b/src/readahead/readahead-collect.c
>>>> +@@ -68,7 +68,7 @@
>>>> +  */
>>>> + 
>>>> + static ReadaheadShared *shared = NULL;
>>>> +-static struct timespec starttime;
>>>> ++static usec_t starttime;
>>>> + 
>>>> + /* Avoid collisions with the NULL pointer */
>>>> + #define SECTOR_TO_PTR(s) ULONG_TO_PTR((s)+1)
>>>> +@@ -260,7 +260,7 @@ static int collect(const char *root) {
>>>> +                 goto finish;
>>>> +         }
>>>> + 
>>>> +-        clock_gettime(CLOCK_MONOTONIC, &starttime);
>>>> ++        starttime = now(CLOCK_MONOTONIC);
>>>> + 
>>>> +         /* If there's no pack file yet we lower the kernel readahead
>>>> +          * so that mincore() is accurate. If there is a pack file
>>>> +@@ -459,19 +459,27 @@ static int collect(const char *root) {
>>>> +                                         free(p);
>>>> +                                 else {
>>>> +                                         unsigned long ul;
>>>> +-                                        struct timespec ts;
>>>> ++                                        usec_t entrytime;
>>>> +                                         struct item *entry;
>>>> + 
>>>> +                                         entry = new0(struct item, 1);
>>>> ++                                        if (!entry) {
>>>> ++                                                r = log_oom();
>>>> ++                                                goto finish;
>>>> ++                                        }
>>>> + 
>>>> +                                         ul = fd_first_block(m->fd);
>>>> + 
>>>> +-                                        clock_gettime(CLOCK_MONOTONIC, 
>>>> &ts);
>>>> ++                                        entrytime = now(CLOCK_MONOTONIC);
>>>> + 
>>>> +                                         entry->block = ul;
>>>> +                                         entry->path = strdup(p);
>>>> +-                                        entry->bin = round((ts.tv_sec - 
>>>> starttime.tv_sec +
>>>> +-                                                     ((ts.tv_nsec - 
>>>> starttime.tv_nsec) / 1000000000.0)) / 2.0);
>>>> ++                                        if (!entry->path) {
>>>> ++                                                free(entry);
>>>> ++                                                r = log_oom();
>>>> ++                                                goto finish;
>>>> ++                                        }
>>>> ++                                        entry->bin = (entrytime - 
>>>> starttime) / 2000000;
>>>> + 
>>>> +                                         if ((k = hashmap_put(files, p, 
>>>> entry)) < 0) {
>>>> +                                                 log_warning("set_put() 
>>>> failed: %s", strerror(-k));
>>>> +-- 
>>>> +1.7.9.5
>>>> +
>>>> diff --git 
>>>> a/meta/recipes-core/systemd/systemd/0013-systemd-sysctl-Handle-missing-etc-sysctl.conf-proper.patch
>>>>  
>>>> b/meta/recipes-core/systemd/systemd/0013-systemd-sysctl-Handle-missing-etc-sysctl.conf-proper.patch
>>>> new file mode 100644
>>>> index 0000000..f2c8e02
>>>> --- /dev/null
>>>> +++ 
>>>> b/meta/recipes-core/systemd/systemd/0013-systemd-sysctl-Handle-missing-etc-sysctl.conf-proper.patch
>>>> @@ -0,0 +1,33 @@
>>>> +Upstream-Status: Backport
>>>> +
>>>> +-Khem 2013/03/28
>>>> +
>>>> +From 6f6fad96addf6b00b55c98cc0d0d8026b0c1e7ca Mon Sep 17 00:00:00 2001
>>>> +From: Eelco Dolstra <eelco.dols...@logicblox.com>
>>>> +Date: Wed, 27 Mar 2013 13:41:59 +0100
>>>> +Subject: [PATCH 13/17] systemd-sysctl: Handle missing /etc/sysctl.conf
>>>> + properly
>>>> +
>>>> +Since fabe5c0e5fce730aa66e10a9c4f9fdd443d7aeda, systemd-sysctl returns
>>>> +a non-zero exit code if /etc/sysctl.conf does not exist, due to a
>>>> +broken ENOENT check.
>>>> +---
>>>> + src/sysctl/sysctl.c |    2 +-
>>>> + 1 file changed, 1 insertion(+), 1 deletion(-)
>>>> +
>>>> +diff --git a/src/sysctl/sysctl.c b/src/sysctl/sysctl.c
>>>> +index 2d43660..79f3f77 100644
>>>> +--- a/src/sysctl/sysctl.c
>>>> ++++ b/src/sysctl/sysctl.c
>>>> +@@ -125,7 +125,7 @@ static int parse_file(Hashmap *sysctl_options, const 
>>>> char *path, bool ignore_eno
>>>> + 
>>>> +         r = search_and_fopen_nulstr(path, "re", conf_file_dirs, &f);
>>>> +         if (r < 0) {
>>>> +-                if (ignore_enoent && errno == -ENOENT)
>>>> ++                if (ignore_enoent && r == -ENOENT)
>>>> +                         return 0;
>>>> + 
>>>> +                 log_error("Failed to open file '%s', ignoring: %s", 
>>>> path, strerror(-r));
>>>> +-- 
>>>> +1.7.9.5
>>>> +
>>>> diff --git a/meta/recipes-core/systemd/systemd_198.bb 
>>>> b/meta/recipes-core/systemd/systemd_199.bb
>>>> similarity index 95%
>>>> rename from meta/recipes-core/systemd/systemd_198.bb
>>>> rename to meta/recipes-core/systemd/systemd_199.bb
>>>> index 6a8db51..74b14af 100644
>>>> --- a/meta/recipes-core/systemd/systemd_198.bb
>>>> +++ b/meta/recipes-core/systemd/systemd_199.bb
>>>> @@ -23,10 +23,13 @@ SRC_URI = 
>>>> "http://www.freedesktop.org/software/systemd/systemd-${PV}.tar.xz \
>>>>          file://var-run.conf \
>>>>          ${UCLIBCPATCHES} \
>>>>          file://00-create-volatile.conf \
>>>> +           file://0002-readahead-chunk-on-spinning-media.patch \
>>>> +           file://0003-readahead-cleanups.patch \
>>>> +           
>>>> file://0013-systemd-sysctl-Handle-missing-etc-sysctl.conf-proper.patch \
>>>>          file://init \
>>>>         "
>>>> -SRC_URI[md5sum] = "26a75e2a310f8c1c1ea9ec26ddb171c5"
>>>> -SRC_URI[sha256sum] = 
>>>> "444492355e5ff0ad99e0691ecaff1081ee8d45901580f47ba8b74e56107c71bf"
>>>> +SRC_URI[md5sum] = "4bb13f84ce211e93f0141774a90a2322"
>>>> +SRC_URI[sha256sum] = 
>>>> "8c4462a04f3ecf7f083782e5e0687913b1d33c6444bf20fa2f31df9222965fed"
>>>> 
>>>> UCLIBCPATCHES = ""
>>>> UCLIBCPATCHES_libc-uclibc = 
>>>> "file://systemd-pam-configure-check-uclibc.patch \
>>>> @@ -114,7 +117,7 @@ PACKAGES_DYNAMIC += "^lib(udev|gudev|systemd).*"
>>>> PACKAGES =+ "${PN}-gui ${PN}-vconsole-setup ${PN}-initramfs ${PN}-analyze"
>>>> 
>>>> USERADD_PACKAGES = "${PN}"
>>>> -GROUPADD_PARAM_${PN} = "-r lock"
>>>> +GROUPADD_PARAM_${PN} = "-r lock; -r systemd-journal"
>>>> 
>>>> FILES_${PN}-analyze = "${base_bindir}/systemd-analyze"
>>>> 
>>>> @@ -224,7 +227,7 @@ FILES_udev += "${base_sbindir}/udevd \
>>>> FILES_udev-consolekit += "/lib/ConsoleKit"
>>>> RDEPENDS_udev-consolekit += "${@base_contains('DISTRO_FEATURES', 'x11', 
>>>> 'consolekit', '', d)}"
>>>> 
>>>> -FILES_udev-utils = "${bindir}/udevadm"
>>>> +FILES_udev-utils = "${base_bindir}/udevadm 
>>>> ${datadir}/bash-completion/completions/udevadm"
>>>> 
>>>> FILES_udev-hwdb = "${base_libdir}/udev/hwdb.d"
>>>> 
>>>> -- 
>>>> 1.7.9.5
>>>> 
>>>> 
>>>> _______________________________________________
>>>> Openembedded-core mailing list
>>>> Openembedded-core@lists.openembedded.org
>>>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>>> 
>>> -- 
>>> Martin 'JaMa' Jansa     jabber: martin.ja...@gmail.com
>> 
>> 
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
> 


_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Reply via email to