On Thu, Feb 26, 2026 at 04:45:54PM -0800, SeongJae Park wrote: > On Thu, 26 Feb 2026 18:26:20 +0000 Dmitry Ilvokhin <[email protected]> wrote: > > > Compaction uses compact_lock_irqsave(), which currently operates > > on a raw spinlock_t pointer so it can be used for both zone->lock > > and lruvec->lru_lock. Since zone lock operations are now wrapped, > > compact_lock_irqsave() can no longer directly operate on a > > spinlock_t when the lock belongs to a zone. > > > > Split the helper into compact_zone_lock_irqsave() and > > compact_lruvec_lock_irqsave(), duplicating the small amount of > > shared logic. As there are only two call sites and both statically > > know the lock type, this avoids introducing additional abstraction > > or runtime dispatch in the compaction path. > > > > No functional change intended. > > > > Signed-off-by: Dmitry Ilvokhin <[email protected]> > > --- > > mm/compaction.c | 33 ++++++++++++++++++++++++--------- > > 1 file changed, 24 insertions(+), 9 deletions(-) > > > > diff --git a/mm/compaction.c b/mm/compaction.c > > index 47b26187a5df..9f7997e827bd 100644 > > --- a/mm/compaction.c > > +++ b/mm/compaction.c > > @@ -503,19 +503,36 @@ static bool test_and_set_skip(struct compact_control > > *cc, struct page *page) > > * > > * Always returns true which makes it easier to track lock state in > > callers. > > */ > > -static bool compact_lock_irqsave(spinlock_t *lock, unsigned long *flags, > > - struct compact_control *cc) > > - __acquires(lock) > > +static bool compact_zone_lock_irqsave(struct zone *zone, > > + unsigned long *flags, > > + struct compact_control *cc) > > +__acquires(&zone->lock) > > Nit. Why don't you keep the indentation? > > My impression based on below output is that mm code prefer indenting > __acquires(). > > $ git grep __acquires mm > mm/compaction.c:__acquires(&zone->_lock) > mm/compaction.c:__acquires(&lruvec->lru_lock) > mm/khugepaged.c: __acquires(&khugepaged_mm_lock) > mm/userfaultfd.c: __acquires(ptl1) > mm/userfaultfd.c: __acquires(ptl2) >
Thanks for spotting it, will be fixed in v4. > > Thanks, > SJ > > [...]
