Re: Kexec, DMA, and SMP

Suparna Bhattacharya
2003-02-11T13:25:10Z

On Tue, Feb 11, 2003 at 06:25:08PM +0530, Suparna Bhattacharya wrote:
> On Mon, Feb 10, 2003 at 10:56:43AM -0700, Eric W. Biederman wrote:
> > Suparna Bhattacharya <suparna@in.ibm.com> writes:
> [snip]
> >
> > Not primarily. Instead I am trying to address the possibility that
> > DMA is overwriting the recovery code due to a device not being shutdown
> > properly. Though it would happen to cover many cases of the wrong
> > memory address being passed to a device.
> >
>
> OK, I see where you are coming from. It is an interesting
> possibility, if you know how to pull it off for various
> architectures, and the working area that the new kernel needs
> to do operate to the extent of issuing the writeout is not
> too big (i.e. doesn't take away too much memory from the
> operational kernel). Perhaps we could hide this memory from
> the normal kernel virtual address space most of the time, so
> its less susceptable to software corruption (i.e. besides
> physical access via DMA).

For the sort of problems which Ken is seeing, maybe we can,
for a start, do without all the modifications to make the
new kernel run at a different address, if we can assume
that most i/o is likely is happen on dynamically allocated
buffers.

We could just reserve a memory area of reasonable size (how
much ?) which would be used by the new kernel for all its
allocations. We already have the infrastructure to tell the
new kernel which memory areas not to use, so its simple
enough to ask it exclude all but the reserved area.
By issuing the i/o as early as possible during bootup
(for lkcd all we need is the block device to be setup for
i/o requests), we can minimize the amount of memory to
reserve in this manner.

That might address a large percentage of the regular cases,
i.e. except where statically allocated buffers could be
targets for DMA. If we are using in-use (user) pages
for saving the dump, then there is a possibility of a dump
getting corrupted by a DMA, but there may be a way to
minimize that when we chose destination pages to use.

Regards
Suparna

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