Re: Kexec, DMA, and SMP

Suparna Bhattacharya
2003-02-13T10:58:19Z

On Wed, Feb 12, 2003 at 10:06:02AM -0600, Corey Minyard wrote:
> |
> |It is trivial if you don't let alloc_pages give the memory to anyone for
> |any purpose.
>
> Ok, agreed, if you reserve a section of physical memory just for kexec
> to copy it's kernel into, it will
> prevent DMA from clobbering something from the time kexec copies the
> kernel there to the time
> decompressing starts.
>
> Another thought. If you add a delay with all other processors and
> interrupts off, the disk devices
> will run out of things to do.
>
> Once you add all the necessary quiesce functions, these can go away.
>
> I do doubt these will make a big difference, though. The problem we
> were seeing was with the
> shared control structures in memory. The new kernel laid memory out a
> little differently and
> things like buffer pointers were overwritten with new data. This, in
> turn, cause the device to
> do random things. I would guess this is the most likely scenario, since

The trick is that the new kernel's allocations are also from the
reserved area. (Using the same technique that MCL relies on to
avoid allocating from and stomping over the pages containing
crash dump).

So the memory used by the old and new kernel are mutually
exclusive.

Regards
Suparna

--
Suparna Bhattacharya (suparna@in.ibm.com)
Linux Technology Center
IBM Software Labs, India