From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stas Sergeev Subject: Re: [v6 PATCH 00/21] x86: Enable User-Mode Instruction Prevention Date: Wed, 8 Mar 2017 19:29:31 +0300 Message-ID: <997ba581-ecfa-b773-a48e-85b92a439836@list.ru> References: <20170308003254.27833-1-ricardo.neri-calderon@linux.intel.com> <79ba0fff-4c01-2bfa-06cb-5cfc98dd710c@list.ru> Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Return-path: DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=list.ru; s=mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:MIME-Version:Date:Message-ID:From:Cc:References:To:Subject; bh=0/Mt+Zs/lOiA7XsKT6bLH4hGqNy3cl1D/aCQqAHI10M=; b=e7+rDPBDxBvCJuBpvf+R0dIXTZWcKEBsoijy5/QLl6AkUh7yhPUiENDtLy4mVdxFPrxCaCXFJ+v0ad0ysMT7m4qPog+cvNkjc0LEHWU1BCu4UKjsQdUw5mCbZTq+Z7rv3FoEE0iXPUFr6ja7+aF1K7dpITzwxnsw+WKA7/f0ohg=; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=list.ru; s=mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:MIME-Version:Date:Message-ID:From:Cc:References:To:Subject; bh=0/Mt+Zs/lOiA7XsKT6bLH4hGqNy3cl1D/aCQqAHI10M=; b=e7+rDPBDxBvCJuBpvf+R0dIXTZWcKEBsoijy5/QLl6AkUh7yhPUiENDtLy4mVdxFPrxCaCXFJ+v0ad0ysMT7m4qPog+cvNkjc0LEHWU1BCu4UKjsQdUw5mCbZTq+Z7rv3FoEE0iXPUFr6ja7+aF1K7dpITzwxnsw+WKA7/f0ohg=; In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org List-ID: Content-Type: text/plain; charset="utf-8"; format="flowed" To: Andy Lutomirski Cc: Ricardo Neri , 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 08.03.2017 19:06, Andy Lutomirski пишет: > On Wed, Mar 8, 2017 at 6:08 AM, Stas Sergeev wrote: >> 08.03.2017 03:32, Ricardo Neri пишет: >>> These are the instructions covered by UMIP: >>> * SGDT - Store Global Descriptor Table >>> * SIDT - Store Interrupt Descriptor Table >>> * SLDT - Store Local Descriptor Table >>> * SMSW - Store Machine Status Word >>> * STR - Store Task Register >>> >>> This patchset initially treated tasks running in virtual-8086 mode as a >>> special case. However, I received clarification that DOSEMU[8] does not >>> support applications that use these instructions. > Can you remind me what was special about it? It looks like you still > emulate them in v8086 mode. Indeed, sorry, I meant prot mode here. :) So I wonder what was cited to be special about v86. >> Yes, this is the case. >> But at least in the past there was an attempt to >> support SLDT as it is used by an ancient pharlap >> DOS extender (currently unsupported by dosemu1/2). >> So how difficult would it be to add an optional >> possibility of delivering such SIGSEGV to userspace >> so that the kernel's dummy emulation can be overridden? >> It doesn't need to be a matter of this particular >> patch set, i.e. this proposal should not trigger a >> v7 resend of all 21 patches. :) But it would be useful >> for the future development of dosemu2. > What I'd actually like to see is a totally separate patchset that adds > an inheritable (but reset on exec) per-task mask of legacy > compatibility features to disable. Maybe: > > sys_adjust_compat_mask(int op, int word, u32 mask); No no, since I meant prot mode, this is not what I need. I would never need to disable UMIP as to allow the prot mode apps to do SLDT. Instead it would be good to have an ability to provide a replacement for the dummy emulation that is currently being proposed for kernel. All is needed for this, is just to deliver a SIGSEGV.