[PATCH V6 20/35] powerpc/mm: Don't track subpage valid bit in pte_t
Aneesh Kumar K.V
aneesh.kumar at linux.vnet.ibm.com
Thu Feb 18 12:49:45 AEDT 2016
Paul Mackerras <paulus at ozlabs.org> writes:
> On Tue, Dec 01, 2015 at 09:06:45AM +0530, Aneesh Kumar K.V wrote:
>> This free up 11 bits in pte_t. In the later patch we also change
>> the pte_t format so that we can start supporting migration pte
>> at pmd level. We now track 4k subpage valid bit as below
>>
>> If we have _PAGE_COMBO set, we override the _PAGE_F_GIX_SHIFT
>> and _PAGE_F_SECOND. Together we have 4 bits, each of them
>> used to indicate whether any of the 4 4k subpage in that group
>> is valid. ie,
>>
>> [ group 1 bit ] [ group 2 bit ] ..... [ group 4 ]
>> [ subpage 1 - 4] [ subpage 5- 8] ..... [ subpage 13 - 16]
>>
>> We still track each 4k subpage slot number and secondary hash
>> information in the second half of pgtable_t. Removing the subpage
>> tracking have some significant overhead on aim9 and ebizzy benchmark and
>> to support THP with 4K subpage, we do need a pgtable_t of 4096 bytes.
>
> I know this has already been applied, but this hunk looks wrong:
>
>> @@ -102,7 +131,7 @@ int __hash_page_4K(unsigned long ea, unsigned long access, unsigned long vsid,
>> */
>> if (!(old_pte & _PAGE_COMBO)) {
>> flush_hash_page(vpn, rpte, MMU_PAGE_64K, ssize, flags);
>> - old_pte &= ~_PAGE_HPTE_SUB;
>> + old_pte &= ~_PAGE_HASHPTE | _PAGE_F_GIX | _PAGE_F_SECOND;
>
> Shouldn't this be:
>
> + old_pte &= ~(_PAGE_HASHPTE | _PAGE_F_GIX | _PAGE_F_SECOND);
>
> instead?
Thanks for checking this closely. Yes it should be what you suggested. I
will do a patch for this.
-aneesh
More information about the Linuxppc-dev
mailing list