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 07372C54E71 for ; Fri, 22 Mar 2024 18:58:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 49BF16B0088; Fri, 22 Mar 2024 14:58:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 44BA96B008A; Fri, 22 Mar 2024 14:58:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 312FB6B008C; Fri, 22 Mar 2024 14:58:52 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 213DA6B0088 for ; Fri, 22 Mar 2024 14:58:52 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id E89B01A1421 for ; Fri, 22 Mar 2024 18:58:51 +0000 (UTC) X-FDA: 81925586862.10.5BEE572 Received: from mail-ej1-f49.google.com (mail-ej1-f49.google.com [209.85.218.49]) by imf28.hostedemail.com (Postfix) with ESMTP id 28C32C0011 for ; Fri, 22 Mar 2024 18:58:49 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=DkjLPIwx; spf=pass (imf28.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-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1711133930; a=rsa-sha256; cv=none; b=q5R9Wj/N9PtPBu+INrIBwHMIHJT1TvOXkasHAwn0azdodMDIgswx0VJyVlWFmzhYh25nkV QwxxTj/lcejshdfEvDEJMIgN4U3ViHCrW4xzTvT95SZo0lMouvp+FARMod1nqsfZEUPQXW 5EnCmsA+5SOJIuNBoFR1FqIgoBUXMis= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=DkjLPIwx; spf=pass (imf28.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=1711133930; 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=kn5VB94BUw/eWqkLaBFyi/LkgXiPUXB/jc3eN2ucVQY=; b=5D+e/FznTLkafnWUJdy9IopyXFaOuI58z8Menntp3/9tE6rhzIQQYh9JrvPQ6H6hbW56hn mIqInh752evhParKymRIzUpOfdCCqOUeO9B+DoYjqOa0eTPv9+uOFvlouXaDmlaXCuC08L fev8Wbpj64+DX54jlK9im2HV5PjaLyU= Received: by mail-ej1-f49.google.com with SMTP id a640c23a62f3a-a472f8c6a55so130136966b.0 for ; Fri, 22 Mar 2024 11:58:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1711133928; x=1711738728; darn=kvack.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=kn5VB94BUw/eWqkLaBFyi/LkgXiPUXB/jc3eN2ucVQY=; b=DkjLPIwx09/VxWZQKRw+UpvuJETGxJ9kErgOXAVaER9+mLGbGbQfrFWC6A8uB/9+N3 Opr6TAtqkiIvXkFV6fVG9Lq21MAInaiSYPY1ozHTophVSMdKdxxpLnysZIHcGWzgDVEO x/WpEJl9uV75QAYBptxBaSJMvAaeTOAe2UYclhMhXkbDtjhLrl322+yoTvYTbnsSnEq5 igA38EgNV9Z/Se3D81pcfmLlz5Yr7kOOa3zS2V5Va8eAs4QRqRIR9+LXqnY+xsu6j8hH acfApqlhE6928kz41UF4JajlVUyKjD0PNd2RwhHUFaKEZPczskFNKymyDZsy+9M31+Te jLcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711133928; x=1711738728; h=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=kn5VB94BUw/eWqkLaBFyi/LkgXiPUXB/jc3eN2ucVQY=; b=iG0lwEZqjmGCo+3lo1idZUS5RcJFA6Ien75L6Wzt9xdvWyXwgyIiG3hRG9VjYUxmzQ sSrH9B0e3vuzrvBkY1q6nVQ1EwaCyboW+Oe/ujOaFMoYs39CB3sOrKUU3FgH5aPmFLZX A8cbsfNa/t8hO8o+wsg2KuLCFGJRSPrIZx6WbkoAVzyuJ6m6Mc3PzTsnLxXTmaK0Gjqh tlnkzbotb9bnBU5U9MAznOK+GpnGtfV0a3Wmvg4ofApS6yy9YJdhrnPpT+mRnI0a8FPU 1btSNew6IQZDw5bd/YdawZ5NOD31VAV6vb5Ftnk/Pu1bKJvNXlT6ZmZRWYtrUBOPJvXY B72g== X-Forwarded-Encrypted: i=1; AJvYcCWaclx/UAnM5GeX9jtRBtv7ICuPe5GbxoUOgtJglyoU33PQUilIQ0BEY0YE72dReG/vVTgdmbEJnQpovQzhtCxfcv4= X-Gm-Message-State: AOJu0YwKqxVJ3qNel1lXk5wJ8IAKBqAaAi0NiLRLJPr5CdRRgvaudGe3 LwwxJbVpX1GD/0zcvPVWoml09u5kNNffpyihVLh1y8uA0jLGpazLJ3g8fgqerWw22kp4bHDzhiC 9ZTTie60SuqizaMKhLkyPQ4+ekO+wCnTgAvCc X-Google-Smtp-Source: AGHT+IFrALHdZOSKj5aMn/uzQgQdUN6Pqoan+ErPCLYOdPIRvipej8qj1s6jFNcN9s7yZXOVAoYdlrQhCGb3EUEUXDQ= X-Received: by 2002:a17:906:f2d9:b0:a46:fd41:4bb8 with SMTP id gz25-20020a170906f2d900b00a46fd414bb8mr415771ejb.25.1711133928342; Fri, 22 Mar 2024 11:58:48 -0700 (PDT) MIME-Version: 1.0 References: <20240321-zswap-fill-v1-1-b6180dbf7c27@kernel.org> <20240322031907.GA237176@cmpxchg.org> <20240322171156.GC237176@cmpxchg.org> In-Reply-To: <20240322171156.GC237176@cmpxchg.org> From: Yosry Ahmed Date: Fri, 22 Mar 2024 11:58:12 -0700 Message-ID: Subject: Re: [PATCH] zswap: initialize entry->pool on same filled entry To: Johannes Weiner Cc: Chris Li , Andrew Morton , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Nhat Pham , Chengming Zhou Content-Type: text/plain; charset="UTF-8" X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 28C32C0011 X-Stat-Signature: efr4mjgtbz9eufbs4mocw5h733s4ponj X-Rspam-User: X-HE-Tag: 1711133929-968090 X-HE-Meta: U2FsdGVkX1/IRYsEFjdflLCHR1p6NSTZP1+XLXDforg/ds4Ak1UI9PwmrGmqcVBF7Z+aOA1nWrNigFebPHydM5uQp2UFbLE97zb1DMW/etGc8epBQmexeyN35grgnT5w9o8DFKGUHps797V8xFGNbGOY79EKnDj1iCR2nJmdJPdYvkhL+hsnSPqc7nkdETSHPEBwxqfp0KLWki1trBJ3TvzEU02Bbj/rDUaP6PPsR4ZFKwshu8lNpcbStDG/9u3xp66vxrVLhKp3hWMlHgEzi+tB4j9ABfajSoF0a8JePuxeEugYzsd2Zvut4AuN/B+7YQJaEyQ3vtVT9Q8uheE1j9Sqkf8em3CX3uqvoL+MbT6PnUn17x1GNGWzzgjbjOxQmGpoM358Rk0q3s4e252wHYT6iihZbSq7Hzmj87rygO0SGZnnXC/6XWQA2bJcji6G3UnqYJjW8hOaefD8m1ZQFasTXsX2NwX4ljPtJ2cte1uzDlP19VV3nRnw5fo5CZAleNilcWP4FlI3COpdYdc1OY97zSLfJOjQU+FPBiAGIGQJHlE7oRpkyFzSTCTXbWVMiSoRP7GvTNPmtmEGcK+K93eSNd1f0thTYteJAaY6e0TpWRMOn9oiaeNgHPoo16kSD38igFRCnMt3NV+utB5MhiApeAygZHjYMZRFogQmWxrdd3R0qCFaiHiC+sOOTM9GQ9GS30DNDHQLKhmQD/3CAsc+SiFYd06EO3wtyIECcD78C/MfLHBAijljKBOnZZGBb32tldfvR6S423YPYlvzj6AwAO3LIRf6ryC72++4QNUuWHKa6KHuLo7KsnnpkxmtbgVHW4vgFlZQKrvg+0X/NwyaMz6FbYU3R5mPhDfMjtnJfwfYZ8+ErTOaLs2fs293+fWxpaOFONbZ/9QCIanddrsAnm/KMnsj++OtRgFq0FBckveiou0eGNY0EAuw00lUkHZ5FWaxEI31YCCsM6b KRYoi4vg B+8dk3Z12IsLU+h7YReoImvIKNL5ADI6ochfJsHJmU5u9UQEgx1avO9OSxoIk6j480vmlIou1GJdCmCtS42py3Mz7HuDb7emeUVxvlLZDeF+S+l4tBAOivgM67F8UjKzHLGqDW9+Mlo2qb4aFM7vryFbJoOvM3M88UJYf0I9lG2m4BwLt0JCPvVML2MymA4RYmDADAmqO8C6RuUwqcxfQdQeoNoaO8o3/7p2b X-Bogosity: Ham, tests=bogofilter, spamicity=0.001279, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: [..] > > > What would actually be safer is to make the two subtypes explicit, and > > > not have unused/ambiguous/overloaded members at all: > > > > > > struct zswap_entry { > > > unsigned int length; > > > struct obj_cgroup *objcg; > > > }; > > > > > > struct zswap_compressed_entry { > > > struct zswap_entry entry; > > > struct zswap_pool *pool; > > > unsigned long handle; > > > struct list_head lru; > > > swp_entry_t swpentry; > > > }; > > > > > > struct zswap_samefilled_entry { > > > struct zswap_entry entry; > > > unsigned long value; > > > }; > > > > I think the 3 struct with embedded and container of is a bit complex, > > because the state breaks into different struct members > > That's kind of the point. They're different types that have their own > rules and code paths. The code as it is right now makes it seem like > they're almost the same. From the above you can see that they have > actually almost nothing in common (the bits in struct zswap_entry). > > This would force the code to show the difference as well. > > Depending on how Yosry's patches work out, this may or may not be > worth doing. It's just an idea that could help make it easier. I initially wanted to do something similar to splitting the structs before not allocating an entry at all for same-filled pages, but I ended up dropping it as the direct conversion was simple enough. Anyway, I will post the patches some time next week (or today if I can get around to test them). The discussion should be easier with code.