Hi Indian,

-BOOT_BSS static volatile int node_boot_lock;
+static volatile int node_boot_lock;

In seL4 kernel code try_init_kernel_secondary_core every core waits on
node_boot_lock to start initialization. As you can see above node_boot_lock
has been defined as BOOT_BSS is a specific usage context of the .bss
section during the boot process. Apparently, the Morello processor
introduces some unique features and behaviors that might affect how memory
regions like the BOOT_BSS section handles cache coherence in a
multi-threaded environment. My research shows that sometimes threads don't
see node_boot_lock changes and don't start initialization. I have removed
BOOT_BSS and it is booted properly now

Thanks,
Leonid






On Fri, May 3, 2024 at 8:13 AM Indan Zupancic <in...@nul.nu> wrote:

> Hello Leonid,
>
> On 2024-04-25 21:37, Leonid Meyerovich wrote:
> > I run my seL4 application on 4 core ARMv8.
>
> Still the new platform port I assume?
>
> > Recently I have developed some more application code (I mention it
> > because
> > file system size is increased an I believe it may change boot time) and
> > from time to time I observed that boot process failed (stuck after the
> > following print)
>
> Does this only happen with a bigger application? And is it always stuck
> for a specific binary, or does the same binary sometimes work?
>
> The application isn't started until after the kernel is done booting,
> so its size should not affect cores coming up or not. If it does, it
> may be a bug in Elfloader. If that is the case, it should either
> always succeed or always fail.
>
> > Some time I see that only 2 CPU have been booted (like CPU1 and CPU3,
> > or CPU2 and CPU3)
> > Last print is the last one in init_kernel() function
>
> Core 0 will only finish if all other cores have done their init too.
>
> I recommend adding some debugging to try_init_kernel_secondary_core()
> and init_cpu() to see what where it gets stuck.
>
> Also be aware that debug printing may disappear if multiple cores
> print at exactly the same time, depending on the UART driver.
>
> Greetings,
>
> Indan
>
_______________________________________________
Devel mailing list -- devel@sel4.systems
To unsubscribe send an email to devel-leave@sel4.systems

Reply via email to