Messages in this thread | | | Date | Fri, 20 Aug 2021 17:48:21 +0200 | From | Borislav Petkov <> | Subject | Re: [PATCH] x86/mce/dev-mcelog: Call mce_register_decode_chain() much earlier |
| |
On Fri, Aug 20, 2021 at 07:43:14AM -0700, Luck, Tony wrote: > How can the kernel tell that all consumers have registered? Is there > some new kernel crystal ball functionality that can predict that an > EDAC driver module is going to be loaded at some point in the future > when user space is up and running :-)
The crystal ball is called mcheck_late_init(). There's even:
/* * Flush out everything that has been logged during early boot, now that * everything has been initialized (workqueues, decoders, ...). */ mce_schedule_work();
in there. That thing is late_initcall() and by that time mcelog should have been registered. And I wonder why isn't that working as expected...
> I think the best we could do would be to set a timer for some point > far enough out (one minute?, two minutes?) to give a chance for > modules to load.
Forget modules - only the built-in stuff. We cannot be waiting indefinitely until someone loads mcelog for decoding.
-- Regards/Gruss, Boris.
https://people.kernel.org/tglx/notes-about-netiquette
| |