All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru>, qemu-devel@nongnu.org
Cc: peter.maydell@linaro.org, peter.crosthwaite@xilinx.com,
	alex.bennee@linaro.org, mark.burton@greensocs.com,
	real@ispras.ru, batuzovk@ispras.ru,
	maria.klimushenkova@ispras.ru, fred.konrad@greensocs.com
Subject: Re: [Qemu-devel] [RFC PATCH v13 15/21] bottom halves: introduce bh call function
Date: Wed, 06 May 2015 16:39:36 +0200	[thread overview]
Message-ID: <554A27A8.4040700@redhat.com> (raw)
In-Reply-To: <20150506140406.17288.85396.stgit@PASHA-ISP>



On 06/05/2015 16:04, Pavel Dovgalyuk wrote:
> This patch introduces aio_bh_call function. It is used to execute
> bottom halves as callbacks without adding them to the queue.
> 
> Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>
> ---
>  async.c             |    8 +++++++-
>  include/block/aio.h |    5 +++++
>  2 files changed, 12 insertions(+), 1 deletions(-)
> 
> diff --git a/async.c b/async.c
> index 46d9e63..734c76c 100644
> --- a/async.c
> +++ b/async.c
> @@ -59,6 +59,12 @@ QEMUBH *aio_bh_new(AioContext *ctx, QEMUBHFunc *cb, void *opaque)
>      return bh;
>  }
>  
> +void aio_bh_call(void *opaque)
> +{
> +    QEMUBH *bh = (QEMUBH *)opaque;

This can have a QEMUBH * argument.  I can fix it when committing.

> +    bh->cb(bh->opaque);
> +}
> +
>  /* Multiple occurrences of aio_bh_poll cannot be called concurrently */
>  int aio_bh_poll(AioContext *ctx)
>  {
> @@ -82,7 +88,7 @@ int aio_bh_poll(AioContext *ctx)
>              if (!bh->idle)
>                  ret = 1;
>              bh->idle = 0;
> -            bh->cb(bh->opaque);
> +            aio_bh_call(bh);
>          }
>      }
>  
> diff --git a/include/block/aio.h b/include/block/aio.h
> index d2bb423..b498704 100644
> --- a/include/block/aio.h
> +++ b/include/block/aio.h
> @@ -157,6 +157,11 @@ QEMUBH *aio_bh_new(AioContext *ctx, QEMUBHFunc *cb, void *opaque);
>  void aio_notify(AioContext *ctx);
>  
>  /**
> + * aio_bh_call: Executes callback function of the specified BH.
> + */
> +void aio_bh_call(void *opaque);
> +
> +/**
>   * aio_bh_poll: Poll bottom halves for an AioContext.
>   *
>   * These are internal functions used by the QEMU main loop.
> 

Works for me!  I am not sure why patch 16 works though. :)  I'll ponder
on it, in the meanwhile some extra explanation from you would be welcome...

Paolo

  reply	other threads:[~2015-05-06 14:39 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-06 14:02 [Qemu-devel] [RFC PATCH v13 00/21] Deterministic replay core Pavel Dovgalyuk
2015-05-06 14:02 ` [Qemu-devel] [RFC PATCH v13 01/21] i386: partial revert of interrupt poll fix Pavel Dovgalyuk
2015-05-06 14:02 ` [Qemu-devel] [RFC PATCH v13 02/21] replay: global variables and function stubs Pavel Dovgalyuk
2015-05-06 14:02 ` [Qemu-devel] [RFC PATCH v13 03/21] sysemu: system functions for replay Pavel Dovgalyuk
2015-05-06 14:03 ` [Qemu-devel] [RFC PATCH v13 04/21] replay: internal functions for replay log Pavel Dovgalyuk
2015-05-06 14:03 ` [Qemu-devel] [RFC PATCH v13 05/21] replay: introduce mutex to protect the " Pavel Dovgalyuk
2015-05-06 14:03 ` [Qemu-devel] [RFC PATCH v13 06/21] replay: introduce icount event Pavel Dovgalyuk
2015-05-06 14:03 ` [Qemu-devel] [RFC PATCH v13 07/21] cpu-exec: allow temporary disabling icount Pavel Dovgalyuk
2015-05-06 14:03 ` [Qemu-devel] [RFC PATCH v13 08/21] cpu: replay instructions sequence Pavel Dovgalyuk
2015-05-06 14:03 ` [Qemu-devel] [RFC PATCH v13 09/21] i386: interrupt poll processing Pavel Dovgalyuk
2015-05-06 14:03 ` [Qemu-devel] [RFC PATCH v13 10/21] replay: interrupts and exceptions Pavel Dovgalyuk
2015-05-06 14:03 ` [Qemu-devel] [RFC PATCH v13 11/21] replay: asynchronous events infrastructure Pavel Dovgalyuk
2015-05-06 14:03 ` [Qemu-devel] [RFC PATCH v13 12/21] replay: recording and replaying clock ticks Pavel Dovgalyuk
2015-05-06 14:03 ` [Qemu-devel] [RFC PATCH v13 13/21] replay: shutdown event Pavel Dovgalyuk
2015-05-06 14:04 ` [Qemu-devel] [RFC PATCH v13 14/21] replay: checkpoints Pavel Dovgalyuk
2015-05-06 14:04 ` [Qemu-devel] [RFC PATCH v13 15/21] bottom halves: introduce bh call function Pavel Dovgalyuk
2015-05-06 14:39   ` Paolo Bonzini [this message]
2015-05-07  6:48     ` Pavel Dovgaluk
2015-05-06 14:04 ` [Qemu-devel] [RFC PATCH v13 16/21] replay: ptimer Pavel Dovgalyuk
2015-05-06 14:04 ` [Qemu-devel] [RFC PATCH v13 17/21] typedef: add typedef for QemuOpts Pavel Dovgalyuk
2015-05-06 14:04 ` [Qemu-devel] [RFC PATCH v13 18/21] replay: initialization and deinitialization Pavel Dovgalyuk
2015-05-06 14:04 ` [Qemu-devel] [RFC PATCH v13 19/21] replay: replay blockers for devices Pavel Dovgalyuk
2015-05-06 14:04 ` [Qemu-devel] [RFC PATCH v13 20/21] replay: command line options Pavel Dovgalyuk
2015-05-06 14:04 ` [Qemu-devel] [RFC PATCH v13 21/21] replay: recording of the user input Pavel Dovgalyuk
2015-05-19  7:44 ` [Qemu-devel] [RFC PATCH v13 00/21] Deterministic replay core Pavel Dovgaluk

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=554A27A8.4040700@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=Pavel.Dovgaluk@ispras.ru \
    --cc=alex.bennee@linaro.org \
    --cc=batuzovk@ispras.ru \
    --cc=fred.konrad@greensocs.com \
    --cc=maria.klimushenkova@ispras.ru \
    --cc=mark.burton@greensocs.com \
    --cc=peter.crosthwaite@xilinx.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=real@ispras.ru \
    /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.