Re: [PATCH RFC 1/2] s390x: mm: allow mixed page table types (2k and 4k)

2017-06-02 Thread Christian Borntraeger
On 06/01/2017 02:59 PM, David Hildenbrand wrote: > >> diff --git a/arch/s390/mm/pgtable.c b/arch/s390/mm/pgtable.c >> index d4d409b..b22c2b6 100644 >> --- a/arch/s390/mm/pgtable.c >> +++ b/arch/s390/mm/pgtable.c >> @@ -196,7 +196,7 @@ static inline pgste_t ptep_xchg_start(struct mm_struct >>

Re: [PATCH RFC 1/2] s390x: mm: allow mixed page table types (2k and 4k)

2017-06-02 Thread Christian Borntraeger
On 06/01/2017 02:59 PM, David Hildenbrand wrote: > >> diff --git a/arch/s390/mm/pgtable.c b/arch/s390/mm/pgtable.c >> index d4d409b..b22c2b6 100644 >> --- a/arch/s390/mm/pgtable.c >> +++ b/arch/s390/mm/pgtable.c >> @@ -196,7 +196,7 @@ static inline pgste_t ptep_xchg_start(struct mm_struct >>

Re: [PATCH RFC 1/2] s390x: mm: allow mixed page table types (2k and 4k)

2017-06-01 Thread David Hildenbrand
> diff --git a/arch/s390/mm/pgtable.c b/arch/s390/mm/pgtable.c > index d4d409b..b22c2b6 100644 > --- a/arch/s390/mm/pgtable.c > +++ b/arch/s390/mm/pgtable.c > @@ -196,7 +196,7 @@ static inline pgste_t ptep_xchg_start(struct mm_struct > *mm, > { > pgste_t pgste = __pgste(0); > > - if

Re: [PATCH RFC 1/2] s390x: mm: allow mixed page table types (2k and 4k)

2017-06-01 Thread David Hildenbrand
> diff --git a/arch/s390/mm/pgtable.c b/arch/s390/mm/pgtable.c > index d4d409b..b22c2b6 100644 > --- a/arch/s390/mm/pgtable.c > +++ b/arch/s390/mm/pgtable.c > @@ -196,7 +196,7 @@ static inline pgste_t ptep_xchg_start(struct mm_struct > *mm, > { > pgste_t pgste = __pgste(0); > > - if

Re: [PATCH RFC 1/2] s390x: mm: allow mixed page table types (2k and 4k)

2017-06-01 Thread David Hildenbrand
On 01.06.2017 13:39, Christian Borntraeger wrote: > On 05/29/2017 06:32 PM, David Hildenbrand wrote: > >> new = old = pgste_get_lock(ptep); >> pgste_val(new) &= ~(PGSTE_GR_BIT | PGSTE_GC_BIT | >> @@ -748,6 +764,11 @@ int reset_guest_reference_bit(struct mm_struct *mm, >> unsigned long

Re: [PATCH RFC 1/2] s390x: mm: allow mixed page table types (2k and 4k)

2017-06-01 Thread David Hildenbrand
On 01.06.2017 13:39, Christian Borntraeger wrote: > On 05/29/2017 06:32 PM, David Hildenbrand wrote: > >> new = old = pgste_get_lock(ptep); >> pgste_val(new) &= ~(PGSTE_GR_BIT | PGSTE_GC_BIT | >> @@ -748,6 +764,11 @@ int reset_guest_reference_bit(struct mm_struct *mm, >> unsigned long

Re: [PATCH RFC 1/2] s390x: mm: allow mixed page table types (2k and 4k)

2017-06-01 Thread Christian Borntraeger
On 05/29/2017 06:32 PM, David Hildenbrand wrote: > new = old = pgste_get_lock(ptep); > pgste_val(new) &= ~(PGSTE_GR_BIT | PGSTE_GC_BIT | > @@ -748,6 +764,11 @@ int reset_guest_reference_bit(struct mm_struct *mm, > unsigned long addr) > ptep = get_locked_pte(mm, addr, ); >

Re: [PATCH RFC 1/2] s390x: mm: allow mixed page table types (2k and 4k)

2017-06-01 Thread Christian Borntraeger
On 05/29/2017 06:32 PM, David Hildenbrand wrote: > new = old = pgste_get_lock(ptep); > pgste_val(new) &= ~(PGSTE_GR_BIT | PGSTE_GC_BIT | > @@ -748,6 +764,11 @@ int reset_guest_reference_bit(struct mm_struct *mm, > unsigned long addr) > ptep = get_locked_pte(mm, addr, ); >

[PATCH RFC 1/2] s390x: mm: allow mixed page table types (2k and 4k)

2017-05-29 Thread David Hildenbrand
For now, one has to globally enable vm.alloc_pgste in order to run KVM guests. This results in any process getting 4k page tables instead of only 2k page tables. As the decision about which page table type to use has to be made at fork time, there isn't much we can do to avoid this global system

[PATCH RFC 1/2] s390x: mm: allow mixed page table types (2k and 4k)

2017-05-29 Thread David Hildenbrand
For now, one has to globally enable vm.alloc_pgste in order to run KVM guests. This results in any process getting 4k page tables instead of only 2k page tables. As the decision about which page table type to use has to be made at fork time, there isn't much we can do to avoid this global system