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 40A0FC5478C for ; Thu, 22 Feb 2024 18:43:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4DCDB6B008A; Thu, 22 Feb 2024 13:43:35 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 48CDC6B0095; Thu, 22 Feb 2024 13:43:35 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 354856B0099; Thu, 22 Feb 2024 13:43:35 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 23F216B008A for ; Thu, 22 Feb 2024 13:43:35 -0500 (EST) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id A6686120CD8 for ; Thu, 22 Feb 2024 18:43:34 +0000 (UTC) X-FDA: 81820313148.23.D440753 Received: from mail-yb1-f201.google.com (mail-yb1-f201.google.com [209.85.219.201]) by imf13.hostedemail.com (Postfix) with ESMTP id D46D52000E for ; Thu, 22 Feb 2024 18:43:32 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=cMmMM9nr; spf=pass (imf13.hostedemail.com: domain of 305XXZQoKCJIKAEDKw380z2AA270.yA8749GJ-886Hwy6.AD2@flex--yosryahmed.bounces.google.com designates 209.85.219.201 as permitted sender) smtp.mailfrom=305XXZQoKCJIKAEDKw380z2AA270.yA8749GJ-886Hwy6.AD2@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=1708627412; 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=vtwP2XS9ou6pEJ1RLzQIqe0uI1z5AHU3SBLD09pMwP4=; b=Yju5ZVA+0UBMEVTQW06ZWEUusO+AiFxnwmeS3DSZJzgMr8bn9O+/r0aaRZq2XVTCsxE8qn sAuIA51KW+5OO8Y2lA1dBQ4Cpj72AU7wD1cTRMHpjROvJUOaZHIj4pLuzGr5+VCh8XGdvm C+0GR0+uJT3dBSOwIwUhZBw/wvFNy4I= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1708627412; a=rsa-sha256; cv=none; b=D8iUF3qI31Jg9q0inQF+o2y10qB3SP7NualAsfpNj21MXokid+IQRYWGLEdX1fMzqWVI64 odZhb8U6HaZsZq+fpaiCUhPkwfDC799+TZQv14s+9jLU8YeMH3TfO0IvdCmSrahzOU/LiY VMTN3qdhwLGdMiPfJmqq5RrNTnPpHQU= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=cMmMM9nr; spf=pass (imf13.hostedemail.com: domain of 305XXZQoKCJIKAEDKw380z2AA270.yA8749GJ-886Hwy6.AD2@flex--yosryahmed.bounces.google.com designates 209.85.219.201 as permitted sender) smtp.mailfrom=305XXZQoKCJIKAEDKw380z2AA270.yA8749GJ-886Hwy6.AD2@flex--yosryahmed.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-yb1-f201.google.com with SMTP id 3f1490d57ef6-dc6b26783b4so15018276.0 for ; Thu, 22 Feb 2024 10:43:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1708627412; x=1709232212; 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=vtwP2XS9ou6pEJ1RLzQIqe0uI1z5AHU3SBLD09pMwP4=; b=cMmMM9nrTWIN9LvLyPfzUB0plO9eJdZt97Dp1JJGCeisLZUUwHtIb/dgNBqU2YO8b2 YuANV9Es90BEr44fqmvtLxg9UKlLRJCe/2dNb4HAg/1Ab7n5MmFqhzAjSjk5c6TQ1Cin mfZzEpb6taa11BGftunEZKpdNwE/flVOJXOwswfgvH59lnWRk2cIYxYTYThbaw7twSjX cOo5eZZVCdoWS9K9vpwwbHWPHrvhTlt9wrJB1DX8P4GKU3NIzsFxphN3R/8cFj1kMMYZ 4IcAoMsIJZkBrc+oIuXsy44H2RWpbMRCrxcL19b5lE7IYqtDVvXCOYJ5JfSUOZZO7wH6 e+yA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708627412; x=1709232212; 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=vtwP2XS9ou6pEJ1RLzQIqe0uI1z5AHU3SBLD09pMwP4=; b=UXYlusfSJMpk+siQhLtT8VGJylxaamV0u+exd8O/mz1hUCGeWc45YsYrIjnEPN8tIo lk21HgO+MEnri0au94+6dZIkcthrWY4BGx1LmuEAx7Z7hue5klXV8j9nA+WpjJ4hJCBK Bs1OPiFV8wKvuKazzTExKntQcuAgpunam+vuEzAg++cUjZAnw1GqafL/Wieq4vxCN5VZ ZwezaRjVKtZ5ojdq7RV4Pmi6/qD9NSpBroHISZG3PstXz5cM2MfGRR8Wnq8Ru8qHYT0R JzNx45r9CSSFs+2KqCdJlSIXsgLhxI2ff8y8sUx6IF7yNI2vI/2+ZcvKhH53gXClPj43 TQFA== X-Forwarded-Encrypted: i=1; AJvYcCVDRb6b/orJ1jq40jf8EO4M6CL1uMtY76NXYEwDlp3tRaPDeXr+PhceOXexLmwQPqX9qSy4JoH+fq+EuErF/tLNpfU= X-Gm-Message-State: AOJu0Yyh1D0gPIi7irc7YSflDYPUuBsNsAuSJABPX0zBDg7+j1BuUPkE i36c5CnV4AtCbmSDrrT0DQNWjEtp6vuFlhUdedEH5f0qJz5hQJ54VU4aLlzQzv3E0/MhUsvnqO7 kCJCTo/e2n5cv6Lfyzw== X-Google-Smtp-Source: AGHT+IG0Dpc0HqUIEH2QaxU8zdGkOicjs62MCVp5oWNs1mYFM729U+8fzSFZDybDPzCTW48XhDCgyw3UZZzaymK9 X-Received: from yosry.c.googlers.com ([fda3:e722:ac3:cc00:20:ed76:c0a8:29b4]) (user=yosryahmed job=sendgmr) by 2002:a05:6902:1245:b0:dbe:30cd:8fcb with SMTP id t5-20020a056902124500b00dbe30cd8fcbmr219ybu.0.1708627411906; Thu, 22 Feb 2024 10:43:31 -0800 (PST) Date: Thu, 22 Feb 2024 18:43:30 +0000 In-Reply-To: <88cb9996-0e9b-49ec-bc94-f816a5b64870@intel.com> Mime-Version: 1.0 References: <20240126080644.1714297-1-yosryahmed@google.com> <20240126080644.1714297-2-yosryahmed@google.com> <88cb9996-0e9b-49ec-bc94-f816a5b64870@intel.com> Message-ID: Subject: Re: [PATCH 2/2] x86/mm: clarify "prev" usage in switch_mm_irqs_off() From: Yosry Ahmed To: Dave Hansen Cc: Ingo Molnar , Thomas Gleixner , Borislav Petkov , Dave Hansen , Andy Lutomirski , Peter Zijlstra , Andrew Morton , x86@kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="us-ascii" X-Rspamd-Queue-Id: D46D52000E X-Rspam-User: X-Stat-Signature: kazkqd4afcppoa33kynre1buutwj6ofz X-Rspamd-Server: rspam03 X-HE-Tag: 1708627412-959878 X-HE-Meta: U2FsdGVkX1/jwqiaGPmsaNqxDomUfwtrmwbkV+p/hiIdkclyNEr7dY5dhvZ3QZ0bxWfiHSbToYiNJdPTERZ4Z2f2ldSygW+t/ZZ70Yiyad+3V98/lWejAUMOWxwsJTPVXXO3/lUrZPmgrsXSqfX7eZc26wrtKzXyfgG5VS2dJVbkgVA1/Ns6h9Nm8KrYubmG/b0CKS+YYwWSxNjhe7cUQSUMh3QOIljDY9cRC/sED2AMS4SQNLRrrrr63jicqK7EIFVdEYWg/8vwpQlADumHFolYgSZvlmSYxRpB1FR9zDsx5LbuFc/ALJt6suw/FRKh2QR9Za4p64ITDpgqw2x0194UKt3ySu41pFSozsj67l58jbPzkTTwJY+EW7VTvJ+TZOgQJDqS9GIqIxEL65l0pMH+dRvqGNSpNlmAvm1DIEs2IpUgvchntIYkrgypHyqd00ci8HEVdNfLLRBtS0QzB+IRDJLU9rNDXVqHdiOTXymoooGfdSjw+JmVluQBlVgyytxnPsweCRd/zfmb+GQPFOkYX+YRGAhExCoY1G9Fpej3xq9pMy/tTWjhOPHpVtJPWi/EnB42qBQBWmiI0KL2jyfwTykwTps3A3DrjEKaCPjCEDsDmX/1++WGPje7Xp4BRLhuLjT1Vn/Hx+Otigeo7KYAJ2J0sQ+dmeHCe9qhQtraK9gfAiUHLX8M4bVa3+XNZxr2w4dncIW7Nk+kY/Xh/zymz5jUG4cOqo5kylyQoRk0pbB/Np16JLzL/zGycAbtPctEoYIm5+3AGHZ+mBYMO1aREq/AV7zldZiXEzKt7BkG+m+XBeCcEMoTwaamtSJWMrt25c48nTRANkb+xJ/LdgsveT7wDiGv5mQccOXomo8MP1zy/14WFlcsxYgQNphXwMMbfinP2PQoUQbb2ySuPsgdbw+Y4OSJFyzbn2OyAjcRYLbljhFVZXkn+YJ3BTJZl6E0TdUI7ZMu4a4AYmU cJpp1vB4 H5ewpCu2kQqJO3VgVXNqAigpKWFrO0E9m2drR9VEiWW0uw2FR+HYVChBsUK89YQ7o/xbDanRULE1gSUgzf2RHTFuN56TPvIOobl253PtnvLr3P7XY2sC0KykiJ12OX64ylQzjGuK9UzMc3VfRDCS0hPd6N7xFo39yRJhj4pu7U35U5KgrDZqoNCGh/gn+p6SUUF158EDUhl6HFTleq8GS+q+9ovqR7BwPFBLwBJevZGrSlJ0upCsZpIKq6B5JparEOTSUbzE2udrVHnqxidPVygcXniqWtlLFb0lxi0zGTIi7hdz9qa424QoQgF6STqijM7oYRFiEXH84uHHWKcNK9z372xOhhUGsH0qhISPqoR4Axm86Ga8XrlSzxt9NccV2WfNywdYJP9OU9pvMkDTU5I0Xe4sZkVZa45DxVJistJXVIkXXRWL0xFM9jCq67e5LpiHmQdhvJjK49k0uiTtQ2c20j2k7/0XrIYAkEYJCem+/9LO0A0nj403RAPKRg8Odc52B4ZQGhalAZcLwUfUDLsLwBsDUDGiiI4P7VUllq51YGL/kv5+3VM12y+2kZnhot8iA9QucxTZ1N24Z69xUG4eGOGw+QI/v7hwbkrcGgzbW/F+EnU/q1KzF7AjakjtFWriDposNGdxrNe5EhC9sL9C3NA== 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, Feb 22, 2024 at 08:48:17AM -0800, Dave Hansen wrote: > On 1/26/24 00:06, Yosry Ahmed wrote: > > +/* > > + * The "prev" argument passed by the caller does not always match CR3. For > > + * example, the scheduler passes in active_mm when switching from lazy TLB mode > > + * to normal mode, but switch_mm_irqs_off() can be called from x86 code without > > + * updating active_mm. Use cpu_tlbstate.loaded_mm instead. > > + */ > > +void switch_mm_irqs_off(struct mm_struct *unused, struct mm_struct *next, > > struct task_struct *tsk) > > One nit here: It's not obvious that "unused" is 'the "prev" argument'. > > Would something like this be more clear? > > /* > * This optimizes when not actually switching mm's. Some architectures > * use the 'unused' argument for this optimization, but x86 must use > * 'cpu_tlbstate.loaded_mm' instead because it does not always keep > * ->active_mm up to date. > */ Yes, this is more clear, thanks! However, Andrew already merged that patch into mm-stable, so it cannot be amended. I can send a separate patch to rewrite the comment tho if you'd like, WDYT? > > Also, I think it might be useful to have the rule that arch/x86 code > _always_ calls switch_mm_irqs_off() with the first argument (the > newly-named 'unused') set to NULL. I think there's only one site: Agreed. I can also send a separate patch for this. Thanks! > > > void switch_mm(struct mm_struct *prev, struct mm_struct *next, > > struct task_struct *tsk) > > { > > unsigned long flags; > > > > local_irq_save(flags); > > switch_mm_irqs_off(prev, next, tsk); > > local_irq_restore(flags); > > } >