• Ronald Monthero's avatar
    mm/zswap: improve with alloc_workqueue() call · 8409a385
    Ronald Monthero authored
    The core-api create_workqueue is deprecated, this patch replaces the
    create_workqueue with alloc_workqueue.  The previous implementation
    workqueue of zswap was a bounded workqueue, this patch uses
    alloc_workqueue() to create an unbounded workqueue.  The WQ_UNBOUND
    attribute is desirable making the workqueue not localized to a specific
    cpu so that the scheduler is free to exercise improvisations in any
    demanding scenarios for offloading cpu time slices for workqueues.  For
    example if any other workqueues of the same primary cpu had to be served
    which are WQ_HIGHPRI and WQ_CPU_INTENSIVE.  Also Unbound workqueue happens
    to be more efficient in a system during memory pressure scenarios in
    comparison to a bounded workqueue.
    
    shrink_wq = alloc_workqueue("zswap-shrink",
                         WQ_UNBOUND|WQ_MEM_RECLAIM, 1);
    
    Overall the change suggested in this patch should be seamless and does not
    alter the existing behavior, other than the improvisation to be an
    unbounded workqueue.
    
    Link: https://lkml.kernel.org/r/20240116133145.12454-1-debug.penguin32@gmail.com
    
    Signed-off-by: default avatarRonald Monthero <debug.penguin32@gmail.com>
    Acked-by: default avatarNhat Pham <nphamcs@gmail.com>
    Acked-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
    Cc: Chris Li <chrisl@kernel.org>
    Cc: Dan Streetman <ddstreet@ieee.org>
    Cc: Seth Jennings <sjenning@redhat.com>
    Cc: Vitaly Wool <vitaly.wool@konsulko.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    8409a385
zswap.c 51.6 KB