Messages in this thread | | | Subject | Re: Kexec, DMA, and SMP | From | (Eric W. Biederman) | Date | 14 Feb 2003 23:03:27 -0700 |
| |
Corey Minyard <cminyard@mvista.com> writes:
> Werner Almesberger wrote: > > |Zwane Mwaikambo wrote: > | > |>I don't think suspending devices is safe at that stage since removing > |>devices and walking lists and freeing memory and disabling devices and... > |>kicks up quite a storm. > | > | > |If you *really* don't want to stop devices, you can use the > |"reserved, non-DMA memory" approach, kexec the kernel that > |records the crash dump, and then do a system-wide reset, or > |such. > | > |But if you don't have that - possibly considerable - amount > |of memory to spare, you don't have much of a choice than to > |stop devices. Of course, crash dumps don't need a neat and > |clean shutdown, so you can avoid all the kfrees, and such. > | > |(So adding a special mode to the power management code may > |be too much overhead. Besides, sometimes, you can just pull > |a reset line, and don't have to do anything even remotely > |related to power management.) > > True, I didn't mean the high-level power management code directly. But the > PCI API defines a suspend operation that could take a special mode for this.
The generic device api has a shutdown method for this. And in the non panic case we use it. Not a lot of devices have it implemented but it exists.
And except that it doesn't have a restriction that it can't block is pretty much what you want.
> Or maybe a new field in the PCI structure (and equivalent for other things, if > there are any). But the suspend and resume operations should at least give > a good idea where its needed and how to use it.
The API is already done...
We just don't trust the dying kernel enough to use it during a panic.
Eric - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |