[PATCH] int10: Remove the vm86 and stub backends

2010-07-13 Thread Adam Jackson
vm86 has been defaulted off since 1.6, and is still a terrible idea to
actually use.  Time to say goodbye.

The stub backend is only ever built by default on freebsd/ppc, and can't
be doing any good there.  The right fix is --disable-int10 if you want
to not ship int10 support.

Signed-off-by: Adam Jackson 
---
 configure.ac   |   15 -
 hw/xfree86/int10/Makefile.am   |   17 -
 hw/xfree86/int10/stub.c|   69 ---
 hw/xfree86/os-support/int10Defines.h   |   52 +--
 hw/xfree86/os-support/linux/int10/linux.c  |  544 
 .../os-support/linux/int10/vm86/linux_vm86.c   |  300 ---
 hw/xfree86/x86emu/Makefile.am  |2 -
 include/dix-config.h.in|3 -
 8 files changed, 1 insertions(+), 1001 deletions(-)
 delete mode 100644 hw/xfree86/int10/stub.c
 delete mode 100644 hw/xfree86/os-support/linux/int10/linux.c
 delete mode 100644 hw/xfree86/os-support/linux/int10/vm86/linux_vm86.c

diff --git a/configure.ac b/configure.ac
index b3b752c..1a8221e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -332,7 +332,6 @@ dnl 
---
 dnl Bus options and CPU capabilities.  Replaces logic in
 dnl hw/xfree86/os-support/bus/Makefile.am, among others.
 dnl ---
-DEFAULT_INT10="x86emu"
 
 dnl Override defaults as needed for specific platforms:
 
@@ -363,9 +362,6 @@ case $host_cpu in
 ;;
   powerpc*)
PPC_VIDEO=yes
-   case $host_os in
-   *freebsd*)  DEFAULT_INT10=stub ;;
-   esac
;;
   sparc*)
