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 80594C54E60 for ; Fri, 8 Mar 2024 18:26:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 11FA16B03E4; Fri, 8 Mar 2024 13:26:17 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 0A9146B03E5; Fri, 8 Mar 2024 13:26:17 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E8BC56B03E6; Fri, 8 Mar 2024 13:26:16 -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 CFC0A6B03E4 for ; Fri, 8 Mar 2024 13:26:16 -0500 (EST) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 834AC4079C for ; Fri, 8 Mar 2024 18:26:16 +0000 (UTC) X-FDA: 81874701552.17.96A4328 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf15.hostedemail.com (Postfix) with ESMTP id 21678A0011 for ; Fri, 8 Mar 2024 18:26:13 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=fBYZ4fWj; dmarc=none; spf=none (imf15.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1709922375; a=rsa-sha256; cv=none; b=s8Qy6Zz2mW4v1EWmNHRmEOqk/bXoUbMZyvlgzPafStns8E1gHeVompqSUF3NjrmIHfoOun YZRRbDt+fYQVNmpEzwVfO2XmdavgEwuDTLV64A72hKtECjnyU+WRCEXiwKwzWSuLedHjSL OuSGh3QBWCY4XIIjdbLpdmm70jU7MYo= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=fBYZ4fWj; dmarc=none; spf=none (imf15.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1709922375; 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=XzT72xCtIE9va1rXJk6n6pcqLrFrrhAwQ+PSp8w7pr8=; b=AR6wBM7GGWDD1zLBKVJ/GM9Ay6LXGizc7diNPQc22G3vVYlsDzp6uM/LDmgWCKRUc1KTzs S7OQ4svbS9skIqP34yRyk1abZPjMLwSptW3aplRaAAjSiMFhQDxx7m1QgwzoA8p96T0UJQ zbrmV4o9xhRBApCiQc/bKdOY6/PQA+U= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=XzT72xCtIE9va1rXJk6n6pcqLrFrrhAwQ+PSp8w7pr8=; b=fBYZ4fWjiL8YG3LNzFNK1JcegY i3EvVhDCLIUeuHJ/NDEb74JbpZm/4a5X1uBNeYD1jAHRnEwytizIfJ8I+b63CZX2CYfNQsRNoMb9f iLeBLXmWt8OXH00y7qzw3Xv+cgv51qNrP3vzJ4GlRYRhRRGv3DQtC3FVK93B54Fjbnlj7iF73wN+P nalkVNku/8yBIT85frKYqixgpfM4oO8IzHp8n51r7cNsHVOZEjw9wyotDhtJJ5p3HjMeh6kdDT54z peJp8n0xeZNluR3togQpKprIWy0lbR73DSar5hhE68xQ370uCt6N9F52TgL3TKxVHTy/e+G+8xYpW W99g1AOQ==; Received: from willy by casper.infradead.org with local (Exim 4.97.1 #2 (Red Hat Linux)) id 1riev5-0000000C40u-3U9U; Fri, 08 Mar 2024 18:26:11 +0000 Date: Fri, 8 Mar 2024 18:26:11 +0000 From: Matthew Wilcox To: "Christoph Lameter (Ampere)" Cc: Kent Overstreet , linux-mm@kvack.org, Vlastimil Babka , Andrew Morton , Pekka Enberg , David Rientjes , Roman Gushchin , Hyeonggon Yoo <42.hyeyoo@gmail.com> Subject: Re: [PATCH] mm/slub: Make __ksize() faster Message-ID: References: <20240308031325.218676-1-kent.overstreet@linux.dev> <6iv6cmclbkx4vrhpohjlg6r3pf7cf3nsgiydycmsmlhsrjo4bd@bohvkgia6wyx> <9b609df3-b4af-e0fa-dcbe-1358cd317194@gentwo.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <9b609df3-b4af-e0fa-dcbe-1358cd317194@gentwo.org> X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 21678A0011 X-Stat-Signature: foa7kpj5hq71pe6o47rwrhdsibpe6hz7 X-HE-Tag: 1709922373-17702 X-HE-Meta: U2FsdGVkX1+TdzrjTskeHfK7yJxIHzXDXG28RDwljXyq5QGRykOSVtOkmeY+0pDdNjRaLFlhkR9t7ZdECAQDoP9TX1mTpfgY9uXlSD+r4kawZ8MZPKq1xg/6Bj5Oof9K4P+AUsDHaR1G2A5+xrP8EvWdNBk/N7xFv7R/6je7d3izuOtG6trDA1kRYNvrzHMERFsXc4c6ehe2U3YNnPBlDF5eB29J5vmEAjaayQyyxn48seHEVuQwEMPvxqXx6jsyT+kTiP1rj0VScLtkcqHMq+LNL9YHd09bKSFq0YVeStaTkWU6Yz0wh9/lCTzkwUlQZxi7F5xE3OzuCSeeJAr6jH2lCh8jn1/u5CynHaVd8Sonm2Hfitxe2CbxuQoSo01YruXbbmIbfSBrTAsffUcSnumRLhy1VV7VGPB0W10NfOgTOlguhK1RAW5QSOBntXAp6XYhFIXxJaS/0a7Vph2deRst+1DeAgSqY52PeIlqyN1akeRURacSWsfCmXPKDVsNZXzWNeqx/wImnYpVfyp0fqM8wkA8UjBqeANtowpixBknugtoBGa9I8W0x91yT1UFgHkvjyRi1Xyfosr/IeRhwnbBczDtqxw8lefikM17wc6wAsBX9UY+/efe8ElZS3Lh9WynrW+okg3tXcI+JOHD99R3TGBEDkVsyNDfOSQOScj7ZA9qNQ3SFz1helQ5aNikwJUvbjJUvEHI7G5K11IP8KoNujKk48xu2wc3T9+pmAOSkN6hukm/pf6GJLnwQAkTwusdCP1K1PyG4z+d7VOq1sxHBsIXXxklfXmh5Mo6SRnEHgWDnFO0qaGTtnQqE9zR2yZB7eCaxrQoXWzv7hStsU1dkkxfet4AHY7JSSk68sraPxUrdJf55y62MyyT2dvttaM7GWWBbYdXy+N0BYA48FTuAx7RifkrFE+aIK1PiGOpvMoon8K+ZPvW4/hEmSYIp6nRNT1N0iTfT8iYKRb uWPmMebc NVMNT9eSA5TOal1MZCla+ka2krDJowvvLkmiGLvz+7wPgkCUZgYU8E6IiaBGSWY8NlGIptajC1zhiM2PT6p2ejpZjKa/OMcjYVYpJ4AT9gTso/ub+CSdxFPKsAaVIQi3FO2fFbnutZxY9ye0Gs9p7yWpWW4fepAlzOCH/yr8G7DbP17Ay8tmzA+cPROyq2yZ00b8YCc0XuY3ug2OPcXk9yELo9V4IOoaGJZnNWb1McEcOKXF3aldwRggE/bF5jozsxA/G 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 Fri, Mar 08, 2024 at 09:12:06AM -0800, Christoph Lameter (Ampere) wrote: > > > On Fri, Mar 08, 2024 at 11:27:32AM -0500, Kent Overstreet wrote: > > > On Fri, Mar 08, 2024 at 02:58:48PM +0000, Matthew Wilcox wrote: > > > > There are potentiually better uses for those bits. We could turn > > > > folio_test_slab() into a PageType test, freeing up a page flag. > > > > > > They overlap _mapcount, did you figure out how to use that for a > > > PageType enum? > > > > In 2018 ... 6e292b9be7f4358985ce33ae1f59ab30a8c09e08 > > > > This seems to be 32 bit field. We could segment that into two unsigned > shorts. In fact any operation on a slab larger than 2xPAGE_SIZE is directly > turned into a page allocator call bypassing slub. So you only need 0 ... 2 * > PAGE_SIZE for the range of the int. Are there any CPUs with PAGE_SIZE > 65535? ;-) It could, just about, be done. Although not on Hexagon with its crazy 256kB page. Right now, I reserve 0xf000007f to catch over/underflow, although this is perhaps excessive and I could get away with just 0x8000007f. That leaves 24 bits. We've currently got 4 in use, and I want to add two more (Slab and HugeTLB), so there's 18 bits remaining. So is it really worth burning all the remaining bits on implementing ksize with one fewer pointer dereference, given that struct kmem_cache is read-mostly and should live in the CPU cache quite well?