On Tue, 2017-04-11 at 12:08 +0900, Minchan Kim wrote: > Hello, > > When I tested zram in ppc64, I got random corruption. > With investigation, it seems clear_page corrupted the memory. > I passed 64K kmalloced(kmalloc(PAGE_SIZE)) address to clear_page > and turned on slub debug so address is not aligned with PAGE_SIZE. > Is it a valid usecase that non-PAGE_SIZE aligned address is > used for clear_page in ppc64? > > As well, copy_page have same rule, too? > > Anyway, when I changed clear_page to memset, it seems the problem > is gone.
Yes, both clear_page and copy_page assume a PAGE_SHIFT alignment and are highly optimize according to this. I wouldn't be surprised of other architectures implementations are the same. I don't think it's ever legit to call these functions for something that isn't a naturally aligned page. Cheers, Ben.