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 7BCD0C54E4A for ; Thu, 7 Mar 2024 22:30:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0EF756B02D0; Thu, 7 Mar 2024 17:30:17 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 0A0326B02D2; Thu, 7 Mar 2024 17:30:17 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EAA226B02D3; Thu, 7 Mar 2024 17:30:16 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id DC30C6B02D0 for ; Thu, 7 Mar 2024 17:30:16 -0500 (EST) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id BAE9CC04BF for ; Thu, 7 Mar 2024 22:30:16 +0000 (UTC) X-FDA: 81871687632.03.9E5DBC0 Received: from mail-yb1-f202.google.com (mail-yb1-f202.google.com [209.85.219.202]) by imf30.hostedemail.com (Postfix) with ESMTP id 10AD48000A for ; Thu, 7 Mar 2024 22:30:14 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=DRUcVUsm; spf=pass (imf30.hostedemail.com: domain of 39j_qZQoKCFULBFELx49103BB381.zB985AHK-997Ixz7.BE3@flex--yosryahmed.bounces.google.com designates 209.85.219.202 as permitted sender) smtp.mailfrom=39j_qZQoKCFULBFELx49103BB381.zB985AHK-997Ixz7.BE3@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=1709850615; 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=p4U6/xi3Ize/Gq+5zcGCk+1frkvpk205kMxRiv4nKJY=; b=Yp0Qo1vaZyL/wxC/3ceFqyiAsmJBHPjy0IQ70eycGcx8cZiNTL63sgKXKgo+BkKD/594ok L7QV9CBIVSkrKC/JXFPi0U8C+FhI4yxXZkhJKeV6K5bkDF2nsNx1N9KzoDqAganSfMgZUN 2+WQAO2OVtZlfTpHe/KXEL4s7pxyr8A= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=DRUcVUsm; spf=pass (imf30.hostedemail.com: domain of 39j_qZQoKCFULBFELx49103BB381.zB985AHK-997Ixz7.BE3@flex--yosryahmed.bounces.google.com designates 209.85.219.202 as permitted sender) smtp.mailfrom=39j_qZQoKCFULBFELx49103BB381.zB985AHK-997Ixz7.BE3@flex--yosryahmed.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1709850615; a=rsa-sha256; cv=none; b=S7k9Mgbteu3PFbZhKraOkXEPA4vlcUg9qedlydLz52r+zsBWXvdbvUcPV0UP2YnXW8zcLk 4A6BHoK75s5qQeHsDRPGlqvt839qxiJVy8Q7UpMC7EtPDzLw5z95TqXJ0mVkAYG+Ucum5R yCI5czKsvXKcqMIkQ5HSbQPMHMh7HoA= Received: by mail-yb1-f202.google.com with SMTP id 3f1490d57ef6-dcf22e5b70bso527425276.1 for ; Thu, 07 Mar 2024 14:30:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709850614; x=1710455414; 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=p4U6/xi3Ize/Gq+5zcGCk+1frkvpk205kMxRiv4nKJY=; b=DRUcVUsmO6qxKbR9ODzytAm6jX86ScA1R6RxU1FC530YUalTILmBUT708uWrpOlOqz Jbx2piBbSwilOwn+CzYA81H/AhFp9Z9faDJOa5lJJP1h3bT2HUVeK87kwYWGqNxEC10M 9eEeHupn8+diDeQfsAyWFnAc/rxnPYZqS7tN0dssWfjmGRuEi1tHIlEScUM0HbJYqjSO NCjnrI2isyld94DlGQTi4SaxKqVVfBtOGvcScDOW4JmGLoCVFF7eetpYNTKitV88VC3Z fusywdKuganl8rZl9BHciojlThijS5kvob4A7eZM0LQ14Sr2ULbDpA7OtRINlUSagAZZ P+iw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709850614; x=1710455414; 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=p4U6/xi3Ize/Gq+5zcGCk+1frkvpk205kMxRiv4nKJY=; b=O3GBMfzFcnSY9YmbcpH9RCEdg6E0G/lCyHbIAmk3KPo7kBuxADcza2EjAFHPSpvVbB p6egv81aalv6cX6PPRrUE+I55U2LTDfBmhCGdyxbTDwokPuQryd3sWJwOA3CjfcCi4XU sxmkQh+0U/HhgvRx2fjlHFKNkFd8WnASN0/cnxt7R9ymwSUOo/c70HRvojUzp9s4qlhq 6UWkhE+irLVU3FNDQuA+8FHKilUqkz3+oNVeZyAWZUG/dfhBzW7HTJKQyzWxG7QJaeVj luCYUFa7Zv7v0UJHjlOIg2GKXVoXkw19jK9ZE7tHyY+FNfFr2VxhQRpKBW+oICc5vqFb gUpw== X-Forwarded-Encrypted: i=1; AJvYcCWQJfTA9l/MkshZ8A0bDNxCEHow9TIwypaSONCBB9xZJbpuFmq13FjgRgr5LsebVoH5CwFJLizNJUQDB3xjAunHLKM= X-Gm-Message-State: AOJu0YwwWcbnt74NehuSu/n/CPRmJB1nV1pj2yttawy/ArdyfjLdp2lX EsFbuNXSwqL7/MAE4289HhE1l7hOSn3F7/OiBWAbgX1+X+NO51qYBI0Ftko9UH4hKAoXsbf/jPr JFrzKggsvNpeV7wRQIQ== X-Google-Smtp-Source: AGHT+IFyo7BTTs6Cive4MhKHbExY9d1K9zFrBTX7P3+4ufRaCc+jnmE+UROJ1/UwhO4dTDE8Wr3Fa9+InHNzK88w X-Received: from yosry.c.googlers.com ([fda3:e722:ac3:cc00:20:ed76:c0a8:29b4]) (user=yosryahmed job=sendgmr) by 2002:a25:c585:0:b0:dc2:2ace:860 with SMTP id v127-20020a25c585000000b00dc22ace0860mr701571ybe.2.1709850614208; Thu, 07 Mar 2024 14:30:14 -0800 (PST) Date: Thu, 7 Mar 2024 22:30:12 +0000 In-Reply-To: Mime-Version: 1.0 References: <20240307133916.3782068-1-yosryahmed@google.com> <20240307133916.3782068-3-yosryahmed@google.com> <034466a4-0917-47c4-934b-9549c3076624@intel.com> Message-ID: Subject: Re: [RFC PATCH 2/3] x86/mm: make sure LAM is up-to-date during context switching From: Yosry Ahmed To: Dave Hansen Cc: "Kirill A. Shutemov" , Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , 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: 10AD48000A X-Rspam-User: X-Stat-Signature: pr48si7zywosbuntdkxhchoaotmkuuq8 X-Rspamd-Server: rspam01 X-HE-Tag: 1709850614-894094 X-HE-Meta: U2FsdGVkX18nc0l0419k+rSXnDhaSJxmHz9jFWuAbzCkHRQOVrIQG1hxwzImZ1f+Kovh4lj1RWZkyzx8MMcmdkh6sI5zar+bn7DKvfSeZRtpkPDD8bCbNSPGRA+5QMNa1BfBSS0yQ/xQ05cabS6cRatTTLRI6aY3yiU6e23PICZRkVhYGQx4t3n6OusN5TYyCPeGbMgWQkjzVosjQx3RmKcwg+d5a6Ksj0n1rg6HZ9NFmhVxWzs/NSq/NLluMFTlr2M++fNfSP+ZvPNXTcGl72TkHHJTKxvCv9svkADy0dyf53Wyp3N75erKF//h51c7tLObn2uTmjwTnHWhYppTq/PyUReMwjeDq4G5uejnJTXVoRQzd1Fct8J8GBRsCNDW/GzDkTUqeaAkdI64jCR2Qj5zN/1GC7CrAo7lbfE10DxXfh937ntALCqz2TI1V7fEdxnGuhHk8jg1rHzKrWueaD4Es+gMVXzf5+5Xt/W6C29ihQ7ft19oIVNw9V+/asocRvahmgtZu53N+IauQPxRkz1AqLE+ne/jh66mk6JmKId6tTSeoXJZpIIDiGe9xuIarZVh8brWDnI49slQ0gx9tUZGk1GnOW3dauTqXJwxRLjnlnkM4wx+3pfzqLSfQNIO5vJFqJIr/tPBBz/XUN9WZQIclVM4dGcdJ7yOUkmWDfQgppZLM65pu/IiaMyOK+YdeFUR+4/naI/IL/30RZi3T1L2i51faQgHC2cK1EZ9o5dipHgPQYBMNNdeLBYrdVF+p7OOzZtaNoYi9hZaWZoas9SL2fjxZUFxqLgVANjB3b4NfYgSP1KksJxplMtwOSEzCFKzWDQF2v8IoNKZtxL7HZo247uls/Fh1cY+0vqszpJ+9ZCAY3gKcEoZ/QDqjnkATp2mfncfRNPdehQXLH1PSFeXLP+Mr6JzdgL2qQlePys497RFpVyQ0HlTc1Gmja+tQPOfIcUmCsX75YUPRx2 MKVMBq5B 3QRfKAc/ynMY7l/sYHO/OCZNOvm2vVlAQV+eyswR9ggj2jaaEJs/FIAxHLIs+dCVq+Rwwg0C2HD+YNBrWZS+k6w/KS2HQDb1aBMXwUSpV1uU1IjcgtNaWmnRK+qI41/1kDIreG3vxFVPNoqkuvRYzx6FODpWYiR664AT0j7GTNGuCbsd/2R4bHxTSBZjxVD6IFg5KZhcsgRnnXBX+13gSIZeOI24ekI8++BkYPQ25vWFAQtuR5lWzHzS6UeT2JZIdgHXOQ+0QkDiIOgkjpNATD9/lAD6z5rTab6SBv1qNuF616Q2jgAuJmNhxHlKT/L+/hOV8CSkDbOKBO4d7bZr+YEoxqQN/lsCfZtkp0NNqcrZ9kNXYeghebwpOOIlUxdPvVny8EOaswU8Eezxwj9KG+YOfPjLgS+erF+Q+i+z03FPl7yHXpXFDtv7K0hMBXD+jVCssWyhYn2nJGAiF6hs8r+v2ACSAeP8BEr3LUsR/OZZ0PawFmQFCaEz0oVb082OvBKsFNI+daQF+XK1aFiHMIEoux9tYXmAd/0g4wCUZqX68E5JvWb0BBiZG4Rk1DGzxgYI3HYbjjb1D90lyr47UfFIm9uPg3FPgTbap9PCOS7vS0sNKY01XvrZ0nJ0e8YKLBfRdNhxt2D3GJp0= 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 01:48:28PM -0800, Dave Hansen wrote: > On 3/7/24 13:08, Yosry Ahmed wrote: > > CPU 1 CPU 2 > > /* user thread running */ > > context_switch() /* to kthread */ > > /* user thread enables LAM */ > > context_switch() > > context_switch() /* to user thread */ > > > > In this case, there are no races, but the second context switch on CPU 1 > > may not write CR3 (if TLB is up-to-date), in which case we will run the > > user thread with CR3 having the wrong LAM mask. This could cause bigger > > problems, right? > > Yes, but this is precisely the kind of thing that we should solve with > mm generations. Its sole purpose is to thwart optimization where the > mm_prev==mm_next and might not rewrite CR3. I think it's clearer to have an explicit check for oudated LAM in switch_mm_irqs_off(), as I mentioned in my other reply.