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 7488BE77188 for ; Fri, 20 Dec 2024 18:29:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 05CC26B007B; Fri, 20 Dec 2024 13:29:12 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 00CFB6B0082; Fri, 20 Dec 2024 13:29:11 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E170B6B008C; Fri, 20 Dec 2024 13:29:11 -0500 (EST) 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 C29E56B007B for ; Fri, 20 Dec 2024 13:29:11 -0500 (EST) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 84201160CB6 for ; Fri, 20 Dec 2024 18:29:11 +0000 (UTC) X-FDA: 82916172066.20.B1D5510 Received: from gentwo.org (gentwo.org [62.72.0.81]) by imf15.hostedemail.com (Postfix) with ESMTP id 88B47A0011 for ; Fri, 20 Dec 2024 18:28:16 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=gentwo.org header.s=default header.b=kTFg+5+j; spf=pass (imf15.hostedemail.com: domain of cl@gentwo.org designates 62.72.0.81 as permitted sender) smtp.mailfrom=cl@gentwo.org; dmarc=pass (policy=reject) header.from=gentwo.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1734719334; 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=uedqBunr/+xWrhFRm54pWmfS1HqXxSkeLyI4SMydGic=; b=WKY7yJukSQhdJNQSBIIQV7G+hcnLnESjYe0nvRL2sZnHYEoZQv8BoYeQpQlpR8AoDwj/yV /GobpMvsXxd4jjO0Sj/aSDS2rGg7sN4VTp49PW5O+nxnAWuMRlkPV8/4fI0VYgiBBC+5cv 9QxxZW2OkZzTk0K3d0XBHYXdtVgsz+8= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=gentwo.org header.s=default header.b=kTFg+5+j; spf=pass (imf15.hostedemail.com: domain of cl@gentwo.org designates 62.72.0.81 as permitted sender) smtp.mailfrom=cl@gentwo.org; dmarc=pass (policy=reject) header.from=gentwo.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1734719334; a=rsa-sha256; cv=none; b=Ns2gteX4kUR6zaCuFVYf2GFFLSO3awQM/xp7U/9UwVcesSbaNGott5mGbxQOfKwmCTgyaO e1whQFluaQFwuNM+voebtPveL4Wf7XMs/G3sRku1IbcOlG839VZth2QFBh2ajdv/xBK4Yf ayz3WdRUaN/RkyXOflmC1Xc72wxu5xw= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gentwo.org; s=default; t=1734717414; bh=ZfBNVpuqUHRg/2o9ie1II+m3jSRmmrhBDzV+TTJwtQA=; h=Date:From:To:cc:Subject:In-Reply-To:References:From; b=kTFg+5+jojiLnNj9qfRUdIC8ZkN8sDT61aiJit78jNHQ6e8xfbvrj2Xbp+SlvytJ/ 1QBg2ZmTy0ZT6taZTSFn43awDHK+pB8y9jN/Y8g5T5UnZKmdVDs8EXVOEBrJmz5c/4 0VdjlOQQ8cWEoNsnlswCxCoTpV6sJeMOqKvYfHdY= Received: by gentwo.org (Postfix, from userid 1003) id 9756040737; Fri, 20 Dec 2024 09:56:54 -0800 (PST) Received: from localhost (localhost [127.0.0.1]) by gentwo.org (Postfix) with ESMTP id 964CC401E6; Fri, 20 Dec 2024 09:56:54 -0800 (PST) Date: Fri, 20 Dec 2024 09:56:54 -0800 (PST) From: "Christoph Lameter (Ampere)" To: Mitchell Levy cc: Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?ISO-8859-15?Q?Bj=F6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Andrew Morton , Dennis Zhou , Tejun Heo , linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH RFC 3/3] rust: percpu: add a rust per-CPU variable test In-Reply-To: <20241219-rust-percpu-v1-3-209117e822b1@gmail.com> Message-ID: <5374de79-0ee6-e817-0f87-c800a6fbb733@gentwo.org> References: <20241219-rust-percpu-v1-0-209117e822b1@gmail.com> <20241219-rust-percpu-v1-3-209117e822b1@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Rspamd-Queue-Id: 88B47A0011 X-Stat-Signature: hxms8yugnmnp4gsijqs13p7u3bome8fd X-Rspam-User: X-Rspamd-Server: rspam11 X-HE-Tag: 1734719296-181311 X-HE-Meta: U2FsdGVkX1+aOHoqhAawpKbyogLA5KUy2i0wPNLY565JxCR3zbcAc4gPjqDAbC+aSw03Vw4ee5PA1U9mZzzSS7bkKPo8IqS5UssITyh8VBHVCR7RDb54JZpeohd/k9914x/2cY09oX1tfZw5H5WEhLlgB8uKvSUsA/UK/CyoGmQT9dSquSfwb+dAGi453uLhd6lxCivdnJoaDXI3++RaOzQCvr6y8L8paIQS00dpnhfdYxLvJbCLjAGjDdCTlY3ZQku4TSGCLUaLOcwYE3EvqgCQBGUMoqtOPY0v/QgQDgAkinygVYu8MJMtsUySCn2z7JZ7dRGklHl/b9XGEbmUQCtv4nfoWDOZ1vwZ5ZXStBee+ou8qhHC3CkIPEnw6MFg4OExVav17D7AcoGdLzRhDVUEAvWRIZLgelT7cNPVd7YnuS2QNIqZaWJtBuAHwCngOr6jsBxGyGnf6bE0tjgE4J5fLH6ZKkIN9K82x54SKM/ZptmBIeDvPA32dSyNTn2sr6tRaWnJlnVLEehyCZLbVrfKKg+99rcQCeqREZOUhyK0UGPs1ycveDqIU/KICEO+dwFMgKkskyFdGtqfwmVGG0I6JyQmyAR6Zzydu8A3BsvIcGwQE9yBSUysBVXR+YHbiLkQBx14Dymr28jJ1Lxv0fyHGFnNWDaXYPgrYeJllyJiPXPLacIQESZQJlzc+0m9F2e9wD+fOgyJXopnDMDMsOhVNQnRKkhBiIRk40QW3v9fRzEU5O0KBj41DxoLs0zbcLYTixUdl86RjXoAox7fqegaxhIK2Bb8+BJBk5voBRDcYRFk3ZUVjey76JcwIzCXpUCArZtJszvgMn5LKnL5NLBmXItGiUtwyBavyQMKI8NMRQa2nUV3Ut4rZzz6izQrt9oq+1aqAl4La5K6XoIahHm85b+VwbjStK6Fv3+Tj2FwMtfsguwJBLaOfcnCEhpRLRshzQGFxrrvgvBKwWe kzOkUTEN ktBFw260oF3Gv+fzi5apKiVeVfSlrq8jE1n9SaMMYTbmdFcXKisQrGooFbQ4U0GDOvTooSIGB1uWCUUHuzYnKuuqA121LUgYOBYHlDYP5jV9lEgPV5i3IQ1R6vnsyQHG6ZSfpMmkh6XKUpq9cQ7sCs6+YFIvcojxowFcq1MdqonOVKBhOCjTZxEtOpEn17qJz7+Yzmd8kDNjykAYwEiHQd/7rawRJ53tyfly2dNnhQ3J3+2tJPMZHkXE3YEXhmGXnu920fwUa+H0aema7OD7bEegraDjPvKt4kFHcqYlD+vs/18c= X-Bogosity: Unsure, tests=bogofilter, spamicity=0.499978, 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 Thu, 19 Dec 2024, Mitchell Levy wrote: > + let mut native: i64 = 0; > + let mut pcpu: PerCpuRef = unsafe { unsafe_get_per_cpu_ref!(PERCPU, CpuGuard::new()) }; A bit complex. > + native += -1; > + *pcpu += -1; > + assert!(native == *pcpu && native == -1); > + > + native += 1; > + *pcpu += 1; > + assert!(native == *pcpu && native == 0); > + That's pretty straightforward..... But is there no symbolic access to the per cpu namespace? How would you access the kernel per cpu variables defined in C? How do you go about using per cpu atomics like this_cpu_inc(nr_dentry_unused);