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 27A0DC433EF for ; Fri, 17 Jun 2022 14:29:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 96B776B0080; Fri, 17 Jun 2022 10:29:47 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 91AE66B0081; Fri, 17 Jun 2022 10:29:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7E2186B0082; Fri, 17 Jun 2022 10:29:47 -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 6A9E76B0080 for ; Fri, 17 Jun 2022 10:29:47 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id BBCC435BF5 for ; Fri, 17 Jun 2022 14:29:45 +0000 (UTC) X-FDA: 79587961530.15.16748DB Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf23.hostedemail.com (Postfix) with ESMTP id 1074C1400AF for ; Fri, 17 Jun 2022 14:29:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=n6Zz+aFxdEiHH1MPjSMAigtTz+Sr6l2rlt9fbJVef1U=; b=mo/rwvHK81c63F4hSpgHn0GBGR I0U0TcJKhamYbUi6saojJFb5N9Cng1/PBXNpxcL9rIlx9s1kiGUfh2J4PF1SVBas5dwpKMBSaMYqn kcwx5CZ+fUyM3Xf2WHWP/jFiVlvp0SbtAiS055gTLACXSPcl3DnAsV+zVrjeqYGci1Pawr6b+OamB ARdjcJ4i53XtOYQeTYaTPCvTwwmIOZ+8g11aszXC/Y1YfXqz5WELYFsW22qmFTCMBJp4j5l2v4Jsk lysg3z8KgYe+HTdvBxhvyrM524QQo+US1aW94I0tUNkZvKx85zj+8ZMzA857UhtE67GulW4PIRwQU UeObxO4w==; Received: from dhcp-077-249-017-003.chello.nl ([77.249.17.3] helo=worktop.programming.kicks-ass.net) by casper.infradead.org with esmtpsa (Exim 4.94.2 #2 (Red Hat Linux)) id 1o2Cxo-002tc3-Og; Fri, 17 Jun 2022 14:28:44 +0000 Received: by worktop.programming.kicks-ass.net (Postfix, from userid 1000) id 1CC059816B5; Fri, 17 Jun 2022 16:28:43 +0200 (CEST) Date: Fri, 17 Jun 2022 16:28:42 +0200 From: Peter Zijlstra To: "H.J. Lu" Cc: "Kirill A. Shutemov" , "Edgecombe, Rick P" , "Lutomirski, Andy" , "dave.hansen@linux.intel.com" , "linux-kernel@vger.kernel.org" , "linux-mm@kvack.org" , "kcc@google.com" , "andreyknvl@gmail.com" , "ak@linux.intel.com" , "dvyukov@google.com" , "x86@kernel.org" , "ryabinin.a.a@gmail.com" , "glider@google.com" Subject: Re: [PATCHv3 5/8] x86/uaccess: Provide untagged_addr() and remove tags before address check Message-ID: References: <20220610143527.22974-1-kirill.shutemov@linux.intel.com> <20220610143527.22974-6-kirill.shutemov@linux.intel.com> <20220616164440.vw7sqnof6grrmnvl@black.fi.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 1074C1400AF X-Stat-Signature: uuxcg6doei8i6sab3r35hccsf6s183p7 Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b="mo/rwvHK"; spf=none (imf23.hostedemail.com: domain of peterz@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=peterz@infradead.org; dmarc=temperror reason="query timed out" header.from=infradead.org (policy=temperror) X-Rspam-User: X-HE-Tag: 1655476164-557036 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: On Fri, Jun 17, 2022 at 07:22:57AM -0700, H.J. Lu wrote: > On Fri, Jun 17, 2022 at 4:36 AM Peter Zijlstra wrote: > > > > On Thu, Jun 16, 2022 at 07:44:40PM +0300, Kirill A. Shutemov wrote: > > > Any objection against this variant (was posted in the thread): > > > > > > #define untagged_addr(mm, addr) ({ \ > > > u64 __addr = (__force u64)(addr); \ > > > s64 sign = (s64)__addr >> 63; \ > > > __addr &= (mm)->context.untag_mask | sign; \ > > > (__force __typeof__(addr))__addr; \ > > > }) > > > > > > ? > > > > Yeah, I suppose that should work fine. > > Won't the sign bit be put at the wrong place? sign is either 0 or ~0, by or-ing ~0 into the mask, the masking becomes no-op.