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 07190E77182 for ; Wed, 11 Dec 2024 01:20:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6FAB78D0022; Tue, 10 Dec 2024 20:20:09 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6AA5A8D0017; Tue, 10 Dec 2024 20:20:09 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 54B308D0022; Tue, 10 Dec 2024 20:20:09 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 099D38D0017 for ; Tue, 10 Dec 2024 20:20:07 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 9F7EF420A8 for ; Wed, 11 Dec 2024 01:20:06 +0000 (UTC) X-FDA: 82880920962.19.9F5B412 Received: from out-177.mta1.migadu.com (out-177.mta1.migadu.com [95.215.58.177]) by imf11.hostedemail.com (Postfix) with ESMTP id 4562E40017 for ; Wed, 11 Dec 2024 01:19:44 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=W8FXk+lK; spf=pass (imf11.hostedemail.com: domain of roman.gushchin@linux.dev designates 95.215.58.177 as permitted sender) smtp.mailfrom=roman.gushchin@linux.dev; dmarc=pass (policy=none) header.from=linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1733879990; 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=lUWYOlVWAIm6Lu6fcrGntawOmoLD0WlWfvbhYPm4nUs=; b=Cz3sHhAew231YsueC78kzGdL3s3VrrNm0N9RMy49RRD11X4wILAEC87TvnN5BnHLUGmjDd e6KKFPJqqOsGVE+U1NuABTEN3SA5po3noTJth82i+yLP81hj8y6jPODVHRNkoc/wSC39ke DAESgd80RNFsIhQP6Sdl2Tq2TSijp70= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1733879990; a=rsa-sha256; cv=none; b=NVMqUDouSDlxBJVMXIRe/FRiV7fWXKEdh4NaU3NC7iGZRkrYL8WffVgPMBS2NRsRveQ2rm Gakf9oDTbc08pBeybbV38JjJwDnT2ffY6FwQmeLWFCKmzV4FOKq65zV9spV2EstNtZKqqz DZ2UxBgxN0n0CDQOTR+Ux1bYFEf4mVY= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=W8FXk+lK; spf=pass (imf11.hostedemail.com: domain of roman.gushchin@linux.dev designates 95.215.58.177 as permitted sender) smtp.mailfrom=roman.gushchin@linux.dev; dmarc=pass (policy=none) header.from=linux.dev Date: Wed, 11 Dec 2024 01:19:24 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1733880002; 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=lUWYOlVWAIm6Lu6fcrGntawOmoLD0WlWfvbhYPm4nUs=; b=W8FXk+lKMiAvd1qSu7C7CfCIAfqGcVvenTagBYFoGooOJe0rWM/zAQcnjKZ6cGjpvKZVaX Fo4NODKoEk96GZ+AeNFle4IH+Ee51HEGkzXTBKBVgmiakBgid4S1LtkCUBodKMfW0fEtfC hiRmtXj1100sh5MnnQo93YurtIsGFro= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Roman Gushchin To: Kairui Song Cc: linux-mm@kvack.org, Andrew Morton , Chris Li , Hugh Dickins , "Huang, Ying" , Yosry Ahmed , Shakeel Butt , Johannes Weiner , Barry Song , Michal Hocko , linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 3/3] mm, swap_cgroup: remove global swap cgroup lock Message-ID: References: <20241210092805.87281-1-ryncsn@gmail.com> <20241210092805.87281-4-ryncsn@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20241210092805.87281-4-ryncsn@gmail.com> X-Migadu-Flow: FLOW_OUT X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 4562E40017 X-Stat-Signature: sigzc18dw5idkcdt3e5fg8q3qakikgqa X-Rspam-User: X-HE-Tag: 1733879984-612075 X-HE-Meta: U2FsdGVkX182VPyoLptM122ofNkZHfab9YLmQg2e5xv9MfXMFNy+KpMxIwgT7Vsw1GfDwnoh8x+NuB8EzFTIb7saCfKaash1VmZ5SO6qGdCj04+NLdsxIsDXFtKbbJo1T562lW0iOA8wXSNBBrC8VBKHiakCu9R6d4zEfrS1LrdZMOPbh3gN8xfsSUnsaAyYuvPH/fFAtA2DO3euEcyowBHvqRCAuzrlLa+M4Atu6+JISjAbcXBYKiwt/vTNm+eRicLM5Dy0WZau1cH321hHeL9FHPmNVBKWmhu1bkUODApvLuCMwClV54fBuCcAwIi5hH7IzY9Y9T+N/eE5EMHMIjt2irOmcbwERh+pXuBhieK+JIpFANjR0CRRi9/tKBXOSckxeLDt8X9tSJeDOJLN2NGI7T4hv+SHA9jsw7fsuhtTVvL8wGRFRuoVXV5SY1trglQgHzJA1ZW7l5UdE1WhppP/yXb/j4rVtw7PpbYIvhgRErjwAeEPbg1v/SmHBK93gXCap0Rl7CLlH/BcoCQz0h2prI9k4Ue09goyrOrBzhtlBg7lNmagD2gr1UbUvcdfLxrC7ixG3O2n1bEQZ/ruRKMYHPe55Ym208oamGxVfoX0+8ZdxnCvYbkulcP/bW1WmGkokd/SPbogTauXd+OVNaiqPSXxcYD0jjhEHWW7aLF+J4dg3zWEsqR5ZLnKHpw8spjpmcu4qAyx6j32kcRi8emPHoDdnOXGo1zA4SmKFexCcLPnVxU8pPyDVqibbqwfyGFHHKhcW67qll+ZN4BFhoqtuAnyRo4NcSadKzU+/r9n4Wo6se0NR80L7Xz9Mw2y5zj2v/nJ+LvaeUhcCXn5KudcpEWYPqYeTCOWyUgLpaOD6x1BTKAItGNBaHugMoi1pSk2EJpW5FYKZkpO2uScbaMOkNzcYz6rgCQdi+fpL5wSOt5WolriCqpWkY1t7Dc2OY2XuOvhzmIYGKWP+FJ G0CGp2dV ZH+PHD38lHHWvqCjzofoguoypJ8UpjJasF0eE6tgIHczPbRsMmg+f0YJ35qN60cDd2L+KDcZCy2d9sKrLEncr0bB5WzsFmOtEf5J/c1rVRE4kMRFVcS+YMl207sk8cH8EB8kLr5u0qVSLwdvkTnZArRt4MXDt7bo/waKZxbj8ThE2TfJRWpqCvaFa/W1aUXXNkXultzGt167/50op4tAo1W+oxtq82rtP4PYdVihjyv/adIqwUWgvS4L9scfL8IVr4Cbw 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, Dec 10, 2024 at 05:28:05PM +0800, Kairui Song wrote: > From: Kairui Song > > commit e9e58a4ec3b1 ("memcg: avoid use cmpxchg in swap cgroup maintainance") > replaced the cmpxchg/xchg with a global irq spinlock because some archs > doesn't support 2 bytes cmpxchg/xchg. Clearly this won't scale well. > > And as commented in swap_cgroup.c, this lock is not needed for map > synchronization. > > Emulation of 2 bytes xchg with atomic cmpxchg isn't hard, so implement > it to get rid of this lock. Introduced two helpers for doing so and they > can be easily dropped if a generic 2 byte xchg is support. > > Testing using 64G brd and build with build kernel with make -j96 in 1.5G > memory cgroup using 4k folios showed below improvement (10 test run): > > Before this series: > Sys time: 10809.46 (stdev 80.831491) > Real time: 171.41 (stdev 1.239894) > > After this commit: > Sys time: 9621.26 (stdev 34.620000), -10.42% > Real time: 160.00 (stdev 0.497814), -6.57% > > With 64k folios and 2G memcg: > Before this series: > Sys time: 8231.99 (stdev 30.030994) > Real time: 143.57 (stdev 0.577394) > > After this commit: > Sys time: 7403.47 (stdev 6.270000), -10.06% > Real time: 135.18 (stdev 0.605000), -5.84% > > Sequential swapout of 8G 64k zero folios with madvise (24 test run): > Before this series: > 5461409.12 us (stdev 183957.827084) > > After this commit: > 5420447.26 us (stdev 196419.240317) > > Sequential swapin of 8G 4k zero folios (24 test run): > Before this series: > 19736958.916667 us (stdev 189027.246676) > > After this commit: > 19662182.629630 us (stdev 172717.640614) > > Performance is better or at least not worse for all tests above. > > Signed-off-by: Kairui Song Reviewed-by: Roman Gushchin Thanks!