Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp83344ybl; Tue, 27 Aug 2019 16:15:21 -0700 (PDT) X-Google-Smtp-Source: APXvYqyvGbMVTyFakgPLL/rYrK+LKwnmyN6bdPxtCaNRGXDxDcO7HP1uVPTGqVROkyPpexRRxYWK X-Received: by 2002:a63:7205:: with SMTP id n5mr784480pgc.443.1566947721683; Tue, 27 Aug 2019 16:15:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1566947721; cv=none; d=google.com; s=arc-20160816; b=Ff0MMX+kqELnIShcazmH5+87b87LpowJYq8EFRAnYYwTCEUUFU89X2K7QOuz6Bo5KT FImXlOFHT1+mm0IZB21wcs0njcLUL7TrbLKd6xop5BgPzJiRIY7pkhTzO/8/yFRcTRNp D9jsEfhLxf41MJSA2//3oydINqr9MdxD6AXWkFF6eVZC4r7TT+kaoSgQIjNkvdzg0lQF WG7wRFK49tjVw4fmGGRWJ8SN07IQZDVvhF823+mnbHNtKr4bxSqCZk2A2ExdqxnE+/X6 pJ5F4Yt5e7vLGx00hYzbTVmTs2/ZMKvd2YkD8gibcKWzWfqxn0/dM4haz42c4dKsFnX8 E7BQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=lVnUUkvCD24vbLX7H85yvABiRqDPCgiBaD5ZDNciViA=; b=QUfa/yg6PHcRqUsPeVNmK5ECxFzHQUxa6KlK0OJya5EHRI+UhbRTAeUcbgukevpiYt bSm2gjVkOPm1fVDbnbwHffoLrNfqtUqEUoS/ZPmeFw5yL6c3oQ5WF/ubHz0L3pCySXr4 u/OoLtYYWOauEcO7A9volVUSt0y/2iD7Y4b72FMEZ4VKIwF3fz7aDOkvJDvAFB8nN9im m6hgGUedSIu2L4YuWztFIhKvZFbXpqOnabYt+UStBKQc97JuoNlsx3zNdzUMT2HEMTi9 6N5/m6HeIrZNqllsx1oXLcX0ACaG8XiitAi4+cmEqJp7WmOaTqyDyPJZlAbttyibJS/f 7gcg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=VxPi+cBN; 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=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f1si615038pgn.149.2019.08.27.16.14.45; Tue, 27 Aug 2019 16:15:21 -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=@kernel.org header.s=default header.b=VxPi+cBN; 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=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726357AbfH0XNQ (ORCPT + 99 others); Tue, 27 Aug 2019 19:13:16 -0400 Received: from mail.kernel.org ([198.145.29.99]:42526 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726034AbfH0XNQ (ORCPT ); Tue, 27 Aug 2019 19:13:16 -0400 Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com [209.85.221.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id B00D422CF5 for ; Tue, 27 Aug 2019 23:13:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1566947595; bh=rHBa9MRffMSBHyUH5QZwjBWkLfU0q5vCcm3u+l5rcIw=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=VxPi+cBN5ooECgFEkOe7rqU7j7NTwarw2iKh9moOiOt+uRZ/cjiNPytBIwpf3g0nu m9VFcnmtKZTNMv+NVPptklx0a6m5WrvfRfGpBPuaUiOi56VZtrEE38zN/5vXc0MDu8 RezyNRm0OmabY8hQ6jqygiNoF+0fXTWmD1YteHE0= Received: by mail-wr1-f49.google.com with SMTP id z11so481981wrt.4 for ; Tue, 27 Aug 2019 16:13:14 -0700 (PDT) X-Gm-Message-State: APjAAAXYEBkY5ISCIljyfZLmd8YIsSiinZGTwr7gNLcy35BRsv0eEi7F rRAxqrWBlOFpML40vxsSb+U+UBY2AOBwu3842BQx3Q== X-Received: by 2002:a5d:4d4c:: with SMTP id a12mr511436wru.343.1566947593137; Tue, 27 Aug 2019 16:13:13 -0700 (PDT) MIME-Version: 1.0 References: <20190823225248.15597-1-namit@vmware.com> <20190823225248.15597-3-namit@vmware.com> In-Reply-To: <20190823225248.15597-3-namit@vmware.com> From: Andy Lutomirski Date: Tue, 27 Aug 2019 16:13:02 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [RFC PATCH v2 2/3] x86/mm/tlb: Defer PTI flushes To: Nadav Amit Cc: Andy Lutomirski , Dave Hansen , X86 ML , LKML , Peter Zijlstra , Thomas Gleixner , Ingo Molnar Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Aug 23, 2019 at 11:13 PM Nadav Amit wrote: > > INVPCID is considerably slower than INVLPG of a single PTE. Using it to > flush the user page-tables when PTI is enabled therefore introduces > significant overhead. > > Instead, unless page-tables are released, it is possible to defer the > flushing of the user page-tables until the time the code returns to > userspace. These page tables are not in use, so deferring them is not a > security hazard. I agree and, in fact, I argued against ever using INVPCID in the original PTI code. However, I don't see what freeing page tables has to do with this. If the CPU can actually do speculative page walks based on the contents of non-current-PCID TLB entries, then we have major problems, since we don't actively flush the TLB for non-running mms at all. I suppose that, if we free a page table, then we can't activate the PCID by writing to CR3 before flushing things. But we can still defer the flush and just set the flush bit when we write to CR3. --Andy