RE: [PATCH 0/3] hwmem: Hardware memory driver

Johan MOSSBERG
2010-11-17T09:28:26Z

Michał Nazarewicz wrote:
> Do you want to remap user space mappings when page is moved during
> defragmentation? Or would user need to unmap the region? Ie. would
> mmap()ed buffer be pinned?

Remap, i.e. not pinned. That means that the mapper needs to be
informed before and after a buffer is moved. Maybe add a function
to CMA where you can register a callback function that is called
before and after a buffer is moved? The callback function's
parameters would be buffer, new position and whether it will be
moved or has been moved. CMA would also need this type of
information to be able to evict temporary data from the
destination.

I'm a little bit worried that this approach put constraints on the
defragmentation algorithm but I can't think of any scenario where
we would run into problems. If a defragmentation algorithm does
temporary moves, and knows it at the time of the move, we would
have to add a flag to the callback that indicates that the move is
temporary so that it is not unnecessarily mapped, but that can be
done when/if the problem occurs. Temporarily moving a buffer to
scattered memory is not supported either but I suppose that can be
solved by adding a flag that indicates that the new position is
scattered, also something that can be done when needed.

/Johan Mossberg