[Qemu-devel] [PATCH 02/10] vhost-user-test: signal data_cond when s->rings changes

Paolo Bonzini posted 10 patches 6 years, 11 months ago
[Qemu-devel] [PATCH 02/10] vhost-user-test: signal data_cond when s->rings changes
Posted by Paolo Bonzini 6 years, 11 months ago
This speeds up wait_for_rings_started, which currently is just waiting for
the timeout before checking s->rings.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 tests/vhost-user-test.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tests/vhost-user-test.c b/tests/vhost-user-test.c
index 656e51938b..6a805e67be 100644
--- a/tests/vhost-user-test.c
+++ b/tests/vhost-user-test.c
@@ -384,6 +384,7 @@ static void chr_read(void *opaque, const uint8_t *buf, int size)
 
         assert(msg.payload.state.index < s->queues * 2);
         s->rings &= ~(0x1ULL << msg.payload.state.index);
+        g_cond_broadcast(&s->data_cond);
         break;
 
     case VHOST_USER_SET_MEM_TABLE:
@@ -425,6 +426,7 @@ static void chr_read(void *opaque, const uint8_t *buf, int size)
     case VHOST_USER_SET_VRING_BASE:
         assert(msg.payload.state.index < s->queues * 2);
         s->rings |= 0x1ULL << msg.payload.state.index;
+        g_cond_broadcast(&s->data_cond);
         break;
 
     case VHOST_USER_GET_QUEUE_NUM:
-- 
2.19.1



Re: [Qemu-devel] [PATCH 02/10] vhost-user-test: signal data_cond when s->rings changes
Posted by Marc-André Lureau 6 years, 11 months ago
On Thu, Nov 15, 2018 at 6:31 PM Paolo Bonzini <pbonzini@redhat.com> wrote:
>
> This speeds up wait_for_rings_started, which currently is just waiting for
> the timeout before checking s->rings.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>

> ---
>  tests/vhost-user-test.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/tests/vhost-user-test.c b/tests/vhost-user-test.c
> index 656e51938b..6a805e67be 100644
> --- a/tests/vhost-user-test.c
> +++ b/tests/vhost-user-test.c
> @@ -384,6 +384,7 @@ static void chr_read(void *opaque, const uint8_t *buf, int size)
>
>          assert(msg.payload.state.index < s->queues * 2);
>          s->rings &= ~(0x1ULL << msg.payload.state.index);
> +        g_cond_broadcast(&s->data_cond);
>          break;
>
>      case VHOST_USER_SET_MEM_TABLE:
> @@ -425,6 +426,7 @@ static void chr_read(void *opaque, const uint8_t *buf, int size)
>      case VHOST_USER_SET_VRING_BASE:
>          assert(msg.payload.state.index < s->queues * 2);
>          s->rings |= 0x1ULL << msg.payload.state.index;
> +        g_cond_broadcast(&s->data_cond);
>          break;
>
>      case VHOST_USER_GET_QUEUE_NUM:
> --
> 2.19.1
>
>