From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754613AbdKMVHK (ORCPT ); Mon, 13 Nov 2017 16:07:10 -0500 Received: from mga07.intel.com ([134.134.136.100]:59464 "EHLO mga07.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753015AbdKMVHF (ORCPT ); Mon, 13 Nov 2017 16:07:05 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.44,389,1505804400"; d="scan'208";a="173101472" Subject: Re: [PATCH 24/30] x86, kaiser: disable native VSYSCALL To: Andy Lutomirski References: <20171108194646.907A1942@viggo.jf.intel.com> <20171108194731.AB5BDA01@viggo.jf.intel.com> <6871f284-b7e9-f843-608f-5345f9d03396@linux.intel.com> <27b55108-1e72-cb3d-d5d8-ffe0238245aa@linux.intel.com> <4c8c441e-d65c-fcec-7718-6997bd010971@linux.intel.com> <7ec56785-8e18-4ac8-ebe8-ebdd3ac265da@linux.intel.com> Cc: "linux-kernel@vger.kernel.org" , "linux-mm@kvack.org" , moritz.lipp@iaik.tugraz.at, Daniel Gruss , michael.schwarz@iaik.tugraz.at, richard.fellner@student.tugraz.at, Linus Torvalds , Kees Cook , Hugh Dickins , X86 ML From: Dave Hansen Message-ID: <8b23c090-f7c3-5110-011b-07e5131eb996@linux.intel.com> Date: Mon, 13 Nov 2017 13:07:03 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 11/12/2017 07:52 PM, Andy Lutomirski wrote: > On Fri, Nov 10, 2017 at 3:04 PM, Dave Hansen > wrote: >> On 11/10/2017 02:06 PM, Andy Lutomirski wrote: >>> I have nothing against disabling native. I object to breaking the >>> weird binary tracing behavior in the emulation mode, especially if >>> it's tangled up with KAISER. I got all kinds of flak in an earlier >>> version of the vsyscall emulation patches when I broke that use case. >>> KAISER may get very widely backported -- let's not make changes that >>> are already known to break things. >> >> Is the thing that broke a "user mode program that actually looks at the >> vsyscall page"? Like Linus is referring to here: >> > Yes. But I disagree with Linus. I think it would be perfectly > reasonable to enable KAISER and to use a tool like pin on a legacy > binary from some enterprise distribution. I bet there are lots of > enterprise distributions that are still supported that use vsyscalls. All we need to do in the end here is to re-set _PAGE_USER on the user page table PGD that is used by the vsyscall page. We should be able to do that with a line or two of code in kaiser_init(). We can do it conditionally on when the VDSO is not compile-time disabled. I can do this as a follow-on patch, or as the last one in the KAISER series and leave it up to our esteemed maintainers to decide whether they want to do it or not. Sound good? Are there any userspace tests around that I can use for this, or will I have to cook something up?