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

Re: [Xen-devel] [PATCH 1/2] x86/HVM: latch linear->phys translation results


  • To: Jan Beulich <JBeulich@xxxxxxxx>, xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Paul Durrant <Paul.Durrant@xxxxxxxxxx>
  • Date: Fri, 10 Jun 2016 15:17:49 +0000
  • Accept-language: en-GB, en-US
  • Delivery-date: Fri, 10 Jun 2016 15:18:00 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xen.org>
  • Thread-index: AQHRwYcLwhXUBKf4OEWYFPyLj2m87J/i0NLw
  • Thread-topic: [PATCH 1/2] x86/HVM: latch linear->phys translation results

> -----Original Message-----
> From: Jan Beulich [mailto:JBeulich@xxxxxxxx]
> Sent: 08 June 2016 14:10
> To: xen-devel
> Cc: Paul Durrant
> Subject: [PATCH 1/2] x86/HVM: latch linear->phys translation results
> 
> ... to avoid re-doing the same translation later again (in a retry, for
> example). This doesn't help very often according to my testing, but
> it's pretty cheap to have, and will be of further use subsequently.
> 
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>

Reviewed-by: Paul Durrant <paul.durrant@xxxxxxxxxx>

> 
> --- a/xen/arch/x86/hvm/emulate.c
> +++ b/xen/arch/x86/hvm/emulate.c
> @@ -678,6 +678,19 @@ static struct hvm_mmio_cache *hvmemul_fi
>      return cache;
>  }
> 
> +static void latch_linear_to_phys(struct hvm_vcpu_io *vio, unsigned long
> gla,
> +                                 unsigned long gpa, bool_t write)
> +{
> +    if ( vio->mmio_access.gla_valid )
> +        return;
> +
> +    vio->mmio_gva = gla & PAGE_MASK;
> +    vio->mmio_gpfn = PFN_DOWN(gpa);
> +    vio->mmio_access = (struct npfec){ .gla_valid = 1,
> +                                       .read_access = 1,
> +                                       .write_access = write };
> +}
> +
>  static int hvmemul_linear_mmio_access(
>      unsigned long gla, unsigned int size, uint8_t dir, void *buffer,
>      uint32_t pfec, struct hvm_emulate_ctxt *hvmemul_ctxt, bool_t
> known_gpfn)
> @@ -703,6 +716,8 @@ static int hvmemul_linear_mmio_access(
>                                      hvmemul_ctxt);
>          if ( rc != X86EMUL_OKAY )
>              return rc;
> +
> +        latch_linear_to_phys(vio, gla, gpa, dir == IOREQ_WRITE);
>      }
> 
>      for ( ;; )
> 
> 


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.