From nobody Sat Feb 7 15:12:31 2026 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8ED3830AAC2 for ; Fri, 14 Nov 2025 10:03:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=195.135.223.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763114590; cv=none; b=QOYKlwRVwIL6TmRqOi2E/hIzrXKqGeMf2Xjy8Q+PJyILlenUigbgP8UxP+fiTX3xpK0ld8FnyScELyQbEmuOunla71o92hYW6o377sCOD31M/9k41G4/n3/QpueTaywhN4b+hvOKLJeOjdxQOqsD7cpRrvq7u/FZMWSNBhrIn7w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763114590; c=relaxed/simple; bh=FaLBA/0A7fNdqHjs1OPytUZK+y3wPekUIyNNs6w1Hsc=; h=Date:From:To:Cc:Subject:Message-ID:MIME-Version:Content-Type; b=BGoZjdJhNLGryipzn7MrqI9RssD6SuQ4z36P5z6U80TmBZVJvW6o12sddGgBzVCwDOZRbQR4/XZUUiu5btveVddDf03HZWcZXQMOAsbuJlvi4ZREytaQ7AnsJSr8D/W6XVmRiwlt4kZvkUUEqNvNncETYnlP/G5MsB2XZnmKDuw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=suse.de; spf=pass smtp.mailfrom=suse.de; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.b=RhJWoQcw; dkim=permerror (0-bit key) header.d=suse.de header.i=@suse.de header.b=CtnITG5K; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.b=Lb7ZddqK; dkim=permerror (0-bit key) header.d=suse.de header.i=@suse.de header.b=s7s0V9rW; arc=none smtp.client-ip=195.135.223.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.b="RhJWoQcw"; dkim=permerror (0-bit key) header.d=suse.de header.i=@suse.de header.b="CtnITG5K"; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.b="Lb7ZddqK"; dkim=permerror (0-bit key) header.d=suse.de header.i=@suse.de header.b="s7s0V9rW" Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 5A6B61F825; Fri, 14 Nov 2025 10:03:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1763114584; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=t5l+Z4OUA4ifKPHX9expiwKnae/6J3vb2pppSaJ+aMU=; b=RhJWoQcwKmg8/lCxpgWTh7JY2lrS49LMNluiat6BCytvZlNKcOgZBZfMl9X2nsXZPmnudW oOWjlUPH9Ci5wp/yurOCmg1HSf8pSje5T2PcHLtsRNu6Q6XreWWHxVnJD4y6600nRqpl60 Xy7/Rb83sMazVipRwa7LqEk3JMdgqY4= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1763114584; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=t5l+Z4OUA4ifKPHX9expiwKnae/6J3vb2pppSaJ+aMU=; b=CtnITG5KCEtOgDhnMu/NNQ945nOFmxzZOcS7wOCPmF9r6ohzer/CSijfrMDz3bT3kenDxt TTKyTr5ZXHW8fGBQ== Authentication-Results: smtp-out2.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=Lb7ZddqK; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=s7s0V9rW DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1763114583; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=t5l+Z4OUA4ifKPHX9expiwKnae/6J3vb2pppSaJ+aMU=; b=Lb7ZddqKCmztqesegCwYEwbsQA9saZuCJ5QIUwMopp2lhiIZ0H/DNu//izmsy8pqgAukFB 9LtfghZQ5boK4hs0C06j2oq7K/zY33PnCZl5El148A4i/nesZqUzmxYMyaHgKjqjCPmNJg h76LwnrUPNrX52WVmzdpTVZomqtqJLk= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1763114583; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=t5l+Z4OUA4ifKPHX9expiwKnae/6J3vb2pppSaJ+aMU=; b=s7s0V9rWU4yRh46uFr/eiNcUw6uxVGFaS++ZwXAGpkGH8NkZamvEcjZGr3Do6DH4sXT6cH c2jqyniKkDuQEsAw== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 2471B3EA61; Fri, 14 Nov 2025 10:03:03 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id F9rhBlf+FmkIcwAAD6G6ig (envelope-from ); Fri, 14 Nov 2025 10:03:03 +0000 Date: Fri, 14 Nov 2025 11:03:01 +0100 From: Jean Delvare To: linux-mm@kvack.org Cc: LKML , David Hildenbrand , Oscar Salvador Subject: [RFC PATCH] mm/cma: Inline cma_sysfs counter hooks Message-ID: <20251114110301.39316246@endymion> Organization: SUSE Linux X-Mailer: Claws Mail 4.2.0 (GTK 3.24.43; x86_64-suse-linux-gnu) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 5A6B61F825 X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Spamd-Result: default: False [-4.01 / 50.00]; BAYES_HAM(-3.00)[100.00%]; NEURAL_HAM_LONG(-1.00)[-1.000]; MID_RHS_NOT_FQDN(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from]; RCVD_VIA_SMTP_AUTH(0.00)[]; ARC_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; HAS_ORG_HEADER(0.00)[]; TO_DN_SOME(0.00)[]; RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received]; RCVD_TLS_ALL(0.00)[]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns,suse.de:email,suse.de:dkim]; DKIM_TRACE(0.00)[suse.de:+] X-Rspamd-Action: no action X-Spam-Flag: NO X-Spam-Score: -4.01 X-Spam-Level: Content-Type: text/plain; charset="utf-8" Move cma_sysfs counter hooks from cma_sysfs.c to inline functions in cma.h. These one-liner functions are only used once each, but the compiler currently can't inline them because they are defined in one object and used in another. Letting the compiler inline these functions lowers the footprint and runtime cost of the sysfs interface to CMA stats even more. Signed-off-by: Jean Delvare Acked-by: SeongJae Park --- Applies on top of my previous patch due to a context change, but otherwise independent thereof. On second thought, we might as well move these functions to cma.c as this is the only place where they are called, so it's hard to justify why they should be in a header file. Opinions? mm/cma.h | 20 +++++++++++++++++--- mm/cma_sysfs.c | 15 --------------- 2 files changed, 17 insertions(+), 18 deletions(-) --- linux-6.17.orig/mm/cma.h +++ linux-6.17/mm/cma.h @@ -81,9 +81,23 @@ static inline unsigned long cma_bitmap_m } =20 #ifdef CONFIG_SYSFS -void cma_sysfs_account_success_pages(struct cma *cma, unsigned long nr_pag= es); -void cma_sysfs_account_fail_pages(struct cma *cma, unsigned long nr_pages); -void cma_sysfs_account_release_pages(struct cma *cma, unsigned long nr_pag= es); +static inline void cma_sysfs_account_success_pages(struct cma *cma, + unsigned long nr_pages) +{ + atomic64_add(nr_pages, &cma->nr_pages_succeeded); +} + +static inline void cma_sysfs_account_fail_pages(struct cma *cma, + unsigned long nr_pages) +{ + atomic64_add(nr_pages, &cma->nr_pages_failed); +} + +static inline void cma_sysfs_account_release_pages(struct cma *cma, + unsigned long nr_pages) +{ + atomic64_add(nr_pages, &cma->nr_pages_released); +} #else static inline void cma_sysfs_account_success_pages(struct cma *cma, unsigned long nr_pages) {}; --- linux-6.17.orig/mm/cma_sysfs.c +++ linux-6.17/mm/cma_sysfs.c @@ -14,21 +14,6 @@ #define CMA_ATTR_RO(_name) \ static struct kobj_attribute _name##_attr =3D __ATTR_RO(_name) =20 -void cma_sysfs_account_success_pages(struct cma *cma, unsigned long nr_pag= es) -{ - atomic64_add(nr_pages, &cma->nr_pages_succeeded); -} - -void cma_sysfs_account_fail_pages(struct cma *cma, unsigned long nr_pages) -{ - atomic64_add(nr_pages, &cma->nr_pages_failed); -} - -void cma_sysfs_account_release_pages(struct cma *cma, unsigned long nr_pag= es) -{ - atomic64_add(nr_pages, &cma->nr_pages_released); -} - static inline struct cma *cma_from_kobj(struct kobject *kobj) { return container_of(kobj, struct cma_kobject, kobj)->cma; --=20 Jean Delvare SUSE L3 Support