On Mon, 11 Jan 2016, Aneesh Kumar K.V wrote: > "Aneesh Kumar K.V" <aneesh.kumar@xxxxxxxxxxxxxxxxxx> writes: > > Hugh Dickins <hughd@xxxxxxxxxx> writes: > > > >> Swapoff after swapping hangs on the G5. That's because the _PAGE_PTE > >> bit, added by set_pte_at(), is not expected by swapoff: so swap ptes > >> cannot be recognized. > >> > >> I'm not sure whether a swap pte should or should not have _PAGE_PTE set: > >> this patch assumes not, and fixes set_pte_at() to set _PAGE_PTE only on > >> present entries. > > > > One of the reason we added _PAGE_PTE is to enable HUGETLB migration. So > > we want migratio ptes to have _PAGE_PTE set. > > > >> > >> But if that's wrong, a reasonable alternative would be to > >> #define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) & ~_PAGE_PTE }) > >> #define __swp_entry_to_pte(x) __pte((x).val | _PAGE_PTE) > >> > > You other email w.r.t soft dirty bits explained this. What I missed was > the fact that core kernel expect swp_entry_t to be of an arch neutral > format. The confusing part was "arch_entry" > > static inline pte_t swp_entry_to_pte(swp_entry_t entry) > { > swp_entry_t arch_entry; > ..... > } > > IMHO we should use the alternative you suggested above. I can write a > patch with additional comments around that if you want me to do that. Sure, please go ahead - thanks. Hugh -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>