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 656C7C43334 for ; Mon, 4 Jul 2022 13:43:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 00CEF6B0073; Mon, 4 Jul 2022 09:43:55 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EFEFE6B0074; Mon, 4 Jul 2022 09:43:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DC7B26B0075; Mon, 4 Jul 2022 09:43:54 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id CF31E6B0073 for ; Mon, 4 Jul 2022 09:43:54 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id A7E9934886 for ; Mon, 4 Jul 2022 13:43:54 +0000 (UTC) X-FDA: 79649535588.21.BDC6F22 Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by imf26.hostedemail.com (Postfix) with ESMTP id B21F3140035 for ; Mon, 4 Jul 2022 13:43:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1656942233; x=1688478233; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=52gQ5IVQcWNAJh1H9cs5/vA4Er7X9bMmjx+JOV6sGGo=; b=XZb27XovN95IaWLbIG3/wSWqx4obqOIYdIQPuljM2uuNL0vPm8iJOMoz uNHxzNQK4xr2oXv2QVGwtZWm/z7YUOASQq9X1YjnSTFaUl/eluxsgQ2/r MZaNSJgpLMeM/flvJojFQLReaSg18nd+I4QYGyXCK0w4rbarLE5roNMbs OxIt9ad/GDAmhmmwza0e85KYSiFDCe2yhPOs18YdWETcfSLUJXI/AOYLx pDHNMMWpyf8zG7xAK15nz7mYMxPUc6KAvgbpyqq51+RRN8258G36gi3mA hxcqVVRsB9Q+VFYFcQ4bAHJZ4wVzOyOsbp3iTKXpthDMoBhb9wUUbiR2B Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10397"; a="308667721" X-IronPort-AV: E=Sophos;i="5.92,243,1650956400"; d="scan'208";a="308667721" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Jul 2022 06:43:44 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.92,243,1650956400"; d="scan'208";a="592567243" Received: from black.fi.intel.com ([10.237.72.28]) by orsmga002.jf.intel.com with ESMTP; 04 Jul 2022 06:43:40 -0700 Received: by black.fi.intel.com (Postfix, from userid 1000) id B1594136; Mon, 4 Jul 2022 16:43:46 +0300 (EEST) Date: Mon, 4 Jul 2022 16:43:46 +0300 From: "Kirill A. Shutemov" To: Andy Lutomirski Cc: Dave Hansen , "Peter Zijlstra (Intel)" , the arch/x86 maintainers , "kcc@google.com" , "ryabinin.a.a@gmail.com" , "andreyknvl@gmail.com" , "glider@google.com" , "dvyukov@google.com" , "H.J. Lu" , Andi Kleen , Rick P Edgecombe , linux-mm@kvack.org, Linux Kernel Mailing List Subject: Re: [PATCHv3 6/8] x86/mm: Provide ARCH_GET_UNTAG_MASK and ARCH_ENABLE_TAGGED_ADDR Message-ID: <20220704134346.ua37tgg2c5eff4jm@black.fi.intel.com> References: <20220610143527.22974-1-kirill.shutemov@linux.intel.com> <20220610143527.22974-7-kirill.shutemov@linux.intel.com> <6cb17661-9436-afbf-38eb-58565bba1a56@kernel.org> <20220629005342.3thjt26e6p6znyrh@black.fi.intel.com> <1d765bc0-279c-4fd3-91f4-e99e6aef203c@www.fastmail.com> <20220701153840.7g55cazg73ukvr7l@black.fi.intel.com> <91ff4c04-ec26-418e-a685-f910505eec5a@www.fastmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <91ff4c04-ec26-418e-a685-f910505eec5a@www.fastmail.com> ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1656942234; a=rsa-sha256; cv=none; b=ZmEPGfNTglSaWudvlg2TJAhjUcKm5AA5ukmrjvv3FihlHtMrUppSPEM4ZUFBHztG8yQvWR jJ5+tn0OJHMBiOOeQcDDeXYYzaf7T4YNu4E3U3drEYNzDpxKYAfic/r3kaA41AUcXsN590 xq5hHAPEaCy5MRFwY58fOVKGm+qarE8= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=XZb27Xov; dmarc=pass (policy=none) header.from=intel.com; spf=none (imf26.hostedemail.com: domain of kirill.shutemov@linux.intel.com has no SPF policy when checking 192.55.52.88) smtp.mailfrom=kirill.shutemov@linux.intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1656942234; 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=BXTSctxblmiTPfTTjnmGQ2vcViIPhZVSvknCqPPFAVc=; b=xDulibZA5dCuWsrpSKfDrb3V++1P8NJhXcvM+TGF/ooITA5i8evgjyJ/++9nygoiXZwk7z um9L9qgFHxDrzGCWVgzx1vEA7wh+pJ4y6ExPrzXF3L7KrojageiO413skqShEpPJqhUKeV LpXe1xZoXns+7qlpPmAkxa88oRNYGLA= Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=XZb27Xov; dmarc=pass (policy=none) header.from=intel.com; spf=none (imf26.hostedemail.com: domain of kirill.shutemov@linux.intel.com has no SPF policy when checking 192.55.52.88) smtp.mailfrom=kirill.shutemov@linux.intel.com X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: B21F3140035 X-Rspam-User: X-Stat-Signature: mc8mjoxs59sfz5hh7bnzosxxihayeart X-HE-Tag: 1656942233-954551 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 Sat, Jul 02, 2022 at 04:55:40PM -0700, Andy Lutomirski wrote: > > diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c > > index 427ebef3f64b..cd2b03fe94c4 100644 > > --- a/arch/x86/kernel/process_64.c > > +++ b/arch/x86/kernel/process_64.c > > @@ -745,15 +745,16 @@ static long prctl_map_vdso(const struct > > vdso_image *image, unsigned long addr) > > static void enable_lam_func(void *mm) > > { > > struct mm_struct *loaded_mm = this_cpu_read(cpu_tlbstate.loaded_mm); > > + unsigned long lam_mask; > > > > if (loaded_mm != mm) > > return; > > > > - /* Counterpart of smp_wmb() in prctl_enable_tagged_addr() */ > > - smp_rmb(); > > + lam_mask = READ_ONCE(loaded_mm->context.lam_cr3_mask); > > > > /* Update CR3 to get LAM active on the CPU */ > > - switch_mm(loaded_mm, loaded_mm, current); > > + write_cr3(__read_cr3() | lam_mask); > > Perhaps this should also mask off the old LAM mask? So far LAM enabling is one-way operation, so it should be fine. But I think masking off is good idea to avoid problems in the future. -- Kirill A. Shutemov