<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle18
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Hello ,<o:p></o:p></p>
<p class="MsoNormal">               I am looking into optimizing the boot / systemd service  ordering for my embedded target hardware related to achieving fast boot options.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">---- The systemd-analyze report shown the delay between start of systemd init and the activation of my basic.target where the application services and deamons are activated is close to 4 sec. This time is being spent for the following special
 targets and dependent services in the following order…<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Systemd  ( activation of systemd happens @ 3.57 from cold start (uboot+kernel init))<o:p></o:p></p>
<p class="MsoNormal">-.mount<o:p></o:p></p>
<p class="MsoNormal">systemd-ask-password-wall.path<o:p></o:p></p>
<p class="MsoNormal">syslog.socket<o:p></o:p></p>
<p class="MsoNormal">remote-fs.target<o:p></o:p></p>
<p class="MsoNormal">systemd-shutdownd.socket<o:p></o:p></p>
<p class="MsoNormal">systemd-initctl.socket<o:p></o:p></p>
<p class="MsoNormal">-.slice<o:p></o:p></p>
<p class="MsoNormal">user.slice<o:p></o:p></p>
<p class="MsoNormal">system.slice<o:p></o:p></p>
<p class="MsoNormal">slices.target<o:p></o:p></p>
<p class="MsoNormal">system-getty.slice<o:p></o:p></p>
<p class="MsoNormal">system-serial\x2dgetty.slice<o:p></o:p></p>
<p class="MsoNormal">systemd-ask-password-console.path<o:p></o:p></p>
<p class="MsoNormal">paths.target<o:p></o:p></p>
<p class="MsoNormal">systemd-udevd-kernel.socket<o:p></o:p></p>
<p class="MsoNormal">systemd-udevd-control.socket<o:p></o:p></p>
<p class="MsoNormal">systemd-journald.socket<o:p></o:p></p>
<p class="MsoNormal">systemd-udev-trigger.service (1.309s)<o:p></o:p></p>
<p class="MsoNormal">systemd-modules-load.service (949ms)<o:p></o:p></p>
<p class="MsoNormal">systemd-sysctl.service (909ms)<o:p></o:p></p>
<p class="MsoNormal">systemd-journald.service<o:p></o:p></p>
<p class="MsoNormal">kmod-static-nodes.service (1.079s)<o:p></o:p></p>
<p class="MsoNormal">swap.target<o:p></o:p></p>
<p class="MsoNormal">tmp.mount (650ms)<o:p></o:p></p>
<p class="MsoNormal">systemd-remount-fs.service (480ms)<o:p></o:p></p>
<p class="MsoNormal">systemd-random-seed.service (329ms)<o:p></o:p></p>
<p class="MsoNormal">sys-fs-fuse-connections.mount (265ms)<o:p></o:p></p>
<p class="MsoNormal">systemd-tmpfiles-setup-dev.service (89ms)<o:p></o:p></p>
<p class="MsoNormal">systemd-udevd.service (261ms)<o:p></o:p></p>
<p class="MsoNormal">local-fs-pre.target<o:p></o:p></p>
<p class="MsoNormal">var-volatile.mount (48ms)<o:p></o:p></p>
<p class="MsoNormal">local-fs.target<o:p></o:p></p>
<p class="MsoNormal">systemd-journal-flush.service (97ms)<o:p></o:p></p>
<p class="MsoNormal">systemd-tmpfiles-setup.service (310ms)<o:p></o:p></p>
<p class="MsoNormal">systemd-update-utmp.service (189ms)<o:p></o:p></p>
<p class="MsoNormal">run-postinsts.service (117ms)<o:p></o:p></p>
<p class="MsoNormal">sys-subsystem-net-devices-eth0.device<o:p></o:p></p>
<p class="MsoNormal">sys-devices-platform-enet.0-net-eth0.device<o:p></o:p></p>
<p class="MsoNormal">dev-ttymxc0.device<o:p></o:p></p>
<p class="MsoNormal">sys-devices-platform-imx\x2duart.0-tty-ttymxc0.device<o:p></o:p></p>
<p class="MsoNormal">dev-ttymxc1.device<o:p></o:p></p>
<p class="MsoNormal">sys-devices-platform-imx\x2duart.1-tty-ttymxc1.device<o:p></o:p></p>
<p class="MsoNormal">dev-ttymxc2.device<o:p></o:p></p>
<p class="MsoNormal">sys-devices-platform-imx\x2duart.2-tty-ttymxc2.device<o:p></o:p></p>
<p class="MsoNormal">dev-ttymxc4.device<o:p></o:p></p>
<p class="MsoNormal">sys-devices-platform-imx\x2duart.4-tty-ttymxc4.device<o:p></o:p></p>
<p class="MsoNormal">dev-ttymxc3.device<o:p></o:p></p>
<p class="MsoNormal">sys-devices-platform-imx\x2duart.3-tty-ttymxc3.device<o:p></o:p></p>
<p class="MsoNormal">sys-devices-platform-soc\x2daudio.0-sound-card0.device<o:p></o:p></p>
<p class="MsoNormal">sound.target<o:p></o:p></p>
<p class="MsoNormal">sysinit.target<o:p></o:p></p>
<p class="MsoNormal">gpsd.socket<o:p></o:p></p>
<p class="MsoNormal">systemd-tmpfiles-clean.timer<o:p></o:p></p>
<p class="MsoNormal">timers.target<o:p></o:p></p>
<p class="MsoNormal">alsa-restore.service (1.263s)<o:p></o:p></p>
<p class="MsoNormal">dbus.socket<o:p></o:p></p>
<p class="MsoNormal">sockets.target<o:p></o:p></p>
<p class="MsoNormal">basic.target <o:p></o:p></p>
<p class="MsoNormal">               ->>> Services listed with basic target start activation 7.5 sec)<o:p></o:p></p>
<div style="border:none;border-bottom:solid windowtext 1.0pt;padding:0in 0in 1.0pt 0in">
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I looked into the documentation of systemd (boot sequence) <a href="http://man7.org/linux/man-pages/man7/bootup.7.html">
http://man7.org/linux/man-pages/man7/bootup.7.html</a><o:p></o:p></p>
<p class="MsoNormal">and my understanding is that the above chain of mentioned targets are per systemd recommended boot order.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Now based on my understanding…<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">1/ Is there a recommended way to re-organize the boot target order ( I don’t see there is a way to fit my userlevel application executables or deamons needed for early functionality to be associated with these “primitive target” appearing
 in the boot chain”.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">2/ Is there a way to define custom target like “early-boot.target” and can be placed well on top of these special targets which can be used to start my user space applications that needs to be started well early during the boot process
 ( for example my full functional UI to be available within 8 sec from a cold boot which is has a X11 dependency) . So I mean that I need a way to start the X11 and my UI executable soon after systemd gets initialized and very early during the boot process.Currently
 the service files for the X11 and UI after associated with the basic.target and now the service activation can happen only around 7 sec after power on and when the basic.target is activated.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">3/ Is there any special consideration to disable these special targets like (swap.target,local-fs target if they are not used in the embedded devices?).<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Please provide the recommendation or point to any links/previous discussions. I read through the
<a href="http://freedesktop.org/wiki/Software/systemd/Optimizations/">http://freedesktop.org/wiki/Software/systemd/Optimizations/</a> a very helpful note on optimization ,but couldn’t infer much on how to work around this sequencing issue.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Regards<o:p></o:p></p>
<p class="MsoNormal">Vibin<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">       <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>