From nobody Mon Mar 17 19:14:06 2025 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZGl5C0wNnz5qY3m; Mon, 17 Mar 2025 19:14:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (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 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZGl5C0C8jz3XQM; Mon, 17 Mar 2025 19:14:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1742238847; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=muDiRR6Nop93bWnl+3gsSMkJ19wXIGYT+3s96meBisQ=; b=sDvm+7L8XDj4i+dd2hC12wlv3ZvyIKOqXkLa0Uc3qkI47Vq9hYXFbBwWlasLsuHLbDszKL BsV8zeOIw3SiuphnwZ+IUh39ePsjPwMeqLCgJprtBgJqAQCz5JSgNOkt0pzz8S+CCOBjZJ aMRlf86FEoiZ/NDrXV6Ry6TiMOOKxV95kHwS2QORbj3c7q+RPE6Z/6csRgup3Gl7ZAPaAv SvXuEL7AeOYsRIC2LLehPafuo86LJVCJjn2b6wKRcNahr62nWjw5+XIzcoE02HyaJl++MM 7NMuehhy3wTAw1iQnlXbVpSBjXgO3bIvr8ClniWmF+txxJVAom3/yGBOfIQOdg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1742238847; a=rsa-sha256; cv=none; b=BVB1WK9D8+W0R7wEG42689dgzoIh2jPRqcZBQyG6CjMfabKp5zaDZVLe2UTdp5ZmydZSHm y8wMybnIq8YPzu7GlIn2XgN/kXmF0MVtKPcEqAt3ER/jDGGofPHMO/BvJ7hGZxDUEPJ9+1 /vTLEChUWpuiEHjulCJYGY1B5li552xJ1A9VudEpdbL25ybWi83rNyyOnWYCjZjPs2Sdva +oV2g9jgliLCdoXKNioZAg2MkONTLPwlRMveM784NM7CwqoUJk5592jBnNovCqY+oZPkfO ipTdMS+lQR9jXyr/66DL7OXB41j4ucNN6ykzF3/jLwaw0YdxyKoIeokhHgq0fg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1742238847; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=muDiRR6Nop93bWnl+3gsSMkJ19wXIGYT+3s96meBisQ=; b=j2s02azA26pApQlbvbnIa8mJTqwPzbhuCKOx1wvh6u1PREPhBlKw4gQY0KsnF4flSjeDFD tXvwNdc4vxUAVCYcs2lGa/p8p5xsvzZDBEJG64zLnYEbCe6DLGnftZEIMDFzgemOKcq650 BBgYxsufzNv/UqM4ckYAANvg3aRHoysMdTI5DNdsKtNJuSHUxxbxB3exEgCzBbVvLx57We BPADA56PvWTZTpKFZxTVfi8paBWDSL6Hm1oy+uobMt75qWTNGiQtOzc/0wPhKnWBaXqvPG TmRXfOzoKP0nGRy22HsvaqviEyky46jE6SsXO3vGRMDU76VCLXJDc/lsmfnYWw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZGl5B6nPhz10T2; Mon, 17 Mar 2025 19:14:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 52HJE6nl088375; Mon, 17 Mar 2025 19:14:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 52HJE69T088372; Mon, 17 Mar 2025 19:14:06 GMT (envelope-from git) Date: Mon, 17 Mar 2025 19:14:06 GMT Message-Id: <202503171914.52HJE69T088372@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= Subject: git: f506d5af50fc - main - uma: Avoid excessive per-CPU draining List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: f506d5af50fccc37f5aa9fe090e9a0d5f05506c8 Auto-Submitted: auto-generated The branch main has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=f506d5af50fccc37f5aa9fe090e9a0d5f05506c8 commit f506d5af50fccc37f5aa9fe090e9a0d5f05506c8 Author: Mark Johnston AuthorDate: 2025-03-17 19:12:58 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2025-03-17 19:12:58 +0000 uma: Avoid excessive per-CPU draining After commit 389a3fa693ef, uma_reclaim_domain(UMA_RECLAIM_DRAIN_CPU) calls uma_zone_reclaim_domain(UMA_RECLAIM_DRAIN_CPU) twice on each zone in addition to globally draining per-CPU caches. This was unintended and is unnecessarily slow; in particular, draining per-CPU caches requires binding to each CPU. Stop draining per-CPU caches when visiting each zone, just do it once in pcpu_cache_drain_safe() to minimize the amount of expensive sched_bind() calls. Fixes: 389a3fa693ef ("uma: Add UMA_ZONE_UNMANAGED") MFC after: 1 week Sponsored by: Klara, Inc. Sponsored by: NetApp, Inc. Reviewed by: gallatin, kib Differential Revision: https://reviews.freebsd.org/D49349 --- sys/vm/uma_core.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sys/vm/uma_core.c b/sys/vm/uma_core.c index 4de850afcb66..35eede04171f 100644 --- a/sys/vm/uma_core.c +++ b/sys/vm/uma_core.c @@ -5339,6 +5339,13 @@ uma_reclaim_domain(int req, int domain) zone_foreach(uma_reclaim_domain_cb, &args); break; case UMA_RECLAIM_DRAIN_CPU: + /* + * Reclaim globally visible free items from all zones, then drain + * per-CPU buckets, then reclaim items freed while draining. + * This approach minimizes expensive context switching needed to + * drain each zone's per-CPU buckets. + */ + args.req = UMA_RECLAIM_DRAIN; zone_foreach(uma_reclaim_domain_cb, &args); pcpu_cache_drain_safe(NULL); zone_foreach(uma_reclaim_domain_cb, &args);