Mailing List Archive

Re: Xen-ARM and paravirt_ops?
On Fri, 10 Aug 2012, maheen butt wrote:
> Hi,
> I came to know from Xen-ARM wiki and other related pages that ARM  port is based on 
> xen-unstable and it can boot a Linux 3.0 based virtual machine (dom 0). for reference
> https://lkml.org/lkml/2011/11/29/265
>
> As Xen-ARM can boot Linux 3.0, it means that this hypervisor is using 
> paravirt_ops infrastructure of kernel. I want to know that did you explicitly 
> add paravirt_ops support in kernel for ARM?

The xen-unstable based ARM port uses the new virtualization extensions
introduced recently by ARM. Therefore it requires a Cortex-A15 processor
or newer in order to work. On the other hand no paravirt_ops support is
necessary in the kernel, as we are using nested paging in hardware.


> As far as I know paravirt_ops is an infrastructure given by Linux kernel to support 
> hypervisor. and http://wiki.xensource.com/xenwiki/XenParavirtOps tells that
> at present paravirt_ops is available for x86_32, x86_64 and ia64 architectures.
> If this the case that you have add support of paravirt_ops in Linux kernel for ARM
> architecture then what is the level of complexity for adding this kind of support?

The level of complexity is non-trivial, fortunately we managed to avoid
it.
Re: Xen-ARM and paravirt_ops? [ In reply to ]
________________________________
From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
To: maheen_butt26@yahoo.com
Cc: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>; xen-arm@lists.xensource.com; sbuk.suh@samsung.com; keir@xen.org; community.manager@xen.org
Sent: Friday, August 10, 2012 2:59 PM
Subject: Re: Xen-ARM and paravirt_ops?

On Fri, 10 Aug 2012, maheen butt wrote:
> Hi,
> I came to know from Xen-ARM wiki and other related pages that ARM  port is based on 
> xen-unstable and it can boot a Linux 3.0 based virtual machine (dom 0). for reference
> https://lkml.org/lkml/2011/11/29/265
>
> As Xen-ARM can boot Linux 3.0, it means that this hypervisor is using 
> paravirt_ops infrastructure of kernel. I want to know that did you explicitly 
> add paravirt_ops support in kernel for ARM?

The xen-unstable based ARM port uses the new virtualization extensions
introduced recently by ARM. Therefore it requires a Cortex-A15 processor
or newer in order to work. On the other hand no paravirt_ops support is
necessary in the kernel, as we are using nested paging in hardware.

What is the relationship between nested paging and paravirt_ops? paravirt_ops is 
 hypervisor-agnostic interface between the hypervisor and guest kernels where as 
nested paging increase the performance of hardware virtualization by providing hardware 
support for page-table virtualization. Its hard for me to understand relationship between two.
(the relationship is that if one is present other can be ignored)
will you please explain it.


> As far as I know paravirt_ops is an infrastructure given by Linux kernel to support 
> hypervisor. and http://wiki.xensource.com/xenwiki/XenParavirtOps tells that
> at present paravirt_ops is available for x86_32, x86_64 and ia64 architectures.
> If this the case that you have add support of paravirt_ops in Linux kernel for ARM
> architecture then what is the level of complexity for adding this kind of support?

The level of complexity is non-trivial, fortunately we managed to avoid
it.

_______________________________________________
Xen-arm mailing list
Xen-arm@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-arm
Re: Xen-ARM and paravirt_ops? [ In reply to ]
On Sat, 11 Aug 2012, maheen butt wrote:
> From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
> To: maheen_butt26@yahoo.com
> Cc: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>; xen-arm@lists.xensource.com; sbuk.suh@samsung.com; keir@xen.org; community.manager@xen.org
> Sent: Friday, August 10, 2012 2:59 PM
> Subject: Re: Xen-ARM and paravirt_ops?
>
> On Fri, 10 Aug 2012, maheen butt wrote:
> > Hi,
> > I came to know from Xen-ARM wiki and other related pages that ARM  port is based on 
> > xen-unstable and it can boot a Linux 3.0 based virtual machine (dom 0). for reference
> > https://lkml.org/lkml/2011/11/29/265
> >
> > As Xen-ARM can boot Linux 3.0, it means that this hypervisor is using 
> > paravirt_ops infrastructure of kernel. I want to know that did you explicitly 
> > add paravirt_ops support in kernel for ARM?
>
> The xen-unstable based ARM port uses the new virtualization extensions
> introduced recently by ARM. Therefore it requires a Cortex-A15 processor
> or newer in order to work. On the other hand no paravirt_ops support is
> necessary in the kernel, as we are using nested paging in hardware.
>
> What is the relationship between nested paging and paravirt_ops? paravirt_ops is 
>  hypervisor-agnostic interface between the hypervisor and guest kernels where as 
> nested paging increase the performance of hardware virtualization by providing hardware 
> support for page-table virtualization. Its hard for me to understand relationship between two.
> (the relationship is that if one is present other can be ignored)
> will you please explain it.

paravirt_ops is a framework within the Linux kernel to replace the
implementation of some arch specific functions with an alternative
implementation.
It is only available on x86 and it is mainly used to provide Xen-aware
functions to read and write pagetables (pagetable pages need to be
read-only on Xen). Give a look at arch/x86/xen/mmu.c to get a better
idea on what they are for.
If we rely on nested paging in hardware we don't need pagetable access
paravirt_ops any more because the guest can modify its own pagetables the
same way it would do on native hardware.