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 5CBCCCCF9EE for ; Wed, 25 Sep 2024 20:13:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D12336B00AF; Wed, 25 Sep 2024 16:13:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C9B066B00B2; Wed, 25 Sep 2024 16:13:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B3BA26B00B4; Wed, 25 Sep 2024 16:13:31 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 919756B00AF for ; Wed, 25 Sep 2024 16:13:31 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 31D16140637 for ; Wed, 25 Sep 2024 20:13:31 +0000 (UTC) X-FDA: 82604360622.05.9264FB1 Received: from mail-qk1-f175.google.com (mail-qk1-f175.google.com [209.85.222.175]) by imf23.hostedemail.com (Postfix) with ESMTP id B17FE140004 for ; Wed, 25 Sep 2024 20:13:28 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=CSFzkCdF; spf=pass (imf23.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.222.175 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org; dmarc=pass (policy=none) header.from=cmpxchg.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1727295173; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=VYNmL5Nz2IGiW+6k4omOwHhouBSuRJXQCnWJUMwNVM4=; b=H5MbUSaaK2Ywh/TIU+UJGLx6+Yq09+lIeekY0xWKrLZNkwj9Jv40jFvwYCkzxak1M6C6/u 0DR63hipmUhHFUuL78fxd2rW1V0tj3nelD/z3AVAu7Tqt4StmLnrTjs6Psvgt1inLKDtRs KK3lIIlvWkoGMEFRwdrBSje22+s3qTo= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=CSFzkCdF; spf=pass (imf23.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.222.175 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=1727295173; a=rsa-sha256; cv=none; b=lvF0zA7fiOgqtsoomBKs2up/Q+LBmsEnv/IX0iuzP0NgdJh+aDJRtPzbpJ+i5t471+Th2t lVq2VrpRifkTWKpnNafVCRvLixqUbseHhtRE56tFBZ6F4z4h+V/J2feI4hTWCxZ7tzHY3b vM/7DsvRdqTzn1KM/6oi4Hp2s/gWxvc= Received: by mail-qk1-f175.google.com with SMTP id af79cd13be357-7a9ab721058so112263885a.1 for ; Wed, 25 Sep 2024 13:13:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg-org.20230601.gappssmtp.com; s=20230601; t=1727295208; x=1727900008; darn=kvack.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=VYNmL5Nz2IGiW+6k4omOwHhouBSuRJXQCnWJUMwNVM4=; b=CSFzkCdFypD6kR1UNU/O2rcwnFHn9edVbvxIZObr8pXA2m8+vluxIB5Iz6loIJX+YE Jyr41VN+B56qTCMwa65I445sn3aL/T5DS/N/L3tIEEBrop+9ZHNUMhOczvjYkTGr+wFT AQzbwUltJcLk3ZoWOFOeQkv7PPV/ud2gJnbf9z4Mb3KyBnOxwO4/wHNqrwo/GnXqB5lY ARHyXxchS5qWUs5AeEBUf3n5HzD4IokoHXIloC68hBK0MZXb8kwK4uF9PMiX1/m/d1U+ HYGmgD0XydYbRVpxAoFbHtiW9hA7WSPpfziTyTlHOVbZSwqIIc1a6gVRCfstUahd4wKW Qb0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1727295208; x=1727900008; h=in-reply-to:content-transfer-encoding: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=VYNmL5Nz2IGiW+6k4omOwHhouBSuRJXQCnWJUMwNVM4=; b=dI2KZR7xY7zj+Y0yOKfqJFQc8q29lFjcoTucjU5ayfAjMiwrEoFF7sO8rJSjU514nt myGYTVJkZj4dKaX5Lw5CC6TTXjmP2XM7c+VbZL/IdF4M6YlpLDtAni+bWWLlhGrX/Zat Q1IF+bzv5HawJGZze1lo7ZrRrTAlTphRQ1cLB2L2VVogR+QPd4Fql5O4UrmFGdicbs3v nMcqohhInKCP6uc+01Y7Ks2OelqdI0+32+dPZHP/+w1nBgQZCkFXcrWi28i2iCSIREQ1 1e7kT0VRKabmOSazIraKp12Z5WC75g/uKebajt7kztDu0WHLA40DRalDlMmMXIKHxmwn LDKQ== X-Forwarded-Encrypted: i=1; AJvYcCUFyLadLySodMv3UHCVoP8/MlIGOPmURwAe0YNga3OW31f870HHJOSHUCnxR3BkQocsqGYOD+/vdQ==@kvack.org X-Gm-Message-State: AOJu0YwTfAc2FJ8TtO77ovbruaRCIqsAhOQv7WPYkaOd8DXglAyJDMm7 Ft2q/yA4YOUsHnfM9EDkm7pTiWq6ogKRcaWPPI/BOLL+Trd69zOycFvkh9VDx/k= X-Google-Smtp-Source: AGHT+IG4Vb4ysACeO8FGcvcgPBjMzf2q2sh3Vq/KejA2l4TWGimd0hH3nuavd85up3JPeR81Phj47Q== X-Received: by 2002:a05:620a:17a4:b0:7a9:b56a:3e09 with SMTP id af79cd13be357-7ae2c64f913mr147155185a.24.1727295207639; Wed, 25 Sep 2024 13:13:27 -0700 (PDT) Received: from localhost ([2603:7000:c01:2716:da5e:d3ff:fee7:26e7]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7acde62562bsm201951285a.130.2024.09.25.13.13.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Sep 2024 13:13:27 -0700 (PDT) Date: Wed, 25 Sep 2024 16:13:23 -0400 From: Johannes Weiner To: Yosry Ahmed Cc: Kanchana P Sridhar , linux-kernel@vger.kernel.org, linux-mm@kvack.org, nphamcs@gmail.com, chengming.zhou@linux.dev, usamaarif642@gmail.com, shakeel.butt@linux.dev, ryan.roberts@arm.com, ying.huang@intel.com, 21cnbao@gmail.com, akpm@linux-foundation.org, nanhai.zou@intel.com, wajdi.k.feghali@intel.com, vinodh.gopal@intel.com Subject: Re: [PATCH v7 6/8] mm: zswap: Support mTHP swapout in zswap_store(). Message-ID: <20240925201323.GA880690@cmpxchg.org> References: <20240924011709.7037-1-kanchana.p.sridhar@intel.com> <20240924011709.7037-7-kanchana.p.sridhar@intel.com> <20240925134008.GA875661@cmpxchg.org> <20240925192006.GB876370@cmpxchg.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Rspam-User: X-Stat-Signature: qdpfhiqedxem1dje8is4rxpq3rd8trr1 X-Rspamd-Queue-Id: B17FE140004 X-Rspamd-Server: rspam11 X-HE-Tag: 1727295208-400201 X-HE-Meta: U2FsdGVkX1+eVMIyVFlHSzEEYdiRQf7TlRh+Zgk63GXey5EpAJsRkTkcuSPk5BYdr7lFyg/xRljeOs4dsH1pn9ObM3hRn2s9yR5R3SJ9VRfFhhdYM7SmsolPWbEm03RuMx9d31wxTXb5eVnTgnQN5/jWfVA7bgxFZJjCUqDiZJdZC2mzN1uVNrl3AanXUFv81HZyFvDr/Y40q9nv+oYYvHmXCYFzQBylSOOWCtnbbxMWZ4BF2qEX6RBTCwXkzhcxYVJ9mIEsJIET1NFHNwTtyC3pOCF7Gv2YSDFp9oLr1s6RI1H68d2Q+zoGS9/MNUwA0/XdQ/akDobeozJMo/rSfcPYJi5I3B1WkFEAZmbALIeBU/roJb+x5jp6bf1J/uJepAXiVOjW00snrSPw5BKnAByWx+smholTdQgyVolYpblZgFG4oSvcqwHHLfW+BsU0Q0TpNzWYL/2iCiVTnnogu4Ys/ete8qByduu/O7k8jlVI4sYfFn6YCU6x1DUVzob5Z5pUaQT4ZW+0EbTGfMtu8OCUFfe85oD5wMxavsOP/Z+R10mNaUKcUpYEYSaAK0wZfgmEnxiYdcL3dh84zEQ+kfwRtChkRz1EDb2IB6RTOhXylwg4Fj2eYnuKtV9ewGvEdsKVkYsh+J+l9hv4sA2PE92ROz0v4xpc/Rik1BB2J133x2pUGb9Ckq3xeKc3jjkMwsA7y/1ZEiJ6S/Fd8/lCJV0/CSlho0APrEy/YbPNZZh4OD2AL5DY2QAYAtxPNfs5fe6TobYKJa2dF0ArUoereF0SL4sFKuzb1SWGdIeT/6g8PrsrpTFX1BP9q3AO5HBtViJ8kfNnr2tYnhj7r7bmpQXtoWOoSe2eD/uh6rnSFDP5IlPL89HKPEyNCdm+IHU4xLmUXisraoVliyjq/2sE0SlqPIMCV/r54IGNJONAlkb/j2ZpN1UeJQRKHlIvweWGfgAn8KiSG9KYkeOD4Nq bBBJtfUY UJErTPaR+jYUArds+8yXGjg0w/cqRihi2imcA/IzQ14UxqAZN17PpjsBJzUkvL5iH/BvQEGZKKrAzZlse9OzvDw7s0KDaiNaNULQDKna4OVRKq/VGKZLghQIkQCJmHB+DA66tFshMgjnj/G9bVN/qtWvMXHaZEdBUExRc4kSGRdoj3NxrL+NmxLv5HabGacvIOSUBoks1dw+z0aLpG5odzJg727DD8cmpGm7urxs1YSMYzpLhb+xWaRMyQZvGn4eLyxqwMF/6xFnteIOVdzDq3rqCW63t/7UViWss8vobh5pCpKpc/C9sPHTXi/gKuY2V6gevwwmY2Xcfo90BlKlf6PtgOV/JfocF0RsjHvAq6CmjHVd8TGAcPGiL6O5oWzw2JUqQF0qH+4JzlrF/HS0359s4bK85nGJBjYAh6Edtc8uHda5zQlU5EPWrOWEl91wIGMl7xPXQiywB0u0MiOu6jbZOhgMSMzxfD8tL7EUxoGHg8Ph/droBvdYgpD2LquuJ5irNd9m+1chJ4UfWEcLPmVB1E7DysXLmj/i8a+bFR8O+b4g= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000074, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Wed, Sep 25, 2024 at 12:39:02PM -0700, Yosry Ahmed wrote: > On Wed, Sep 25, 2024 at 12:20 PM Johannes Weiner wrote: > > > > On Wed, Sep 25, 2024 at 11:30:34AM -0700, Yosry Ahmed wrote: > > > Johannes wrote: > > > > If this ever becomes an issue, we can handle it in a fastpath-slowpath > > > > scheme: check the limit up front for fast-path failure if we're > > > > already maxed out, just like now; then make obj_cgroup_charge_zswap() > > > > atomically charge against zswap.max and unwind the store if we raced. > > > > > > > > For now, I would just keep the simple version we currently have: check > > > > once in zswap_store() and then just go ahead for the whole folio. > > > > > > I am not totally against this but I feel like this is too optimistic. > > > I think we can keep it simple-ish by maintaining an ewma for the > > > compression ratio, we already have primitives for this (see > > > DECLARE_EWMA). > > > > > > Then in zswap_store(), we can use the ewma to estimate the compressed > > > size and use it to do the memcg and global limit checks once, like we > > > do today. Instead of just checking if we are below the limits, we > > > check if we have enough headroom for the estimated compressed size. > > > Then we call zswap_store_page() to do the per-page stuff, then do > > > batched charging and stats updates. > > > > I'm not sure what you gain from making a non-atomic check precise. You > > can get a hundred threads determining down precisely that *their* > > store will fit exactly into the last 800kB before the limit. > > We just get to avoid overshooting in cases where we know we probably > can't fit it anyway. If we have 4KB left and we are trying to compress > a 2MB THP, for example. It just makes the upfront check to avoid > pointless compression a little bit more meaningful. I think I'm missing something. It's not just an upfront check, it's the only check. The charge down the line doesn't limit anything, it just counts. So if this check passes, we WILL store the folio. There is no pointless compression. We might overshoot the limit by about one folio in a single-threaded scenario. But that is negligible in comparison to the overshoot we can get due to race conditions. Again, I see no no practical, meaningful difference in outcome by making that limit check any more precise. Just keep it as-is.