On Thu, Jan 18, 2018 at 9:26 AM, Luck, Tony <tony.luck@xxxxxxxxx> wrote: >> Both are real page. But why do you expect pages to be 64-byte alinged? >> Both are aligned to 64-bit as they suppose to be IIUC. > > On a 64-bit kernel sizeof struct page == 64 (after much work by people to > trim out excess stuff). So I thought we made sure to align the base address > of blocks of "struct page" so that every one neatly fits into one cache line. The bug happens on 32-bit, and a 'struct page' is not 64-byte aligned there at all. See my other email about the explanation of why "page1 - page2" doesn't work when they aren't mutually aligned to the actual size of the 'struct page'. Linus -- 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>