Re: kexec reboot broken with ioatdma?

From: Dan Williams
Date: Wed Dec 16 2009 - 18:11:51 EST


Roland Dreier wrote:
> from a kexec point of view I believe that the preferred option is the
> former - shutdown the device so it can be initialised using standard paths
> in the second kernel.

OK... however I'm not suggesting a separate kexec initialization path,
simply adding a reset of the device in the standard initialization.
This would be fairly normal for other types of device; for example, the
BIOS may have left a NIC in an undefined state due to network boot. Of
course BIOS is unlikely to use an IOAT DMA engine but the principle of
limiting assumptions about platform state still stands I think.

I agree that is more robust if the init path copes with hardware arriving in an unknown state. I'll look into adding a channel reset in the init path (something that should probably have been there since the beginning).

From a quick look, it seems tricky to get a clean shutdown of IOAT stuff
since there doesn't seem to be a clean ordering that makes sure the
ioatdma stuff is shutdown after everything using it.

The engines may be in use by multiple subsytems (net, raid) so coordinating shutdown ordering would indeed be a pain.

--
Dan

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/