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 0720AC369AB for ; Fri, 18 Apr 2025 13:26:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BD71E280158; Fri, 18 Apr 2025 09:26:37 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B38C4280150; Fri, 18 Apr 2025 09:26:37 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 96855280158; Fri, 18 Apr 2025 09:26:37 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 73EC0280150 for ; Fri, 18 Apr 2025 09:26:37 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id C92CB803A3 for ; Fri, 18 Apr 2025 13:26:37 +0000 (UTC) X-FDA: 83347239234.23.BB18FCC Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf13.hostedemail.com (Postfix) with ESMTP id 0022E20003 for ; Fri, 18 Apr 2025 13:26:35 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="cpLZb/2K"; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf13.hostedemail.com: domain of bhe@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=bhe@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744982796; a=rsa-sha256; cv=none; b=mM/YB4flQVdnj8CVWQUA2NjyVTAbIe/Bq7xxotcK3mjLncboQdIe4lcMBtji/P0cBtJ0bf sjeL39zxexe5Z2DEMXsp+vdOGRikG0q3ieh41HI/HCXfgA1G8Ueie/chv9mWni0UMD1QDq p2NepVtQU4W6Ewd1hcyPP2rXkJhBPaA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744982796; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=SIni5x89I32+x4VeAQQr3m0SnK0e1Dbju4MMocfjk+I=; b=A7ZWfpSSs86lq7ysj5spT0iK4XiSFfSlXRD3LP8AOJlU4MK4NU3tl4fvNRMT+1dK5Gxh4M /Sna5V1BQOmI/rk2NfzeCjoyn7yieHCkUeN1uqY2rYAvLjTq+nX/yt1oQCu8IgGqsJJnaj //myT0hdycX8pdrqAuPB/u7sWvkdP1c= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="cpLZb/2K"; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf13.hostedemail.com: domain of bhe@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=bhe@redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1744982795; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=SIni5x89I32+x4VeAQQr3m0SnK0e1Dbju4MMocfjk+I=; b=cpLZb/2K1YAPGOKDKnjq4NRziwEjJFya7z8lEbxAx3ou8TQNZdcDCgCdNfqLm7WMNJPB/+ myLK10HUZt4x2wVs/Qx/Ac/0+5DqzI5ZorPADrEEjcxp85mheG25tns/u8hMDJbNUY833o e9q0OuTxHBq9Kw4l46CnncCnL0hcpcA= Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-537-mM6__yF-McWgbZq-SUA0vg-1; Fri, 18 Apr 2025 09:26:32 -0400 X-MC-Unique: mM6__yF-McWgbZq-SUA0vg-1 X-Mimecast-MFC-AGG-ID: mM6__yF-McWgbZq-SUA0vg_1744982791 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id CE2CE18004A7; Fri, 18 Apr 2025 13:26:30 +0000 (UTC) Received: from localhost (unknown [10.72.112.18]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 9BC9A180094C; Fri, 18 Apr 2025 13:26:29 +0000 (UTC) Date: Fri, 18 Apr 2025 21:26:25 +0800 From: Baoquan He To: "Uladzislau Rezki (Sony)" Cc: Andrew Morton , linux-mm@kvack.org, LKML , Christoph Hellwig , Oleksiy Avramchenko , Mateusz Guzik Subject: Re: [PATCH 4/4] vmalloc: Align nr_vmalloc_pages and vmap_lazy_nr Message-ID: References: <20250417161216.88318-1-urezki@gmail.com> <20250417161216.88318-4-urezki@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250417161216.88318-4-urezki@gmail.com> X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 0022E20003 X-Stat-Signature: h7y7w78417zt9raredkobdfmrcbk9omu X-Rspam-User: X-HE-Tag: 1744982795-622469 X-HE-Meta: U2FsdGVkX18BUsVW0KQc5lC5EmtxpumihUxLciV2zhx402M+VsL8MoEgBhWdX2/8/3AE4R8jkXuO1Q0p/xzsb5rYzy06jV3chPJ8pjBxBXU9ECKUS+9y12tvoKsfcYxR9g3fGeSvRJQhElHI9gma7GEwsSuMT1N3zpU8dIAu0vBa94szZlWvAQ243gra+YjKrL2cG89Uwppi87rQPu7WqJ6zeYZWl7Jl6siGL57EQIAuRkL9LUA166CR2FK8QS44nWdNIujANRBvt+2eUmZX7iCCygKkBWItnm2I4ItxKU1UCNDPUJGAJfYlEwqc3L0VA3NcERd0/il8CN7re8kVvvbviyoO1DuUQGMPU2YNCnkiImN23CIPxHklswVAlrz7T9IdYPk/26Yy/x1FqMI9SPa2q+feNlloJjCeBFKtcqTx7JcISaKvo1LteAEq/avjSF+o08SA1JUX1Wb8p9qT0J3o2mI5S32JUjEb0Q14Fonr6UQXolyPOZYTfcmTFBJiIGD7PaxJhY37EliR4LmQ1rmrgQKnjTpRD+Wyj4GypWjHaBkhLNv8UJHq4KiJhQQLJyy876Mr2st8Tk5a4az3oI6RaiOfQ1d6JyXoEEqVX40/PKi9b2+RMs9aph10TQSTPf/C8oAT4op25EVhYRXOaGn8ze8o3fY6BFwwC8JJvmrjVzXwiWkT2OfT1F/Uvuuk37Ll5pjRvtS910WqovZfNw5utwMkatjespIZVTIX20NuRnLqpSHYWaV4Lya/iSKqxMslngjutz+XJlUYEZYsQzE+fq+124+jBOPCwRsHC8tMBLq4BQFbiwON6CzFd7ayOykwXubHO1IL53gz8O0oRPqXIKq68eTuLwJ6HPnLUP8EJaq8pUtrVgMQGcwquhk46uHGsrMZuzCaZL+8lFy1QWpO72acnsLEOERg/PyXT/l+ishk2EeBXb1cFiw6rwmR96AiCAsjt1I6vK9+ibH v73TQkWX Wc8rmdv0piCEo/aoVVm2KJdbfzhzg8yXqbfl63L6fB3otW9hjj1VqpesTddjF/+O+UD6GELVmwpSTnAMmvVb+MiDfxb+UW6E1wbrLYYjxSTKrgBnLEED0mODyGFFTsRpNX9r/9KxF6kJFISQTXyZ3hOuA/jltEqYHx/qVnCTzXcm6IJ2VTVGOZEiLZg8kJb/k7zwDe7G8pgA7MQAvpwIxsD16BnWvHqRVyfqI1lZhN8+PcU6a3fomsZjxNKciDwaGfhkhWLzkscJGaetau8nWRfEF3Z9lM9rrB9JxAUGyCQ1bPBfAZnjAoegc4OHSJUM8MGVKfsdI15HC4MKAIX0who0tmTP5lg/KDRoV5Mkswgl029+fKJ9nAGQuH3QDnGqp4HZpj7D3gnizSXO5TLq6jtsPxzjJZ+Bp45Q+MxQ7wL5bgS+lHPd3Dvsl1cigR6aYYRX/ISXAImmjCThpo7oJdQ3kv8LsX5jLqGFFlWGIWJGchZFvMa7ZIE2lSw== 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 04/17/25 at 06:12pm, Uladzislau Rezki (Sony) wrote: > Currently both atomics share one cache-line: > > > ... > ffffffff83eab400 b vmap_lazy_nr > ffffffff83eab408 b nr_vmalloc_pages > ... > > > those are global variables and they are only 8 bytes apart. > Since they are modified by different threads this causes a > false sharing. This can lead to a performance drop due to > unnecessary cache invalidations. > > After this patch it is aligned to a cache line boundary: > > > ... > ffffffff8260a600 d vmap_lazy_nr > ffffffff8260a640 d nr_vmalloc_pages A great catch and improvement. Reviewed-by: Baoquan He > ... > > > Cc: Mateusz Guzik > Signed-off-by: Uladzislau Rezki (Sony) > --- > mm/vmalloc.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/mm/vmalloc.c b/mm/vmalloc.c > index 77da4613f07ff..54f60d62051da 100644 > --- a/mm/vmalloc.c > +++ b/mm/vmalloc.c > @@ -1008,7 +1008,8 @@ static BLOCKING_NOTIFIER_HEAD(vmap_notify_list); > static void drain_vmap_area_work(struct work_struct *work); > static DECLARE_WORK(drain_vmap_work, drain_vmap_area_work); > > -static atomic_long_t nr_vmalloc_pages; > +static __cacheline_aligned_in_smp atomic_long_t nr_vmalloc_pages; > +static __cacheline_aligned_in_smp atomic_long_t vmap_lazy_nr; > > unsigned long vmalloc_nr_pages(void) > { > @@ -2117,8 +2118,6 @@ static unsigned long lazy_max_pages(void) > return log * (32UL * 1024 * 1024 / PAGE_SIZE); > } > > -static atomic_long_t vmap_lazy_nr = ATOMIC_LONG_INIT(0); > - > /* > * Serialize vmap purging. There is no actual critical section protected > * by this lock, but we want to avoid concurrent calls for performance > -- > 2.39.5 >