Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752650AbdC2EiY (ORCPT ); Wed, 29 Mar 2017 00:38:24 -0400 Received: from mga09.intel.com ([134.134.136.24]:45572 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752600AbdC2EiW (ORCPT ); Wed, 29 Mar 2017 00:38:22 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.36,239,1486454400"; d="scan'208";a="241492794" Message-ID: <1490762284.2647.24.camel@ranerica-desktop> Subject: Re: [v6 PATCH 00/21] x86: Enable User-Mode Instruction Prevention From: Ricardo Neri To: Stas Sergeev Cc: Andy Lutomirski , Ingo Molnar , Thomas Gleixner , "H. Peter Anvin" , Andy Lutomirski , Borislav Petkov , Peter Zijlstra , Andrew Morton , Brian Gerst , Chris Metcalf , Dave Hansen , Paolo Bonzini , Liang Z Li , Masami Hiramatsu , Huang Rui , Jiri Slaby , Jonathan Corbet , "Michael S. Tsirkin" , Paul Gortmaker , Vlastimil Babka , Chen Yucong , Alexandre Julliard , Fenghua Yu , "Ravi V. Shankar" , Shuah Khan , "linux-kernel@vger.kernel.org" , X86 ML , linux-msdos@vger.kernel.org, wine-devel@winehq.org Date: Tue, 28 Mar 2017 21:38:04 -0700 In-Reply-To: References: <20170308003254.27833-1-ricardo.neri-calderon@linux.intel.com> <79ba0fff-4c01-2bfa-06cb-5cfc98dd710c@list.ru> <997ba581-ecfa-b773-a48e-85b92a439836@list.ru> <1489022122.131264.33.camel@ranerica-desktop> <63231222-5b42-c8c9-02f0-0afbe702d8b5@list.ru> <1489190396.131264.47.camel@ranerica-desktop> <6331deea-e9b0-fcfe-b75d-8100f37a615a@list.ru> <1490658399.2647.14.camel@ranerica-desktop> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.10.4-0ubuntu2 Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2887 Lines: 73 On Tue, 2017-03-28 at 12:38 +0300, Stas Sergeev wrote: > 28.03.2017 02:46, Ricardo Neri пишет: > > On Tue, 2017-03-14 at 00:25 +0300, Stas Sergeev wrote: > >> 11.03.2017 02:59, Ricardo Neri пишет: > >>> On Fri, 2017-03-10 at 14:33 +0300, Stas Sergeev wrote: > >>> > >>>> Why would you need one? > >>>> Or do you really want to allow these instructions > >>>> in v86 by the means of emulation? If so - this wasn't > >>>> clearly stated in the patch description, neither it was > >>>> properly discussed, it seems. > >>> It str and sldt can be emulated in vm86 but as Andy mention, the > >>> behavior sould be the same with and without emulation. > >> Why would you do that? > >> I looked up the dosemu2 CPU simulator code that > >> is used under x86-64. It says this: > > Stas, I apologize for the delayed reply; I missed your e-mail. > >> It only implements smsw. > >> So maybe you can make your code much > >> simpler and remove the unneeded emulation? > >> Same is for prot mode. > > Do you mean the unneeded emulation for SLDT and STR? > Not quite, I meant also sgdt and sidt in vm86. > Yes that it will be a somewhat "incompatible" change, > but if there is nothing to stay compatible with, > then why to worry? My idea of compatibility was to have the emulation code behave exactly as a processor without UMIP :) > Probably you could also remove > the sldt and str emulation for protected mode, because, > as I understand from this thread, wine does not > need those. I see. I would lean on keeping the emulation because I already implemented it :), for completeness, and because it is performed in a single switch. The bulk of the emulation code deals with operands. > > Note that these days dosemu2 uses v86 mode set > up under kvm rather than vm86(). Your patches > affect that the same way as they do for vm86() > syscall, or can there be some differences? My code does not touch kvm at all. I would need to assess how kvm will behave. > Or should > the UMIP be enabled under kvm by hands? There was an attempt to emulate UMIP that was submitted a while ago: https://lkml.org/lkml/2016/7/12/644 > > >> You know the wine's > >> requirements now - they are very small. And > >> dosemu doesn't need anything at all but smsw. > >> And even smsw is very rare. > > But emulation is still needed for SMSW, right? > Likely so. > If you want, I can enable the logging of this command > and see if it is used by some of the DOS programs I have. It would be great if you could do that, if you don't mind. > But at least dosemu implements it, so probably it is needed. Right. > Of course if it is used by one of 100 DOS progs, then there > is an option to just add its support to dosemu2 and pretend > the compatibility problems did not exist. :) Do you mean relaying the GP fault to dosemu instead of trapping it and emulating it in the kernel? Thanks and BR, Ricardo