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 0E9EAC4345F for ; Mon, 22 Apr 2024 14:23:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 996FA6B0087; Mon, 22 Apr 2024 10:23:26 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 946FD6B0089; Mon, 22 Apr 2024 10:23:26 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 80F836B008C; Mon, 22 Apr 2024 10:23:26 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 61EC36B0087 for ; Mon, 22 Apr 2024 10:23:26 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 05D111C07BD for ; Mon, 22 Apr 2024 14:23:26 +0000 (UTC) X-FDA: 82037385612.29.56D588D Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf04.hostedemail.com (Postfix) with ESMTP id 03A6840005 for ; Mon, 22 Apr 2024 14:23:23 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=aQ9BTYMT; spf=none (imf04.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1713795804; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding:in-reply-to: references:dkim-signature; bh=rK5FhpXt/khaWrrNq2MaDZfyRD2+4UQ29+0Ab00roio=; b=MrViRhF8SIqz3B3eURZQw/oZCAgv3a3QAFFVEOiTrG/pl64r2PkR+q3Qv9pNMstaJkqFRN R0dSWp6wE1Go18/+kke/Wqp5tqv5JRa15uUOm0pYsBQXrsE7Xs4mq5BVtvbvVHj/WOjDMZ 1MLMK1XV10InHBcaR7DDF4ulILdBXQo= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1713795804; a=rsa-sha256; cv=none; b=bKgY3kAxx81vMEXMmimuqUEsRC/8AP5mVNQ/PNUzqR0iQclF06+KaBXMvpMrlJEvkYU+Dj simeGHrm6WS5DGOoFJVArgG1L5EBgYpc5YoZpS+YO2qoiuLl+HXXGhfWdNKZUCgBGAOSWZ QRzZf9XQMmsrvG+o/3QlQVY45Ko5hwk= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=aQ9BTYMT; spf=none (imf04.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Type:MIME-Version:Message-ID: Subject:To:From:Date:Sender:Reply-To:Cc:Content-Transfer-Encoding:Content-ID: Content-Description:In-Reply-To:References; bh=rK5FhpXt/khaWrrNq2MaDZfyRD2+4UQ29+0Ab00roio=; b=aQ9BTYMTVxV6zjnUGaV45KzN8+ TdTOWcy8jNFGlo2+VQjKWSolIiQm/Fs3m2wtFTe80xwsJwqjLcD6pNedPemvoU9cqA2oSbZK3BfLn rCafgv7OGOb+yh56kjk1mtwgqCbZkDN/arC5ThB3klsN1OPlQ8pnTMAuPydOqbInwYZMNLfbIEtIk 9gBFV0eWENJoRNoThDZKQLvrw3m1SfLrBbDhZcYDduGfHgoT9oh2s3W3n1kiV8KXRiKPf46UvXGHH 2TJv5pPH2wF9aPai7Y3xXnUsnjTDZ5jvNfz8qetWcW+TXabkIlSH1WuigTLpEkB6HvPcPHqN0fVKE JtM28bLg==; Received: from willy by casper.infradead.org with local (Exim 4.97.1 #2 (Red Hat Linux)) id 1ryuZl-0000000ENa0-0xsU; Mon, 22 Apr 2024 14:23:21 +0000 Date: Mon, 22 Apr 2024 15:23:21 +0100 From: Matthew Wilcox To: lsf-pc@lists.linux-foundation.org, linux-mm@kvack.org Subject: [LSF/MM/BPF TOPIC] SLAB BOF Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Stat-Signature: 35s8h5y3a1xjkz5sn4gnz6kwyusu7e3b X-Rspamd-Queue-Id: 03A6840005 X-Rspamd-Server: rspam06 X-Rspam-User: X-HE-Tag: 1713795803-528833 X-HE-Meta: U2FsdGVkX1/f6bk2fcmfZdVox/3poZQ7PmjQRIz9PxDzbK/O24PXB/EVtOxzFVAM9bw3pbbZZHr/6Tgb5CC8t1tt5dpduvJz48iDfKy40idXwtv/CPJx8bdiamEPgIFyThehl5W0L7fCOljrtsH9iO3/WjmI9y+wCtI9ziqQm1qoPHCaGv1SMm0McmNxkCxqoRN4ZAHkFti3NNqV8WFWFsX66VLvtlh1A3xuXRvTc3w1hlHU416uqofNH0T9CsJZqvuu7nS93pQpPkuWoMQn/juDsptgjVVioPY/hVGE2mpS5uXL0MxMMer2aFpzaycnAKJIKzsfDrCnlJn3S/mRmYrKhgt81X8ikuYsqQ76+Cnpsqfc+dQbhdJDW3r+7xe84HmNoIYcbbRNcvyWVKB5YVq6KM7dJ7Ae0jsdkKh/hXgeKJqSUyklcvjbJdDOjUY7xPagPJWxNaKAwtRBDZDaxQBPJo2GRQXTv8yZcyh/sMjyq1dtrSuxjWHrDJJE4nfpuPcMeKIvE31fQMDbmxsMyl8i0xYswPwmPqoQKVNlZDEeBaCcnGExYvskMwMA1Dr9xfeOA2RCoJcQPbxucCag9U0CQ0M+lFoeWtr5AIFeuy+QzHlRotceWFpiqjqmNvYrwR/Ee4p3dhVszYVxCw20/CA8rI67+80W/tW2oke/wbMYLClDfc7iHAEEI/NdlYAEuk5r16UwiJx3/xKTSoSqUlSgJSV2SFqG+zodq7iROezx8oWwPPQq0xcB5V22XSOTTiS/Rk72M4z5NV/pbj++d+vg7jsGMhvXCwwbAxajVl63JzGYdWEFnaGnSbBX16x19qqtYgrt6AC4A4iMYXaDvtKIM1QECcOY+4UFTM+8ZOT6ifwUp0Uu5A== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000035, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: I have a fairly radical idea for a new slab allocator design which I want to sit down with Vlastimil and a whiteboard to flesh out. Obviously the two of us could just sneak off somewhere, but it'd probably make more sense to schedule this as a BOF. The basic idea is to decouple the objects from the page they reside in. Instead of having a struct slab to organise the objects on this page, we organise the objects into sheaves. A sheaf always contains objects from the same NUMA node, but not necessarily the same page. For each kmem_cache, there is a per-NUMA-node barn which the per-CPU front end of the slab allocator will request full sheaves from and give full sheaves back to. If we RCU-free an object, that goes to the per-CPU rcu-freeing sheaf, which is handed to RCU once full. The obvious objection to all of this is that the story for reclaiming pages from slab is pretty awful. I'd hope to brainstorm some idea for improving that (perhaps in the construction of the barn where we could pull sheaves part and put them back together in some kind of order?)