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 4DBD7C27C55 for ; Sat, 8 Jun 2024 00:32:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9572C6B0093; Fri, 7 Jun 2024 20:32:54 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8DF856B0095; Fri, 7 Jun 2024 20:32:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 731956B0096; Fri, 7 Jun 2024 20:32:54 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 512686B0093 for ; Fri, 7 Jun 2024 20:32:54 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id BD47081A9F for ; Sat, 8 Jun 2024 00:32:53 +0000 (UTC) X-FDA: 82205846226.26.6F67C24 Received: from mail-ej1-f49.google.com (mail-ej1-f49.google.com [209.85.218.49]) by imf21.hostedemail.com (Postfix) with ESMTP id D698E1C0014 for ; Sat, 8 Jun 2024 00:32:51 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=o7abY3ze; spf=pass (imf21.hostedemail.com: domain of yosryahmed@google.com designates 209.85.218.49 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1717806771; 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=Gjga0hn0EKlhttYQ3pJWY9jgRupfj6fc9njlrirZU18=; b=cKFpHk9Qspb0+C5vitaenKORkAEI5n4DuIT9kYKulRcomgLFDOCxa6Qbld/s580eprJSwL OFmbaDec46SUxJq+sXlqPDPTyZjTdsy6RZ8Yj2c7Uds/qIBjgGvOzIZ8S7jMQKoFNJEnaT mKp4iccMQPeRc8FVZd0dh7XBPdzdwWM= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1717806771; a=rsa-sha256; cv=none; b=T5lDkH9GOVVqux6OP5H/08Zf8yXaCL9KcY7FAQ1LMsw0Ro+fyieT9LI4s5Ww6UnqSD03Fy H5tr9spIERxm4zBOD6uXzEsG7z9MOnd6IY7iYLo0mamxLGhHJAp+9fX4nxBJfSh6OfeQ0b PhE/ZU7idMBESD6aMeaZyXAywGRnU2g= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=o7abY3ze; spf=pass (imf21.hostedemail.com: domain of yosryahmed@google.com designates 209.85.218.49 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-ej1-f49.google.com with SMTP id a640c23a62f3a-a6ef8e62935so64786266b.3 for ; Fri, 07 Jun 2024 17:32:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1717806770; x=1718411570; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=Gjga0hn0EKlhttYQ3pJWY9jgRupfj6fc9njlrirZU18=; b=o7abY3zeGdflgVikCPIcBJLWx9lqU709afWrVN3PbpxSQfjd3DYAzDf8F2UA8Hx35R 4Nm6qve+qe4Z8WGVnm5qetT/8w3ydEZM836ymoY82Rrifbgt1GnWVCN+Od7lIzZ5vWds hxqagbZ6bZRyNvsrwsupPknRXExcjvOo0tVj4ViG3/6Mxxn7W2/krOElf1BitOi9tX3W LnZe5IuT9T3/Jwl/s1RXu2YGK8HUggKjfYJZMCtxOjTcFfFP1+WgJfz2+t0jebeqGT/V fsS1iT+I1wLuqSC1RUgwqQ8sC0hn8fLDQOUs+p6MOYS18CiA37WIq4MmEjWtisehDRsL 9Tkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717806770; x=1718411570; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Gjga0hn0EKlhttYQ3pJWY9jgRupfj6fc9njlrirZU18=; b=GFMzYa6v2WMaU1dp2cLg7LJQ8nOcXft9m+upvemakJBU9Oc5zj8EbsuVbU3f9cFz7C 65GZtskDwzAIUGOMKc0jz5kwLGCLyhFNCnxoC41WaGjI/PrD+fuTwZMz1TEnebAjYdFL pRsmouMIVDff5GS2mCGjk86ICj73+ZqtmwNGrC5FPPnxwpGs+9V777zKqzouVKeJg8oL TCUH+DvWRUkxL5dJ0/bvCkp0z7UEkXqdJRayW6uT5cuR2X0W41XsPzoWMHd25UsrT8ct vBsSIO5JSZtN5L0aUozmagH2p5J6lwUI9hw8oCRxs1r1Zpw7oyoYI64Yy4Sp/1e/BW1o vHwQ== X-Forwarded-Encrypted: i=1; AJvYcCWi1ShbFkT41qNBm9aAatePWTLf0ctGvZ2qGtVakUS9WEaNu0C6HPFRuldO27JTTD+dcdGpmDVRBqmKBAiHVeDfP6U= X-Gm-Message-State: AOJu0YxH0QZS3z4P6HfeQq4hqEqS/Q016FPS2uc571crdQPhvHHZIXuc 1HRnwQ/oVIE3jm+5cy53Lytxn1FCHnd90vmo+wx6m1kp8p9QH1t1T29n3WxcpeOmlIfBFMPmBPg J1U+1ltq6jMAdV9jjflYR3YgBLPCOyKoH3eU2 X-Google-Smtp-Source: AGHT+IG5qAZMEPlKi0knM0nu5fvRiQ9tBkRXKkdt/ErKfAH8fr867ynO0Mfm3VjxFrMs3Xe0Y5p68pQQwQ9U710RooQ= X-Received: by 2002:a17:906:3299:b0:a62:cf3b:77ad with SMTP id a640c23a62f3a-a6cdaa07abfmr290069566b.49.1717806770173; Fri, 07 Jun 2024 17:32:50 -0700 (PDT) MIME-Version: 1.0 References: <20240606184818.1566920-1-yosryahmed@google.com> <84d78362-e75c-40c8-b6c2-56d5d5292aa7@redhat.com> <7507d075-9f4d-4a9b-836c-1fbb2fbd2257@redhat.com> <9374758d-9f81-4e4f-8405-1f972234173e@redhat.com> In-Reply-To: From: Yosry Ahmed Date: Fri, 7 Jun 2024 17:32:13 -0700 Message-ID: Subject: Re: [PATCH] mm: zswap: add VM_BUG_ON() if large folio swapin is attempted To: Barry Song <21cnbao@gmail.com> Cc: David Hildenbrand , Andrew Morton , Johannes Weiner , Nhat Pham , Chengming Zhou , Baolin Wang , Chris Li , Ryan Roberts , Matthew Wilcox , linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: D698E1C0014 X-Rspam-User: X-Stat-Signature: xrgaonnisd6hm1odzrqgt61364izoya6 X-HE-Tag: 1717806771-59825 X-HE-Meta: U2FsdGVkX19AJMUPxX5VMgcVjij82L7j0dqDzqxoY7umi0fhulOCUjoZu9uzdMk1HsilBzLG4MRrinZG98AGR0xY7PqLSHopKpqBD0YN4WLP4ZGD1QkfdrqVII5xTOt/wk1vF6pDKAOsTySbnb4YPT/OmJuErt/FdRd+IPHqSJQYR4VIESumAsIqZho3Ku7XpUPdH031VZq2u/zNPGDTB4YlaasxEOHfDNTeL/UfAQ00fS/P2dyhKkkHtSWc66tRW82OQqvV+DUI9ILRK+G9bxoeVIwVluEm4R30o6x09MKZ5Ju0S8LSxLXNrRYCSmU2SBJxotrwOdOC3o9i44N1NKqssK+dRxHyAH4n+ek61uQLpkLTX+p3Nvz3QsAy/2o2SBVPC8edFoZhbCMdqapRBUIrzXkbhaQHxkwRd9BWIJNOXBrYngJBeGJznvHfZLdNxxQQ30FZ0mEbUehrjT2MuWepWT6YraAnUIzbYnN5K8pu2e8N3Mvcii8IIqCqOER2q6sXmfWka5AktZXg9eJEVI4Zfe2/TitDfm/+327UGDOgegPKFKsTYIzlTmIcn1SAd7rMeB9UXQ2eK+qGkfIp0p/yhwWouC51ovuGHjukCCBfCmKuy2M3w5PpTIxpD5cEKenzVvk+uQHOkr/q28L1LSfUJZcZTtf2TTlqKcjdbSh9F7Gy8hnuxFNOQwfTmopWbScgQTp8jH5jcXkkCHA+nb2I3zk0FX9OBxoN9QKpLmWJy9422f5SmEP3XbAgBzlacyr+1NzryK3/pLb+mPskAUSDwOsJmgF/84oIMuCuhrkgLKh+DLBrfDw69yrl8RtLFmSNrHDcVt4zCUyVkYJiaJYbaSm4S2gj9eGO+q8WUcGQl/tPcA7sSz/tVq4CWLhKZgQAWNMpsEdMcHLE0czfdc6xVKf3uOu2sR7wFPIZ/tl/DKlxyfLc7MUlJWb88vE9X7ARKTOJDz2poUWTHk4 jj75vfws XNcLHzU/2fw649e8jPafqZe0dVxz/lJfcpbZ+3G7pzKbvTSbO2rWOOrbQnT2MXLFilpH5wnlI/m9kykMVf+n/eMdKJg+WrOBxF+P67/llgAUlXVwD+eTe6VLHk891XRZ1BGD6s7kiOujLwRLxLQqwfwSVXGvbjp/0vu6icVUPjHjKjDF6np/SqnLNuCriUMHysJjGsdhlZIIuGEVGZr0FZq8+oYCpB3/LwTC1uJl5o1d5DnY7yhK/o1a6vjz1BZmx8AHzDHfPxAEDh0X0ezl5KUVgzRl+ai4r+a5ixBzTJkxxxBDknhN0R+ojeCVQgJBvYPGW 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: List-Subscribe: List-Unsubscribe: On Fri, Jun 7, 2024 at 4:28=E2=80=AFPM Barry Song <21cnbao@gmail.com> wrote= : > > On Sat, Jun 8, 2024 at 7:17=E2=80=AFAM Yosry Ahmed wrote: > > > > [..] > > > > One problem is that even if zswap was never enabled, the warning wi= ll > > > > be emitted just if CONFIG_ZSWAP is on. Perhaps we need a variable o= r > > > > static key if zswap was "ever" enabled. > > > > > > > > Barry, I suspect your is_zswap_enabled() check is deficient for > > > > similar reasons, zswap could have been enabled before then became > > > > disabled. > > > > > > I don't understand this. if zswap was enabled before but is disabled = when > > > I am loading data, will I get corrupted data before zswap was once en= abled? > > > If not, it seems nothing important. > > > > If zswap was enabled and then disabled, some pages may still be in > > zswap. We do not load the pages from zswap when it is disabled, we > > just stop storing new pages. > > > > So if you just rely in checking whether zswap is enabled at swapin > > time to decide whether to use large folios, you may end up with a > > situation where zswap is disabled, yet parts of the large folio you > > are trying to swapin (or all of it) is in zswap. > > > > This is why I think we'll need to track whether zswap was ever enabled > > instead (or if a page was ever stored). > > Thanks! It doesn't seem good. Do we have a simple way to clean zswap > when it is disabled? seems not easy? Just like we do swapoff, or disable > cache, we ensure they are clean - this is a real "disable". I think it's just simpler, and disabling zswap at runtime is not that common. Keep in mind that if zswap being disabled takes time, then we'll want to handle races between zswap being disabled and incoming swapins, it will probably end up being a state machine or so. Without a valid use case, I think the complexity is not justified. It's probably simpler to just track if zswap was ever used, and disable large folio swapin. This should be a transitional state anyway.