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 C8ADAC61D85 for ; Thu, 23 Nov 2023 18:06:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3AE166B06F1; Thu, 23 Nov 2023 13:06:31 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 35D2B6B06F2; Thu, 23 Nov 2023 13:06:31 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1FD616B06F3; Thu, 23 Nov 2023 13:06:31 -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 0BDA96B06F1 for ; Thu, 23 Nov 2023 13:06:31 -0500 (EST) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id C6A5E1A0134 for ; Thu, 23 Nov 2023 18:06:30 +0000 (UTC) X-FDA: 81489998940.01.2C55900 Received: from mail-pg1-f181.google.com (mail-pg1-f181.google.com [209.85.215.181]) by imf15.hostedemail.com (Postfix) with ESMTP id F289EA0028 for ; Thu, 23 Nov 2023 18:06:28 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=IkH6WFxP; spf=pass (imf15.hostedemail.com: domain of andreyknvl@gmail.com designates 209.85.215.181 as permitted sender) smtp.mailfrom=andreyknvl@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1700762789; 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=HOe1NePRnmjI5/xj2NE8BgAqPHEuVYA8qvj9b+OSxE4=; b=J1RBCbpXxIvoI02CtbopJuCWYJstIrhO2zRvmsqFN3OpYGG9IGNGi6l1tjmcewuEIlES9j wWHa2Gc0uFhTYCmpqsgm3i03SDW+sbTbGhnttiZZU199jbE5q4PCVgnpaoqr2W8Cg4ZqUc atsFrsjD3ncTI1hCLlQ8gUhF9nGHv9A= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1700762789; a=rsa-sha256; cv=none; b=n5Yko9lMaKo+dwc/UI0ziT8FR0N8+m0xzeKjZw08IRJXsEQuEZJd9nc1Qdbx/KHhhdUy4D 5DjbY62OsO1IUnWcdcegWpE0wI6hz+GxPRyoHNog8jw00ek27rN+K6lMfMCjsJ74HOr0dM 03uUSRu8phttWHtJc2ASWjlX3QNIZ5Q= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=IkH6WFxP; spf=pass (imf15.hostedemail.com: domain of andreyknvl@gmail.com designates 209.85.215.181 as permitted sender) smtp.mailfrom=andreyknvl@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-pg1-f181.google.com with SMTP id 41be03b00d2f7-5c229dabbb6so760737a12.0 for ; Thu, 23 Nov 2023 10:06:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700762788; x=1701367588; 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=HOe1NePRnmjI5/xj2NE8BgAqPHEuVYA8qvj9b+OSxE4=; b=IkH6WFxPTkSeUHyIHsf/sllxC29+JnuzKUJgrGqJ5tx41938pkVld5d7FMQzKB5dnc 7nZ5cca5uHHLYSOAKsa83wr7nOFtDMyk7zjOe2mnmn9+bz33B0MZXGyEc3/cx8B02Hp5 2TkFcsvFi5shBh/Git3RHwIf7RBbrhC37qeFBMje7Rb8Iqz2g2YGF9Lb+LnVQDGQgFA5 UQFrM8TJVK3yqxTkZtTCFoVikBrZWLJdB1CZ7ESFOqmK5yar5yQgdMUc63v34n3CEPVF iLofkn749qM22FNabcGS4TkflPHNIE76QocRnsLROAfP2sPJFD2iMuPJeP4snCKk01I8 aOlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700762788; x=1701367588; 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=HOe1NePRnmjI5/xj2NE8BgAqPHEuVYA8qvj9b+OSxE4=; b=Q85fotlkf/n5F4afYj5/3RB5Rvv33ibpBgD4WXDJAYYCIfeSyWxWE/poOm6Rr+cVtl m+MQJKx6cR98wWHtEkGRr9YBQsRU6kTMlR3zX+CZTJykGygKLjoTJtMN3EblaY6lFwtX Wndr/Y1BSyJ2IaaD82EAdy1xSYQReKq6PtZg61f38u49G/mOapL+6I9W5RVtgzo8JrbO AY+nm9e0SEat3qrxjihO0VWHpTPsfnwxF+Dlf0481ADqRFyop9u3BsFLMJEWbVkHGvu4 C2fGQPPGxTNNrnt4sYm9YDe4qyuMu0C/ONp7hd9kQr08lruOsF87T2SP5lunvi8MNvdt FTkg== X-Gm-Message-State: AOJu0Yz5eHEQLnLwzzZlyV3qWfrH5zaTyHvZxRgHa/RExwc8n51xB8+h TMDXvze8bdh1v5ojeNuX4VLqM+eIJNakL2HF4zk= X-Google-Smtp-Source: AGHT+IH2Pl70LHZpU8DuzcnGuR/bAKdUJiC1DPEm78lHJpvMtLkeUujE9tRpV4upVgM8fa4Mn/iiyks41B6H6pBWrAA= X-Received: by 2002:a17:90b:3a8d:b0:280:1a19:6dd5 with SMTP id om13-20020a17090b3a8d00b002801a196dd5mr162675pjb.36.1700762787678; Thu, 23 Nov 2023 10:06:27 -0800 (PST) MIME-Version: 1.0 References: <9752c5fc4763e7533a44a7c9368f056c47b52f34.1699297309.git.andreyknvl@google.com> In-Reply-To: From: Andrey Konovalov Date: Thu, 23 Nov 2023 19:06:16 +0100 Message-ID: Subject: Re: [PATCH RFC 14/20] mempool: introduce mempool_use_prealloc_only To: Marco Elver Cc: andrey.konovalov@linux.dev, Alexander Potapenko , Dmitry Vyukov , Andrey Ryabinin , kasan-dev@googlegroups.com, Evgenii Stepanov , Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrey Konovalov Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: fbdwuqstycna8fcum7yzgk3zsssitw6m X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: F289EA0028 X-Rspam-User: X-HE-Tag: 1700762788-844255 X-HE-Meta: U2FsdGVkX1+FEdo5w/rY15OqiL50IJ121RCe8mgAyNWrftrWM4FQbhHRQeL3p+i4Yc1KFGmc7aq4oBVL2ZqNLHoEPfaZVC6FKtkTIOJ1srG9x7DkEmcB2IvUxZ2arjWBZ7wUxUaxuE3PJ9HOAWsLWx4GeIzyItzhnvYKmiQNEBBrMGiPzwal+AL6q1o9JLVOhtBW359Wov95JxJ6bCgaa8/XCp2f42/pa8G14jCt4ItlWTvmBHGk8j/2jcy35jD6ta0nP1mt5legIVoqnXIuA1L+C8ItSBEvrrqdyflovaXxSENku8RCHHLxPdmSxdBCh0Jd2LDDLrzL5A+TEgFI3qIojJnTwWpv1zw5PlhZj0TAchJM2LVleCPlEEzYjyWMMoarBHZ9ttEvfH2w36qjT8djTDTJO6ksD4x7cfvPtOdczKmpdnglNI/W4duU5wgdva2dy0ffsgqrPCgqpdL3Z+WkGOwgFQ2PdsxURBQyIxqtq5uVYf6zMWU7FLyHNgeFrPhNb7CLOAtXVf/mO8tBEvYxE01gvYatlLwbZVk1+j13mlNZeoQIpqCqyEm6dD5+dE/BslLh+uor5gnEU631Sr7gclsbsdpEdHHxUJJOLCzV+DFeM+AweekchPRI4RGo7UkbDAPUnzFDJ+nbTCl1/+Sabg/JINCgyQHJodZRw7XiBZtPfXWTjCYclt+5mQzm6ge6seDIJyQGQc66EH/w/ssXBSHmCDFuhLhGpZN0a9G6nLpkmMCJfPZlpweKEMaLdh5nJH0jRxLjKIb8BxyW/ZGzQriDMTrvYC4eDvLMcP2nLZmUwHUjLTN3cvqjI9Di0FU4DxavExoQoZFW7syueievwNxYlIiyZZnTe/oT3CyuEkb/4Uqf/l+GaevtYoMeYDVaQx4TwqHYF0hzxc3RdWm0Q3Zz1FTBuYjKDMl8prLKuiy15O8+9iKywuYYECxKx+IuF5K2AbfZYgqKF73 MQX7I0Mm 0yPpRiIKrPUrwVNoDFJRlQfnBeGkq1VH3Th6ADH/HkAuwwSZuP7nwRDmfD8swXCTbXfUPY1nVa6OR6qeEtIfU0FevTpZbcbcFF/J4dm+R++yvBqEWz10NDoag9nDEdq+mQcWSqY7XpqoQY5HNRo5Kyo29jiR+sGNrS/tTOqffiGBPWwgRuQRESrI5Vil/mUDE6tH+TD+FMghqEtFahxKWS6y8d37FEiPtSEa9z0LuNYrxuookwxzOu7HDhcCnjWBlgYW/oZyvrTtSyBpwFYtmVfOuQSOxYddrirkDF/yYht9tgjwKQB3lzIRGJgcymZXKC42y1dgtKsZRg769YO2ptl3MwR5CVrrt1mofUqbbjsEaNKg65usYbXNPoCCZGikwEBrU0hoC9hH6N9WdjSKV1ZVFDSYiCxIlpiDB2gvu9sA8PI5eYxD3mSkZ8ggVhFa3BS6Jd9B4Od+r5KHMzcZZhwyMxDgxCJw2A4pDD23UsIlvHbSgoveOtYkdsA== 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 Wed, Nov 22, 2023 at 6:21=E2=80=AFPM Marco Elver wrot= e: > > On Mon, Nov 06, 2023 at 09:10PM +0100, andrey.konovalov@linux.dev wrote: > > From: Andrey Konovalov > > > > Introduce a new mempool_use_prealloc_only API that tells the mempool to > > only use the elements preallocated during the mempool's creation and to > > not attempt allocating new ones. > > > > This API is required to test the KASAN poisoning/unpoisoning functinali= ty > > in KASAN tests, but it might be also useful on its own. > > > > Signed-off-by: Andrey Konovalov > > --- > > include/linux/mempool.h | 2 ++ > > mm/mempool.c | 27 ++++++++++++++++++++++++--- > > 2 files changed, 26 insertions(+), 3 deletions(-) > > > > diff --git a/include/linux/mempool.h b/include/linux/mempool.h > > index 4aae6c06c5f2..822adf1e7567 100644 > > --- a/include/linux/mempool.h > > +++ b/include/linux/mempool.h > > @@ -18,6 +18,7 @@ typedef struct mempool_s { > > int min_nr; /* nr of elements at *elements */ > > int curr_nr; /* Current nr of elements at *elements */ > > void **elements; > > + bool use_prealloc_only; /* Use only preallocated elements */ > > This increases the struct size from 56 to 64 bytes (64 bit arch). > mempool_t is embedded in lots of other larger structs, and this may > result in some unwanted bloat. > > Is there a way to achieve the same thing without adding a new bool to > the mempool struct? We could split out the part of mempool_alloc that uses preallocated elements without what waiting part and expose it in another API function named something like mempool_alloc_preallocated. Would that be better?