~vcs-imports/qemu/git

« back to all changes in this revision

Viewing changes to configure

  • Committer: aliguori
  • Date: 2008-10-08 19:50:24 UTC
  • Revision ID: git-v1:9e472e101f37233f4e32d181d2fee29014c1cf2f
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

Show diffs side-by-side

added added

removed removed

Lines of Context:
113
113
nptl="yes"
114
114
mixemu="no"
115
115
bluez="yes"
116
 
signalfd="no"
117
 
eventfd="no"
118
116
 
119
117
# OS specific
120
118
targetos=`uname -s`
930
928
  fi
931
929
fi
932
930
 
933
 
##########################################
934
 
# signalfd probe
935
 
cat > $TMPC << EOF
936
 
#define _GNU_SOURCE
937
 
#include <unistd.h>
938
 
#include <sys/syscall.h>
939
 
#include <signal.h>
940
 
int main(void) { return syscall(SYS_signalfd, -1, NULL, _NSIG / 8); }
941
 
EOF
942
 
 
943
 
if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
944
 
  signalfd=yes
945
 
fi
946
 
 
947
 
##########################################
948
 
# eventfd probe
949
 
cat > $TMPC << EOF
950
 
#define _GNU_SOURCE
951
 
#include <unistd.h>
952
 
#include <sys/syscall.h>
953
 
int main(void) { return syscall(SYS_eventfd, 0); }
954
 
EOF
955
 
 
956
 
if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
957
 
  eventfd=yes
958
 
fi
959
 
 
960
931
# Check if tools are available to build documentation.
961
932
if [ -x "`which texi2html 2>/dev/null`" ] && \
962
933
   [ -x "`which pod2man 2>/dev/null`" ]; then
1297
1268
  echo "#define CONFIG_AIO 1" >> $config_h
1298
1269
  echo "CONFIG_AIO=yes" >> $config_mak
1299
1270
fi
1300
 
if test "$signalfd" = "yes" ; then
1301
 
  echo "#define CONFIG_signalfd 1" >> $config_h
1302
 
fi
1303
 
if test "$eventfd" = "yes" ; then
1304
 
  echo "#define CONFIG_eventfd 1" >> $config_h
1305
 
fi
1306
1271
 
1307
1272
# XXX: suppress that
1308
1273
if [ "$bsd" = "yes" ] ; then