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 28B4DC54E4A for ; Thu, 7 Mar 2024 20:31:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AD4DB6B02A4; Thu, 7 Mar 2024 15:31:51 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A85356B02A6; Thu, 7 Mar 2024 15:31:51 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 94D796B02A7; Thu, 7 Mar 2024 15:31:51 -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 827BF6B02A4 for ; Thu, 7 Mar 2024 15:31:51 -0500 (EST) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 5BBC6C0B13 for ; Thu, 7 Mar 2024 20:31:51 +0000 (UTC) X-FDA: 81871389222.09.E216B86 Received: from mail-yw1-f202.google.com (mail-yw1-f202.google.com [209.85.128.202]) by imf05.hostedemail.com (Postfix) with ESMTP id A0A67100016 for ; Thu, 7 Mar 2024 20:31:49 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=nvcMiyS1; spf=pass (imf05.hostedemail.com: domain of 3NCTqZQoKCFsRHLKR3AF769HH9E7.5HFEBGNQ-FFDO35D.HK9@flex--yosryahmed.bounces.google.com designates 209.85.128.202 as permitted sender) smtp.mailfrom=3NCTqZQoKCFsRHLKR3AF769HH9E7.5HFEBGNQ-FFDO35D.HK9@flex--yosryahmed.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1709843509; 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=bl6KQ7zqxCRRy7mV9HLzLwrJU3k8ZyxTlFOkk6jrrGQ=; b=ozn9C1AOjVOmpPVoQubdy4VdND/fCxLyqpconG0pnrFUsPk0trcxzJPy69n09Ur6vMeeOj lHCgaq1GTxKkeeaUh223IbMIEg0moAPtsdzDKWjMXG1oYMOh5pB7C6v3+vgrb/nNdf4eo7 5+aKcaDQOSKjqw4z6w1MY1FA64jsDj0= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1709843509; a=rsa-sha256; cv=none; b=1WY7/OYX3sOi9u2wjoH1DwlRtk1Antk/qXScpxPxFhm217URNmlQ7wyODKVA9CL1AdmELE iK2qCwHlWYYIMloUGirwOAN9mIv0FzPWbxCzB+hHVRtjgSGEiw4dzYDVJEk83n90uRKHvr BCUW+aFI8vB244IhcWVKjm1cHpTmWI0= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=nvcMiyS1; spf=pass (imf05.hostedemail.com: domain of 3NCTqZQoKCFsRHLKR3AF769HH9E7.5HFEBGNQ-FFDO35D.HK9@flex--yosryahmed.bounces.google.com designates 209.85.128.202 as permitted sender) smtp.mailfrom=3NCTqZQoKCFsRHLKR3AF769HH9E7.5HFEBGNQ-FFDO35D.HK9@flex--yosryahmed.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-yw1-f202.google.com with SMTP id 00721157ae682-609ff5727f9so6663657b3.0 for ; Thu, 07 Mar 2024 12:31:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709843509; x=1710448309; darn=kvack.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=bl6KQ7zqxCRRy7mV9HLzLwrJU3k8ZyxTlFOkk6jrrGQ=; b=nvcMiyS1L/EIP3cs+CVsucAawXR5OjPIPC0GVIm4RYWUyJw5imAJqFw7avarJWYbGN mqQhy9q6F5VSzg0PGyGxan9q5V+ts1MurWPMtnJdCUsjQSO44a20LxqZEMudvhc9msBx SmtJMqvUoFN5RJDIp2Ql81P2Uqp886nq4LEDDc+itV7Nf7/ws/UyJfrxyox0NmxIgTHf eTSh70am2H2RtaTnC64pXdfEx7SzH+O8y8Wbd11OauVT+2hW16Hh7o+M3/sC5Q2fVe+/ LlS8jRT4zPwTIhB58NOR0VUt7o3njP9tn2grTXe2CHlg/vP9TcSlPKx54AYP3ztKNvxf qswA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709843509; x=1710448309; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=bl6KQ7zqxCRRy7mV9HLzLwrJU3k8ZyxTlFOkk6jrrGQ=; b=YlGqG1m9tMiFn4TLrhNLGUtTkfJV5j/bOuWKbrHmQ41ow24Q4qHgi5tRQKnpr6Gn1n mWWY5uNGuTfjlPTYFQ94Ui80r/3sS9Tul9IA251KAue4vxdXCuEWZXe8wQDZZDQTstUW HmPixbNGMWsYJ1JjYLdnX9zEm0Uv4bchu9OuKvo74QkaeAytl8Wl2wpB/z9oE7GSUrEF 9PAdTrsDmD9f3fo8QeVnGinJ+WvHmdVDOJg7cYRYAr8yz8SyXWYbyOl4yxE4lyPZPEIJ W218RDebAIaesqCFend97wH/lSr90FP2A6O44oXJkzlCMxvVPYdK7S87hNeEYQFmOJFP BmsQ== X-Forwarded-Encrypted: i=1; AJvYcCUdWIoaOaPYiFr0X/Z5rbLgrDW6gtnc7jcE1nRSsrCQtm52NVLp73QM2TBwQt1BRbhRbl3Elsjh/g4Jen1qKurEsnA= X-Gm-Message-State: AOJu0YztYcqt5Pxp9LFOt3PsmXP0hGUKnekUZtalfbK/hwXNy5JMsrqA PjHEcFW3SDI3xztZIFlhEidZSLTjXNs6gCDfxEiLWj8RmLkykKb8/cCC0R6SVjmsUnkj0UAyXZ+ VVtsVgQrt9wnDuxPEmQ== X-Google-Smtp-Source: AGHT+IGHuymlA+pETPYDpM827l6AntNqqm0ilI/Ekq0Va7MaZBSZ/dPUBtoF7j7vk4QZnMUlAPO+AStYZ4MjiftR X-Received: from yosry.c.googlers.com ([fda3:e722:ac3:cc00:20:ed76:c0a8:29b4]) (user=yosryahmed job=sendgmr) by 2002:a0d:df0f:0:b0:607:8f65:5433 with SMTP id i15-20020a0ddf0f000000b006078f655433mr545462ywe.4.1709843508926; Thu, 07 Mar 2024 12:31:48 -0800 (PST) Date: Thu, 7 Mar 2024 20:31:46 +0000 In-Reply-To: Mime-Version: 1.0 References: <20240307133916.3782068-1-yosryahmed@google.com> <20240307133916.3782068-2-yosryahmed@google.com> Message-ID: Subject: Re: [RFC PATCH 1/3] x86/mm: fix LAM cr3 mask inconsistency during context switch From: Yosry Ahmed To: "Kirill A. Shutemov" Cc: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , Peter Zijlstra , Andy Lutomirski , x86@kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="us-ascii" X-Rspamd-Queue-Id: A0A67100016 X-Rspam-User: X-Stat-Signature: nxtdtjn187r9k4qe3r8wy5ifhn7gieap X-Rspamd-Server: rspam03 X-HE-Tag: 1709843509-500135 X-HE-Meta: U2FsdGVkX19dHlnDZoiXMeUoF2Zcu6I3rG54dOdA/xCGfzuoYma3yW/Mezma4b//NWU8OAM71k+CSlOmMTnq3HROjtkFlId3R2/FOB5Gk44rBtNLBERn8yuxRNmJN+Yvyvv8BYQow4TeLPTfqeQTjdoofpxrqAqK2iGWFD93VI/lO1PERwTqhRSqJxFWfJpMxiTiqkS6xX6dyCKM752pW0rueh+r+Zsj7JrT2/C9vYPC6PAYGUAggOIAzxaukIjRTtNGWZ/qjp96MTyhzId+/QdKwdDq4VTF+MpME+U+cJNQUmZ3yijs8vpQHgnXfddo4RkUPQTNw8wZIPur2DP7bwt3xflgwy1fB8h/X8jAHSG76VJOFta5TcJh6+2b2tSY7/RIACmBjw5VTvG4nneeTOZof2bCfzb6Vs/+ATnSNwPJeY3OWb/SbmC+ElRfHOgUzi1AiWYO0TCgGQGcZh5pSd3zW1rzX6ucaGgLSxOA2HRLYefisUbRNA/hiO7kxyKtj21e/CZEiCcTutOpHqS0ViFU3nwtFcWb6XCw9jKHRS0/mThhTpHYzA2qG3UogJaSU2nao1g8Bbs0eZw8cJUG9dQvmxBXE+SfPL3pX4Ajy1Szez6g6qDRzLKux9AZWpEUOrtJjGUMQXg3Z/x59dg/MY1EftXEXlHrbAsCnwMH8KyENsgqhBAvKPhfEfXy1FNdbulW/VoDvAD6AdbpprCIG7nv+6F6YxpocaSYfkagWsZrZn5yVF59X3AX/u8MmwYeO+Q/NMF9yCli8q32BmcE9+KqOGTaOOuIqp7rXGOmZCVs0EcC1qsaAJcFSOUGiY2Y3U9YvEFVSSkX8UbWuPhj1FonFIgBlexGhDiKuakH8XHffWEHmO/M4sXxVYqEK7zuCiLfTo2xGB7NZj7ou4TSIIfOhnXWZJFsdZTdaUtYLMDSCeE0gDLwI7wg7mjtuaMs5jmhEMkWevGdcsgENw9 iJ33d7Ec nXf3CmK9FC0oFouVlS4VsObdhMaOvQmYwHiBUrZELaPpIsJelOMjnD3pLMKtOEPAhnBm2XBl2zxWUCokPWdgvRgbXZm6j0eip/oodAPefaTE5Q4huuImV4Y0FxLsqJYZEu8EO+ugpZdaVhbwf2KXS3EEjcMkTlLv+Y5yIucnUhSKDR9H0FqYzdhC8YDjR/WU2ZD3vGZEqYSGGycaZHJkps9Z1x7Ywna2EjLcHuLRdCnUOwcWHK34ogzdXE6wZkZ3jA+9oMBpfu2XDbk1KqbnEcyuZnj0gWcbQHohsYhUDNJUMePGD50DBs2uD7MDsF6uH2pn8Ba9qjk477Fp6nlQ5bZ3tSys9lxOfyGFkypFuHYAAVQnSuWL5ONmC0dWdC5ZLXijl 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 Thu, Mar 07, 2024 at 07:22:36PM +0200, Kirill A. Shutemov wrote: > On Thu, Mar 07, 2024 at 01:39:14PM +0000, Yosry Ahmed wrote: > > In switch_mm_irqs_off(), we read the 'mm->context.lam_cr3_mask' into > > 'new_lam', which is later passed to load_new_mm_cr3(). However, there is > > a call to set_tlbstate_lam_mode() in between which will read > > 'mm->context.lam_cr3_mask' again and set 'cpu_tlbstate.lam' accordingly. > > If we race with another thread updating 'mm->context.lam_cr3_mask', the > > value in 'cpu_tlbstate.lam' could end up being different from CR3. > > What other thread? LAM can only be enabled when the process has single > thread. And cannot be disabled. See MM_CONTEXT_LOCK_LAM. Right, but a kthread may run with that single-threaded process's mm IIUC. I think this can happen via kthread_use_mm() or if we context switch directly from the user process to the kthread (context_switch() doesn't seem to update the mm in this case). > > > While we are at it, remove the misguiding comment that states that > > 'new_lam' may not match tlbstate_lam_cr3_mask() if a race occurs. > > The comment is indeed misguiding, but for different reason. It is leftover > from the earlier version of LAM patchset.