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 725DDECAAD5 for ; Mon, 12 Sep 2022 14:21:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 764D88D0001; Mon, 12 Sep 2022 10:21:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 71EA66B0073; Mon, 12 Sep 2022 10:21:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5DAEA8D0001; Mon, 12 Sep 2022 10:21:46 -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 4BEA26B0071 for ; Mon, 12 Sep 2022 10:21:46 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 1C1261C3CC3 for ; Mon, 12 Sep 2022 14:21:46 +0000 (UTC) X-FDA: 79903647012.25.75D14D2 Received: from mail-yb1-f171.google.com (mail-yb1-f171.google.com [209.85.219.171]) by imf09.hostedemail.com (Postfix) with ESMTP id B39891400AC for ; Mon, 12 Sep 2022 14:21:45 +0000 (UTC) Received: by mail-yb1-f171.google.com with SMTP id f131so13011138ybf.7 for ; Mon, 12 Sep 2022 07:21:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date; bh=lJ9faA7e8zJIwcDlhdQh8adJq8hVZtHCvAVg3S21zOk=; b=GMffjmBINzXW4wKiEt9sAB0fRO0xnMraNQV1JWwmez047uFqfA1mkyrmp25vIHAyw4 8SPTW6iBqa+SCf5NyBp7QAUeW9WMCv6C9dBnxnBKzL0YZ5mW21C+IUJAzjQdY+34TLRN bwxEMAHenjwdoovJzR8AnGcTNUCkxxnlpZ2lxzeF6Mmi4VTNFah/XRi39po+vk01eUC9 hP4cqRaDgK5rXuoJOwB8HmQMQneUC3O8Lxrb6mdy4OCovWyEMrvOqQyCAnFgviJ9riju 9my4BZpc2i4JKwyCh2km94KQZ6VG2RLxyuoycJuRwgViisM8QjGNgLP8BTaI4JxAbomT tDxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date; bh=lJ9faA7e8zJIwcDlhdQh8adJq8hVZtHCvAVg3S21zOk=; b=Q4a5yuWACduqA8JZYqPxHcD5LCH7990npNYL4VQxS8R2iFGlTCMbof2GryMu54hFGc nRg/A2gazPSveSZmhV0Ir7VcbWdzXucuhjn+22ZNJlDn3AQ1AsGScB93SlBMKQ/plGK2 O1yCDAcoSJQaPAAlo8i/8sC3zoRIPM8U/liGtqMmQSb8ReHIobCepLVGVPsaUvY25+hw FK0tAdOBXkmmXYs6zMzhj86wrjweH6MxRsTJakgrzO7cXqzSvtWUaopeJFqfw07jOR2j fN7P6XXwViG/iYkTLGCn/eIYVOIfra3UztOfzZJw25MzS/2l63xAVZPpRoIOTpD2I0y5 +DzQ== X-Gm-Message-State: ACgBeo3O5D6V/uvIlEYPWxzAHPUVglTo4VDq/h/rhnfLK2vXBs6lvR6T 03k6vJo8fJmkWiDOe2e04G1IZby7lPfhSJeIc64fSQ== X-Google-Smtp-Source: AA6agR5NA4wc1j6Ej5esHmZ2f6KA36eCWZgWzp7qp5vkridF/7amLEACIsBscIlhpDFCKa4NdZ3TlCSVCw9MxieW4KE= X-Received: by 2002:a25:3b04:0:b0:695:dc29:c206 with SMTP id i4-20020a253b04000000b00695dc29c206mr21802092yba.523.1662992504813; Mon, 12 Sep 2022 07:21:44 -0700 (PDT) MIME-Version: 1.0 References: <20220912053755.156704-1-senozhatsky@chromium.org> In-Reply-To: <20220912053755.156704-1-senozhatsky@chromium.org> From: Brian Geffon Date: Mon, 12 Sep 2022 10:20:49 -0400 Message-ID: Subject: Re: [PATCH] zram: do not waste zram_table_entry flags bits To: Sergey Senozhatsky Cc: Minchan Kim , Andrew Morton , Nitin Gupta , LKML , linux-mm Content-Type: text/plain; charset="UTF-8" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1662992505; 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=lJ9faA7e8zJIwcDlhdQh8adJq8hVZtHCvAVg3S21zOk=; b=lP6QzZGNX0DKTjRav8qhcpVCZZ8NLXzu/FSnz/XvzOrFRiBDXKdQgXlRewt776wC1YoGPv brfciK1jN76iZN8cim+9wSaKH3ra1HFi30BiIJGTEXNgy8lEv0E7nYr5agKQYJsw3Iora5 i7yaxigQeWdR46zehB4dBFUzTvvIHd0= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=GMffjmBI; spf=pass (imf09.hostedemail.com: domain of bgeffon@google.com designates 209.85.219.171 as permitted sender) smtp.mailfrom=bgeffon@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1662992505; a=rsa-sha256; cv=none; b=cCxSvRCZS5/KApLX+k2iNm5zj4mV2VEcaV4DVvAi069aO+haZ/UcM/nYRSwyRRhrMYi22i b3qN0WQxQLmt0qwhA0ZlNIvqzPFjs6jArsEeTkhCiaWn/xK8YjQsxCiPXWhGxCjfV/k0oA nVlhABfgHej2SEuVn+lwpWcvhfFtkts= X-Stat-Signature: zyg987eyfd8ams7fnonrgtn1kf3btm8y X-Rspamd-Queue-Id: B39891400AC X-Rspam-User: Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=GMffjmBI; spf=pass (imf09.hostedemail.com: domain of bgeffon@google.com designates 209.85.219.171 as permitted sender) smtp.mailfrom=bgeffon@google.com; dmarc=pass (policy=reject) header.from=google.com X-Rspamd-Server: rspam03 X-HE-Tag: 1662992505-189833 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 Mon, Sep 12, 2022 at 1:38 AM Sergey Senozhatsky wrote: > > zram_table_entry::flags stores object size in the lower bits and > zram pageflags in the upper bits. However, for some reason, we > use 24 lower bits, while maximum zram object size is PAGE_SIZE, > which requires PAGE_SHIFT bits (up to 16 on arm64). This wastes > 24 - PAGE_SHIFT bits that we can use for additional zram pageflags > instead. > > Signed-off-by: Sergey Senozhatsky > --- > drivers/block/zram/zram_drv.h | 13 +++++-------- > 1 file changed, 5 insertions(+), 8 deletions(-) > > diff --git a/drivers/block/zram/zram_drv.h b/drivers/block/zram/zram_drv.h > index b4eecef2a11f..138be8326866 100644 > --- a/drivers/block/zram/zram_drv.h > +++ b/drivers/block/zram/zram_drv.h > @@ -30,16 +30,13 @@ > > > /* > - * The lower ZRAM_FLAG_SHIFT bits of table.flags is for > - * object size (excluding header), the higher bits is for > - * zram_pageflags. > - * > - * zram is mainly used for memory efficiency so we want to keep memory > - * footprint small so we can squeeze size and flags into a field. > + * ZRAM is mainly used for memory efficiency so we want to keep memory > + * footprint small and thus squeeze size and flags into a flags member. > * The lower ZRAM_FLAG_SHIFT bits is for object size (excluding header), > - * the higher bits is for zram_pageflags. > + * which cannot be larger than PAGE_SIZE (requiring PAGE_SHIFT bits), > + * the higher bits are for zram_pageflags. > */ > -#define ZRAM_FLAG_SHIFT 24 > +#define ZRAM_FLAG_SHIFT (PAGE_SHIFT + 1) Why not just hard code 16 with an explanation that it cannot be increased further using the analysis you did in the other thread? It's going to be tricky to reason about how many free flag bits actually remain with PAGE_SHIFT across all architectures, especially given we have no architecture specific flags. > > /* Flags for zram pages (table[page_no].flags) */ > enum zram_pageflags { > -- > 2.37.2.789.g6183377224-goog >