SPARC64_VIDEO=yes
@@ -476,9 +472,6 @@ AC_ARG_ENABLE(unit-tests,
AS_HELP_STRING([--enable-unit-tests],
 AC_ARG_ENABLE(use-sigio-by-default, 
AS_HELP_STRING([--enable-use-sigio-by-default]
   [Enable SIGIO input handlers by default (default: $USE_SIGIO_BY_DEFAULT)]),
 [USE_SIGIO_BY_DEFAULT=$enableval], [])
-AC_ARG_WITH(int10,   AS_HELP_STRING([--with-int10=BACKEND], [int10 
backend: vm86, x86emu or stub]),
-   [INT10="$withval"],
-   [INT10="$DEFAULT_INT10"])
 AC_ARG_WITH(vendor-name, AS_HELP_STRING([--with-vendor-name=VENDOR],
  [Vendor string reported by the server]),
[ VENDOR_NAME="$withval" ], [])
@@ -707,14 +700,6 @@ XTRANS_CONNECTION_FLAGS
 XTRANS_SECURE_RPC_FLAGS
 AM_CONDITIONAL(SECURE_RPC, [test "x$SECURE_RPC" = xyes])
 
-AM_CONDITIONAL(INT10_VM86, [test "x$INT10" = xvm86])
-AM_CONDITIONAL(INT10_X86EMU, [test "x$INT10" = xx86emu])
-AM_CONDITIONAL(INT10_STUB, [test "x$INT10" = xstub])
-if test "x$INT10" = xyes; then
-   dnl VM86 headers
-   AC_CHECK_HEADERS([sys/vm86.h sys/io.h])
-fi
-
 dnl Handle building documentation
 AM_CONDITIONAL(BUILDDOCS, test "x$BUILDDOCS" = xyes)
 XORG_ENABLE_DEVEL_DOCS
diff --git a/hw/xfree86/int10/Makefile.am b/hw/xfree86/int10/Makefile.am
index f5ece69..79eb25a 100644
--- a/hw/xfree86/int10/Makefile.am
+++ b/hw/xfree86/int10/Makefile.am
@@ -17,16 +17,6 @@ if I386_VIDEO
 I386_VIDEO_CFLAGS = -D_PC
 endif
 
-if INT10_VM86
-AM_CFLAGS = $(I386_VIDEO_CFLAGS) -D_VM86_LINUX $(DIX_CFLAGS) $(XORG_CFLAGS) 
$(EXTRA_CFLAGS)
-INCLUDES = $(XORG_INCS)
-libint10_la_SOURCES = \
-   $(COMMON_SOURCES) \
-   $(srcdir)/../os-support/linux/int10/vm86/linux_vm86.c \
-   $(srcdir)/../os-support/linux/int10/linux.c
-endif
-
-if INT10_X86EMU
 AM_CFLAGS = $(I386_VIDEO_CFLAGS) -D_X86EMU -DNO_SYS_HEADERS \
$(XORG_CFLAGS) $(EXTRA_CFLAGS) $(DIX_CFLAGS)
 INCLUDES = $(XORG_INCS) -I$(srcdir)/../x86emu
@@ -35,12 +25,5 @@ libint10_la_SOURCES = \
xf86x86emu.c \
generic.c \
x86emu.c
-endif
-
-if INT10_STUB
-AM_CFLAGS = $(I386_VIDEO_CFLAGS) -D_VM86_LINUX $(DIX_CFLAGS) $(XORG_CFLAGS) 
$(EXTRA_CFLAGS)
-INCLUDES = $(XORG_INCS)
-libint10_la_SOURCES = stub.c xf86int10module.c
-endif
 
 EXTRA_DIST = xf86x86emu.h INT10.HOWTO
diff --git a/hw/xfree86/int10/stub.c b/hw/xfree86/int10/stub.c
deleted file mode 100644
index 58b6578..000
--- a/hw/xfree86/int10/stub.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- *   XFree86 int10 module
- *   execute BIOS int 10h calls in x86 real mode environment
- * Copyright 1999 Egbert Eich
- */
-#ifdef HAVE_XORG_CONFIG_H
-#include 
-#endif
-
-#include "xf86.h"
-#include "xf86str.h"
-#include "xf86_OSproc.h"
-#define _INT10_PRIVATE
-#include "xf86int10.h"
-
-xf86Int10InfoPtr
-xf86InitInt10(int entityIndex)
-{
-return xf86ExtendedInitInt10(entityIndex, 0);
-}
-
-xf86Int10InfoPtr
-xf86ExtendedInitInt10(int entityIndex, int Flags)
-{
-return NULL;
-}
-
-Bool
-MapCurrentInt10(xf86Int10InfoPtr pInt)
-{
-return FALSE;
-}
-
-void
-xf86FreeInt10(xf86Int10InfoPtr pInt)
-{
-return;
-}
-
-void *
-xf86Int10A

[PATCH] int10: Remove the vm86 and stub backends

2011-09-14 Thread Jamey Sharp
From: Adam Jackson 

vm86 has been defaulted off since 1.6, and is still a terrible idea to
actually use.  Time to say goodbye.

The stub backend is only ever built by default on freebsd/ppc, and can't
be doing any good there.  The right fix is --disable-int10 if you want
to not ship int10 support.

Signed-off-by: Adam Jackson 
Reviewed-by: Jamey Sharp 
---
I'd like to resurrect this patch that ajax proposed a year ago. The
thread where it was last discussed is here:
http://lists.x.org/archives/xorg-devel/2010-July/011163.html

This patch is, as far as I can tell, a correct and complete
implementation of removing vm86 and stub. The controversy last time was
only over this is the right thing to do.

My impression is that everyone agrees that vm86 *should* die, but some
commenters were concerned that x86emu didn't support some particularly
terrible BIOSes that happened to work on vm86. I'm not convinced that's
a sufficient argument for rejecting the patch. The default has been
x86emu on everything but Linux/x86-32 since 2005, and x86emu everywhere
since 2008. If anybody still cares, please fix up x86emu.

 configure.ac   |   11 -
 hw/xfree86/int10/Makefile.am   |   17 -
 hw/xfree86/int10/stub.c|   69 ---
 hw/xfree86/os-support/int10Defines.h   |   52 +--
 hw/xfree86/os-support/linux/int10/linux.c  |  544 
 .../os-support/linux/int10/vm86/linux_vm86.c   |  300 ---
 hw/xfree86/x86emu/Makefile.am  |2 -
 7 files changed, 1 insertions(+), 994 deletions(-)
 delete mode 100644 hw/xfree86/int10/stub.c
 delete mode 100644 hw/xfree86/os-support/linux/int10/linux.c
 delete mode 100644 hw/xfree86/os-support/linux/int10/vm86/linux_vm86.c

diff --git a/configure.ac b/configure.ac
index 06cf9bf..9687f04 100644
--- a/configure.ac
+++ b/configure.ac
@@ -323,7 +323,6 @@ dnl 
---
 dnl Bus options and CPU capabilities.  Replaces logic in
 dnl hw/xfree86/os-support/bus/Makefile.am, among others.
 dnl ---
-DEFAULT_INT10="x86emu"
 
 dnl Override defaults as needed for specific platforms:
 
@@ -354,9 +353,6 @@ case $host_cpu in
 ;;
   powerpc*)
PPC_VIDEO=yes
-   case $host_os in
-   *freebsd*)  DEFAULT_INT10=stub ;;
-   esac
;;
   sparc*)
