Re: Kexec, DMA, and SMP

Eric W. Biederman
2003-02-11T04:58:37Z

Kenneth Sumrall <ken@mvista.com> writes:

> > Suparna Bhattacharya <suparna@in.ibm.com> writes:

> > Agreed. I guess the primary question is can we trust the current
> > device shutdown + reboot notifier path or do we need to make some
> > large changes to avoid it.
> >
> So are the functions registered on the reboot notifier path guaranteed
> to be non-blocking? In the kexec on panic case, calls that can block
> would obviously be a bad thing. If they can block, perhaps we could add
> a new flag SYS_PANIC or something like that to tell the driver to only
> do a non-blocking shutdown of the chip.

I think there is some amount of blocking allowed. But that has not be
clearly defined. Note in 2.5.x there is a specific subset
of the reboot notifiers the shutdown() device method. That you
don't need to register a notifier for. The rules are the same
and it is just a little bit cleaner.

> > Not primarily. Instead I am trying to address the possibility that
> > DMA is overwriting the recovery code due to a device not being shutdown
> > properly. Though it would happen to cover many cases of the wrong
> > memory address being passed to a device.
> >
> The problem we were seeing was that rogue DMA from a network interface
> chip was corrupting dentry's in the dirent cache when the rebooted
> kernel was coming back up. This caused a whole new set of panics. :-(

And this a reserved hunk of memory from of memory from say 16MB to 20MB
would handle. As the DMA could never have been setup at that address
it obviously will never be used...

Eric