This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug nptl/16630] New: Use SYSENTER for pthread_cond_broadcast/signal() (i.e. fix "FIXME: Ingo" issue)


https://sourceware.org/bugzilla/show_bug.cgi?id=16630

            Bug ID: 16630
           Summary: Use SYSENTER for pthread_cond_broadcast/signal() (i.e.
                    fix "FIXME: Ingo" issue)
           Product: glibc
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: nptl
          Assignee: unassigned at sourceware dot org
          Reporter: cjones.bugs at gmail dot com
                CC: drepper.fsp at gmail dot com

Created attachment 7437
  --> https://sourceware.org/bugzilla/attachment.cgi?id=7437&action=edit
Use SYSENTER for pthread_cond_broadcast/signal().

On x86, pthread_cond_broadcast/signal() enter the kernel using |int $0x80|,
apparently because there was a time in the distant past when 6-arg syscalls
couldn't made through __kernel_vsyscall():

/* FIXME: Until Ingo fixes 4G/4G vDSO, 6 arg syscalls are broken for sysenter.
    ENTER_KERNEL  */

This bug has been fixed, so we can update glibc.

One motivation for landing this patch is that some applications may see a perf
improvement from using the faster syscall interface. 
pthread_cond_broadcast/signal() are frequently used by some applications.

(Another motivation for this patch is rather unsavory so I hesitate to mention
it.  Some naughty programs may want to hook __kernel_vsyscall() for their own
purposes, and the |int $0x80| hack prevents these futex calls from being seen
by those kind of hooks.)

I apologize for not knowing the glibc patch protocol.  Please let me know if I
need to request review from someone.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]