diff options
author | aliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-10-08 19:50:24 +0000 |
---|---|---|
committer | aliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-10-08 19:50:24 +0000 |
commit | 9e472e101f37233f4e32d181d2fee29014c1cf2f (patch) | |
tree | 11355529c87a6dce782b8500ce53236b4744600c /configure | |
parent | 235262cf364a839d94e7e9d5b469ac8efb703285 (diff) |
Fix IO performance regression in sparc
Replace signalfd with signal handler/pipe. There is no way to interrupt
the CPU execution loop when a file descriptor becomes readable. This
results in a large performance regression in sparc emulation during
bootup.
This patch switches us to signal handler/pipe which was originally
suggested by Ian Jackson. The signal handler lets us interrupt the
CPU emulation loop while the write to a pipe lets us avoid the
select/signal race condition.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5451 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'configure')
-rwxr-xr-x | configure | 35 |
1 files changed, 0 insertions, 35 deletions
@@ -113,8 +113,6 @@ aio="yes" nptl="yes" mixemu="no" bluez="yes" -signalfd="no" -eventfd="no" # OS specific targetos=`uname -s` @@ -930,33 +928,6 @@ EOF fi fi -########################################## -# signalfd probe -cat > $TMPC << EOF -#define _GNU_SOURCE -#include <unistd.h> -#include <sys/syscall.h> -#include <signal.h> -int main(void) { return syscall(SYS_signalfd, -1, NULL, _NSIG / 8); } -EOF - -if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then - signalfd=yes -fi - -########################################## -# eventfd probe -cat > $TMPC << EOF -#define _GNU_SOURCE -#include <unistd.h> -#include <sys/syscall.h> -int main(void) { return syscall(SYS_eventfd, 0); } -EOF - -if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then - eventfd=yes -fi - # Check if tools are available to build documentation. if [ -x "`which texi2html 2>/dev/null`" ] && \ [ -x "`which pod2man 2>/dev/null`" ]; then @@ -1297,12 +1268,6 @@ if test "$aio" = "yes" ; then echo "#define CONFIG_AIO 1" >> $config_h echo "CONFIG_AIO=yes" >> $config_mak fi -if test "$signalfd" = "yes" ; then - echo "#define CONFIG_signalfd 1" >> $config_h -fi -if test "$eventfd" = "yes" ; then - echo "#define CONFIG_eventfd 1" >> $config_h -fi # XXX: suppress that if [ "$bsd" = "yes" ] ; then |