[RFC PATCH 0/2] async: rework async event API for replay

Nicholas Piggin posted 2 patches 3 months, 1 week ago
docs/devel/replay.rst              |  7 ++--
include/block/aio.h                | 35 +++++++++++++++--
include/sysemu/replay.h            |  2 +-
block.c                            |  4 +-
block/block-backend.c              | 24 +++++++-----
block/io.c                         |  5 ++-
block/iscsi.c                      |  5 ++-
block/nfs.c                        | 10 +++--
block/null.c                       |  4 +-
block/nvme.c                       |  8 ++--
hw/ide/core.c                      |  7 ++--
hw/scsi/scsi-bus.c                 |  6 +--
monitor/monitor.c                  |  2 +-
monitor/qmp.c                      |  5 ++-
qapi/qmp-dispatch.c                |  4 +-
replay/replay-events.c             | 25 ++++++------
stubs/replay-tools.c               |  2 +-
util/aio-wait.c                    |  2 +-
util/async.c                       | 63 ++++++++++++++++++++++++++++--
util/main-loop.c                   |  2 +-
util/thread-pool.c                 |  8 ++--
scripts/block-coroutine-wrapper.py |  2 +-
22 files changed, 164 insertions(+), 68 deletions(-)
[RFC PATCH 0/2] async: rework async event API for replay
Posted by Nicholas Piggin 3 months, 1 week ago
Continuing the conversation from the thread about record/replay
virtio fix. Here is a sketch of how we could improve the naming
convention so users of bh don't have to know about record/replay.

Thanks,
Nick

Nicholas Piggin (2):
  async: rework async event API for replay
  async: add debugging assertions for record/replay in bh APIs

 docs/devel/replay.rst              |  7 ++--
 include/block/aio.h                | 35 +++++++++++++++--
 include/sysemu/replay.h            |  2 +-
 block.c                            |  4 +-
 block/block-backend.c              | 24 +++++++-----
 block/io.c                         |  5 ++-
 block/iscsi.c                      |  5 ++-
 block/nfs.c                        | 10 +++--
 block/null.c                       |  4 +-
 block/nvme.c                       |  8 ++--
 hw/ide/core.c                      |  7 ++--
 hw/scsi/scsi-bus.c                 |  6 +--
 monitor/monitor.c                  |  2 +-
 monitor/qmp.c                      |  5 ++-
 qapi/qmp-dispatch.c                |  4 +-
 replay/replay-events.c             | 25 ++++++------
 stubs/replay-tools.c               |  2 +-
 util/aio-wait.c                    |  2 +-
 util/async.c                       | 63 ++++++++++++++++++++++++++++--
 util/main-loop.c                   |  2 +-
 util/thread-pool.c                 |  8 ++--
 scripts/block-coroutine-wrapper.py |  2 +-
 22 files changed, 164 insertions(+), 68 deletions(-)

-- 
2.45.2
Re: [RFC PATCH 0/2] async: rework async event API for replay
Posted by Michael S. Tsirkin 3 months, 1 week ago
On Thu, Aug 15, 2024 at 11:28:35PM +1000, Nicholas Piggin wrote:
> Continuing the conversation from the thread about record/replay
> virtio fix. Here is a sketch of how we could improve the naming
> convention so users of bh don't have to know about record/replay.
> 
> Thanks,
> Nick

The API looks ok to me.

> Nicholas Piggin (2):
>   async: rework async event API for replay
>   async: add debugging assertions for record/replay in bh APIs
> 
>  docs/devel/replay.rst              |  7 ++--
>  include/block/aio.h                | 35 +++++++++++++++--
>  include/sysemu/replay.h            |  2 +-
>  block.c                            |  4 +-
>  block/block-backend.c              | 24 +++++++-----
>  block/io.c                         |  5 ++-
>  block/iscsi.c                      |  5 ++-
>  block/nfs.c                        | 10 +++--
>  block/null.c                       |  4 +-
>  block/nvme.c                       |  8 ++--
>  hw/ide/core.c                      |  7 ++--
>  hw/scsi/scsi-bus.c                 |  6 +--
>  monitor/monitor.c                  |  2 +-
>  monitor/qmp.c                      |  5 ++-
>  qapi/qmp-dispatch.c                |  4 +-
>  replay/replay-events.c             | 25 ++++++------
>  stubs/replay-tools.c               |  2 +-
>  util/aio-wait.c                    |  2 +-
>  util/async.c                       | 63 ++++++++++++++++++++++++++++--
>  util/main-loop.c                   |  2 +-
>  util/thread-pool.c                 |  8 ++--
>  scripts/block-coroutine-wrapper.py |  2 +-
>  22 files changed, 164 insertions(+), 68 deletions(-)
> 
> -- 
> 2.45.2
Re: [RFC PATCH 0/2] async: rework async event API for replay
Posted by Nicholas Piggin 3 months, 1 week ago
On Fri Aug 16, 2024 at 1:30 AM AEST, Michael S. Tsirkin wrote:
> On Thu, Aug 15, 2024 at 11:28:35PM +1000, Nicholas Piggin wrote:
> > Continuing the conversation from the thread about record/replay
> > virtio fix. Here is a sketch of how we could improve the naming
> > convention so users of bh don't have to know about record/replay.
> > 
> > Thanks,
> > Nick
>
> The API looks ok to me.

Thanks for taking a look. In that case let's go with the fixes for
now so we have rr regression tests in a bit better state, and I will
resend for 9.2.

Thanks,
Nick
Re: [RFC PATCH 0/2] async: rework async event API for replay
Posted by Michael S. Tsirkin 3 months, 1 week ago
On Fri, Aug 16, 2024 at 12:23:50PM +1000, Nicholas Piggin wrote:
> On Fri Aug 16, 2024 at 1:30 AM AEST, Michael S. Tsirkin wrote:
> > On Thu, Aug 15, 2024 at 11:28:35PM +1000, Nicholas Piggin wrote:
> > > Continuing the conversation from the thread about record/replay
> > > virtio fix. Here is a sketch of how we could improve the naming
> > > convention so users of bh don't have to know about record/replay.
> > > 
> > > Thanks,
> > > Nick
> >
> > The API looks ok to me.
> 
> Thanks for taking a look. In that case let's go with the fixes for
> now so we have rr regression tests in a bit better state, and I will
> resend for 9.2.
> 
> Thanks,
> Nick

No, this is big because you are structuring this wrong.
Work, then rework ... I do not really like this kind of thing.

Add sane APIs and use them keeping old ones around, reworking old code
can wait for 9.2.

-- 
MST