Re: [systemd-devel] How to speed up detection of emmc partition and mount the filesystem
On Mo, 04.02.19 20:22, Petr (co...@atlas.cz) wrote: > Hello, > > I have custom linux on embedded machine generated with Buildroot > using emmc drive which contains root filesystem on /dev/mmcblk0p2 > and application data on /dev/mmcblk0p4. The root fileystem is > mounted pretty quickly, but the application data are mounted about > 1.7s after systemd starts, the main reason is that the mmcbl0p4 is > found by systemd after 1.4s. As a workaround I created service that systemd will "see" the device as soon as udev reports it to be around, i.e. after it was triggered via "systemd-udev-trigger.service", then reported to userspace, then probed by udev's blkid logic, and finally reported to systemd by udev. There are plenty tools available that help you analyzing what is being done in early boot that delays stuff, for example systemd-bootchar (a separate project from systemd itself). If you want to tune this, you could trigger storage devices first, which also generally means they are announced, probed and so on first. > is executed right after the local-fs-pre.target which execute "mount > /dev/mmcblk0p4 /app" and that works, but I would like to know if > there is correct way how to tell systemd that I want to mount the > root fs and application fs sooner than everything else (I believe > that what I want is to tell systemd to mount /dev/mmcblk0p4 without > waiting for udev to find /dev/mmcblk0p4 as new device and start auto > mount). > > This log appears after 1.4s from systemd starts, but I need that device much > sooner: You can mark any mount as automount in /etc/fstab, by adding x-systemd.automount to the mount options. If so systemd will generate both an .automount unit, and a .mount unit for it, and only the .automount unit is started early. This is an effective parallelization technique and allows you to have any mount you like appear in the file system at a moment where its backing device hasn't shown up yet, its fsck hasn't run yet or its kernel mount not established yet. It works very well for every fs that isn#t needed immediately during early boot, since it basically allows establishing of mounts ahead of time, where direct access will block but not the simple act of mounting. Lennart -- Lennart Poettering, Red Hat ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] How to speed up detection of emmc partition and mount the filesystem
On 2/4/19 7:22 PM, Petr wrote: Hello, I have custom linux on embedded machine generated with Buildroot using emmc drive which contains root filesystem on /dev/mmcblk0p2 and application data on /dev/mmcblk0p4. The root fileystem is mounted pretty quickly, but the application data are mounted about 1.7s after systemd starts, the main reason is that the mmcbl0p4 is found by systemd after 1.4s. As a workaround I created service that is executed right after the local-fs-pre.target which execute "mount /dev/mmcblk0p4 /app" and that works, but I would like to know if there is correct way how to tell systemd that I want to mount the root fs and application fs sooner than everything else (I believe that what I want is to tell systemd to mount /dev/mmcblk0p4 without waiting for udev to find /dev/mmcblk0p4 as new device and start auto mount). Hmm... your solution could be a simple type mount unit which is ordered before the local-fs-pre.target but maybe not. + there are two type of embedded paths in this world those that are super tiny resource constrained and those that are not. Former you dont use systemd for but instead some linux micro platform usually tied to or associated with internet of terror devices ( IoT ) like Soletta project, the latter you do use systemd for but only after systemd has been put on a diet so you will need to provide proper context here as in what that custom embedded devices does or is trying to do and why you need to shave those 1.4s off, what's the problem you are trying to solve with it? JBG ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/systemd-devel
[systemd-devel] How to speed up detection of emmc partition and mount the filesystem
Hello, I have custom linux on embedded machine generated with Buildroot using emmc drive which contains root filesystem on /dev/mmcblk0p2 and application data on /dev/mmcblk0p4. The root fileystem is mounted pretty quickly, but the application data are mounted about 1.7s after systemd starts, the main reason is that the mmcbl0p4 is found by systemd after 1.4s. As a workaround I created service that is executed right after the local-fs-pre.target which execute "mount /dev/mmcblk0p4 /app" and that works, but I would like to know if there is correct way how to tell systemd that I want to mount the root fs and application fs sooner than everything else (I believe that what I want is to tell systemd to mount /dev/mmcblk0p4 without waiting for udev to find /dev/mmcblk0p4 as new device and start auto mount). This log appears after 1.4s from systemd starts, but I need that device much sooner: systemd[1]: Found device /dev/mmcblk0p4. Thanks for any help and sorry if I forgot to mention something important or the solution is obvious, I'm new to systemd. Petr ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/systemd-devel