Daniel Jordan <daniel.m.jordan@xxxxxxxxxx> writes: > On Wed, Oct 24, 2018 at 11:31:42AM +0800, Huang, Ying wrote: >> Hi, Daniel, >> >> Daniel Jordan <daniel.m.jordan@xxxxxxxxxx> writes: >> >> > On Wed, Oct 10, 2018 at 03:19:03PM +0800, Huang Ying wrote: >> >> And for all, Any comment is welcome! >> >> >> >> This patchset is based on the 2018-10-3 head of mmotm/master. >> > >> > There seems to be some infrequent memory corruption with THPs that have been >> > swapped out: page contents differ after swapin. >> >> Thanks a lot for testing this! I know there were big effort behind this >> and it definitely will improve the quality of the patchset greatly! > > You're welcome! Hopefully I'll have more results and tests to share in the > next two weeks. > >> >> > Reproducer at the bottom. Part of some tests I'm writing, had to separate it a >> > little hack-ily. Basically it writes the word offset _at_ each word offset in >> > a memory blob, tries to push it to swap, and verifies the offset is the same >> > after swapin. >> > >> > I ran with THP enabled=always. THP swapin_enabled could be always or never, it >> > happened with both. Every time swapping occurred, a single THP-sized chunk in >> > the middle of the blob had different offsets. Example: >> > >> > ** > word corruption gap >> > ** corruption detected 14929920 bytes in (got 15179776, expected 14929920) ** >> > ** corruption detected 14929928 bytes in (got 15179784, expected 14929928) ** >> > ** corruption detected 14929936 bytes in (got 15179792, expected 14929936) ** >> > ...pattern continues... >> > ** corruption detected 17027048 bytes in (got 15179752, expected 17027048) ** >> > ** corruption detected 17027056 bytes in (got 15179760, expected 17027056) ** >> > ** corruption detected 17027064 bytes in (got 15179768, expected 17027064) ** >> >> 15179776 < 15179xxx <= 17027064 >> >> 15179776 % 4096 = 0 >> >> And 15179776 = 15179768 + 8 >> >> So I guess we have some alignment bug. Could you try the patches >> attached? It deal with some alignment issue. > > That fixed it. And removed three lines of code. Nice :) Thanks! I will merge the fixes into the patchset. Best Regards, Huang, Ying