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 41011C4167B for ; Sun, 3 Dec 2023 06:08:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D1F1F6B00B2; Sun, 3 Dec 2023 01:08:24 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id CA5F96B00B4; Sun, 3 Dec 2023 01:08:24 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B47BF6B00B6; Sun, 3 Dec 2023 01:08:24 -0500 (EST) 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 9BDB36B00B2 for ; Sun, 3 Dec 2023 01:08:24 -0500 (EST) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 6A0B2C01D3 for ; Sun, 3 Dec 2023 06:08:24 +0000 (UTC) X-FDA: 81524477328.12.3B7041A Received: from mail-ua1-f50.google.com (mail-ua1-f50.google.com [209.85.222.50]) by imf11.hostedemail.com (Postfix) with ESMTP id A33FF40004 for ; Sun, 3 Dec 2023 06:08:22 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=iocNJEUs; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf11.hostedemail.com: domain of 42.hyeyoo@gmail.com designates 209.85.222.50 as permitted sender) smtp.mailfrom=42.hyeyoo@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1701583702; 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=M7fevemxkHPKkn8De2PN0uPPbfcs4ANeofm/VTixKps=; b=XqkUu5Kv5FKvcNAfDf5BdkgPltL3IPV9oeEhbglneByf27GUlr18t9GCZlmRd9MqS6Gc1y Wd00j+0KGEtNwCYYQ6OfjeOOq+8NUty/LfW7dKnBvg4X6DMQ+c6xlWpSjvd9/5Btw8ZX6W 96BLYNvnNugjCxfV5aq6fPcKEFkzTvg= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=iocNJEUs; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf11.hostedemail.com: domain of 42.hyeyoo@gmail.com designates 209.85.222.50 as permitted sender) smtp.mailfrom=42.hyeyoo@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1701583702; a=rsa-sha256; cv=none; b=ZL+1mXm0GWlDeyMUTaRGsfXgt3oR6ynxabsY7EbRIChSDwKKdiutgggTojbk/Eq7B/cS2S Oq1gD0vYtIr+0YTUDaQKyFShsPjX0e74EE4NbsE4VZOq5L9yjR07jByl1j7yu1z7k4PwGw s9HZuxAmRXw/wezyB20Q8FrVaV1m/bU= Received: by mail-ua1-f50.google.com with SMTP id a1e0cc1a2514c-7c5634d3189so1596722241.0 for ; Sat, 02 Dec 2023 22:08:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701583702; x=1702188502; 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=M7fevemxkHPKkn8De2PN0uPPbfcs4ANeofm/VTixKps=; b=iocNJEUskKprk+rNlRlRQTP953L6dBSm41SETmM2kmYb01pDHEn6dATNhKQKJlJ+lB nE8Vgt+7EdESpc9UGWWJbvJPzGntrZQegEAdwCyasr2n6pEccfaNmUSbuDyJHwRP9QV8 SCLyXDu6hpyUooF359pTtJQWVtrS0gD49T/VGP2MP3DhZTbzQSHO6DVysIMIarehA5gq LTXveJq8utktB/3JtXH80Yv5954bmzoZLPIZpVl1IxQ6H5NIG2DpLEjoRjB/aPuPPtPG hdReoOYMrrYaXW3d5U1doyIq3rhunet+nkL8CkdkP26UcOhp4onuFsCdDUJ8Dx3b850J 2m1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701583702; x=1702188502; 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=M7fevemxkHPKkn8De2PN0uPPbfcs4ANeofm/VTixKps=; b=CjIerqm2rlSrXaRX/NSMCOXUxDbdwxU6VyhSxXXoq2Dn8WyJDDVuPUvty4kusr9arP 1iwjq1gOiT7/bPgLcNZIqVzVfODStj0vvfD8UrQbnSS2+XhV6NPJRV2FFTaLhwfMsk4g fDlvhetvAm935OKDRp2ACmnMvYyb4kqU9DkI8lBU9LNLbnZlvwheGvOYrihFS4OGCej9 +oFvqIRqWbfety2bTR1dH+rBEsno19b86boKuBybKyXewUICoYWWNjd858LxgAgO4Yxz q8vp7BAWuUr9YSgMYPpslKVg2c1u8qmb1u1DNNYo6tAAK2/6dHnmzkBh8YwpmbJ129Ob mgtw== X-Gm-Message-State: AOJu0YxOUK/G+Gq5LafPEx9ThvY3ulV5IGlbnY90rNLpugdZr6PxPXer OHcbUZD2trgoFJooStgeAhiQ284yf6H9nEmjCy4= X-Google-Smtp-Source: AGHT+IHD6b/ENScKTpNLCErmigKxB8SjKB7WnwAYW+5SPyyWKG1QMEzG9OWFZqx/zwJ8pO/cybNdGbcvRJgof3+MWdk= X-Received: by 2002:a05:6102:b0b:b0:464:77f1:f349 with SMTP id b11-20020a0561020b0b00b0046477f1f349mr1216372vst.23.1701583701624; Sat, 02 Dec 2023 22:08:21 -0800 (PST) MIME-Version: 1.0 References: <20231031140741.79387-1-chengming.zhou@linux.dev> <20231031140741.79387-6-chengming.zhou@linux.dev> In-Reply-To: <20231031140741.79387-6-chengming.zhou@linux.dev> From: Hyeonggon Yoo <42.hyeyoo@gmail.com> Date: Sun, 3 Dec 2023 15:08:10 +0900 Message-ID: Subject: Re: [RFC PATCH v4 5/9] slub: Introduce freeze_slab() To: chengming.zhou@linux.dev Cc: vbabka@suse.cz, cl@linux.com, penberg@kernel.org, willy@infradead.org, rientjes@google.com, iamjoonsoo.kim@lge.com, akpm@linux-foundation.org, roman.gushchin@linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Chengming Zhou Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: A33FF40004 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: g1saf3ywta3ogjbkez8opyti17r6ueyu X-HE-Tag: 1701583702-885776 X-HE-Meta: U2FsdGVkX1/YUVCtrsnJNmA/fKYA7dyL9LFwtDwqKpyCWGVU5/BnuJb3gKTqAvCGx05H4/JzXGjhGrHm2wKYt36VlwaTH5tnpaDnI8JlHN0Evjbn1p7X14PuOYUFwEyWVUJORPiy1FgPCBWcxivqPQ8W3gOXXq63hNfpVa+JWg+UlIJR9/95UQA2PF8tgHuGXVjOzXGypQ83oELeFhWJeImFax3z861fQ7iqpWALMF/2aiaVtVPe5cea+W/q1ptRZEUGdHADlO6qBplnTOsIYLmOJ0HCB62VhFqS15LSzyu7Q55ON4FPWUShNgQ5vb3qcgGq9UPeDYM8TxX/rkYwbbZcTP+aT5pqGX9R7lNN90crlVTY+hSGNsziMAuI6ClA5tpJM6c5T17SvRpTmxnPP4GB5ss208lAYVaziSOHc2YMfj7w+KrT3Z9ikN5ahp9VkSii7mrONBrpwn75wsuw02RgTsdIFI6qRfyUqGwgrslP6Xmu/si5vzMXYM1uUqbkLvQv5eoAhdvuHN091vbmeiVo+GrIAvNXMEucKcLHhl6M3358p1OdAIsEe7Pu3xcMO9Llp6IZdJraNyqs+52X4lsAkvFCOmf361v1XKYkCgGIP61qDrgWhwauCnCSQGOtnx1ft0XfkYgq2xIilFy+sNgMhXRm9dGyCyIOCGaWKGWkKpbCPMqOPZjNFjRqg9G+/582jLpkn+PABYFo8YflWFv3T14McjDj+1HfUT0AvEqbH9fy1m5hpU4j7bCAOITPnT8G8OLuzALnO5Bkm6nJecXLXhin7LmLHaTeyPSqEj3M3Az+wLZnxqrR+yHN02y1r9kKxjOyuvDIqiIZ8p/bqkf3Dg78cFY8VOsBQoaBJtLzqlSfzP+FihM8ok083nCvdMjGkBiPZm2G5kNaGSi1yQPt3ZvAg//Rk7Xp59e+BGIho0Mx9mfBy5ERQb1trrcQIW6sWVMexAbffsgrvZz BJLfGOrJ ruI+1TYVLp72Hg1hsIf2TOjVWG/dVoF1fFX3K6597TstQYGjpngaKDstdwF23bW6hMW8XHRau7JU8Uufx+go7CIRZIf1hH3zaObDt0lOjtLMuTUlnvq1SNBO1X19CEfz1nWOO1wWttXM8b4RaUhNpXOX97QXuKcqlUorZLgwe7WYLQ/rol/ePtKposVD4qIAscNMw2SdOQqUV306/QvcIVtzbnqHhf6r/Eb+x9Y//4YZtieNIDCLgnrmk4AD1JqPRSeRU+46xhkZKbD5ZtPj8obk+oyvtJhKetXugmWS0+6ciZZNc9r58R52qGIGrIJTmjR8LO1wrUXff2Km6wTBeZ3x3c60vJs2sG166UHDZs3XMQOlpoS+AJSvaAGlk9qsc1qKoqpNqQbQeaydc9LmnjfwsGH+3K5XwwKpqE+2ptqoV8+DNcsootg0Jdki5nRQQSdONBdl3X7bsHU6epix87frSGA629DbnS9z539Q7eTelBX3UXcXpCk0UAMrH0bionPmHiluE1K+IyGo= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000005, 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, Oct 31, 2023 at 11:09=E2=80=AFPM wrote: > > From: Chengming Zhou > > We will have unfrozen slabs out of the node partial list later, so we > need a freeze_slab() function to freeze the partial slab and get its > freelist. > > Signed-off-by: Chengming Zhou > Reviewed-by: Vlastimil Babka > --- > mm/slub.c | 27 +++++++++++++++++++++++++++ > 1 file changed, 27 insertions(+) > > diff --git a/mm/slub.c b/mm/slub.c > index 1880b483350e..edf567971679 100644 > --- a/mm/slub.c > +++ b/mm/slub.c > @@ -3098,6 +3098,33 @@ static inline void *get_freelist(struct kmem_cache= *s, struct slab *slab) > return freelist; > } > > +/* > + * Freeze the partial slab and return the pointer to the freelist. > + */ > +static inline void *freeze_slab(struct kmem_cache *s, struct slab *slab) > +{ > + struct slab new; > + unsigned long counters; > + void *freelist; > + > + do { > + freelist =3D slab->freelist; > + counters =3D slab->counters; > + > + new.counters =3D counters; > + VM_BUG_ON(new.frozen); > + > + new.inuse =3D slab->objects; > + new.frozen =3D 1; > + > + } while (!slab_update_freelist(s, slab, > + freelist, counters, > + NULL, new.counters, > + "freeze_slab")); > + > + return freelist; > +} > + Looks good to me, Reviewed-by: Hyeonggon Yoo <42.hyeyoo@gmail.com> Thanks! > /* > * Slow path. The lockless freelist is empty or we need to perform > * debugging duties. > -- > 2.20.1 >