Skip to contentSkip to conversation

[2.5] VMWare doesn't like sysenter

PATCH Petr Vandrovec 1 participant 1 message May 16, 2003

lore
Share & tools
lore
#0 lore raw
Quoted 28 lines · Zwane Mwaikambo
Quoted 13 lines · Randy.Dunlap

On Thu, 15 May 2003 04:02:31 -0400 (EDT) Zwane Mwaikambo <[email protected]> wrote:

| I get a monitor error in VMWare4 with a sysenter syscall enabled kernel, 
| this patch simply disables sysenter based syscalls but doesn't clear the 
| SEP bit in the capabilities.
| +static int __init do_nosysenter(char *s)
| +{
| +   nosysenter = 1;
| +   return 1;
| +}
| +__setup("nosysenter", do_nosysenter);
Quoted 2 lines

Needs entry in Documentation/kernel-parameters.txt also if/when accepted.

Thanks for the heads up.

Index: linux-2.5.69-mm5/Documentation/kernel-parameters.txt
===================================================================
RCS file: /build/cvsroot/linux-2.5.69/Documentation/kernel-parameters.txt,v retrieving revision 1.1.1.1
diff -u -p -B -r1.1.1.1 kernel-parameters.txt

Documentation/kernel-parameters.txt 15 May 2003 15:14:23 -0000 running once the system is up. · line 1069

Quoted 7 lines
Documentation/kernel-parameters.txt 15 May 2003 15:14:23 -0000 renamed from Documentation/kernel-parameters.txt 6 May 2003 12:21:18 -0000 1.1.1.1 +4 -0
@@ -1063,6 +1063,10 @@ running once the system is up.
 
    sym53c8xx=  [HW,SCSI]
            See Documentation/scsi/ncr53c8xx.txt.
+   
+   nosysenter  [IA-32]
+           Disable SYSENTER for syscalls, does not clear the SEP
+           capabilities bit.

RedHat's 9 backport of vsyscalls uses 'nosysinfo' name for option which does simillar task (it just stops kernel from reporting relevant AT_SYSINFO completely).

BTW, what's reason for this backport? They just always put int 0x80 into this page, so even on real CPU kernel booted with nosysinfo is faster than one which uses this vsyscall entry point.

VMware's panic should be fixed in next update, but I'm afraid that penalty from exectuing code in upper couple of MBs of address space will not disappear. Moving SYSINFO page from FFFFE000 to FF7FF000 (PKMAP_BASE - PAGE_SIZE == VMALLOC_END + PAGE_SIZE) would fix both problems.
Petr Vandrovec [email protected]