Re: [Xen-devel] [PATCH v6 4/4] x86/ioreq server: Reset outstanding p2m_ioreq_server entries when an ioreq server unmaps.

2016-09-22 Thread Yu Zhang
On 9/23/2016 2:06 AM, George Dunlap wrote: On Tue, Sep 20, 2016 at 3:57 AM, Yu Zhang wrote: Well, for the logic of p2m type recalculation, similarities between p2m_ioreq_server and other changeable types exceeds their differences. As to the special cases, how about we use a macro, i.e. p2m_is

Re: [Xen-devel] [PATCH v6 4/4] x86/ioreq server: Reset outstanding p2m_ioreq_server entries when an ioreq server unmaps.

2016-09-22 Thread George Dunlap
On Tue, Sep 20, 2016 at 3:57 AM, Yu Zhang wrote: > Well, for the logic of p2m type recalculation, similarities between > p2m_ioreq_server > and other changeable types exceeds their differences. As to the special > cases, how > about we use a macro, i.e. p2m_is_ioreq?

Re: [Xen-devel] [PATCH v6 4/4] x86/ioreq server: Reset outstanding p2m_ioreq_server entries when an ioreq server unmaps.

2016-09-19 Thread Yu Zhang
On 9/9/2016 6:09 PM, Jan Beulich wrote: On 09.09.16 at 11:56, wrote: On 9/9/2016 5:44 PM, Jan Beulich wrote: On 09.09.16 at 11:24, wrote: On 9/9/2016 4:20 PM, Jan Beulich wrote: On 09.09.16 at 09:24, wrote: On 9/9/2016 1:26 PM, Yu Zhang wrote: On 02.09.16 at 12:47, wrote: @@ -965,7 +

Re: [Xen-devel] [PATCH v6 4/4] x86/ioreq server: Reset outstanding p2m_ioreq_server entries when an ioreq server unmaps.

2016-09-09 Thread Yu Zhang
On 9/9/2016 6:09 PM, Jan Beulich wrote: On 09.09.16 at 11:56, wrote: On 9/9/2016 5:44 PM, Jan Beulich wrote: On 09.09.16 at 11:24, wrote: On 9/9/2016 4:20 PM, Jan Beulich wrote: On 09.09.16 at 09:24, wrote: On 9/9/2016 1:26 PM, Yu Zhang wrote: On 02.09.16 at 12:47, wrote: @@ -965,7 +

Re: [Xen-devel] [PATCH v6 4/4] x86/ioreq server: Reset outstanding p2m_ioreq_server entries when an ioreq server unmaps.

2016-09-09 Thread Jan Beulich
>>> On 09.09.16 at 11:56, wrote: > > On 9/9/2016 5:44 PM, Jan Beulich wrote: > On 09.09.16 at 11:24, wrote: >>> On 9/9/2016 4:20 PM, Jan Beulich wrote: >>> On 09.09.16 at 09:24, wrote: > On 9/9/2016 1:26 PM, Yu Zhang wrote: > On 02.09.16 at 12:47, wrote: >>> @@ -965,7

Re: [Xen-devel] [PATCH v6 4/4] x86/ioreq server: Reset outstanding p2m_ioreq_server entries when an ioreq server unmaps.

2016-09-09 Thread Yu Zhang
On 9/9/2016 5:44 PM, Jan Beulich wrote: On 09.09.16 at 11:24, wrote: On 9/9/2016 4:20 PM, Jan Beulich wrote: On 09.09.16 at 09:24, wrote: On 9/9/2016 1:26 PM, Yu Zhang wrote: On 02.09.16 at 12:47, wrote: @@ -965,7 +968,8 @@ static mfn_t ept_get_entry(struct p2m_domain *p2m, if (

Re: [Xen-devel] [PATCH v6 4/4] x86/ioreq server: Reset outstanding p2m_ioreq_server entries when an ioreq server unmaps.

2016-09-09 Thread Jan Beulich
>>> On 09.09.16 at 11:24, wrote: > > On 9/9/2016 4:20 PM, Jan Beulich wrote: > On 09.09.16 at 09:24, wrote: >>> On 9/9/2016 1:26 PM, Yu Zhang wrote: >>> On 02.09.16 at 12:47, wrote: > @@ -965,7 +968,8 @@ static mfn_t ept_get_entry(struct p2m_domain *p2m, > if ( is_epte_va

Re: [Xen-devel] [PATCH v6 4/4] x86/ioreq server: Reset outstanding p2m_ioreq_server entries when an ioreq server unmaps.

2016-09-09 Thread Yu Zhang
On 9/9/2016 4:20 PM, Jan Beulich wrote: On 09.09.16 at 09:24, wrote: On 9/9/2016 1:26 PM, Yu Zhang wrote: On 02.09.16 at 12:47, wrote: @@ -965,7 +968,8 @@ static mfn_t ept_get_entry(struct p2m_domain *p2m, if ( is_epte_valid(ept_entry) ) { if ( (recalc || ept_entry->r

Re: [Xen-devel] [PATCH v6 4/4] x86/ioreq server: Reset outstanding p2m_ioreq_server entries when an ioreq server unmaps.

2016-09-09 Thread Jan Beulich
>>> On 09.09.16 at 09:24, wrote: > On 9/9/2016 1:26 PM, Yu Zhang wrote: >> >>> On 02.09.16 at 12:47, wrote: >> > @@ -965,7 +968,8 @@ static mfn_t ept_get_entry(struct p2m_domain *p2m, >> > if ( is_epte_valid(ept_entry) ) >> > { >> > if ( (recalc || ept_entry->recalc) && >> > -

Re: [Xen-devel] [PATCH v6 4/4] x86/ioreq server: Reset outstanding p2m_ioreq_server entries when an ioreq server unmaps.

2016-09-09 Thread Yu Zhang
On 9/9/2016 1:26 PM, Yu Zhang wrote: >>> On 02.09.16 at 12:47, wrote: > @@ -5551,7 +5553,35 @@ static int hvmop_map_mem_type_to_ioreq_server( > if ( rc != 0 ) > goto out; > > -rc = hvm_map_mem_type_to_ioreq_server(d, op.id, op.type, op.flags); > +if ( gfn == 0 ) > +

Re: [Xen-devel] [PATCH v6 4/4] x86/ioreq server: Reset outstanding p2m_ioreq_server entries when an ioreq server unmaps.

2016-09-05 Thread Jan Beulich
>>> On 02.09.16 at 12:47, wrote: > @@ -5551,7 +5553,35 @@ static int hvmop_map_mem_type_to_ioreq_server( > if ( rc != 0 ) > goto out; > > -rc = hvm_map_mem_type_to_ioreq_server(d, op.id, op.type, op.flags); > +if ( gfn == 0 ) > +rc = hvm_map_mem_type_to_ioreq_server

[Xen-devel] [PATCH v6 4/4] x86/ioreq server: Reset outstanding p2m_ioreq_server entries when an ioreq server unmaps.

2016-09-02 Thread Yu Zhang
This patch resets p2m_ioreq_server entries back to p2m_ram_rw, after an ioreq server has unmapped. The resync is done both asynchronously with the current p2m_change_entry_type_global() interface, and synchronously by iterating the p2m table. The synchronous resetting is necessary because we need t