Re: [Xen-devel] [PATCH 7/7] x86/pagewalk: Re-implement the pagetable walker

2017-03-07 Thread George Dunlap
On 27/02/17 14:03, Andrew Cooper wrote: > The existing pagetable walker has complicated return semantics, which squeeze > multiple pieces of information into single integer. This would be fine if the > information didn't overlap, but it does. > > Specifically, _PAGE_INVALID_BITS for 3-level guest

Re: [Xen-devel] [PATCH 7/7] x86/pagewalk: Re-implement the pagetable walker

2017-03-06 Thread George Dunlap
On 06/03/17 18:33, Andrew Cooper wrote: > On 06/03/17 18:28, George Dunlap wrote: >> On 27/02/17 14:03, Andrew Cooper wrote: >>> The existing pagetable walker has complicated return semantics, which >>> squeeze >>> multiple pieces of information into single integer. This would be fine if >>> the

Re: [Xen-devel] [PATCH 7/7] x86/pagewalk: Re-implement the pagetable walker

2017-03-06 Thread Andrew Cooper
On 06/03/17 18:28, George Dunlap wrote: > On 27/02/17 14:03, Andrew Cooper wrote: >> The existing pagetable walker has complicated return semantics, which squeeze >> multiple pieces of information into single integer. This would be fine if >> the >> information didn't overlap, but it does. >> >>

Re: [Xen-devel] [PATCH 7/7] x86/pagewalk: Re-implement the pagetable walker

2017-03-06 Thread George Dunlap
On 27/02/17 14:03, Andrew Cooper wrote: > The existing pagetable walker has complicated return semantics, which squeeze > multiple pieces of information into single integer. This would be fine if the > information didn't overlap, but it does. > > Specifically, _PAGE_INVALID_BITS for 3-level guest

Re: [Xen-devel] [PATCH 7/7] x86/pagewalk: Re-implement the pagetable walker

2017-03-02 Thread Tim Deegan
At 14:03 + on 27 Feb (1488204198), Andrew Cooper wrote: > The existing pagetable walker has complicated return semantics, which squeeze > multiple pieces of information into single integer. This would be fine if the > information didn't overlap, but it does. > > Specifically, _PAGE_INVALID_BI

Re: [Xen-devel] [PATCH 7/7] x86/pagewalk: Re-implement the pagetable walker

2017-03-02 Thread Jan Beulich
>>> On 02.03.17 at 13:00, wrote: > On 02/03/17 11:52, Jan Beulich wrote: > On 27.02.17 at 15:03, wrote: >>> @@ -91,12 +91,12 @@ unsigned long hap_p2m_ga_to_gfn(GUEST_PAGING_LEVELS)( >>> #if GUEST_PAGING_LEVELS == 3 >>> top_map += (cr3 & ~(PAGE_MASK | 31)); >>> #endif >>> -missing =

Re: [Xen-devel] [PATCH 7/7] x86/pagewalk: Re-implement the pagetable walker

2017-03-02 Thread Andrew Cooper
On 02/03/17 11:52, Jan Beulich wrote: On 27.02.17 at 15:03, wrote: >> @@ -91,12 +91,12 @@ unsigned long hap_p2m_ga_to_gfn(GUEST_PAGING_LEVELS)( >> #if GUEST_PAGING_LEVELS == 3 >> top_map += (cr3 & ~(PAGE_MASK | 31)); >> #endif >> -missing = guest_walk_tables(v, p2m, ga, &gw, pfec[0

Re: [Xen-devel] [PATCH 7/7] x86/pagewalk: Re-implement the pagetable walker

2017-03-02 Thread Jan Beulich
>>> On 27.02.17 at 15:03, wrote: > @@ -91,12 +91,12 @@ unsigned long hap_p2m_ga_to_gfn(GUEST_PAGING_LEVELS)( > #if GUEST_PAGING_LEVELS == 3 > top_map += (cr3 & ~(PAGE_MASK | 31)); > #endif > -missing = guest_walk_tables(v, p2m, ga, &gw, pfec[0], top_mfn, top_map); > +walk_ok = guest

[Xen-devel] [PATCH 7/7] x86/pagewalk: Re-implement the pagetable walker

2017-02-27 Thread Andrew Cooper
The existing pagetable walker has complicated return semantics, which squeeze multiple pieces of information into single integer. This would be fine if the information didn't overlap, but it does. Specifically, _PAGE_INVALID_BITS for 3-level guests alias _PAGE_PAGED and _PAGE_SHARED. A guest whi