RFC Slotted channels for sync vm_events
Get series with b4
b4 am [email protected]Versions newest first
- v1 RFC Latest6 patches 43 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/6 | tools/libxc: Consistent usage of xc_vm_event_* interfacetools/ tools/ tools/ +4 more | +62 | 0 replies | |
| 2/6 | tools/libxc: Define VM_EVENT typetools/ tools/ tools/ +3 more | +73 | 6 replies | |
| 3/6 | vm_event: Refactor vm_event_domain implementationxen/ xen/ xen/ +8 more | +312 | 2 replies | |
| 4/6 | vm_event: Use slotted channels for sync requests.tools/ tools/ tools/ +7 more | +660 | 15 replies | |
| 5/6 | xen-access: add support for slotted channel vm_eventstools/ | +441 | 0 replies | |
| 6/6 | xc_version: add vm_event interface versiontools/ xen/ xen/ | +9 | 9 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [PATCH RFC 0/6] Slotted channels for sync vm_events
This patchset is a rework of the "multi-page ring buffer" for vm_events patch based on Andrew Cooper's comments.
For synchronous vm_events the ring waitqueue logic was unnecessary as the vcpu sending the request was blocked until a response was received. To simplify the request/response mechanism, an array of slotted channels was created, one per vcpu. Each vcpu puts the request in the corresponding slot and blocks until the response is received.
I'm sending this patch as a RFC because, while I'm still working on way to measure the overall performance improvement, your feedback would be a great assistance.
Petre Pircalabu (6):
tools/libxc: Consistent usage of xc_vm_event_* interface tools/libxc: Define VM_EVENT type
vm_event: Refactor vm_event_domain implementation
vm_event: Use slotted channels for sync requests.
xen-access: add support for slotted channel vm_events
xc_version: add vm_event interface version
tools/libxc/include/xenctrl.h | 60 +-- tools/libxc/xc_mem_paging.c | 23 +- tools/libxc/xc_memshr.c | 34 -- tools/libxc/xc_monitor.c | 67 ++- tools/libxc/xc_private.c | 3 + tools/libxc/xc_private.h | 22 +- tools/libxc/xc_vm_event.c | 192 ++++--- tools/tests/xen-access/xen-access.c | 545 ++++++++++++++++---- tools/xenpaging/xenpaging.c | 42 +- xen/arch/arm/mem_access.c | 2 +- xen/arch/x86/mm.c | 7 + xen/arch/x86/mm/mem_access.c | 4 +- xen/arch/x86/mm/mem_paging.c | 2 +- xen/arch/x86/mm/mem_sharing.c | 5 +- xen/arch/x86/mm/p2m.c | 10 +- xen/common/kernel.c | 3 + xen/common/mem_access.c | 2 +- xen/common/monitor.c | 4 +- xen/common/vm_event.c | 972 +++++++++++++++++++++++++++--------- xen/drivers/passthrough/pci.c | 2 +- xen/include/public/domctl.h | 64 ++- xen/include/public/memory.h | 2 + xen/include/public/version.h | 3 + xen/include/public/vm_event.h | 15 + xen/include/xen/sched.h | 25 +- xen/include/xen/vm_event.h | 30 +- 26 files changed, 1511 insertions(+), 629 deletions(-)
Signature · 7 lines
2.7.4 _______________________________________________ Xen-devel mailing list [email protected] https://lists.xenproject.org/mailman/listinfo/xen-devel