All of lore.kernel.org
 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 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.