Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 456104 - F10 pv_ops xen: sysenter/vdso bug causes 32 bit binaries to segfault on x86_64
Summary: F10 pv_ops xen: sysenter/vdso bug causes 32 bit binaries to segfault on x86_64
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: rawhide
Hardware: x86_64
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Mark McLoughlin
QA Contact: Martin Jenner
URL:
Whiteboard:
Depends On:
Blocks: F10_XenPvOps
TreeView+ depends on / blocked
 
Reported: 2008-07-21 15:30 UTC by Mark McLoughlin
Modified: 2008-08-22 15:41 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2008-08-22 15:41:06 UTC


Attachments (Terms of Use)

Description Mark McLoughlin 2008-07-21 15:30:39 UTC
With kernel-xen-2.6.27-0.2.rc0.git6.fc10.x86_64

Running a 32 bit binary on Intel x86_64 Xen DomU:

  $> strace /usr/bin/newaliases
  ...
  open("/etc/ld.so.cache", O_RDONLY)      = 3
  fstat64(0x3, 0xffd8ea60)                = 0
  mmap2(NULL, 38827, PROT_READ, MAP_PRIVATE, 3, 0) = 0xfffffffff7e9f000
  close(3)                             
  ...
  mprotect(0xf7842000, 4096, PROT_READ)   = 0
  mprotect(0xf7865000, 4096, PROT_READ)   = 0
  mprotect(0xf7881000, 4096, PROT_READ)   = 0
  mprotect(0xf7add000, 8192, PROT_READ)   = 0
  mprotect(0xf7b56000, 4096, PROT_READ)   = 0
  mprotect(0xf7ba4000, 4096, PROT_READ)   = 0
  mprotect(0xf7bb9000, 4096, PROT_READ)   = 0
  mprotect(0xf7ec5000, 4096, PROT_READ)   = 0
  munmap(0xf7e9f000, 38827)               = 0
  --- SIGSEGV (Segmentation fault) @ 0 (0) ---

and dmesg shows:

  newaliases[2907] general protection ip:0 sp:0 error:0

It's a known issue with sysenter/vdso from a compat-mode 32 bit userspace.

A workaround is to boot with "vdso32=0" on the kernel command line

Comment 1 Mark McLoughlin 2008-07-22 06:47:04 UTC
Looks like Jeremy and Eduardo found the fix for this:

  http://lkml.org/lkml/2008/7/21/409

Comment 2 Jeremy Fitzhardinge 2008-07-22 07:01:19 UTC
The following patch to fix sysexit is equally important.

Comment 3 Mark McLoughlin 2008-07-22 07:21:32 UTC
Yep, thanks - I figured as much, just didn't link to it. But here it is:

  http://lkml.org/lkml/2008/7/21/410



Comment 4 Mark McLoughlin 2008-07-24 17:13:56 UTC
kernel-xen is dead, moving to kernel

Comment 5 Mark McLoughlin 2008-08-22 15:41:06 UTC
This is long fixed AFAIR


Note You need to log in before you can comment on or make changes to this bug.