Thanks Matthew!!
On 2/13/2024 2:24 PM, Matthew Wilcox wrote:
I am deeply confused by this commit message.
Are you saying there is a problem in current HEAD which this fixes, or are you saying that this problem has already been fixed, and this patch is for older kernels?
Sorry, I meant this patch is __only for older kernels__. We are seeing this issue on 6.1 LTS kernel.
At least I am not expecting this issue on the HEAD of the linux-next branch.
Seems the below message is not clear from my side to say that: a) why this issue won't be seen on the latest kernel and b) the problems associated with the respective patches in back porting to LTS branch?
"On the recent kernels, this issues is indirectly getting fixed with the series[1], to be specific[2].
When tried to back port this series, it is observed many merge conflicts and also seems dependent on many other changes. As backporting to LTS branches is not a trivial one, the similar change from [2] is picked as a fix.
[1] https://lore.kernel.org/all/20230821160849.531668-1-david@redhat.com/ [2] https://lore.kernel.org/all/20230821160849.531668-5-david@redhat.com/"
IOW, the below couple of line is ensuring the proper swap entry is stored in the tail pages which is somehow missed on the older kernels.
static void __split_huge_page_tail(struct folio *folio, int tail, struct lruvec *lruvec, struct list_head *list) { ............. + if (folio_test_swapcache(folio)) + new_folio->swap.val = folio->swap.val + tail; ............. }
Thanks.