Re: In place kexec

Eric W. Biederman
2010-07-30T20:08:32Z

David Woodhouse <dwmw2@infradead.org> writes:

> On Fri, 30 Jul 2010, Eric W. Biederman wrote:
>
>> David Woodhouse <dwmw2@infradead.org> writes:
>>> The DMA gets blocked, and you don't have to worry about whether the device was
>>> shut down cleanly or not. The device may be unhappy, but when the new kernel's
>>> driver loads and reinitialises it, all should be forgiven.
>>
>> Assuming IOMMU page faults don't cause pain. I seem to remember that
>> also being a nasty issue.
>
> Only if the driver (or the hardware) is so broken that it can't
> reccover. There's very little excuse for a driver to have that problem even at
> runtime (and fail to recover from such an error)... for a driver to fail to
> initialise the hardware even when that driver is first being loaded is
> *entirely* fucked.
>
> Not that it doesn't happen, of course. But do we care? I lump those broken
> drivers is the same class as the ones which only work after a warm start from
> Windows or Mac OS.

The issue is what happens if you take an IOMMU page fault during
between shutdown and restart. I seem to remember an IOMMU page fault
triggering a machine check on AMD cpus. So maybe it works but my gut
impression is simply leaving the IOMMU in a state that is on but not
responding could actually make a reboot or kexec less stable than having
on-going DMAs stomping on memory. If you can leave it on, without
translations and not trapping to software that is a different story.

Eric