MMU operations in paravirt_ops

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Rusty Russell wrote:
> Hi all,
>
> 	The next obvious step for paravirt_ops seems to me to be higher-level
> mmu operations: from reading the VMI patches it seems to do flushing,
> whereas Xen opts for batching.
>
> 	In the spirit of ops structures, this would be done by putting
> higher-level operations into the ops structure, and batching done by the
> op itself (perhaps with a default implementation for those too lazy to
> implement it).  At this point we run into the brick wall of my
> ignorance: Chris, Zach, anyone, are there any obvious interfaces from a
> Linux POV?
>   

I would say that attempting to move MMU operations into an ops structure 
is still premature.  There are substantial differences in the set of 
operations that would be useful to a shadow mode Xen guest, a shadow 
mode VMI guest, and a direct mode Xen guest.  Writable pagetables is I 
believe still an optional interface for UP guests in Xen.  So there are 
a lot of combinations, and picking the set of ops we need to hook needs 
a lot of discussion.

I think for writable page tables, Xen needs only a set_pte function, but 
it does need two higher level abstractions - to iterate, change 
protection and register pages prior to switching to an address space, 
and to move off the current address space onto swapper_pgdir before 
destroying an address space.  A VMI guest needs only low level page 
table operations.  A shadow mode Xen guest may benefit from some mixed 
set of operations - of which I confess not to know the best approach.  I 
don't know how important shadow mode is to Xen.

So now we are mixing low-level and high-level operations, and we need a 
good plan laid out.  Lets hope we can promote some more discussions 
along these lines - finding the balance between flexibility, 
performance, and intrusiveness in the MMU interface is a big problem.  
I'm working on a proposal along these lines for a well defined set of 
hooks, but meanwhile I will take a look at these patches and would 
encourage other proposals as well.

Zach

[Index of Archives]     [KVM Development]     [Libvirt Development]     [Libvirt Users]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux