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 53E22C3ABBE for ; Tue, 6 May 2025 23:12:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 77EF46B0089; Tue, 6 May 2025 19:12:07 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 72CE16B008A; Tue, 6 May 2025 19:12:07 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5CDB66B008C; Tue, 6 May 2025 19:12:07 -0400 (EDT) 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 3E6356B0089 for ; Tue, 6 May 2025 19:12:07 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 3BC1B1602CA for ; Tue, 6 May 2025 23:12:08 +0000 (UTC) X-FDA: 83414033136.21.DC1A9E8 Received: from mail-qt1-f169.google.com (mail-qt1-f169.google.com [209.85.160.169]) by imf27.hostedemail.com (Postfix) with ESMTP id 65C3840009 for ; Tue, 6 May 2025 23:12:06 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=fa39JnVa; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf27.hostedemail.com: domain of surenb@google.com designates 209.85.160.169 as permitted sender) smtp.mailfrom=surenb@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1746573126; a=rsa-sha256; cv=none; b=ot0XeRghsYvasTqG2pVUcihSuO2RYpKWLky3emn+2SCfE7MRszm1TLc/DyemQfeT+mcqRR 3vWe+MdKlIjyJNB1YgIUVLIwzn6SskM3REMjFbVWs2wlI9dB85T6ywNdsigStbdEpg5kpf 8hqZzLS9AOig/Di50FjLsTsmQ/YpHbY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1746573126; 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=agorwzOKkNl2bLSeF/7IlmE+V7phw2XUQ0HMypfaz54=; b=HmN0gBDRVP6kgbzVb0tPN75xmN/aY1gVi9USMA+it1FgeMpmkxaE3DYLQN8hVVWEJzDY57 xU6jfNTLNGUo87FAyVK776exKMsT4gFkeB2sxjUlKru46LJARsRuJLwhb932w/uqRCBoYs n+hlMkzY89yJc/KOWVTROFb/FuvNXiQ= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=fa39JnVa; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf27.hostedemail.com: domain of surenb@google.com designates 209.85.160.169 as permitted sender) smtp.mailfrom=surenb@google.com Received: by mail-qt1-f169.google.com with SMTP id d75a77b69052e-47e9fea29easo61901cf.1 for ; Tue, 06 May 2025 16:12:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1746573125; x=1747177925; 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=agorwzOKkNl2bLSeF/7IlmE+V7phw2XUQ0HMypfaz54=; b=fa39JnVaaaYKsjTQGsjxvdYnOz3NHBAiGWyzJbiutWUY/5ZbaVLp2ADmBeRmSQRarv nEPXc03Mvzq8yrkHJ+LKyrJuggYKdylvldCpGhAw3stXB4NuVFzpWUi3pa+WM2tsnNVo gsvvu2XSZrBEE4qKHJho2graU3PK+dgyB47Y+oVEIgojsgCS9Z6BPEUwAjbubuit2zqf fL9LdN5fhDZCQUGml91YrK8mzW4jK1ULiwjHqxPS2VYXXsur83m+zFAqvlHMx29i+Dnx oOJUfuJxIUDj0i54U0p33GOe5tLe/1ZTT4m7Lw+fI8g2+cE2920TgpXAz5E6B9Htlzgu 0Ofg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746573125; x=1747177925; 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=agorwzOKkNl2bLSeF/7IlmE+V7phw2XUQ0HMypfaz54=; b=Zz75GPeM2fgAPj3fb+KkLjBXanXDxk6+70tGGWXEC2H9aQnVhuGPEKsa7puRtY49AD 0hfUslsYyJiwg2NhGJYiEuMjgknlzGVViMpQqnC8jvaaJIS8laOk2ADpJNyKnR/Au7By ck+J8PIadUxuK3+2CTTv9VssFl3/2siCORl42pGKALofLEwbWdStEHuNElm3RPXmOCwB Ekc6HToQcHCxdCazgJ7LDsfPVFkS5VUN+KKw6VlLzs3Mzij8VV1qLP0fB4PFQX2BGtp1 /psb++28Ia0rkIHMrR9G5Ho+gxeh2zC2AKCYCUMKu/ivNNCTgvJgbkGHOJaTiTEn5Cst 1J4g== X-Forwarded-Encrypted: i=1; AJvYcCXhTf3dqWH6hOmZCaZY/zvERKAn28QC3q4Tb/TPisQs4ongiz/+0CN4xJlhxnRDQQVePfNTnUn8uw==@kvack.org X-Gm-Message-State: AOJu0Yx4k30Yed5FOuTPl25MCoLCMvkPvARo1HkDYrC4QuQ5V0zP/FOp //GLocggI13rNZJo4TKSi6TZwBlFzYJF1TSAKBmXZujknkY3rTIMwHohuV3SV6wtD+G9uirccwT pzWSDHwc4NGuf7meuPujDFGgy/pA+4nXuXbsa X-Gm-Gg: ASbGncstvsBNhqyDeb08or6NQisNzpalWbW+JnBNYH1FV8lz++2AgKqQcdZzCbHH+WF ur5C2OPt5V3P877GP0/EskewU0ligMlPOteIRE25DpioenfXp2pCfA6S2XZ9n2ov1IsTTO1mC9L gw26CA4EMYDo7IpLMNidbb5+3rcL69xtkc+CkyMbOOXXDYM83Y138= X-Google-Smtp-Source: AGHT+IFbShZZZfIuHrP7fApmJ/NglX0mCvq3s9SyH/Sw0oPfpX4vgFb/BiEV9JWcUUZinJzgBg+6BBFWxj+jR27k190= X-Received: by 2002:a05:622a:198d:b0:476:63cc:70bb with SMTP id d75a77b69052e-4924b698c82mr491171cf.9.1746573125152; Tue, 06 May 2025 16:12:05 -0700 (PDT) MIME-Version: 1.0 References: <20250425-slub-percpu-caches-v4-0-8a636982b4a4@suse.cz> <20250425-slub-percpu-caches-v4-1-8a636982b4a4@suse.cz> <142aeeb5-d6d8-84ca-e7a2-ba564185c565@gentwo.org> <4fa1f4fb-4148-45e8-930c-1175ce212cab@suse.cz> In-Reply-To: From: Suren Baghdasaryan Date: Tue, 6 May 2025 16:11:54 -0700 X-Gm-Features: ATxdqUHiBt_fLF1XOJoh8fErb-NdUH14-IsSD5sl-jtrxzK5ph7sOZjNCwaKlJQ Message-ID: Subject: Re: [PATCH v4 1/9] slab: add opt-in caching layer of percpu sheaves To: Vlastimil Babka Cc: "Christoph Lameter (Ampere)" , "Liam R. Howlett" , David Rientjes , Roman Gushchin , Harry Yoo , Uladzislau Rezki , linux-mm@kvack.org, linux-kernel@vger.kernel.org, rcu@vger.kernel.org, maple-tree@lists.infradead.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 65C3840009 X-Stat-Signature: j687oj1hd6dmx9uo7d9gtmt9ifwz7c5p X-Rspam-User: X-HE-Tag: 1746573126-11185 X-HE-Meta: U2FsdGVkX1+0/G9J0lCNz/LwjeIiPmuabFYMbJ7AqLw+fTKvAW8FuLOba+nCquAnn3hW8SAjQkZU5rko6HmN+7ruTWQxJkfGB+iXc2wSG0tmaZ9NfX2uALjiMSSbKTjDXmwehzm5U5Sk1Tp14ExKuUEqpHtclp+AZx+dyczc8k8LObjR++zofocTr/UwzjWHNI0S+C6mmoKFTBTZxIkTQPuuttWCY91DBL5j0bLdOfckEH6Pwj7r0znzHvYNxqVw9bkiwLwlhnmImB+aIj4YAYjlIDNNzYbjI2eId6RelG6vjn+11lHBFzvcL6wr9PxdkN7GHU46mtf2Ns81g1RafeVdsiD3H4M42zsySi5psx2ijre6W2EMWxV8thCwEr7hzbQHHi/M1PNkombedMY0iZILKDnwbst0E4JOvwDLyTsqpAOuY+P23zUDCHNcfhb3raewIApToxQ3lqaaDOVhg0CILnUso3rvXFE98yKlavK5WSGm94xHq/oRvMyYn0pR9hjm4iCl59Fg5Jy3G7fzhYv0p4SE+EgwmOL2bhz7yoWK8hN8BGTWVsDWedsZSR/dAgzAXnzlvXx4t3aSy2axcGunFJIvVrru2q/MTA1+nbUMEcTWoxCbtJ0t71ptBYaJ1wvrtxPbpF5pOmYEl7cuwIY+xJnwBjYRH2HFjXZzsNlHn2/+upJC4JWemvMXUTcOR8gWmLH7dU6PgKp+LdN7cOqU3EYx8CvEMuoFyXbwO8IluJ0RAY54BrCqUAKoqR8Hw5z/sY1t3EPGWe52avBXRDiuBM+eKuDyIMjWg1VeJ/fTnMSrg6ttGfJd4xXgejnQ1WMKw68qrVazxdahShxH0mfX4X+ZeDgs77N/F2CwdCUCqFO4jV5MKrbp7GYaZHu/oW9TlXKBalYKDjc0UkKTtKlReTAWOnwy4OoVIYwfjw94Fy4FhX7UqTdQNwEo8AvxgF9W+z189EE1KumH8Fw 7TDf509I PuC7Dpq+k8urosD8YLqwesAeCqT7WtiQ8HVpRZlWr6BdPNrPPA8fi3cGf+rojEP4xh1NQo98iLctsJdINUzJWBxakHaz5EhuNTlDIsCedYFGnEqduRMDeUrrcoxSkG0UfwcKuZiMZfdjHhNrSTx586CtiRAOPnVjP4GBueNm1DZfymNBDAs+IYEkfc4jUUXtRFomf1GALx4Yltmsob+aPUXR/9KbezquKePLFrAZ54Ts185xt/xN2IblrI3j88Cotz6gpSnR41ze22FjOt4hxRx472MiUYZVErrjXurgMU7FszJw= 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, May 6, 2025 at 10:32=E2=80=AFAM Suren Baghdasaryan wrote: > > On Mon, Apr 28, 2025 at 12:01=E2=80=AFAM Vlastimil Babka = wrote: > > > > On 4/25/25 19:31, Christoph Lameter (Ampere) wrote: > > > On Fri, 25 Apr 2025, Vlastimil Babka wrote: > > > > > >> @@ -4195,7 +4793,11 @@ static __fastpath_inline void *slab_alloc_nod= e(struct kmem_cache *s, struct list > > >> if (unlikely(object)) > > >> goto out; > > >> > > >> - object =3D __slab_alloc_node(s, gfpflags, node, addr, orig_size= ); > > >> + if (s->cpu_sheaves && node =3D=3D NUMA_NO_NODE) > > >> + object =3D alloc_from_pcs(s, gfpflags); > > > > > > The node to use is determined in __slab_alloc_node() only based on th= e > > > memory policy etc. NUMA_NO_NODE allocations can be redirected by memo= ry > > > policies and this check disables it. > > > > To handle that, alloc_from_pcs() contains this: > > > > #ifdef CONFIG_NUMA > > if (static_branch_unlikely(&strict_numa)) { > > if (current->mempolicy) > > return NULL; > > } > > #endif > > > > And so there will be a fallback. It doesn't (currently) try to evaluate= if > > the local node is compatible as this is before taking the local lock (a= nd > > thus preventing migration). > > > > > > >> @@ -4653,7 +5483,10 @@ void slab_free(struct kmem_cache *s, struct s= lab *slab, void *object, > > >> memcg_slab_free_hook(s, slab, &object, 1); > > >> alloc_tagging_slab_free_hook(s, slab, &object, 1); > > >> > > >> - if (likely(slab_free_hook(s, object, slab_want_init_on_free(s),= false))) > > >> + if (unlikely(!slab_free_hook(s, object, slab_want_init_on_free(= s), false))) > > >> + return; > > >> + > > >> + if (!s->cpu_sheaves || !free_to_pcs(s, object)) > > >> do_slab_free(s, slab, object, object, 1, addr); > > >> } > > > > > > We free to pcs even if the object is remote? > > Overall the patch LGTM but I would like to hear the answer to this > question too, please. Ah, I reached the last patch and found the answer there: https://lore.kernel.org/all/c60ae681-6027-0626-8d4e-5833982bf1f0@gentwo.org= / > > > > > >