David Woodhouse <dwmw2 at infradead.org> writes: > On Fri, 30 Jul 2010, Eric W. Biederman wrote: > >> David Woodhouse <dwmw2 at 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