All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: Brad Smith <brad@comstyle.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] Add configure clock_gettime() monotonic time test
Date: Tue, 02 Apr 2013 18:45:17 +0200	[thread overview]
Message-ID: <515B0B1D.9050202@redhat.com> (raw)
In-Reply-To: <20130402154214.GJ26146@rox.home.comstyle.com>

Il 02/04/2013 17:42, Brad Smith ha scritto:
> Replace the hardcoded list of OS's utilizing clock_gettime() for monotonic
> time with a configure test. This is to fix the use of monotonic time on
> OpenBSD but allows for other POSIX compliant OS's such as NetBSD to also
> utilize clock_gettime().

I thought the list of OSes was supposed to filter out those that somehow
had a broken CLOCK_MONOTONIC.

Otherwise, you might as well use "#ifdef CLOCK_MONOTONIC" and skip the
configure test completely.

Paolo

> 
> Signed-off-by: Brad Smith <brad@comstyle.com>
> 
> diff --git a/configure b/configure
> index fbea75e..352d6a6 100755
> --- a/configure
> +++ b/configure
> @@ -2896,6 +2896,21 @@ if test "$darwin" != "yes" -a "$mingw32" != "yes" -a "$solaris" != yes -a \
>  fi
>  
>  ##########################################
> +# clock_gettime() probe, used for monotonic time
> +clock_monotonic="no"
> +cat > $TMPC << EOF
> +#include <time.h>
> +int main(void)
> +{
> +    clock_gettime(CLOCK_MONOTONIC, NULL);
> +    return 0;  
> +}   
> +EOF
> +if compile_prog "" "" ; then
> +   clock_monotonic="yes"
> +fi
> +
> +##########################################
>  # spice probe
>  if test "$spice" != "no" ; then
>    cat > $TMPC << EOF
> @@ -3671,6 +3686,9 @@ fi
>  if test "$bswap_h" = "yes" ; then
>    echo "CONFIG_MACHINE_BSWAP_H=y" >> $config_host_mak
>  fi
> +if test "$clock_monotonic" = "yes" ; then
> +  echo "CONFIG_CLOCK_MONOTONIC=y" >> $config_host_mak
> +fi
>  if test "$curl" = "yes" ; then
>    echo "CONFIG_CURL=y" >> $config_host_mak
>    echo "CURL_CFLAGS=$curl_cflags" >> $config_host_mak
> diff --git a/include/qemu/timer.h b/include/qemu/timer.h
> index 1766b2d..d87dfa4 100644
> --- a/include/qemu/timer.h
> +++ b/include/qemu/timer.h
> @@ -117,8 +117,7 @@ extern int use_rt_clock;
>  
>  static inline int64_t get_clock(void)
>  {
> -#if defined(__linux__) || (defined(__FreeBSD__) && __FreeBSD_version >= 500000) \
> -    || defined(__DragonFly__) || defined(__FreeBSD_kernel__)
> +#ifdef CONFIG_CLOCK_MONOTONIC
>      if (use_rt_clock) {
>          struct timespec ts;
>          clock_gettime(CLOCK_MONOTONIC, &ts);
> diff --git a/util/qemu-timer-common.c b/util/qemu-timer-common.c
> index 16f5e75..1506942 100644
> --- a/util/qemu-timer-common.c
> +++ b/util/qemu-timer-common.c
> @@ -49,9 +49,7 @@ int use_rt_clock;
>  static void __attribute__((constructor)) init_get_clock(void)
>  {
>      use_rt_clock = 0;
> -#if defined(__linux__) || (defined(__FreeBSD__) && __FreeBSD_version >= 500000) \
> -    || defined(__DragonFly__) || defined(__FreeBSD_kernel__) \
> -    || defined(__OpenBSD__)
> +#ifdef CONFIG_CLOCK_MONOTONIC
>      {
>          struct timespec ts;
>          if (clock_gettime(CLOCK_MONOTONIC, &ts) == 0) {
> 

  reply	other threads:[~2013-04-02 16:45 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-02 15:42 [Qemu-devel] [PATCH] Add configure clock_gettime() monotonic time test Brad Smith
2013-04-02 16:45 ` Paolo Bonzini [this message]
2013-04-02 22:28   ` Brad Smith
2013-04-02 22:52   ` Peter Maydell
2013-04-03  8:18     ` Paolo Bonzini
2013-04-03 19:22       ` Brad Smith
2013-04-03 20:00         ` Paolo Bonzini
2013-04-03 20:07         ` Brad Smith
2013-04-04 17:21         ` Brad Smith
2013-04-05  0:22           ` Anthony Liguori

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=515B0B1D.9050202@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=brad@comstyle.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.