Gentoo: devtmpfs and boot times (revisited)

There was alot of of talk/flames on the LKML about devtmpfs. Looks like a big push for this was for embedded devices, android, etc. Since I read that it may give a boot time speed up, I was slightly intrigued. http://lkml.org/lkml/2009/4/30/182, yes…it is an old topic but it finally was released in stable .32 kernel.

So, bootcharts:
bootchart-2.6.31.6.png 39 seconds
bootchart-2.6.32-no-devtmpfs.png 37 seconds
bootchart-2.6.32-devtmpfs.png 37 seconds
bootchart-2.6.32-openrc.png 26 seconds (devtmpfs)

So, where is the real win here? Well, as I wrote before, use openrc.

Leave a comment ?

12 Comments.

  1. Well, idea is that devtmpfs should allow things to start without waiting for udev, so obviously unless the startup scripts are changed, it makes no difference. If udev was made to run later and in parallel, it would shave some time off the 2 seconds between the 6- and the 8-mark.

  2. so the solution would be to use a devtmpfs together with openrc :D

  3. Your last option does not specify which /dev manager you were using together with openrc.

  4. If udev manages the devices along with devtmpfs, then there is no gain.

  5. This depends on your initramfs. If you have one, and it uses a static /dev then you do not have to run commands to create nodes for things devtmpfs handles (think bootdevices, framebuffer). If your initramfs uses udev to create device nodes for your startup disks, then you do not need udev there anymore.

    If you do not have a initramfs, then there is currently no gain at all as udev has to be started anyway in baselayout/openrc before it lets you try to mount anything.
    Here otoh if you hack your initscripts you may have something that can make changes with devtmpfs and no initramfs, not having to depend on udev getting started before doing anything device related (mounting, networking, and so on) may give a little gain.

  6. Jeremy, if you find the right combination of devtmpfs / openrc, would you mind sharing what needs to be done? Devtmpfs is on my todo list but I cant seem to find time for it. TIA.

  7. A comparision between devtmpfs and device tarball feature in /etc/conf.d/rc would be interesting.

  8. Out of curiosity, how did you render the charts? The way to do it online seems to have been dead for a while now (unless I’m using the wrong one) and I don’t see how to do it with the installed packages (yes with java enabled). bootchart-render doesn’t seem to install.

    Thanks,
    M.

    • Look in /etc/bootchartd.conf:

      # Whether to automatically generate the boot chart once the boot logger
      # completes. The boot chart will be generated in $AUTO_RENDER_DIR.
      # Note that the bootchart package must be installed.
      AUTO_RENDER=”yes”

Leave a Reply