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 A9989C64ED6 for ; Thu, 23 Feb 2023 23:33:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3EAD66B0074; Thu, 23 Feb 2023 18:33:26 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 39B886B0075; Thu, 23 Feb 2023 18:33:26 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 263086B0078; Thu, 23 Feb 2023 18:33:26 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 14A8C6B0074 for ; Thu, 23 Feb 2023 18:33:26 -0500 (EST) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id DD614120CAE for ; Thu, 23 Feb 2023 23:33:25 +0000 (UTC) X-FDA: 80500160370.21.635650E Received: from mail-ed1-f43.google.com (mail-ed1-f43.google.com [209.85.208.43]) by imf27.hostedemail.com (Postfix) with ESMTP id 2C6B440010 for ; Thu, 23 Feb 2023 23:33:23 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=m0AxbduZ; spf=pass (imf27.hostedemail.com: domain of yosryahmed@google.com designates 209.85.208.43 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=1677195204; 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=yS8ghRAP/szNpGyxrUGvkFjZni2XaHwZq/ZPVhFbsns=; b=hezw9EGm/LG7eau5l298JTkiVozK55d/4aHrpOvCTe9vTf3oqSg2PXAr8lDyZZH6Dvk0FT dRDueGlMMdWCxMm9y5oy0/+MBSy0Ky9wXbTMlWlG87nQ9ac2gy2E+qUZHsBAE+ImVBawMv LfV2tFBG2U4gZem/RN+ERW1lYKhPkns= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=m0AxbduZ; spf=pass (imf27.hostedemail.com: domain of yosryahmed@google.com designates 209.85.208.43 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=1677195204; a=rsa-sha256; cv=none; b=TPuHYEpiRdFTG1BJ5STkWH93osicKC/3QPlPq2Jmnrob9QU8hbyaqygIr3B0hH8O1kxZWg NkbJsSJayyIdpnHrPgP/F/ZwiYGHjzA5NRbP5mz4BfjITNuYeYCSB5WOkK+3jFu0kqbhWS Iyf1uHbXrBai+box7yxPz5woYmJh0VE= Received: by mail-ed1-f43.google.com with SMTP id da10so49579954edb.3 for ; Thu, 23 Feb 2023 15:33:23 -0800 (PST) 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:message-id:reply-to; bh=yS8ghRAP/szNpGyxrUGvkFjZni2XaHwZq/ZPVhFbsns=; b=m0AxbduZIgXjo+gbxvxHvgIW7ZKmEfLXNXpEY3Rydyi26wIMEFtadQdoJ/JLKa9a3n ueBEf0FPStdKl4dO0nBNiq9BSfgy+IdFhsdmY85mcD9hR8AJnC5bdJA4QrQKfQDtXcX6 UITuA/t5z1lX6V/loatPRpNb/hTOKsjIFgPSj1nQBtiTKrGNaizfCXg3RZIVNURWxit0 tnpzz9F2RTlQ0ymBChWwnbrSniYM4HJEpXnbKhgyJ3iUIzrhXfhsAi6RzWOSxVDqfJ4B LdFiFYPyRdLGJS7IqHMrm1DnUVWwuZvXRBjIusILTHvMVrDScOQKzF20Zw8jIBtVeIBR I5MA== 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:message-id :reply-to; bh=yS8ghRAP/szNpGyxrUGvkFjZni2XaHwZq/ZPVhFbsns=; b=yM/r0cuRkvx8a1raLDgUccqlnBZulAFnWXIdw4e83kGKTPQDLop2SnB2xSrHJ1etX6 Niflxr7BshsZaZqujDW63bZIWAtFMLxTJEM8Q9oE1J48QHKypoGJ2sSK4EiDnkwQICfN Ey40Uhse+D1fxjs18TKHPqCITkmILqulLEurEaOyuRJBHmNERq5I4+ci2H9W5vtUgV/m 3u3UBOVXv5GviGn5QpY6rz772PE3wZOfUJso/rww3ZfSfH2CU3dK5Elf1ULTyguIsUnI JHWdyDrkM5c6jN9y3YIGraUsUR9m2qVMslDKrcGaNLI/07rjU/0z1OmDlemBthicZAnl I1Fg== X-Gm-Message-State: AO0yUKUknrM3Zo/YZzimXNln4FLE1bbQ8VNa+OBSktHLntqBd9uB9qTF xqHyTI055B1w3WqQx7luLGDsKq3i5er1Z/ICgHIj5g== X-Google-Smtp-Source: AK7set/x3vcMQPHodvKb7G8weM1nvqIt06E+UU5MJOA4YK3o9AofMV8p8NEh2mQ1vp5H/HeBVXN9BkM2GnMsnPbLinE= X-Received: by 2002:a05:6402:35ca:b0:4af:62ad:60b1 with SMTP id z10-20020a05640235ca00b004af62ad60b1mr4841890edc.3.1677195202306; Thu, 23 Feb 2023 15:33:22 -0800 (PST) MIME-Version: 1.0 References: <20230223030451.543162-1-senozhatsky@chromium.org> <20230223030451.543162-3-senozhatsky@chromium.org> In-Reply-To: From: Yosry Ahmed Date: Thu, 23 Feb 2023 15:32:45 -0800 Message-ID: Subject: Re: [PATCHv2 2/6] zsmalloc: remove stat and fullness enums To: Minchan Kim Cc: Sergey Senozhatsky , Andrew Morton , linux-kernel@vger.kernel.org, linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 2C6B440010 X-Stat-Signature: tukyfk8biymuw8miaox5y51koqjr1ga9 X-Rspam-User: X-HE-Tag: 1677195203-612065 X-HE-Meta: U2FsdGVkX1+CEon2KEG0W8MVY7Ggb4iro9/4ug8/v03HG8E8g7qtmIJrW2vCoFa/SK8T7wq/nR6ASbWGYsiir9rSjYbC/7kvMuZOlH76Hk9MCqUHAyP+nBKqsWlS15XJlifYQtYfKIR1QR6X45Z+6eAafIl+OlfoMirs3NkQWEcU5aL3SSRKpaEZtMbq480OcT+9PBHq0A1PSMaCRcqmA2iYZZQqHK6axg37AcK0aME7PG2rqjU4qqyXg1V4nOklpLuwrWWejzUmdb2H5WCumqfpZ1b80fk8Jbzt2Sphkv0vKHTnZVHRWC/T68fmQvkqHPbbMxDnCD1vyXhZ1HjVpo7B3EJlSKiRVkWgosabSzZr1ye9Xk4oDSrrQNmqYJXxTpxZ7Nt6Prc+qO25jkyG055MBmkOnyo9hzLZWVu34xVyBJfcgPqQmqP3cMu15cMqMFmWtzMRS+BCWZcPRcIz7yZxZyE1ahY3+rmn35PglivsouZm+XPO7LhyVTLJCOl6hdqiYO7uc24G1qDKhsK99R6Dcr0xe9PkWhhCPash4Zqr4Ru5rP2RAiMLoMKASVTQJ4y0X+26FwaHTc+hpUMfUfoktx/++cEjuzdEi1uL08xd6Rhkut6p1akCVzawQmDo384ftJxsKdCCh4P/01OtN1KqtqfICgMQKcKNt115674nnrhv9EFEN2TF2DHvPrPje0HMNdXOFjW8WNSrNmx+dQONZe1EBIs5xzxEmPfyMIfv3dqE9Cgd1yOs9zkHCictK12EtrUsM0AMobmWd/oXAvxPe5DNC5FuZ5/+lXHd0byF42pFk6oJ9Chvg7abMQSBK6gN23LEJSaDPTnsQ3bxtEwUyb1XM79aTcHHnoAiX0nO+sRwrARs8M9clx5yg8LpOEt25Ly+cNE7L8hqMjxvCS1hPZufY7EjLduFLv8M5xQL06ggKL2GBpIv8JG7BlQ45cqV8f5tYJmOVB4iJOi 4wdBS0b0 9JV5IpQoPdO8mfnX2YUgfDELCjs9ZXwFeJ/g9hgktoU3jVZNipVRot0W8SYFaU10dBpWzmkVhwIJDB/GQx9Y3vBop5NtnpG9u+Iqx/uiFdu4BCIAC27dLeuOn6y8lg+Cv5VvfraOeo823sFufNQIhtVshRaE3EUgGGQ3SF2ExyvvSwm++h4KriZxOM26uv4C5FmMVjXiCt4TX/WLYt0CIxtMGqU/7ObreAwYN4e8JoX+QvHB+T2eMWNZpJqffEMPsfwDrVnIMiR6EHK+NUjYuT/1e1vhhm6eUOQA9SMf+bRLP8UlJcmTRqB2niiWyjxvqlyRdKJm/U7lYTO994qhnwgepo20DNOgiUbfH5OI/2GjenW8pNTe7GlXBrJQ2gu8Gr0/d 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 Thu, Feb 23, 2023 at 3:11 PM Minchan Kim wrote: > > On Thu, Feb 23, 2023 at 12:04:47PM +0900, Sergey Senozhatsky wrote: > > The fullness_group enum is nested (sub-enum) within the > > class_stat_type enum. zsmalloc requires the values in both > > enums to match, because zsmalloc passes these values to > > generic functions, e.g. class_stat_inc() and class_stat_dec(), > > after casting them to integers. > > > > Replace these enums (and enum nesting) and use simple defines > > instead. Also rename some of zsmalloc stats defines, as they > > sort of clash with zspage object tags. > > > > Suggested-by: Yosry Ahmed > > Signed-off-by: Sergey Senozhatsky > > --- > > mm/zsmalloc.c | 104 ++++++++++++++++++++++---------------------------- > > 1 file changed, 45 insertions(+), 59 deletions(-) > > > > diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c > > index b57a89ed6f30..38ae8963c0eb 100644 > > --- a/mm/zsmalloc.c > > +++ b/mm/zsmalloc.c > > @@ -159,26 +159,18 @@ > > #define ZS_SIZE_CLASSES (DIV_ROUND_UP(ZS_MAX_ALLOC_SIZE - ZS_MIN_ALLOC_SIZE, \ > > ZS_SIZE_CLASS_DELTA) + 1) > > > > -enum fullness_group { > > - ZS_EMPTY, > > - ZS_ALMOST_EMPTY, > > - ZS_ALMOST_FULL, > > - ZS_FULL, > > - NR_ZS_FULLNESS, > > -}; > > +#define ZS_EMPTY 0 > > +#define ZS_ALMOST_EMPTY 1 > > +#define ZS_ALMOST_FULL 2 > > +#define ZS_FULL 3 > > +#define ZS_OBJS_ALLOCATED 4 > > +#define ZS_OBJS_INUSE 5 > > > > -enum class_stat_type { > > - CLASS_EMPTY, > > - CLASS_ALMOST_EMPTY, > > - CLASS_ALMOST_FULL, > > - CLASS_FULL, > > - OBJ_ALLOCATED, > > - OBJ_USED, > > - NR_ZS_STAT_TYPE, > > -}; > > +#define NR_ZS_STAT 6 > > +#define NR_ZS_FULLNESS 4 > > Using define list instead of enum list looks like going backward. :) > > Why can't we do this? > > enum class_stat_type { > ZS_EMPTY, > ZS_ALMOST_EMPTY, > ZS_ALMOST_FULL, > ZS_FULL, > NR_ZS_FULLNESS, > ZS_OBJ_ALLOCATED = NR_ZS_FULLNESS, > ZS_OBJ_USED, > NR_ZS_STAT, > } Right, I suggested getting rid of the extra enums, so merging them into 1 is great. > > > }; > > > > struct zs_size_stat { > > - unsigned long objs[NR_ZS_STAT_TYPE]; > > + unsigned long objs[NR_ZS_STAT]; > > }; > >