On Wed, Dec 16, 2009 at 01:23:15PM -0500, Jeff Mahoney wrote:
Yeah you are probably right. Jeff I think it is a bit dodgy to call random core code like this from the swapper thread... If we haven't called at least do_basic_setup then we haven't got things like workqueues or got all our initcalls called.
Yeah, but that's sort of the point. I guess I didn't do enough testing with the -desktop kernel on this because I didn't run into this while testing the default kernel.
The thing is that this is just noise. It's not random core core, it's focused on sys_{open,read,write,close} and in the rootfs init ramfs file system.
Well but those syscalls will call into almost every part of mm and vfs code, and could in turn be calling into other things. I'm not saying it is totally impossible, but I don't know if everything would have been verified to work. It would be a big job going through all initcalls etc to ensure we don't call into an uninitialized subsystem.
This is where it used to unpack the initramfs anyway but got caught up in usermodehelper expecting infrastructure that didn't exist yet, causing oopses. The patch before this one ensures that there will be no userspace calls until rootfs_initcall.
Well it used to unpack initramfs I think in the kernel_init thread which is after the scheduler is up properly and do_basic_setup is called.
do_basic_setup is after smp_init, which is what you need to run the early acpi setup before. So we have a bit of a problem.
Yep. That's the crux of it. I agree that we need to find a solution to this, and just ripping it out isn't the answer. Users were actively requesting this patch be included in 11.2 to fix real issues on their systems.
A previous version of this patch did essentially the same thing except it open coded the read/write calls instead. You can see why I think this version is a bit more flexible. -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-kernel+help@opensuse.org