qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v6 0/6] coroutine rwlock downgrade fix, minor VDI changes
@ 2021-03-25 11:29 Paolo Bonzini
  2021-03-25 11:29 ` [PATCH v6 1/6] block/vdi: When writing new bmap entry fails, don't leak the buffer Paolo Bonzini
                   ` (6 more replies)
  0 siblings, 7 replies; 12+ messages in thread
From: Paolo Bonzini @ 2021-03-25 11:29 UTC (permalink / raw)
  To: qemu-devel; +Cc: david.edmondson, stefanha

This is a resubmit of David Edmondson's series at
https://patchew.org/QEMU/20210309144015.557477-1-david.edmondson@oracle.com/.
After closer analysis on IRC, the CoRwlock's attempt to ensure
fairness turned out to be flawed.  Therefore, this series
reimplements CoRwlock without using a CoQueue.  Tracking whether
each queued coroutine is a reader/writer makes it possible to
never wake a writer when only readers should be allowed and
vice versa.

v2->v3: new CoRwlock implementation

v3->v4: fix upgrade and add a test for that, too

v4->v5: typo

v5->v6: improve documentation, do not read lock->owners where
        neither wrlock nor lock->mutex exclude concurrent writes

David Edmondson (4):
  block/vdi: When writing new bmap entry fails, don't leak the buffer
  block/vdi: Don't assume that blocks are larger than VdiHeader
  coroutine-lock: Store the coroutine in the CoWaitRecord only once
  test-coroutine: Add rwlock downgrade test

Paolo Bonzini (2):
  coroutine-lock: Reimplement CoRwlock to fix downgrade bug
  test-coroutine: Add rwlock upgrade test

 block/vdi.c                 |  11 ++-
 include/qemu/coroutine.h    |  17 ++--
 tests/unit/test-coroutine.c | 161 ++++++++++++++++++++++++++++++++++++
 util/qemu-coroutine-lock.c  | 149 +++++++++++++++++++++------------
 4 files changed, 274 insertions(+), 64 deletions(-)

-- 
2.29.2



^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2021-03-30 17:52 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-25 11:29 [PATCH v6 0/6] coroutine rwlock downgrade fix, minor VDI changes Paolo Bonzini
2021-03-25 11:29 ` [PATCH v6 1/6] block/vdi: When writing new bmap entry fails, don't leak the buffer Paolo Bonzini
2021-03-30 15:28   ` Stefan Hajnoczi
2021-03-25 11:29 ` [PATCH v6 2/6] block/vdi: Don't assume that blocks are larger than VdiHeader Paolo Bonzini
2021-03-30 15:29   ` Stefan Hajnoczi
2021-03-25 11:29 ` [PATCH v6 3/6] coroutine-lock: Store the coroutine in the CoWaitRecord only once Paolo Bonzini
2021-03-30 15:29   ` Stefan Hajnoczi
2021-03-25 11:29 ` [PATCH v6 4/6] coroutine-lock: Reimplement CoRwlock to fix downgrade bug Paolo Bonzini
2021-03-30 16:55   ` Stefan Hajnoczi
2021-03-25 11:29 ` [PATCH v6 5/6] test-coroutine: Add rwlock upgrade test Paolo Bonzini
2021-03-25 11:29 ` [PATCH v6 6/6] test-coroutine: Add rwlock downgrade test Paolo Bonzini
2021-03-30 17:50 ` [PATCH v6 0/6] coroutine rwlock downgrade fix, minor VDI changes Stefan Hajnoczi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).