diff mbox

[Xen-devel,v3,00/15] Mem_event and mem_access for ARM

Message ID 5404CF8B.8030603@linaro.org
State Not Applicable, archived
Headers show

Commit Message

Julien Grall Sept. 1, 2014, 7:56 p.m. UTC
Hello Tamas

On 01/09/14 10:21, Tamas K Lengyel wrote:
> The ARM virtualization extension provides 2-stage paging, a similar mechanisms
> to Intel's EPT, which can be used to trace the memory accesses performed by
> the guest systems. This series moves the mem_access and mem_event codebase
> into Xen common, performs some code cleanup and architecture specific division
> of components, then sets up the necessary infrastructure in the ARM code
> to deliver the event on R/W/X traps. Finally, we turn on the compilation of
> mem_access and mem_event on ARM and perform the necessary changes to the
> tools side.
> 
> This version of the series has been fully tested and is functional on an
> Arndale board.

domain_get_maximum_gpfn used in common code is defined as -ENOSYS.

I've sent a patch a month ago on the mailing list about it (see patch below).

Ian: Can you reconsider to apply the patch? (I will also reply to the thread). FYI,
I have a patch to fix xc_dom_gnttab_hvm_seed in libxc. I will try to send it next week.

Regards,

Comments

Tamas K Lengyel Sept. 2, 2014, 9:47 a.m. UTC | #1
On Mon, Sep 1, 2014 at 9:56 PM, Julien Grall <julien.grall@linaro.org>
wrote:

> Hello Tamas
>
> On 01/09/14 10:21, Tamas K Lengyel wrote:
> > The ARM virtualization extension provides 2-stage paging, a similar
> mechanisms
> > to Intel's EPT, which can be used to trace the memory accesses performed
> by
> > the guest systems. This series moves the mem_access and mem_event
> codebase
> > into Xen common, performs some code cleanup and architecture specific
> division
> > of components, then sets up the necessary infrastructure in the ARM code
> > to deliver the event on R/W/X traps. Finally, we turn on the compilation
> of
> > mem_access and mem_event on ARM and perform the necessary changes to the
> > tools side.
> >
> > This version of the series has been fully tested and is functional on an
> > Arndale board.
>
> domain_get_maximum_gpfn used in common code is defined as -ENOSYS.
>
>
Right, and I don't really understand why the safety check that uses this
function never triggers in mem_access with this function just returning
-errno.

I've sent a patch a month ago on the mailing list about it (see patch
> below).
>
> Ian: Can you reconsider to apply the patch? (I will also reply to the
> thread). FYI,
> I have a patch to fix xc_dom_gnttab_hvm_seed in libxc. I will try to send
> it next week.
>
> Regards,
>
> ====================================================================
>
> commit 7aa592b7a6f357b0003cd523e446d9d91dc96730
> Author: Julien Grall <julien.grall@linaro.org>
> Date:   Mon Jun 30 17:21:13 2014 +0100
>
>     xen/arm: Implement domain_get_maximum_gpfn
>
>     The function domain_get_maximum_gpfn is returning the maximum gpfn ever
>     mapped in the guest. We can use d->arch.p2m.max_mapped_gfn for this
> purpose.
>
>     Signed-off-by: Julien Grall <julien.grall@linaro.org>
>
> diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
> index 0a243b0..e4a1e5e 100644
> --- a/xen/arch/arm/mm.c
> +++ b/xen/arch/arm/mm.c
> @@ -954,7 +954,7 @@ int page_is_ram_type(unsigned long mfn, unsigned long
> mem_type)
>
>  unsigned long domain_get_maximum_gpfn(struct domain *d)
>  {
> -    return -ENOSYS;
> +    return d->arch.p2m.max_mapped_gfn;
>  }
>
>  void share_xen_page_with_guest(struct page_info *page,
>
>
>
> --
> Julien Grall
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel
>
diff mbox

Patch

====================================================================

commit 7aa592b7a6f357b0003cd523e446d9d91dc96730
Author: Julien Grall <julien.grall@linaro.org>
Date:   Mon Jun 30 17:21:13 2014 +0100

    xen/arm: Implement domain_get_maximum_gpfn
    
    The function domain_get_maximum_gpfn is returning the maximum gpfn ever
    mapped in the guest. We can use d->arch.p2m.max_mapped_gfn for this purpose.
    
    Signed-off-by: Julien Grall <julien.grall@linaro.org>

diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
index 0a243b0..e4a1e5e 100644
--- a/xen/arch/arm/mm.c
+++ b/xen/arch/arm/mm.c
@@ -954,7 +954,7 @@  int page_is_ram_type(unsigned long mfn, unsigned long mem_type)
 
 unsigned long domain_get_maximum_gpfn(struct domain *d)
 {
-    return -ENOSYS;
+    return d->arch.p2m.max_mapped_gfn;
 }
 
 void share_xen_page_with_guest(struct page_info *page,