Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp1132336imm; Wed, 23 May 2018 10:46:58 -0700 (PDT) X-Google-Smtp-Source: AB8JxZpFPmZW0xiXj5NosyVOOOWQ8xmA5W/mXqIm2fh5C01VbJY9OZDq/OWo21at1vT9F3O5awHk X-Received: by 2002:a65:608c:: with SMTP id t12-v6mr2989645pgu.182.1527097618754; Wed, 23 May 2018 10:46:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527097618; cv=none; d=google.com; s=arc-20160816; b=sba8lusoUUi9wT194ultrJ7uCviLvSoMyRJGOwTKKL7t0sJVkrpq7KbFdNuWb0WMoF Ko/7Aq7ze3XacD9iVNxG3wu9xIk+t6D8zcx60fnNcaOe0O6THK995ebtJGc4W0Lo8vxC /r/lqoKiyh1uF88nvpimlUQGRehTq+2OYPpoyxQDh8Xz3CyXhEZEPWH7Ekts3RL97/Gp MTP7IF0uutBd723zHTxkc2NNTjjLCjGIb8GO4f+UpamC3dX9S89AcAowdPKngcyFWUbW jgrus8xT3OMV6nbPyDb0exZWatyUYwaLQ6y3FPhx5htas1RvzGNlUV1Zg4AEqhICGZc9 WHow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:to:references:message-id :content-transfer-encoding:cc:date:in-reply-to:from:subject :mime-version:dkim-signature:arc-authentication-results; bh=glneYJPRzWj2TCJ4JDeXcgJ/iT/9lXs3SugSyeeOJts=; b=B5gNfEQ2wlKYG8tz806gLkppNgkscuv/kVsiuxDde8ja7cGoz6Ic80ywUjexbustz+ d2ATfHkEkCz8IJMKgH0YOHe+Ky0L5WFmehlDLTTTKsfxIvAkUpblwKZimdtVKmE+JVd7 NatnIg2UcWyveirVny427UZHZ0ciBLIjVzA8/gwPz1/4rw5XTgJ59w/5k3kHvFcDVK3z pCq8JDdjM3l3aZa+14YHhN+NH0H5pYBI3M9PQEJNWe/U0Q+Om15rTi2MjoBpmSS3Yc+4 nTY7G7cPcvDcrZTiK99A3/qzyvu6Zqj8MegMjkoKjXjG+tBOO0huAJSiUdZ2I217mu/l A+IQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=aNazWYRQ; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 1-v6si18392477plr.483.2018.05.23.10.46.43; Wed, 23 May 2018 10:46:58 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=aNazWYRQ; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933897AbeEWRqc (ORCPT + 99 others); Wed, 23 May 2018 13:46:32 -0400 Received: from mail-pl0-f67.google.com ([209.85.160.67]:33644 "EHLO mail-pl0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932667AbeEWRq3 (ORCPT ); Wed, 23 May 2018 13:46:29 -0400 Received: by mail-pl0-f67.google.com with SMTP id n10-v6so13476459plp.0; Wed, 23 May 2018 10:46:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=glneYJPRzWj2TCJ4JDeXcgJ/iT/9lXs3SugSyeeOJts=; b=aNazWYRQcFXmddgaub4uQ9Yb9nGABLxSq2OT4Lsa/wIO5mgUomVX2DtDUgo4tvOJ8T cTqaBZ8XQTLM8RwArkeEnFAa6sYNCBWQr0ikoTH5c6+HmMYtrTd8KCyo67gR0FKjjQxz YQnBkL0KcSyw+6wgYXqrVB7f/QuclQtxU80Frsz4eRjdB32zSQSGxDhj9E9wjVos5VuS 66LAJ2LfNZkxCNWSjegavpV+57JGIOZ9l8UJ+f3437hSxJqo7qUw4elPu0AQLnkmefjr N+9N+flSqa4I4cGzMBbkfYWnR//KStzDJly3E7FBwOlktd34gGEx5ewn8OUwrNYOn++H 3qkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=glneYJPRzWj2TCJ4JDeXcgJ/iT/9lXs3SugSyeeOJts=; b=Hn3u6TIxFxXt/M7h9QexrrQ+rNj/Ww4AMYpwNRs11xXOUvnVlNKo5lAJCN17cFgww/ RgvjpxM085UU4z7bLKoAN9MUx6p2L27xpu1MaraT5uKFW6siWTduocmS2DDvmNoB24Uv GnRmM6MgM2BYsIz3iXU3YmRLIZ+gK/hg/qQeqBm/azvFUwrBYxQGPLvkEZFVUpPHYfvl 3i40U3Xa75Zc/r32SooxB95YXVJsqXkGGht9o6Gm6GaqcgYQjbztchj342zMrfBhhdJi j/UJoru+BT6MdUuc6GWOXXOQ6Ry7hmYef4cz3P/V50gToT4a2D4szf0o8o1dZOnuXD+9 smeQ== X-Gm-Message-State: ALKqPwevpIfzKFOMPz/KrCo3j88drWB5WLmcTu7Si8YHTV9XzwuPWD02 liyLY0ha+PpPoIoLoGg3Nyw= X-Received: by 2002:a17:902:f83:: with SMTP id 3-v6mr3875594plz.336.1527097588791; Wed, 23 May 2018 10:46:28 -0700 (PDT) Received: from [10.2.101.129] ([208.91.2.2]) by smtp.gmail.com with ESMTPSA id x3-v6sm47175553pff.87.2018.05.23.10.46.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 23 May 2018 10:46:27 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: Re: [PATCH] mm: Add new vma flag VM_LOCAL_CPU From: Nadav Amit In-Reply-To: <5e20be19-28ba-189a-6935-698a012a6665@linux.intel.com> Date: Wed, 23 May 2018 10:46:26 -0700 Cc: Matthew Wilcox , Christopher Lameter , Boaz Harrosh , Jeff Moyer , Andrew Morton , "Kirill A. Shutemov" , linux-kernel , linux-fsdevel , "linux-mm@kvack.org" , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , x86@kernel.org, Peter Zijlstra , Rik van Riel , Jan Kara , Matthew Wilcox , Amit Golander Content-Transfer-Encoding: quoted-printable Message-Id: <45CBAC53-610A-485B-95D8-4357261338BF@gmail.com> References: <0efb5547-9250-6b6c-fe8e-cf4f44aaa5eb@netapp.com> <20180514191551.GA27939@bombadil.infradead.org> <7ec6fa37-8529-183d-d467-df3642bcbfd2@netapp.com> <20180515004137.GA5168@bombadil.infradead.org> <010001637399f796-3ffe3ed2-2fb1-4d43-84f0-6a65b6320d66-000000@email.amazonses.com> <5aea6aa0-88cc-be7a-7012-7845499ced2c@netapp.com> <50cbc27f-0014-0185-048d-25640f744b5b@linux.intel.com> <0100016388be5738-df8f9d12-7011-4e4e-ba5b-33973e5da794-000000@email.amazonses.com> <20180522175114.GA1237@bombadil.infradead.org> <5e20be19-28ba-189a-6935-698a012a6665@linux.intel.com> To: Dave Hansen X-Mailer: Apple Mail (2.3273) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Dave Hansen wrote: > On 05/22/2018 10:51 AM, Matthew Wilcox wrote: >> But CR3 is a per-CPU register. So it'd be *possible* to allocate one >> PGD per CPU (per process). Have them be identical in all but one of >> the PUD entries. Then you've reserved 1/512 of your address space = for >> per-CPU pages. >>=20 >> Complicated, ugly, memory-consuming. But possible. >=20 > Yep, and you'd probably want a cache of them so you don't end up = having > to go rewrite half of the PGD every time you context-switch. But, on > the plus side, the logic would be pretty similar if not identical to = the > way that we manage PCIDs. If your mm was recently active on the CPU, > you can use a PGD that's already been constructed. If not, you're = stuck > making a new one. >=20 > Andy L. was alto talking about using this kind of mechanism to = simplify > the entry code. Instead of needing per-cpu areas where we index by = the > CPU number, or by using %GS, we could have per-cpu data or code that = has > a fixed virtual address. >=20 > It'd be a fun project, but it might not ever pan out. For the record: there are several academic studies about this subject. = The most notable one is Corey [1]. [1] = https://www.usenix.org/legacy/event/osdi08/tech/full_papers/boyd-wickizer/= boyd_wickizer.pdf=