Re: [tip:x86/asm] x86/umip: Add emulation code for UMIP instructions

From: Denys Vlasenko
Date: Wed Nov 08 2017 - 11:53:29 EST


On 11/08/2017 05:34 PM, Linus Torvalds wrote:
On Wed, Nov 8, 2017 at 8:14 AM, Denys Vlasenko <dvlasenk@xxxxxxxxxx> wrote:

Can we avoid maintain emulation of these isns, by asking Wine to remove
their use instead?

If we ask the Wine people to remove the instruction use, that may mean
that we can avoid the emulation in four or five _years_ once everybody
has updated.

But it wouldn't mean that we could avoid it today.

We can postpone enabling UMIP by default by a year or so.
By this time, new Wine will be on majority of users' machines.

Then, when kernels switch to enable UMIP by default, umip=0
kernel flag can be used if somebody for some reason updates
their kernel but not Wine.

This is much less code, and simpler code, than implementing SIDT et al
emulation.
Keep in mind that our SIDT emulation itself can turn out to be buggy,
in the worst case it may end up having worse holes that
SIDT isns was - what if it can be tricked into writing into
arbitrary kernel address?