[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH xenbus 00/11] Synchronization API fixes



From: Paul Durrant <pdurrant@xxxxxxxxxx>

As discussed in the win-pv-devel thread culminating in:

https://lists.xenproject.org/archives/html/win-pv-devel/2022-04/msg00031.html

there is a problem in releasing CPUs before all 'late' callbacks have
completed. This series fixes the problem and also does a lot of long-
overdue code cleanup.

Paul Durrant (11):
  Clear 'Success' in SUSPEND_CONTEXT after it has been used
  Remove 'Sequence' from SYNC_CONTEXT
  Remove unnecessary wait when enabling interrupts
  Reduce code duplication
  Replace the 'DisableInterrupts' and 'Exit' BOOLEANs in
    SYNC_PROCESSOR...
  Move 'Request' from SYNC_PROCESSOR to SYNC_CONTEXT
  Remove the SYNC_PROCESSOR structure
  Separate running the 'early' SYNC_CALLBACKs from the interrupt enable
    request
  Separate running the 'late' SYNC_CALLBACKs from exitting the DPC
  Replace if-else-if sequence in SyncWorker() with switch
  Remove the 'Success' field from SUSPEND_CONTEXT

 src/xenbus/suspend.c |  13 +-
 src/xenbus/sync.c    | 387 +++++++++++++++++++++++--------------------
 src/xenbus/sync.h    |  14 ++
 3 files changed, 229 insertions(+), 185 deletions(-)

-- 
2.17.1




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.