On Mon, 17 Feb 2025 10:22:44 -0500 Zi Yan <ziy@xxxxxxxxxx> wrote: > > > > Thanks. The patch below should fix it. > > > > I am going to send V8, since > > 1. there have been 4 fixes so far for V7, a new series would help people > > review; > > > > 2. based on the discussion with you in THP cabal meeting, to > > convert split_huge_page*() to use __folio_split(), the current > > __folio_split() interface becomes awkward. Two changes are needed: > > a) use in folio offset instead of struct page, since even in > > truncate_inode_partial_folio() I needed to convert in folio offset > > struct page to use my current interface; > > b) split_huge_page*()'s caller might hold the page lock at a non-head > > page, so an additional keep_lock_at_in_folio_offset is needed > > to indicate which after-split folio should be kept locked after > > split is done. > > > > Hi Andrew, > > I am planing to send V8 to collect all fixup patches I have so far plus > the one below and change folio_split() interface and some of the code. > What is your preferred method? > > 1. you can pick up the fixup below and I send a new set of patches to > change folio_split(); > > 2. I collect a new V8 with all fixup patches and folio_split() change. > > For 1, the commit history might be messy due to my new folio_split() > change. For 2, Minimize xa_node allocation during xarry split [1] > patchset depends on patch 1 of this series, which adds some extra work > for you to collect V8 (alternatively, I can send V8 without patch 1). We're only at -rc3, so I'll remove both series from mm.git. Please fully resend both series against mm-unstable?