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 B5D13C3ABC9 for ; Fri, 9 May 2025 23:29:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9DC8D8E0011; Fri, 9 May 2025 19:29:15 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 962C18E000E; Fri, 9 May 2025 19:29:15 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 803348E0011; Fri, 9 May 2025 19:29:15 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 608288E000E for ; Fri, 9 May 2025 19:29:15 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 03687CC03B for ; Fri, 9 May 2025 23:29:16 +0000 (UTC) X-FDA: 83424962754.06.A99E865 Received: from out-170.mta0.migadu.com (out-170.mta0.migadu.com [91.218.175.170]) by imf24.hostedemail.com (Postfix) with ESMTP id 2550018000C for ; Fri, 9 May 2025 23:29:14 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=NSMF+qwX; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf24.hostedemail.com: domain of shakeel.butt@linux.dev designates 91.218.175.170 as permitted sender) smtp.mailfrom=shakeel.butt@linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1746833355; a=rsa-sha256; cv=none; b=ASYfcE16W9ChkGHVeCDwi356PteAO8uVTWbkqX9t/dF+GtWjvOUSPO3/DScVkkWFW0QHuk hOFzS7E2rQANL06M398ueKLBibi15u1zBE8TPsy+o+olRUeRDhZsKQYAhJs/F1d0QGqr7c X4OjENMCMpeK6d1fAkoEPiD5azl7k7M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1746833355; 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-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=J4VBELZKVh9c+NN05lvMDVzh5vrV8L5R0K09W43K4So=; b=h/CQ7CDXg7EU7muiqv8wDX7y2MQmbOn68jM8d1XPnUNpd+j6YF6S174Gx9QuMK8jrkhtpW +j0DRZBc0HiRGqngcch0JuHv3aQ9vwdUhQY+XYXcZh5EXGk9dMs6gFmnNlvHQU94D0mUT3 Ep1d0OnSXCgCwZXTpXrWoAC+omZc9zc= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=NSMF+qwX; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf24.hostedemail.com: domain of shakeel.butt@linux.dev designates 91.218.175.170 as permitted sender) smtp.mailfrom=shakeel.butt@linux.dev X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1746833352; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=J4VBELZKVh9c+NN05lvMDVzh5vrV8L5R0K09W43K4So=; b=NSMF+qwXdjyonU75kVK3drmkVY72aepNgUdyyTMjA3GlllkY3BKuGMwnb83kE6Qe/joeK6 Ugsuoi8uALx2oFJgDiw5BrzxWNpBVn39/ZEQcdyz6wIf49PNG88TACXc0idbiVvJLoHvdC 77k+BVstMcpgReG0AAAkvt4ExOdO+Dg= From: Shakeel Butt To: Andrew Morton Cc: Johannes Weiner , Michal Hocko , Roman Gushchin , Muchun Song , Vlastimil Babka , Alexei Starovoitov , Sebastian Andrzej Siewior , bpf@vger.kernel.org, linux-mm@kvack.org, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org, Meta kernel team Subject: [PATCH 0/4] memcg: nmi-safe kmem charging Date: Fri, 9 May 2025 16:28:55 -0700 Message-ID: <20250509232859.657525-1-shakeel.butt@linux.dev> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Migadu-Flow: FLOW_OUT X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 2550018000C X-Stat-Signature: y7crza8pggre68ro5tm9g1gspb88eeuf X-Rspam-User: X-HE-Tag: 1746833354-506176 X-HE-Meta: U2FsdGVkX1/qaFmXHDkT0PSBAEYjaIcpwGaeCV8hVntXbgR1bzsJG94b6cgBo9UEXMd9SxkbavRjTBUZwoRu+bFloFOBNWd03OkMisYmfePeERj32qRPAuVgslKugWBPMf3oco0kaHnGHJWV9OBh/qWPcrUbfK5du8phByJ0zopxCDbzgzcrgjkoHIlkToZ56kWLjg0k773r2T1pRj3Ojqu4GMSVTlAU52+lSnmpU3iH8Ji3c9yyiHX8dqWn2+DR815zkBnqP8ysQKiUhUGYGs5hFZa20izqQdPaaVZA78yB/rUn3W3IQY/8MfJz5QN5xlX7q6bUwUV6etxsqN+1y5F2FaRgw3kNrD5UjWwemkTJCqtBQDLBvzqqmHwGuamgBKJ2BIMaVyI9WyGvrZZ8Oz4g0Htxs88LPT6EDEuhEOFyDPema8uAg2PrbgsYZ/w/05ey/c3X3ihcrKtPnttsHPMgNk4hhqB1jowOz5YDDt0UdsNxQdgf94J49573LY1wUvfoeMyq8YNo48ZpLbtOlWTP+gOzNfUO00TwEFEQTy8dCBx1ilbpVoV0bqhjUTnk9+up4h8oGlYVKtV7jXCIl5tz577EJeMYPpBQZ3B0OKVA+p3QXpZBiPG7yg2miX4hFUIwvQ2XGSp5UrTfwsVYNwVjlka/W/MyaBAW+qajgle791pNJFddZVBWalArz9/1XZXZ6BiAG2XI+WA5m7FsvPhGr+wzJh13aFaCkdMvkDdY5ueh9FVMwAMQyR+l3AJjQBV20EZ9s+RDUcqGIKGLFUp0FOSBu2CslUtJNs64TU5trYF6JKP3+j1pKEzzS9xuFnX9msHTYNZcQ4e6goqppvl8RsC6tJgBuex7TFmqNtUwGp6Cps6Q3kYNaBeUeWAergsT2dw9DdwKruJ5TPuCCDKUS1f2YVxTEZ0XCaVReH/vAU4EG8IRWzSnv/ovYgUNVWEEGEIedUUW6tI2qDH QNA217Ao jvw4DZoGAr3+xHYTz4d8l/Mv4c+in81GnEKrEpiQqRlmbwAr3AyXm3dgyUrTGrV7W+hIjIZTn7IHjWxy9X7GzXAS+XuSYNqcSv0anw93hIVERciSP1AbC4y0m1TjWo3XQdWOsLICo71KX5EKxKamBi//AIDb8IWkzRzoUGfTA0eKkEkw= 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: BPF programs can trigger memcg charged kernel allocations in nmi context. However memcg charging infra for kernel memory is not equipped to handle nmi context. This series adds support for kernel memory charging for nmi context. The initial prototype tried to make memcg charging infra for kernel memory re-entrant against irq and nmi. However upon realizing that this_cpu_* operations are not safe on all architectures (Tejun), this series took a different approach targeting only nmi context. Since the number of stats that are updated in kernel memory charging path are 3, this series added special handling of those stats in nmi context rather than making all >100 memcg stats nmi safe. There will be a followup series which will make kernel memory charging reentrant for irq and will be able to do without disabling irqs. We ran network intensive workload on this series and have not seen any significant performance differences with and without the series. Shakeel Butt (4): memcg: add infra for nmi safe memcg stats memcg: add nmi-safe update for MEMCG_KMEM memcg: nmi-safe slab stats updates memcg: make objcg charging nmi safe include/linux/memcontrol.h | 6 +++ mm/memcontrol.c | 87 +++++++++++++++++++++++++++++++++++--- 2 files changed, 88 insertions(+), 5 deletions(-) -- 2.47.1