<div dir="ltr">I'm pretty sure they are, they are part of the Xilinx Zynq SoC platform, from their specs<br>32 KB Level 1 4-way set-associative instruction and data caches (independent for each CPU)<div style="font-size:13.3px;font-family:sans-serif">512 KB 8-way set-associative Level 2 cache (shared between the CPUs)<br><br></div><div style="font-size:13.3px;font-family:sans-serif">Good idea on disabling a core, this could then prove/disprove my first theory, a bit of googling tells me that there's a Kernel boot arg 'nosmp', I'll give this a try.<br><br></div><div style="font-size:13.3px;font-family:sans-serif">Cheers, Martin.<br></div><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Feb 23, 2016 at 3:33 PM, Umut Tezduyar Lindskog <span dir="ltr"><<a href="mailto:umut@tezduyar.com" target="_blank">umut@tezduyar.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Mon, Feb 22, 2016 at 8:51 PM, Martin Townsend<br>
<<a href="mailto:mtownsend1973@gmail.com">mtownsend1973@gmail.com</a>> wrote:<br>
> Hi,<br>
><br>
<span class="">> Thanks for your reply.  I wouldn't really call this system stripped down, it<br>
> has an nginx webserver, DHCP server, postgresql-server, sftp server, a few<br>
> mono (C#) daemons running, loads quite a few kernel modules during boot,<br>
> dbus, sshd, avahi, and a bunch of other stuff I can't quite remember.  I<br>
> would imagine glibc will be a tiny portion of what gets loaded during boot.<br>
> I have another arm system which has a similar boot time with systemd, it's<br>
> only a single cortex A9 core, it's running a newer 4.1 kernel with a new<br>
> version of systemd as it's built with the Jethro version of Yocto so<br>
> probably a newer version of glibc and this doesn't speed up when using<br>
> bootchart and in fact slows down slightly (which is what I would expect).<br>
> So my current thinking is that it's either be down to the fact that it's a<br>
> dual core and only one core is being used during boot unless a fork/execl<br>
> occurs? Or it's down to the newer kernel/systemd/glibc or some other<br>
> component.<br>
<br>
</span>Are you sure both cores have the same speed and same size of L1<br>
data&instruction cache?<br>
You could try to force the OS to run systemd on the first core by A)<br>
make the second one unavailable B) play with control groups and pin<br>
systemd to first core.<br>
<br>
Umut<br>
<div><div class="h5"><br>
><br>
> Is there anyway of seeing what the CPU usage for each core is for systemd on<br>
> boot without using bootchart then I can rule in/out the first idea.<br>
><br>
> Many Thanks,<br>
> Martin.<br>
><br>
><br>
> On Mon, Feb 22, 2016 at 6:52 PM, Kok, Auke-jan H <<a href="mailto:auke-jan.h.kok@intel.com">auke-jan.h.kok@intel.com</a>><br>
> wrote:<br>
>><br>
>> On Fri, Feb 19, 2016 at 7:15 AM, Martin Townsend<br>
>> <<a href="mailto:mtownsend1973@gmail.com">mtownsend1973@gmail.com</a>> wrote:<br>
>> > Hi,<br>
>> ><br>
>> > I'm new to systemd and have just enabled it for my Xilinx based dual<br>
>> > core<br>
>> > cortex A-9 platform.  The linux system is built using Yocto (Fido<br>
>> > branch)<br>
>> > which is using version 219 of systemd.<br>
>> ><br>
>> > The main reason for moving over to systemd was to see if we could<br>
>> > improve<br>
>> > boot times and the good news was that by just moving over to systemd we<br>
>> > halved the boot time.  So I read that I could analyse the boot times in<br>
>> > detail using bootchart so I set init=/..../bootchart in my kernel<br>
>> > command<br>
>> > line and was really suprised to see my boot time halved again.  Thinking<br>
>> > some weird caching must have occurred on the first boot I reverted back<br>
>> > to<br>
>> > normal systemd boot and boot time jumped back to normal (around 17/18<br>
>> > seconds), putting bootchart back in again reduced it to ~9/10 seconds.<br>
>> ><br>
>> > So I created my own init using bootchart as a template that just slept<br>
>> > for<br>
>> > 20 seconds using nanosleep and this also had the same effect of speeding<br>
>> > up<br>
>> > the boot time.<br>
>> ><br>
>> > So the only difference I can see is that the kernel is not starting<br>
>> > /sbin/init -> /lib/systemd/systemd directly but via another program that<br>
>> > is<br>
>> > performing a fork and then in the parent an execl to run<br>
>> > /lib/systemd/systemd.  What I would really like to understand is why it<br>
>> > runs<br>
>> > faster when started this way?<br>
>><br>
>><br>
>> systemd-bootchart is a dynamically linked binary. In order for it to<br>
>> run, it needs to dynamically link and load much of glibc into memory.<br>
>><br>
>> If your system is really stripped down, then the portion of data<br>
>> that's loaded from disk that is coming from glibc is relatively large,<br>
>> as compared to the rest of the system. In an absolute minimal system,<br>
>> I expect it to be well over 75% of the total data loaded from disk.<br>
>><br>
>> It seems in your system, glibc is about 50% of the stuff that needs to<br>
>> be paged in from disk, hence, by starting systemd-bootchart before<br>
>> systemd, you've "removed" 50% of the total data to be loaded from the<br>
>> vision of bootchart, since, bootchart cannot start logging data until<br>
>> it's loaded all those glibc bits.<br>
>><br>
>> Ultimately, your system isn't likely booting faster, you're just<br>
>> forcing it to load glibc before systemd starts.<br>
>><br>
>> systemd-analyze may actually be a much better way of looking at the<br>
>> problem: it reports CLOCK_MONOTONIC timestamps for the various parts<br>
>> involved, including, possibly, firmware, kernel time, etc.. In<br>
>> conjunction with bootchart, this should give a full picture.<br>
>><br>
>> Auke<br>
><br>
><br>
><br>
</div></div>> _______________________________________________<br>
> systemd-devel mailing list<br>
> <a href="mailto:systemd-devel@lists.freedesktop.org">systemd-devel@lists.freedesktop.org</a><br>
> <a href="https://lists.freedesktop.org/mailman/listinfo/systemd-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/systemd-devel</a><br>
><br>
</blockquote></div><br></div>