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 919FBCD37AE for ; Wed, 4 Sep 2024 05:02:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1E1588D0226; Wed, 4 Sep 2024 01:02:07 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 191258D018A; Wed, 4 Sep 2024 01:02:07 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 059258D0226; Wed, 4 Sep 2024 01:02:07 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id DA7938D018A for ; Wed, 4 Sep 2024 01:02:06 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 77185160D8C for ; Wed, 4 Sep 2024 05:02:06 +0000 (UTC) X-FDA: 82525859052.10.FE2475D Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf24.hostedemail.com (Postfix) with ESMTP id C6134180016 for ; Wed, 4 Sep 2024 05:02:04 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="RVD3dP/r"; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf24.hostedemail.com: domain of rppt@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=rppt@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1725426101; a=rsa-sha256; cv=none; b=XZ28AfBexq0ba+ge/GfsHu0KVdGYS4F6yacAkfeIFBV6zIAGksUXgAvvpfSjPEv0GYXjzH 1Yj45H7thtXO4J5m9elkTYQZ8tV64aZkmJqMw/ylpkG1INShkA11DcTCiDKKfWBcKJGd2X 5YUzYN2MlavN5sacO42l3W6sq32MfGg= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="RVD3dP/r"; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf24.hostedemail.com: domain of rppt@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=rppt@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1725426101; 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=/ri7enJ2G2vzD4dJQLOJmtHxLDCXARRjZ11OfpqLBEA=; b=aH7Z9vSV3FOJXmtoBNbOmSb8HNrl0Z4aLmp6G0HyyMHFYd/+L0TrfMbraSW27bLJQ3ma9K htCiX/M3g2GI7jLk+gLPib2I/C+ldhrggm3NKfwDDPiq0HAI+XnsjtkyeYOS7FEb1QZooX wVHI40JzLG7G0rwmUqYO8zMs3Dq+xtw= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 908185C3A62; Wed, 4 Sep 2024 05:02:00 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 30CF1C4CEC2; Wed, 4 Sep 2024 05:02:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1725426123; bh=9otNc/1h7eEutY4XYROpqf51IkwtHGhWF+hLMr+BPZM=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=RVD3dP/rGqLVme3d+wrVXAGwYA1QlAWUq7whQWTEltOmQ8LsqYknCJ0/CexsS2MMY cjR87li2ptpCdCUzLkTFVpPZOSFuZ5PVZXzuhvV/YhxOGb/6AcnyPZp3JCROSa/X3t Ll+Qmq68YLzhcQZzZC0x5Rcm9WpqmM1WDKeNjIE57SyVth4fVxoycr39QXumbBy4M/ UPk5q2c43LafDg2hbb2XHPNXgeU2jzqyiZqKb2mXpSwEtKzXU3dPsyhguCSUYpYmyP reIeZjP0Cpek25+jnCvKy6kip9S1K1g9H0oiOKGEbeW/OIwL6jYTmhlNT+jfbkF1Mb 4odTGNauLTjIw== Date: Wed, 4 Sep 2024 07:59:17 +0300 From: Mike Rapoport To: Christian Brauner Cc: Vlastimil Babka , Jens Axboe , Jann Horn , Linus Torvalds , linux-mm@kvack.org, linux-fsdevel@vger.kernel.org Subject: Re: [PATCH v2 06/15] slab: pass struct kmem_cache_args to create_cache() Message-ID: References: <20240903-work-kmem_cache_args-v2-0-76f97e9a4560@kernel.org> <20240903-work-kmem_cache_args-v2-6-76f97e9a4560@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240903-work-kmem_cache_args-v2-6-76f97e9a4560@kernel.org> X-Rspam-User: X-Rspamd-Queue-Id: C6134180016 X-Rspamd-Server: rspam01 X-Stat-Signature: iswi6aucpanoyyoa86ki3yibdct3fw8i X-HE-Tag: 1725426124-498888 X-HE-Meta: U2FsdGVkX18ItGnBbKrTrTUvHY6yCECDwf9DA/p5jbxXVYrNmw+Ly379YsgWd0iECoB4oc4dgbkmULeR37fChD9YBsh2/c0lEpqpFCd63s0n71eQXVcXSocRefswVEY/a0T2BKW8/gZCJWLpNOVK0ioNUTSftWklrezY2iCZQQ6hJLYBX9utJ48flVokPFhi3M71xxKNUIqOJrFUmMVhNw0IWee0wfVcttSOtpytIZL2RUfasZw8zMWkxjQBohYf+ljTNJwuCWRH2Gw1RWlNsZxialn8UgM+iSamIHlryvu8OYvmEGQkKxcwWMkB/XKP6XMEIOyiHosXx9Af+1TMDGKj9Y0IAJ+3L7+xlK+2gWWTcc7g+WOiJUhAMx5xgSR7axTMlycFqgwlx+H0KnpTbnTXDZO7QVVcs2uq8kN4MGFGR3/U0si6y2zFiLv3tpW32xR+ajbJdTDPBgmSySIwGRyEncGnCofV+eyB38DiN47BTc1KrAh5NsV8EuPzeQtlLgik1zOLqSKVJI6XqCWBseeJBWuzBv1mSwXOMYfmwRXrPR9yUZocY79wRqr1M7JTlL7SSWPJt7atri1IqwqP8TebxTdhAWUtrsNvxB+0ehLvUdzKODscwaxTN20EKoJsxqKj5xOYsqS9lA7UOsSLdoZ4guM05gUEk08v+jtRNi2K+PfUcQag37nZVPAq5iCY0eXbKR5qQNWKsHzL4MtZ/Cc/1xusKMqxBL4y5mowmxxQVu7MCdasUstcLp6RpJmE0rLXT0ToS4motwYHAGXDToMnBSXkWoNp9cOGUD1oAk+CZf2qonZsD5epRxQ7q9eOzBJ/tPOjEADFE/Z60wtYUz9P2hwAQl8sM3LQz60Hh8bfcfAk4vVlFSCTG1fn89rNLHkttVRSWtzg6tMReFB4zT3lD+d/rK451/gF9H/9EwYF+3OEY9UKicT0zTxB5LUqHB+lFOqX428dSNklBsp HVZ3aiPF 3w5Kvfv1mu5RnY0+5qiRAqiC8Zte5ONS4Yr0ustiWA5tkgm6gMgxBdypMKm+QY4np9A/m45vO4bbZJB+1qzSuqkFG6bD8DD/GOQZ2O+IrfqLgd5p+YT8/cShTKx8GnNEZCu3YkCP/tzeiwAQjI5Ym2t4D+5IJIuoM3/pp+qdOq/IV6DhUIBCH5O9TDlaJ/sIYceTZb63RgLGxD7wJ9nX3oYHfX/FhJdmjOQDyvKlPaWgJ+bUAzFrAmFLd4QWphYMqj3UoxfuIYzUIyKkhJ2lu/lvWzPKwwbzDZVO8M//WAx4HsbMdbTe5smYmbg+nnFlrVG2M 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 Tue, Sep 03, 2024 at 04:20:47PM +0200, Christian Brauner wrote: > Pass struct kmem_cache_args to create_cache() so that we can later > simplify further helpers. > > Signed-off-by: Christian Brauner Reviewed-by: Mike Rapoport (Microsoft) > --- > mm/slab_common.c | 39 +++++++++++++++++++-------------------- > 1 file changed, 19 insertions(+), 20 deletions(-) > > diff --git a/mm/slab_common.c b/mm/slab_common.c > index 16c36a946135..9baa61c9c670 100644 > --- a/mm/slab_common.c > +++ b/mm/slab_common.c > @@ -202,22 +202,22 @@ struct kmem_cache *find_mergeable(unsigned int size, unsigned int align, > } > > static struct kmem_cache *create_cache(const char *name, > - unsigned int object_size, unsigned int freeptr_offset, > - unsigned int align, slab_flags_t flags, > - unsigned int useroffset, unsigned int usersize, > - void (*ctor)(void *)) > + unsigned int object_size, > + struct kmem_cache_args *args, > + slab_flags_t flags) > { > struct kmem_cache *s; > int err; > > - if (WARN_ON(useroffset + usersize > object_size)) > - useroffset = usersize = 0; > + if (WARN_ON(args->useroffset + args->usersize > object_size)) > + args->useroffset = args->usersize = 0; > > /* If a custom freelist pointer is requested make sure it's sane. */ > err = -EINVAL; > - if (freeptr_offset != UINT_MAX && > - (freeptr_offset >= object_size || !(flags & SLAB_TYPESAFE_BY_RCU) || > - !IS_ALIGNED(freeptr_offset, sizeof(freeptr_t)))) > + if (args->use_freeptr_offset && > + (args->freeptr_offset >= object_size || > + !(flags & SLAB_TYPESAFE_BY_RCU) || > + !IS_ALIGNED(args->freeptr_offset, sizeof(freeptr_t)))) > goto out; > > err = -ENOMEM; > @@ -227,12 +227,15 @@ static struct kmem_cache *create_cache(const char *name, > > s->name = name; > s->size = s->object_size = object_size; > - s->rcu_freeptr_offset = freeptr_offset; > - s->align = align; > - s->ctor = ctor; > + if (args->use_freeptr_offset) > + s->rcu_freeptr_offset = args->freeptr_offset; > + else > + s->rcu_freeptr_offset = UINT_MAX; > + s->align = args->align; > + s->ctor = args->ctor; > #ifdef CONFIG_HARDENED_USERCOPY > - s->useroffset = useroffset; > - s->usersize = usersize; > + s->useroffset = args->useroffset; > + s->usersize = args->usersize; > #endif > err = do_kmem_cache_create(s, flags); > if (err) > @@ -265,7 +268,6 @@ struct kmem_cache *__kmem_cache_create_args(const char *name, > slab_flags_t flags) > { > struct kmem_cache *s = NULL; > - unsigned int freeptr_offset = UINT_MAX; > const char *cache_name; > int err; > > @@ -323,11 +325,8 @@ struct kmem_cache *__kmem_cache_create_args(const char *name, > goto out_unlock; > } > > - if (args->use_freeptr_offset) > - freeptr_offset = args->freeptr_offset; > - s = create_cache(cache_name, object_size, freeptr_offset, > - calculate_alignment(flags, args->align, object_size), > - flags, args->useroffset, args->usersize, args->ctor); > + args->align = calculate_alignment(flags, args->align, object_size); > + s = create_cache(cache_name, object_size, args, flags); > if (IS_ERR(s)) { > err = PTR_ERR(s); > kfree_const(cache_name); > > -- > 2.45.2 > -- Sincerely yours, Mike.