Messages in this thread | | | Date | Wed, 28 Jul 2010 11:30:00 -0700 | From | "H. Peter Anvin" <> | Subject | Re: [PATCH 31/31] memblock: Add memblock_find_in_range() |
| |
On 07/28/2010 11:10 AM, James Bottomley wrote: > > So I don't understand the problem. Proper shutdown of the old kernel > will halt all the DMA engines (by design ... we can't have DMA ongoing > if the next action might be power off). The only case I know where DMA > engines may be active is the crash kernel case. >
I'm not sure I fully understand the exact problem, either; not being familiar with this putative "logging" facility of the Qlogic devices. My point was largely that if a device causes failures because of the choice of the allocation order, then we have a much bigger problem and papering over it by trying to muck with the allocation order is just wrong.
This logging facility of Qlogic is DMA, no more, no less. It needs to be shut down on a "overwrite" kexec, where we replace one kernel with another, as opposed to a crash dump kexec, where we use a reserved chunk of virgin memory. What I don't know/understand at the moment is if there is something "special" about this particular logging facility, e.g. if the Qlogic card ignore the bus mastering control bit -- which would be reckless but I can see someone having the bright idea to do that.
Yinghai, do you have any more detail, or know who would? Also copying the Qlogic Infinipath maintainer email...
-hpa
| |