Re: [PATCH][RFC] pte notifiers -- support for external page tables

Avi Kivity
2007-09-06T13:22:53Z

[ugh, what happened to the cc-list?]

Andi Kleen wrote:
> Avi Kivity <avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org> writes:
>
>> pte notifiers are different from paravirt_ops: they extend the normal
>> page tables rather than replace them; and they provide high-level information
>> such as the vma and the virtual address for the driver to use.
>>
>
> Sounds like a locking horror to me. To do anything with page tables
> you need locks. Both for the kernel page tables and for your new tables.
>
> What happens when people add all
> things of complicated operations in these notifiers? That will likely
> happen and then everytime you change something in VM code they
> will break. This has the potential to increase the cost of maintaining
> VM code considerably, which would be a bad thing.
>
> This is quite different from paravirt ops because low level pvops
> can typically run lockless by just doing some kind of hypercall directly.
> But that won't work for maintaining your custom page tables.
>

This is a real problem. I don't have a solution yet.

Obviously that needs to be addressed before something like this can go
in; but as it's been done for the quadrics driver, presumably it is doable.