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 5F081CF6D38 for ; Wed, 2 Oct 2024 15:38:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D60116B02F5; Wed, 2 Oct 2024 11:38:15 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CEA186B02F9; Wed, 2 Oct 2024 11:38:15 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AECFA6B02FB; Wed, 2 Oct 2024 11:38:15 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 81ED26B02F5 for ; Wed, 2 Oct 2024 11:38:15 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 1B7371A01EA for ; Wed, 2 Oct 2024 15:38:15 +0000 (UTC) X-FDA: 82629068550.01.6B5B234 Received: from smtpout.efficios.com (smtpout.efficios.com [167.114.26.122]) by imf04.hostedemail.com (Postfix) with ESMTP id 691524000D for ; Wed, 2 Oct 2024 15:38:12 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=efficios.com header.s=smtpout1 header.b=j3jJyrWH; dmarc=pass (policy=none) header.from=efficios.com; spf=pass (imf04.hostedemail.com: domain of mathieu.desnoyers@efficios.com designates 167.114.26.122 as permitted sender) smtp.mailfrom=mathieu.desnoyers@efficios.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1727883471; a=rsa-sha256; cv=none; b=xZpoEq+ONaffM9vHNJDybApXwFr9Xj44QFvnD+VUA6CzAdFqwJ4knXweGHPeAaMK7uTFbk 1biiiyQH3bhuBgfI+OZiwpKz+QdzeJOfDn6380c/6zfpDbFP8yOjz24GMRMxGvtMMxWj5P owP5YwiCHGyRco1eDugMXgilfn9GrKQ= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=efficios.com header.s=smtpout1 header.b=j3jJyrWH; dmarc=pass (policy=none) header.from=efficios.com; spf=pass (imf04.hostedemail.com: domain of mathieu.desnoyers@efficios.com designates 167.114.26.122 as permitted sender) smtp.mailfrom=mathieu.desnoyers@efficios.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1727883471; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=Q7REBwgtdC15WOHYPhyFlphWoGsKUGt9L+eC+hY4atM=; b=VzaWTGuJ1AWHkIBuGJtbPeSJSZUJbUm50HrzOLpblbqjESGbeFKQln3ITdHmY4NkevPR/W X7CJI4W7VlNbak3UPubZlTpELsj6uUpHA0L1rlqJX6tCoF246TjHJkONfuvEdk1zLWjmOJ oxcow0gdwGE6Bsij8huIRbkELeOtDzo= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=efficios.com; s=smtpout1; t=1727883491; bh=YXyDxH8qGnLuB6XlPuK2t9QnxxGXsE8JJbeqjNsJmkk=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=j3jJyrWHZaV9YyyPVgDQs/U1mSWZ76BACDf7YJ6ew9JfPiS0CYdQG1MQKfa0CIK2b qcQWuZjL4YbTa2u4Z36XGOjm5QS+hqu4688uS1o9Z5333FlXK4oDvXp9K9O2hxm3ve M9mQnDaAsqb4rRVFTErfSamVTkUIXWoN6G/ss7Ahm27gsBDpFJrOibWFV76TKj4XYF J+wTK7uoO3ks+3iWeUtHcwkFrMQ7Q9FyuumIx3oetN56/Ieihv/w5A2W1XOKqxn5Bd G5qWrJZw/DplkiCuTWB7WjJp+Hfz6Qr2gVIQbXzGJzX9bDaWjQ7QxMg7nThjtE0Hna 3OiCCZyzww4xg== Received: from [IPV6:2606:6d00:100:4000:cacb:9855:de1f:ded2] (unknown [IPv6:2606:6d00:100:4000:cacb:9855:de1f:ded2]) by smtpout.efficios.com (Postfix) with ESMTPSA id 4XJf8g0YLfzrSw; Wed, 2 Oct 2024 11:38:11 -0400 (EDT) Message-ID: Date: Wed, 2 Oct 2024 11:36:09 -0400 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [RFC PATCH 0/4] sched+mm: Track lazy active mm existence with hazard pointers To: Matthew Wilcox , Jens Axboe Cc: paulmck@kernel.org, Linus Torvalds , Andrew Morton , Peter Zijlstra , linux-kernel@vger.kernel.org, Nicholas Piggin , Michael Ellerman , Greg Kroah-Hartman , Sebastian Andrzej Siewior , Will Deacon , Boqun Feng , Alan Stern , John Stultz , Neeraj Upadhyay , Frederic Weisbecker , Joel Fernandes , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Lai Jiangshan , Zqiang , Ingo Molnar , Waiman Long , Mark Rutland , Thomas Gleixner , Vlastimil Babka , maged.michael@gmail.com, Mateusz Guzik , Jonas Oberhauser , rcu@vger.kernel.org, linux-mm@kvack.org, lkmm@lists.linux.dev References: <20241002010205.1341915-1-mathieu.desnoyers@efficios.com> From: Mathieu Desnoyers Content-Language: en-US In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspam-User: X-Stat-Signature: xf8u6x9n81rnjmq3eexcwbzhi7ww88nq X-Rspamd-Queue-Id: 691524000D X-Rspamd-Server: rspam02 X-HE-Tag: 1727883492-39598 X-HE-Meta: U2FsdGVkX188TlFcFmDqRH5zAgzOY5DYvrAa03GewtE6udm4jeCbJUTyApaGrlHFMwELX3hLyQgC0ej9mjSlReXvBs5P2ENjgfOtPoX8O2Ehql6J+ofYmzPDzXa6Y051YAWKU18lQegOwnrwKCrGyOjob5wXwiiNoxGAWGVcgbiV0tD+dlCzABfRGk03AkltoGBMEo5V+Bc3lSvi2h0oQ8lylOTD7wGUrswXeNrnwHDwKKpGngPbSPslg7kivYP6gnrSGlJL36op1uoOjiMDZqE7jGciMU+yuGzxw2C81e3kUkiJOx7Wi5TqHrKl7UG4K8jDM1P41iODyzcaetoP/u6Qk0is1cUiIa3gLBmq0k8fYuDvbhd/J4uNE283KX9JameTA2pm2EKhZFhfCHb8RqoPqkanyL4s6hR8b5LcWvdqdLsUYmG6vvMm4IRvnp8DgybNLta7L8EYG/Uu0ObOAeE3VPJQ9Zxwjj1zQ/aPEnztN1wrm+tbb6ExOuinv2JEln4r1Ur58VAYqyOtVCLfTFeoUmZF6wU33vgzDevtFnifB+R63FnGrZTt4N8qZL3HUTVlWFWWjYuGfXd4xt40NSjjb+4AeliueBnvl1lVys4ED6C3TgFXMq4QS70CMmrR9JgNJyKFlF9EnK2s6utvvyKmXGJsqL7haWMfClSuBsQe8KZ9aQCTrW4JPBg0IKS8mEcSviPZlhYwBPW/iyydrd+zM5KMMav+XpmJEc5JN6oVbtdqJ+5yHtEvqIYcC9LxmJxdBOSbtLOO8dQHPiUlj5ruxzZwGyeg2feqdJXR6sjExWjOX5D7bxTfP1wd0lKCGA81mn1RdS6IDJUVQZCYcD30fejmveqN4gEFAaqKh5arEnHx6TrxXPfT0x5jrcTdgGyI9OpUa0QzfhUl0T6k92xHI8MGOSkHFvn4B1QtOBADpGlWt6xx/5b6w5GBk6fEeRirpVvG0Ytr0PHcolw 4Z8cYAxW H2BwPny1bkAOg5LXd0WQSB60Uia4TB+9J+7MrtEyY2Bv+xZkWrVEQVDATHoeWyzftgwpARhA/iFVraaOb1U89deucTKa5jBmRcXpTwGEY8B67jADkKye7lrA9KQUnQABpZjw4H/+B4SPPpc81RPNcAXlstlKvWZnI3s5At7S0WvnfT29QgGE33nDZdGo5OHBljZVdn3DQtxe+uzXKMy/iaQ+ZLjJiTMWqDSGof/jqaaM2W6RJ+R6fydRIJs/mdzLmHMHvTA5u+sSzoHRjzGmzkmjcuK6BCo1/1i/EzWBj/zlotYo+WC1vRZri/nIwmisIcfvVQjBRbFqFjC1ccEPhxraEub+oXJz4XgI+Z6iAe92RK8VG2D23supVueDGhsrUPtU5regWrG7DfrHLF6J8IOChwBbRSfsWZH5tqvyvFkojIjz2rw1Tcziz7dsstPWRJ2G9uhOJ4k0NP/sbVt/mK4gqygxrixe72rzJGhn3QiIkKAZctljO18aarSBufOP6+tLCASUz7lxxvvOlRSlkw5hThERNbq1IRNIv5HhLsYEPRFpPcx4vmi2GJpiugJ0lcSW0kgbMhIR4YfICmyPcE5CuRFxysVeAoRjU/8en38wu+QvskxxIgYY6TJssHbtD51PJ2bN6w2QRECE8nsZ3pE0QsHaVHuiDbq0P4Vl1Z9JP55rbGkdtNWGFgsjLPASziwpSDiyy11SsFg/u/usdvUiXw0t/Oa97HKGBz3D5Lbk+c8Wn82PNojqndpy7ci8O4/1KicosrpChmSNoBc/tJwue/QAw0pQ7KB06Zmtf1bhu+THywyLNFF6PAUfatRtDtvGrd2Gi4DK1VrjjavzUbFjO42sMUwPM4zOTbfPY8UEeNebDKr9+wZgBIPEn9vKpG2n/hPQHQIEPulBnlLLMk/IKAGaoTmgULB+dgjgHPLPBreI0LwFq3gs4ffibwd/MwGtX1Ro6xZeJE7y62z3tD0wcXVkP WMcYp2vM bXpNZsbZqQX7Bo0eFVajqf2R4X39uFmhXncAqpO4k59+uY9s67M1WTuaBkAn9mt2Su9LdIGb3KTiDodpljqZVw== 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 2024-10-02 17:33, Matthew Wilcox wrote: > On Wed, Oct 02, 2024 at 11:26:27AM -0400, Mathieu Desnoyers wrote: >> On 2024-10-02 16:09, Paul E. McKenney wrote: >>> On Tue, Oct 01, 2024 at 09:02:01PM -0400, Mathieu Desnoyers wrote: >>>> Hazard pointers appear to be a good fit for replacing refcount based lazy >>>> active mm tracking. >>>> >>>> Highlight: >>>> >>>> will-it-scale context_switch1_threads >>>> >>>> nr threads (-t) speedup >>>> 24 +3% >>>> 48 +12% >>>> 96 +21% >>>> 192 +28% >>> >>> Impressive!!! >>> >>> I have to ask... Any data for smaller numbers of CPUs? >> >> Sure, but they are far less exciting ;-) > > How many CPUs in the system under test? 2 sockets, 96-core per socket: CPU(s): 384 On-line CPU(s) list: 0-383 Vendor ID: AuthenticAMD Model name: AMD EPYC 9654 96-Core Processor CPU family: 25 Model: 17 Thread(s) per core: 2 Core(s) per socket: 96 Socket(s): 2 Stepping: 1 Frequency boost: enabled CPU(s) scaling MHz: 68% CPU max MHz: 3709.0000 CPU min MHz: 400.0000 BogoMIPS: 4800.00 Note that Jens Axboe got even more impressive speedups testing this on his 512-hw-thread EPYC [1] (390% speedup for 192 threads). I've noticed I had schedstats and sched debug enabled in my config, so I'll have to re-run my tests. Thanks, Mathieu [1] https://discuss.systems/@axboe@fosstodon.org/113238297041686326 > >> nr threads (-t) speedup >> 1 -0.2% >> 2 +0.4% >> 3 +0.2% >> 6 +0.6% >> 12 +0.8% >> 24 +3% >> 48 +12% >> 96 +21% >> 192 +28% >> 384 +4% >> 768 -0.6% >> >> Thanks, >> >> Mathieu >> >>> >>> Thanx, Paul >>> >>>> I'm curious to see what the build bots have to say about this. >>>> >>>> This series applies on top of v6.11.1. >>>> >>>> Signed-off-by: Mathieu Desnoyers >>>> Cc: Nicholas Piggin >>>> Cc: Michael Ellerman >>>> Cc: Greg Kroah-Hartman >>>> Cc: Sebastian Andrzej Siewior >>>> Cc: "Paul E. McKenney" >>>> Cc: Will Deacon >>>> Cc: Boqun Feng >>>> Cc: Alan Stern >>>> Cc: John Stultz >>>> Cc: Neeraj Upadhyay >>>> Cc: Boqun Feng >>>> Cc: Frederic Weisbecker >>>> Cc: Joel Fernandes >>>> Cc: Josh Triplett >>>> Cc: Uladzislau Rezki >>>> Cc: Steven Rostedt >>>> Cc: Lai Jiangshan >>>> Cc: Zqiang >>>> Cc: Ingo Molnar >>>> Cc: Waiman Long >>>> Cc: Mark Rutland >>>> Cc: Thomas Gleixner >>>> Cc: Vlastimil Babka >>>> Cc: maged.michael@gmail.com >>>> Cc: Mateusz Guzik >>>> Cc: Jonas Oberhauser >>>> Cc: rcu@vger.kernel.org >>>> Cc: linux-mm@kvack.org >>>> Cc: lkmm@lists.linux.dev >>>> >>>> Mathieu Desnoyers (4): >>>> compiler.h: Introduce ptr_eq() to preserve address dependency >>>> Documentation: RCU: Refer to ptr_eq() >>>> hp: Implement Hazard Pointers >>>> sched+mm: Use hazard pointers to track lazy active mm existence >>>> >>>> Documentation/RCU/rcu_dereference.rst | 38 ++++++- >>>> Documentation/mm/active_mm.rst | 9 +- >>>> arch/Kconfig | 32 ------ >>>> arch/powerpc/Kconfig | 1 - >>>> arch/powerpc/mm/book3s64/radix_tlb.c | 23 +--- >>>> include/linux/compiler.h | 63 +++++++++++ >>>> include/linux/hp.h | 154 ++++++++++++++++++++++++++ >>>> include/linux/mm_types.h | 3 - >>>> include/linux/sched/mm.h | 71 +++++------- >>>> kernel/Makefile | 2 +- >>>> kernel/exit.c | 4 +- >>>> kernel/fork.c | 47 ++------ >>>> kernel/hp.c | 46 ++++++++ >>>> kernel/sched/sched.h | 8 +- >>>> lib/Kconfig.debug | 10 -- >>>> 15 files changed, 346 insertions(+), 165 deletions(-) >>>> create mode 100644 include/linux/hp.h >>>> create mode 100644 kernel/hp.c >>>> >>>> -- >>>> 2.39.2 >> >> -- >> Mathieu Desnoyers >> EfficiOS Inc. >> https://www.efficios.com >> >> -- Mathieu Desnoyers EfficiOS Inc. https://www.efficios.com