Re: [External] Re: [PATCH] mm/z3fold:remove unneeded spinlock in z3fold_alloc

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Feb 8, 2024 at 11:34 AM Johannes Weiner <hannes@xxxxxxxxxxx> wrote:
>
> On Sun, Feb 04, 2024 at 09:15:43PM +0800, Zhongkun He wrote:
> > The spinklock in z3fold_alloc() is used to protect page->lru,
> > but now it was removed in commit 'e774a7bc7f0ad', so remove
> > the spinlock too.
>
> The pool->lock clearly protects things other than page->lru.

Yes, it protects pool unbuddied lists now.
I mean the following page-lru is removed in z3fold_alloc:
 headless:
        spin_lock(&pool->lock);
-       /* Add/move z3fold page to beginning of LRU */
-       if (!list_empty(&page->lru))
-               list_del(&page->lru);
-
-       list_add(&page->lru, &pool->lru);
-
        *handle = encode_handle(zhdr, bud);
        spin_unlock(&pool->lock);
        if (bud != HEADLESS)
            z3fold_page_unlock(zhdr);

For more detail please see the commit 'e774a7bc7f0ad'.

>
> I'm not saying that you're wrong, but your changelog doesn't make a
> strong case that you're right, either ;)
>

Hi Johannes, I am confused by the annotation :
The __encode_handle() annotation show:
* Pool lock should be held as this function accesses first_num.
but I did not find any use cases where first_num was protected by pool lock.
Furthermore, encode_handle() is protected by z3fold_page_lock() as I can
see.

> Please CC Vitaly (scripts/get_maintainer.pl) on these patches.

Got it, thanks.





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux