>>> On 17.06.15 at 16:55, wrote:
>> From: Jan Beulich [mailto:jbeul...@suse.com]
>> Sent: 17 June 2015 15:48
>> >>> On 17.06.15 at 15:54, wrote:
>> >> -Original Message-
>> >> From: Jan Beulich [mailto:jbeul...@suse.com]
>> >> Sent: 17 June 2015 14:31
>> >> >>> On 11.06.15 at 17:42, wro
> -Original Message-
> From: Jan Beulich [mailto:jbeul...@suse.com]
> Sent: 17 June 2015 15:48
> To: Paul Durrant
> Cc: Andrew Cooper; xen-de...@lists.xenproject.org; Keir (Xen.org)
> Subject: RE: [PATCH v2 01/17] x86/hvm: simplify hvmemul_do_io()
>
> >>> On 17.06.15 at 15:54, wrote:
> >>
>>> On 17.06.15 at 15:54, wrote:
>> -Original Message-
>> From: Jan Beulich [mailto:jbeul...@suse.com]
>> Sent: 17 June 2015 14:31
>> >>> On 11.06.15 at 17:42, wrote:
>> > @@ -190,7 +141,12 @@ static int hvmemul_do_io(
>> > p.count = *reps;
>> >
>> > if ( dir == IOREQ_WRITE )
>
> -Original Message-
> From: Jan Beulich [mailto:jbeul...@suse.com]
> Sent: 17 June 2015 14:31
> To: Paul Durrant
> Cc: Andrew Cooper; xen-de...@lists.xenproject.org; Keir (Xen.org)
> Subject: Re: [PATCH v2 01/17] x86/hvm: simplify hvmemul_do_io()
>
> >>> On 11.06.15 at 17:42, wrote:
> >
>>> On 11.06.15 at 17:42, wrote:
> --- a/xen/arch/x86/hvm/emulate.c
> +++ b/xen/arch/x86/hvm/emulate.c
> @@ -51,41 +51,23 @@ static void hvmtrace_io_assist(int is_mmio, ioreq_t *p)
> }
>
> static int hvmemul_do_io(
> -int is_mmio, paddr_t addr, unsigned long *reps, int size,
> -paddr_t
Currently hvmemul_do_io() handles paging for I/O to/from a guest address
inline. This causes every exit point to have to execute:
if ( ram_page )
put_page(ram_page);
This patch introduces wrapper hvmemul_do_io_addr() and
hvmemul_do_io_buffer() functions. The latter is used for I/O to/from a X