From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 600D7C433FE for ; Thu, 3 Nov 2022 16:45:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EFC8E6B0072; Thu, 3 Nov 2022 12:45:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EAC816B0073; Thu, 3 Nov 2022 12:45:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D74556B0074; Thu, 3 Nov 2022 12:45:52 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id C83056B0072 for ; Thu, 3 Nov 2022 12:45:52 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 9A74EA0622 for ; Thu, 3 Nov 2022 16:45:52 +0000 (UTC) X-FDA: 80092707744.28.BAC8313 Received: from mail-qk1-f171.google.com (mail-qk1-f171.google.com [209.85.222.171]) by imf24.hostedemail.com (Postfix) with ESMTP id C719F180008 for ; Thu, 3 Nov 2022 16:45:51 +0000 (UTC) Received: by mail-qk1-f171.google.com with SMTP id i9so1495438qki.10 for ; Thu, 03 Nov 2022 09:45:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg-org.20210112.gappssmtp.com; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=fKMy7vvG6YYF5wQMm1icsLnPedAtQwFXPokV8+4Z/ZY=; b=DoPOEida6LMHH/oOiunX8ZlYSM9Ag6JVBBT+cH03AOIBHPHSvwvIFUJxyY4Wm8k+rB epNUt009h7ImXwPJmq8qDnwGfcdSqu9ms1Dy+L3iFSNsMZ046dqeTCpOuzpvEk1Oiejw Wz1LHhNUGrOHBgm5ENt1Zku6YICthcN5SLgf4hqpZtHlff5C27EvIXeNxNk4IcqZSg0y 3joiy0EwFc6iLhNp8cdZ5N6yxLBjUgku3uGs099KVn2ZVgIzpo3B2i4BtzDPdEVM7+Jn 4LPRSqdBFRHM9i9w7lHT2SQPLk0Zi/zcIKpOMXFeZRPqRE62Rdrvrf8o49TLtciLTLmR zl8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=fKMy7vvG6YYF5wQMm1icsLnPedAtQwFXPokV8+4Z/ZY=; b=Fr3DHSbUqyKjUX6a576C8jtch4A5QzILHCDjtJE52qE1n7FmrJqRm8rIlHE4XykTHM 21bDOj8Q1j90oMVoxQqT8iXO6b6bJBCYJkyIDYgW+kgYTfNbNhCAdrjEtNvPFssIUII5 ydPr8bgkZO3r0OoCCmIFpSlKIiyskI0J55CmO4HKIZL9h0MnrbsL+kVryGapRdWYimPJ O/VWWP0dJQggKapNsIS/IsYODcGHbQ7JnTZpkfOACWniTY/hSiTkXOvIhrNC8HfkLIFm ZIkoIG49NPpvjGishe/EL1KB9Jkr2w7NvwbyO3NditXkP4TOiYdK4A7UWQKypL8GSi5G f3RA== X-Gm-Message-State: ACrzQf1FPhTOSRFWwH4ff3XJrm4hY/COSCPA+BJCq5kZMJV67J4ObwrZ cKl0PpuRiLd1+PGv/xZ0R00a2w== X-Google-Smtp-Source: AMsMyM56KZrea0ChiCMU96BUzboc1+CVBBe8qAsK5/QKtTIG02vtCiQnEQcLQByfZMV9Lx4vhwZ0CA== X-Received: by 2002:ae9:f714:0:b0:6fa:43e5:4be0 with SMTP id s20-20020ae9f714000000b006fa43e54be0mr12684824qkg.243.1667493950999; Thu, 03 Nov 2022 09:45:50 -0700 (PDT) Received: from localhost ([2620:10d:c091:480::25f1]) by smtp.gmail.com with ESMTPSA id k8-20020ac86048000000b0039a08c0a594sm778017qtm.82.2022.11.03.09.45.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Nov 2022 09:45:50 -0700 (PDT) Date: Thu, 3 Nov 2022 12:45:53 -0400 From: Johannes Weiner To: Sergey Senozhatsky Cc: Nhat Pham , akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, minchan@kernel.org, ngupta@vflare.org, sjenning@redhat.com, ddstreet@ieee.org, vitaly.wool@konsulko.com Subject: Re: [PATCH v2 5/5] zsmalloc: Implement writeback mechanism for zsmalloc Message-ID: References: <202210272158.7swYwd23-lkp@intel.com> <20221027182736.513530-1-nphamcs@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=cmpxchg-org.20210112.gappssmtp.com header.s=20210112 header.b=DoPOEida; spf=pass (imf24.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.222.171 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org; dmarc=pass (policy=none) header.from=cmpxchg.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1667493952; a=rsa-sha256; cv=none; b=46BU4qbyeat2aWXgTojWcZbXmzbaUAgpwnMro/ZnNXDNKGLlm1pFph1I5pySmgSXnYS1kO KkmQxRVqnVr1TN7Km73g60ZKh5IzwFf6n4o0tcn9FrJDlPadgAaKu8MfxA0jdIu0RKz7+Y qFeyhfs+iPuunFXcVkLsuIQrmmubGvM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1667493952; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=fKMy7vvG6YYF5wQMm1icsLnPedAtQwFXPokV8+4Z/ZY=; b=MONefGY5DrVd4xo0cUJ9YkmBU86iJ+H9Buxz0lDFwr4B2pr44qDBcrjFOpnj19mU+3Q+r0 Jo5b7v7dy4MxSKmYCenN4EHSCrhtfyEfdoRzHQcsyVjbNWHqMxPjBB/XazXhaPaLvX6V4q jSNfQWkuaAWv5/kSmQ679E8ql+D0jkI= X-Stat-Signature: c9um1ba5bfepdqhi97q9srn4qakegezi X-Rspamd-Queue-Id: C719F180008 Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=cmpxchg-org.20210112.gappssmtp.com header.s=20210112 header.b=DoPOEida; spf=pass (imf24.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.222.171 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org; dmarc=pass (policy=none) header.from=cmpxchg.org X-Rspamd-Server: rspam03 X-Rspam-User: X-HE-Tag: 1667493951-138902 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Wed, Nov 02, 2022 at 01:13:58PM +0900, Sergey Senozhatsky wrote: > On (22/10/27 11:27), Nhat Pham wrote: > > + > > +static int zs_zpool_shrink(void *pool, unsigned int pages, > > + unsigned int *reclaimed) > > +{ > > + unsigned int total = 0; > > + int ret = -EINVAL; > > + > > + while (total < pages) { > > + ret = zs_reclaim_page(pool, 8); > > + if (ret < 0) > > + break; > > + total++; > > + } > > + > > + if (reclaimed) > > + *reclaimed = total; > > + > > + return ret; > > +} > > The name collides with shrinker callbacks (compaction). That's a bit > confusing, took me some time. Yeah this tripped us up too. Unfortunately, this is inherited from the zpool API: > > @@ -482,6 +504,7 @@ static struct zpool_driver zs_zpool_driver = { > > .malloc_support_movable = true, > > .malloc = zs_zpool_malloc, > > .free = zs_zpool_free, > > + .shrink = zs_zpool_shrink, There is another terminology collision around "compaction" and "migration": There is zs_page_migrate() which is called from physical page migration and compaction to switch out backing struct pages of the zspage. Then there is migrate_zspage() which is called from a *shrinker* through *zs_compact()*, and it consolidates the objects from partially used zspages into full ones. We're collecting these issues and want to clean them up separately. It seems this codebase hasn't had a lot of TLC recently, which makes it harder to make needed changes :/ We try to clean up as we go, but some of these issues (like the .shrink callback) run through all backends, zpool and zswap, so they'd be better off in separate cleanup patches. The out-of-control locking complexity in zsmalloc is another one of these issues that we hoped we could clean up along the way, as you have noticed...