SPARC64_VIDEO=yes
@@ -464,9 +460,6 @@ AC_ARG_ENABLE(debug, 
AS_HELP_STRING([--enable-debug],
 AC_ARG_ENABLE(use-sigio-by-default, 
AS_HELP_STRING([--enable-use-sigio-by-default]
   [Enable SIGIO input handlers by default (default: $USE_SIGIO_BY_DEFAULT)]),
 [USE_SIGIO_BY_DEFAULT=$enableval], [])
-AC_ARG_WITH(int10,   AS_HELP_STRING([--with-int10=BACKEND], [int10 
backend: vm86, x86emu or stub]),
-   [INT10="$withval"],
-   [INT10="$DEFAULT_INT10"])
 AC_ARG_WITH(vendor-name, AS_HELP_STRING([--with-vendor-name=VENDOR],
  [Vendor string reported by the server]),
[ VENDOR_NAME="$withval" ], [])
@@ -699,10 +692,6 @@ XTRANS_CONNECTION_FLAGS
 XTRANS_SECURE_RPC_FLAGS
 AM_CONDITIONAL(SECURE_RPC, [test "x$SECURE_RPC" = xyes])
 
-AM_CONDITIONAL(INT10_VM86, [test "x$INT10" = xvm86])
-AM_CONDITIONAL(INT10_X86EMU, [test "x$INT10" = xx86emu])
-AM_CONDITIONAL(INT10_STUB, [test "x$INT10" = xstub])
-
 dnl Handle installing libxf86config
 AM_CONDITIONAL(INSTALL_LIBXF86CONFIG, [test "x$INSTALL_LIBXF86CONFIG" = xyes])
 
diff --git a/hw/xfree86/int10/Makefile.am b/hw/xfree86/int10/Makefile.am
index f5ece69..79eb25a 100644
--- a/hw/xfree86/int10/Makefile.am
+++ b/hw/xfree86/int10/Makefile.am
@@ -17,16 +17,6 @@ if I386_VIDEO
 I386_VIDEO_CFLAGS = -D_PC
 endif
 
-if INT10_VM86
-AM_CFLAGS = $(I386_VIDEO_CFLAGS) -D_VM86_LINUX $(DIX_CFLAGS) $(XORG_CFLAGS) 
$(EXTRA_CFLAGS)
-INCLUDES = $(XORG_INCS)
-libint10_la_SOURCES = \
-   $(COMMON_SOURCES) \
-   $(srcdir)/../os-support/linux/int10/vm86/linux_vm86.c \
-   $(srcdir)/../os-support/linux/int10/linux.c
-endif
-
-if INT10_X86EMU
 AM_CFLAGS = $(I386_VIDEO_CFLAGS) -D_X86EMU -DNO_SYS_HEADERS \
$(XORG_CFLAGS) $(EXTRA_CFLAGS) $(DIX_CFLAGS)
 INCLUDES = $(XORG_INCS) -I$(srcdir)/../x86emu
@@ -35,12 +25,5 @@ libint10_la_SOURCES = \
xf86x86emu.c \
generic.c \
x86emu.c
-endif
-
-if INT10_STUB
-AM_CFLAGS = $(I386_VIDEO_CFLAGS) -D_VM86_LINUX $(DIX_CFLAGS) $(XORG_CFLAGS) 
$(EXTRA_CFLAGS)
-INCLUDES = $(XORG_INCS)
-libint10_la_SOURCES = stub.c xf86int10module.c
-endif
 
 EXTRA_DIST = xf86x86emu.h INT10.HOWTO
diff --git a/hw/xfree86/int10/stub.c b/hw/xfree86/int10/stub.c
deleted file mode 100644
index 58b6578..000
--- a/hw/xfree86/int10/stub.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- *   XFree86 int10 m

Re: [PATCH] int10: Remove the vm86 and stub backends

2010-07-14 Thread Tiago Vignatti

Hi!

On Tue, Jul 13, 2010 at 11:32:54PM +0200, ext Adam Jackson wrote:
> vm86 has been defaulted off since 1.6, and is still a terrible idea to
> actually use.  Time to say goodbye.

My empirical evidences say that we can't do this. 

I had different behaviour running some systems with x86emu and vm86 in a
not-so-distant past. But it's empirical, as I said; I can't say if the problem
in fact is with real mode calls or a mix of the type of real mode with monitor
info protocols (DDC1, VBE, I2C, etc.). I gave up tracing it.

Also, note we have around fours bugs about people having problems with x86emu
- I know this is not a justification to not remove vm86 though:

https://bugs.freedesktop.org/show_bug.cgi?id=18160
https://bugs.freedesktop.org/show_bug.cgi?id=9206
https://bugs.freedesktop.org/show_bug.cgi?id=20849
https://bugs.freedesktop.org/show_bug.cgi?id=14332


(Damn, I was very very attempted to s-o-b this patch, Ajax!)

 
> The stub backend is only ever built by default on freebsd/ppc, and can't
> be doing any good there.  The right fix is --disable-int10 if you want
> to not ship int10 support.

Makes more sense to separate this hunk in another patch.


Thanks,
 Tiago
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: [PATCH] int10: Remove the vm86 and stub backends

2010-07-27 Thread Matthew Garrett
On Wed, Jul 14, 2010 at 04:15:56PM +0300, Tiago Vignatti wrote:
> On Tue, Jul 13, 2010 at 11:32:54PM +0200, ext Adam Jackson wrote:
> > vm86 has been defaulted off since 1.6, and is still a terrible idea to
> > actually use.  Time to say goodbye.
> 
> My empirical evidences say that we can't do this. 

The vm86 code is guaranteed to fail in certain circumstances. The most 
obvious is anything where the BIOS tries to access address space above 
3GB. We're better off killing it and figuring out where the bugs in 
x86emu are.

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: [PATCH] int10: Remove the vm86 and stub backends

2010-07-27 Thread Mark Kettenis
> Date: Tue, 27 Jul 2010 17:57:01 +0100
> From: Matthew Garrett 
> 
> On Wed, Jul 14, 2010 at 04:15:56PM +0300, Tiago Vignatti wrote:
> > On Tue, Jul 13, 2010 at 11:32:54PM +0200, ext Adam Jackson wrote:
> > > vm86 has been defaulted off since 1.6, and is still a terrible idea to
> > > actually use.  Time to say goodbye.
> > 
> > My empirical evidences say that we can't do this. 
> 
> The vm86 code is guaranteed to fail in certain circumstances. The most 
> obvious is anything where the BIOS tries to access address space above 
> 3GB. We're better off killing it and figuring out where the bugs in 
> x86emu are.

How about fixing those bugs before killing it?
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: [PATCH] int10: Remove the vm86 and stub backends

2010-07-27 Thread Adam Jackson
On Tue, 2010-07-27 at 20:23 +0200, Mark Kettenis wrote:
> > Date: Tue, 27 Jul 2010 17:57:01 +0100
> > From: Matthew Garrett 
> > On Wed, Jul 14, 2010 at 04:15:56PM +0300, Tiago Vignatti wrote:
> > > On Tue, Jul 13, 2010 at 11:32:54PM +0200, ext Adam Jackson wrote:
> > > > vm86 has been defaulted off since 1.6, and is still a terrible idea to
> > > > actually use.  Time to say goodbye.
> > > 
> > > My empirical evidences say that we can't do this. 
> > 
> > The vm86 code is guaranteed to fail in certain circumstances. The most 
> > obvious is anything where the BIOS tries to access address space above 
> > 3GB. We're better off killing it and figuring out where the bugs in 
> > x86emu are.
> 
> How about fixing those bugs before killing it?

Some of them are... nontrivial.

The two big ones I know of are that we don't really emulate unreal mode
properly, and we don't even attempt to emulate MSRs.  This tends not to
matter except on IGP-ish machines, since you'll rarely do that kind of
setup unless you _know_ what kind of processor you're attached to; but
then, those are the sorts of machines people run vesa on...

But I mean, unreal mode mostly doesn't work in vm86 either, and MSR
setup is likely to have been changed by the OS to something the BIOS
isn't expecting, so if/when it works at all with vm86 it's a bit playing
with fire.

I also believe that fixing unreal mode requires a modest amount of
surgery to the int10 harness itself, which is currently subclassed two
ways depending on whether you're doing vm86 or x86emu, which makes it
much harder than it needs to be.  Just to pick one example, go look how
many _different_ real-to-virtual address translation macros there are.

- ajax


signature.asc
Description: This is a digitally signed message part
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Re: [PATCH] int10: Remove the vm86 and stub backends

2010-07-27 Thread Mark Kettenis
> From: Adam Jackson 
> Date: Tue, 27 Jul 2010 15:46:59 -0400
> 
> On Tue, 2010-07-27 at 20:23 +0200, Mark Kettenis wrote:
> > > Date: Tue, 27 Jul 2010 17:57:01 +0100
> > > From: Matthew Garrett 
> > > On Wed, Jul 14, 2010 at 04:15:56PM +0300, Tiago Vignatti wrote:
> > > > On Tue, Jul 13, 2010 at 11:32:54PM +0200, ext Adam Jackson wrote:
> > > > > vm86 has been defaulted off since 1.6, and is still a terrible idea=
>  to
> > > > > actually use.  Time to say goodbye.
> > > >=20
> > > > My empirical evidences say that we can't do this.=20
> > >=20
> > > The vm86 code is guaranteed to fail in certain circumstances. The most=20
> > > obvious is anything where the BIOS tries to access address space above=20
> > > 3GB. We're better off killing it and figuring out where the bugs in=20
> > > x86emu are.
> >=20
> > How about fixing those bugs before killing it?
> 
> Some of them are... nontrivial.

Which makes me seriously doubt that these bugs can be found and fixed
fast enough such that users won't be affected.
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: [PATCH] int10: Remove the vm86 and stub backends

2010-07-27 Thread Adam Jackson
On Tue, 2010-07-27 at 22:47 +0200, Mark Kettenis wrote:
> > From: Adam Jackson 
> > Some of them are... nontrivial.
> 
> Which makes me seriously doubt that these bugs can be found and fixed
> fast enough such that users won't be affected.

Perhaps they can consider running an older X server.

- ajax


signature.asc
Description: This is a digitally signed message part
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Re: [PATCH] int10: Remove the vm86 and stub backends

2010-07-28 Thread Matthew Garrett
On Tue, Jul 27, 2010 at 08:23:05PM +0200, Mark Kettenis wrote:

> How about fixing those bugs before killing it?

Because right now there's no incentive for anyone to fix those bugs 
because they can use the vm86 backend instead?

-- 
Matthew Garrett | mj...@srcf.ucam.org
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: [PATCH] int10: Remove the vm86 and stub backends

2010-07-28 Thread Matthew Garrett
On Tue, Jul 27, 2010 at 10:47:05PM +0200, Mark Kettenis wrote:

> Which makes me seriously doubt that these bugs can be found and fixed
> fast enough such that users won't be affected.

If vm86 were an option on anything other than 32-bit x86 I'd have 
sympathy with retaining it, but it's not a useful fallback if only runs 
on a tiny fraction of today's machines. Maintaining it requires extra 
abstraction and makes it harder to fix the x86emu bugs, and while some 
of the x86emu bugs aren't trivial to fix the vm86 limitations are 
*impossible* to fix.

-- 
Matthew Garrett | mj...@srcf.ucam.org
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: [PATCH] int10: Remove the vm86 and stub backends

2010-07-28 Thread Vignatti Tiago (Nokia-MS/Helsinki)
On Tue, Jul 27, 2010 at 09:46:59PM +0200, ext Adam Jackson wrote:
> On Tue, 2010-07-27 at 20:23 +0200, Mark Kettenis wrote:
> > 
> > How about fixing those bugs before killing it?
> 
> Some of them are... nontrivial.
> 
> The two big ones I know of are that we don't really emulate unreal mode
> properly, and we don't even attempt to emulate MSRs.  This tends not to
> matter except on IGP-ish machines, since you'll rarely do that kind of
> setup unless you _know_ what kind of processor you're attached to; but
> then, those are the sorts of machines people run vesa on...
> 
> But I mean, unreal mode mostly doesn't work in vm86 either, and MSR
> setup is likely to have been changed by the OS to something the BIOS
> isn't expecting, so if/when it works at all with vm86 it's a bit playing
> with fire.
> 
> I also believe that fixing unreal mode requires a modest amount of
> surgery to the int10 harness itself, which is currently subclassed two
> ways depending on whether you're doing vm86 or x86emu, which makes it
> much harder than it needs to be.  Just to pick one example, go look how
> many _different_ real-to-virtual address translation macros there are.


as I said before, I'm really happy to delete vm86 code - Matthew's arguments
are pretty much aligned with mine. 

But we should guarantee that the myriads of devices X.Org claims to support
also run with x86emu. I'd at least ping the guys in those bug reports I
pointed and ask what's the state, if works with x86emu, etc.


Cheers,

 Tiago
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: [PATCH] int10: Remove the vm86 and stub backends

2010-07-28 Thread Alan Coopersmith
Matthew Garrett wrote:
> On Tue, Jul 27, 2010 at 10:47:05PM +0200, Mark Kettenis wrote:
> 
>> Which makes me seriously doubt that these bugs can be found and fixed
>> fast enough such that users won't be affected.
> 
> If vm86 were an option on anything other than 32-bit x86 I'd have 
> sympathy with retaining it, but it's not a useful fallback if only runs 
> on a tiny fraction of today's machines.

Isn't vm86 even further limited to just those machines running the Linux
kernel, not BSD or Solaris or anything else?   (Okay, maybe that doesn't
take a huge chunk out of the number of machines that can run it, but it
is replacing one more platform-specific difference with common code.)

-- 
-Alan Coopersmith-alan.coopersm...@oracle.com
 Oracle Solaris Platform Engineering: X Window System

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: [PATCH] int10: Remove the vm86 and stub backends

2010-07-28 Thread Alex Deucher
On Wed, Jul 28, 2010 at 11:29 AM, Alan Coopersmith
 wrote:
> Matthew Garrett wrote:
>> On Tue, Jul 27, 2010 at 10:47:05PM +0200, Mark Kettenis wrote:
>>
>>> Which makes me seriously doubt that these bugs can be found and fixed
>>> fast enough such that users won't be affected.
>>
>> If vm86 were an option on anything other than 32-bit x86 I'd have
>> sympathy with retaining it, but it's not a useful fallback if only runs
>> on a tiny fraction of today's machines.
>
> Isn't vm86 even further limited to just those machines running the Linux
> kernel, not BSD or Solaris or anything else?   (Okay, maybe that doesn't
> take a huge chunk out of the number of machines that can run it, but it
> is replacing one more platform-specific difference with common code.)

Was the vm86 backend disabled by default a few xservers back as well?

Alex
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: [PATCH] int10: Remove the vm86 and stub backends

2010-07-28 Thread Matthew Garrett
On Wed, Jul 28, 2010 at 08:29:50AM -0700, Alan Coopersmith wrote:

> Isn't vm86 even further limited to just those machines running the Linux
> kernel, not BSD or Solaris or anything else?   (Okay, maybe that doesn't
> take a huge chunk out of the number of machines that can run it, but it
> is replacing one more platform-specific difference with common code.)

There's no fundamental reason for it to be, but I'll admit that I never 
actually went to the extent of checking whether there was support code 
for non-Linux.

-- 
Matthew Garrett | mj...@srcf.ucam.org
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: [PATCH] int10: Remove the vm86 and stub backends

2010-07-29 Thread Adam Jackson
On Wed, 2010-07-28 at 11:35 -0400, Alex Deucher wrote:
> On Wed, Jul 28, 2010 at 11:29 AM, Alan Coopersmith
>  wrote:
> > Isn't vm86 even further limited to just those machines running the Linux
> > kernel, not BSD or Solaris or anything else?   (Okay, maybe that doesn't
> > take a huge chunk out of the number of machines that can run it, but it
> > is replacing one more platform-specific difference with common code.)

I could have sworn one of the BSDs had implemented a vm86 syscall, but I
can't find any reference to it now.  It certainly doesn't seem to exist
under Solaris.

> Was the vm86 backend disabled by default a few xservers back as well?

Yep.  Which I noted in the original patch email, in fact.

- ajax


signature.asc
Description: This is a digitally signed message part
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Re: [PATCH] int10: Remove the vm86 and stub backends

2010-07-30 Thread Eric Anholt
On Thu, 29 Jul 2010 13:53:39 -0400, Adam Jackson  wrote:
> On Wed, 2010-07-28 at 11:35 -0400, Alex Deucher wrote:
> > On Wed, Jul 28, 2010 at 11:29 AM, Alan Coopersmith
> >  wrote:
> > > Isn't vm86 even further limited to just those machines running the Linux
> > > kernel, not BSD or Solaris or anything else?   (Okay, maybe that doesn't
> > > take a huge chunk out of the number of machines that can run it, but it
> > > is replacing one more platform-specific difference with common code.)
> 
> I could have sworn one of the BSDs had implemented a vm86 syscall, but I
> can't find any reference to it now.  It certainly doesn't seem to exist
> under Solaris.

FreeBSD had one.  Trying to use it was a huge disaster, emulation was
totally the way to go.


pgpDHn8eryOFf.pgp
Description: PGP signature
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Re: [PATCH] int10: Remove the vm86 and stub backends

2011-09-14 Thread Julien Cristau
On Wed, Sep 14, 2011 at 12:25:20 -0500, Jamey Sharp wrote:

> From: Adam Jackson 
> 
> vm86 has been defaulted off since 1.6, and is still a terrible idea to
> actually use.  Time to say goodbye.
> 
> The stub backend is only ever built by default on freebsd/ppc, and can't
> be doing any good there.  The right fix is --disable-int10 if you want
> to not ship int10 support.
> 
> Signed-off-by: Adam Jackson 
> Reviewed-by: Jamey Sharp 

Acked-by: Julien Cristau 

Cheers,
Julien
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: [PATCH] int10: Remove the vm86 and stub backends

2011-09-14 Thread Egbert Eich
On Wed, Sep 14, 2011 at 12:25:20PM -0500, Jamey Sharp wrote:
> From: Adam Jackson 
> 
> vm86 has been defaulted off since 1.6, and is still a terrible idea to
> actually use.  Time to say goodbye.

Not a good idea. I've reenabled it in our enterprise product lately.

Reason: I've run into issues with SMIs that were triggered by outb()s
to specific registers. These SMIs returned their return state in CPU 
registers whose values were checked later on in the code.
The emulator doesn't track the state of CPU register itself thus 
will not catch any such results.

> 
> The stub backend is only ever built by default on freebsd/ppc, and can't
> be doing any good there.  The right fix is --disable-int10 if you want
> to not ship int10 support.

This was used to handle the request for loading the int10 module and 
provide targets for the function calls in drivers. If it can be ensured 
that drivers won't load this module and call its function this can probably 
be deleted.

Cheers,
Egbert.
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: [PATCH] int10: Remove the vm86 and stub backends

2011-09-14 Thread Adam Jackson
On Wed, 2011-09-14 at 19:28 +, Egbert Eich wrote:
> On Wed, Sep 14, 2011 at 12:25:20PM -0500, Jamey Sharp wrote:
> > From: Adam Jackson 
> > 
> > vm86 has been defaulted off since 1.6, and is still a terrible idea to
> > actually use.  Time to say goodbye.
> 
> Not a good idea. I've reenabled it in our enterprise product lately.
>
> Reason: I've run into issues with SMIs that were triggered by outb()s
> to specific registers. These SMIs returned their return state in CPU 
> registers whose values were checked later on in the code.
> The emulator doesn't track the state of CPU register itself thus 
> will not catch any such results.

Seems like the better solution is to emulate the state machines of those
ports.  We do a half-baked job of this already for some ports.

Actually, the better better solution is "not int10".

In general I consider vm86 to be completely unsupportable.  Mapping
anything at the 0 page means kernel bugs aren't segfaults, which is the
kind of security bug that's been actively exploited in the wild.
Pretending to care about bugs like the one you describe implies that the
affected machine can only work with vesa on i386 and not amd64, and
that's not the kind of gotcha I want to enable.

int10 services is a losing battle though.  Some vendors ship BIOSes that
actively flaunt their own documentation about what instructions are
legal in vm86 mode (HI INTEL HOW ARE YOU [1]), newer versions of Windows
skip it entirely which means it's going to be increasingly unreliable,
you might not have int10 at all in EFI, you can't get to unreal mode
from vm86 even though some BIOSes expect it... the list goes on.

None of this is news though.  I've already argued for why vm86 is
garbage, and why x86emu is the only thing that can be made to work
safely and reliably.  If other people want more pain in their lives,
that's a thing they can do, people make bad choices all the time and I
can't care about every damn thing.

[1] - http://lists.fedoraproject.org/pipermail/test/2011-September/102549.html

- ajax


signature.asc
Description: This is a digitally signed message part
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel