From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] qemu-timer: Check for usable fields for SIGEV_THREAD_ID
Date: Fri, 12 Oct 2012 18:55:15 +0200 [thread overview]
Message-ID: <k59i1i$ale$1@ger.gmane.org> (raw)
In-Reply-To: <1350059215-7827-1-git-send-email-rth@twiddle.net>
Il 12/10/2012 18:26, Richard Henderson ha scritto:
> Older glibc (RHEL 5.x, Debian 5.x) does not have the _sigev_un._tid
> member in its structure definition, while the accompanying kernel
> headers do define SIGEV_THREAD_ID. We need configure to check for
> both before using it.
>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Cc: Anthony Liguori <aliguori@us.ibm.com>
> Signed-off-by: Richard Henderson <rth@twiddle.net>
> ---
> configure | 21 +++++++++++++++++++++
> qemu-timer.c | 4 ++--
> 2 files changed, 23 insertions(+), 2 deletions(-)
>
> FWIW, RHEL 5 is the last release for ia64. And for whatever reason,
> the ultrasparc in the gcc compile farm is still running Lenny. I've
> been hacking around this for some time, and now finally got around to
> submitting a proper patch for it.
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
>
>
> r~
>
>
> diff --git a/configure b/configure
> index c4a7837..78d8819 100755
> --- a/configure
> +++ b/configure
> @@ -2841,6 +2841,23 @@ if compile_prog "" "" ; then
> fi
>
> ##########################################
> +# check if we have usable SIGEV_THREAD_ID
> +
> +sigev_thread_id=no
> +cat > $TMPC << EOF
> +#include <signal.h>
> +int main(void) {
> + struct sigevent ev;
> + ev.sigev_notify = SIGEV_THREAD_ID;
> + ev._sigev_un._tid = 0;
> + return 0;
> +}
> +EOF
> +if compile_prog "" "" ; then
> + sigev_thread_id=yes
> +fi
> +
> +##########################################
> # check if trace backend exists
>
> $python "$source_path/scripts/tracetool.py" "--backend=$trace_backend" --check-backend > /dev/null 2> /dev/null
> @@ -3186,6 +3203,7 @@ echo "preadv support $preadv"
> echo "fdatasync $fdatasync"
> echo "madvise $madvise"
> echo "posix_madvise $posix_madvise"
> +echo "sigev_thread_id $sigev_thread_id"
> echo "uuid support $uuid"
> echo "libcap-ng support $cap_ng"
> echo "vhost-net support $vhost_net"
> @@ -3469,6 +3487,9 @@ fi
> if test "$posix_madvise" = "yes" ; then
> echo "CONFIG_POSIX_MADVISE=y" >> $config_host_mak
> fi
> +if test "$sigev_thread_id" = "yes" ; then
> + echo "CONFIG_SIGEV_THREAD_ID=y" >> $config_host_mak
> +fi
>
> if test "$spice" = "yes" ; then
> echo "CONFIG_SPICE=y" >> $config_host_mak
> diff --git a/qemu-timer.c b/qemu-timer.c
> index 908a103..ede84ff 100644
> --- a/qemu-timer.c
> +++ b/qemu-timer.c
> @@ -494,12 +494,12 @@ static int dynticks_start_timer(struct qemu_alarm_timer *t)
> memset(&ev, 0, sizeof(ev));
> ev.sigev_value.sival_int = 0;
> ev.sigev_notify = SIGEV_SIGNAL;
> -#ifdef SIGEV_THREAD_ID
> +#ifdef CONFIG_SIGEV_THREAD_ID
> if (qemu_signalfd_available()) {
> ev.sigev_notify = SIGEV_THREAD_ID;
> ev._sigev_un._tid = qemu_get_thread_id();
> }
> -#endif /* SIGEV_THREAD_ID */
> +#endif /* CONFIG_SIGEV_THREAD_ID */
> ev.sigev_signo = SIGALRM;
>
> if (timer_create(CLOCK_REALTIME, &ev, &host_timer)) {
>
next prev parent reply other threads:[~2012-10-12 16:55 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-12 16:26 [Qemu-devel] [PATCH] qemu-timer: Check for usable fields for SIGEV_THREAD_ID Richard Henderson
2012-10-12 16:55 ` Paolo Bonzini [this message]
2012-10-21 21:03 ` Richard Henderson
2012-10-21 22:41 ` Aurelien Jarno
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='k59i1i$ale$1@ger.gmane.org' \
--to=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.