diff mbox series

[for-2.12] iothread: fix breakage on windows

Message ID 20180322085630.23654-1-peterx@redhat.com
State New
Headers show
Series [for-2.12] iothread: fix breakage on windows | expand

Commit Message

Peter Xu March 22, 2018, 8:56 a.m. UTC
OOB can enable iothread for parsing even on Windows.  We need some tunes
to enable that on Windows otherwise it'll break Windows users.  This
patch fixes the breakage on Windows with qemu-system-ppc.exe.

Reported-by: Howard Spoelstra <hsp.cat7@gmail.com>
Tested-by: Howard Spoelstra <hsp.cat7@gmail.com>
Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
---
 iothread.c       | 4 ++++
 util/aio-win32.c | 4 +++-
 2 files changed, 7 insertions(+), 1 deletion(-)

Comments

Paolo Bonzini March 22, 2018, 9:13 a.m. UTC | #1
On 22/03/2018 09:56, Peter Xu wrote:
> OOB can enable iothread for parsing even on Windows.  We need some tunes
> to enable that on Windows otherwise it'll break Windows users.  This
> patch fixes the breakage on Windows with qemu-system-ppc.exe.
> 
> Reported-by: Howard Spoelstra <hsp.cat7@gmail.com>
> Tested-by: Howard Spoelstra <hsp.cat7@gmail.com>
> Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Peter Xu <peterx@redhat.com>
> ---
>  iothread.c       | 4 ++++
>  util/aio-win32.c | 4 +++-
>  2 files changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/iothread.c b/iothread.c
> index 1b3463cb00..9f52270ae1 100644
> --- a/iothread.c
> +++ b/iothread.c
> @@ -31,11 +31,15 @@ typedef ObjectClass IOThreadClass;
>  #define IOTHREAD_CLASS(klass) \
>     OBJECT_CLASS_CHECK(IOThreadClass, klass, TYPE_IOTHREAD)
>  
> +#ifdef CONFIG_LINUX
>  /* Benchmark results from 2016 on NVMe SSD drives show max polling times around
>   * 16-32 microseconds yield IOPS improvements for both iodepth=1 and iodepth=32
>   * workloads.
>   */
>  #define IOTHREAD_POLL_MAX_NS_DEFAULT 32768ULL
> +#else
> +#define IOTHREAD_POLL_MAX_NS_DEFAULT 0ULL
> +#endif
>  
>  static __thread IOThread *my_iothread;
>  
> diff --git a/util/aio-win32.c b/util/aio-win32.c
> index d6d5e02f00..a67b00c6ad 100644
> --- a/util/aio-win32.c
> +++ b/util/aio-win32.c
> @@ -410,5 +410,7 @@ void aio_context_setup(AioContext *ctx)
>  void aio_context_set_poll_params(AioContext *ctx, int64_t max_ns,
>                                   int64_t grow, int64_t shrink, Error **errp)
>  {
> -    error_setg(errp, "AioContext polling is not implemented on Windows");
> +    if (max_ns) {
> +        error_setg(errp, "AioContext polling is not implemented on Windows");
> +    }
>  }
> 

Queued, thanks.

Paolo
diff mbox series

Patch

diff --git a/iothread.c b/iothread.c
index 1b3463cb00..9f52270ae1 100644
--- a/iothread.c
+++ b/iothread.c
@@ -31,11 +31,15 @@  typedef ObjectClass IOThreadClass;
 #define IOTHREAD_CLASS(klass) \
    OBJECT_CLASS_CHECK(IOThreadClass, klass, TYPE_IOTHREAD)
 
+#ifdef CONFIG_LINUX
 /* Benchmark results from 2016 on NVMe SSD drives show max polling times around
  * 16-32 microseconds yield IOPS improvements for both iodepth=1 and iodepth=32
  * workloads.
  */
 #define IOTHREAD_POLL_MAX_NS_DEFAULT 32768ULL
+#else
+#define IOTHREAD_POLL_MAX_NS_DEFAULT 0ULL
+#endif
 
 static __thread IOThread *my_iothread;
 
diff --git a/util/aio-win32.c b/util/aio-win32.c
index d6d5e02f00..a67b00c6ad 100644
--- a/util/aio-win32.c
+++ b/util/aio-win32.c
@@ -410,5 +410,7 @@  void aio_context_setup(AioContext *ctx)
 void aio_context_set_poll_params(AioContext *ctx, int64_t max_ns,
                                  int64_t grow, int64_t shrink, Error **errp)
 {
-    error_setg(errp, "AioContext polling is not implemented on Windows");
+    if (max_ns) {
+        error_setg(errp, "AioContext polling is not implemented on Windows");
+    }
 }