All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/7] Rationalize usage of xc_domain_getinfo{,list}()
@ 2023-04-26 14:59 Alejandro Vallejo
  2023-04-26 14:59 ` [PATCH 1/7] tools: Make some callers of xc_domain_getinfo use xc_domain_getinfolist Alejandro Vallejo
                   ` (7 more replies)
  0 siblings, 8 replies; 20+ messages in thread
From: Alejandro Vallejo @ 2023-04-26 14:59 UTC (permalink / raw)
  To: Xen-devel
  Cc: Alejandro Vallejo, Andrew Cooper, George Dunlap, Jan Beulich,
	Julien Grall, Stefano Stabellini, Wei Liu, Anthony PERARD,
	Juergen Gross, Tim Deegan

xc_domain_getinfo() returns the list of domains with domid >= first_domid.
It does so by repeatedly invoking XEN_DOMCTL_getdomaininfo, which leads to
unintuitive behaviour (asking for domid=1 might succeed returning domid=2).
Furthermore, N hypercalls are required whereas the equivalent functionality
can be achieved using with XEN_SYSCTL_getdomaininfo.

Ideally, we want a DOMCTL interface that operates over a single precisely
specified domain and a SYSCTL interface that can be used for bulk queries.

All callers of xc_domain_getinfo() that are better off using SYSCTL are
migrated to use that instead. That includes callers performing domain
discovery and those requesting info for more than 1 domain per hypercall.

A new xc_domain_getinfo_single() is introduced with stricter semantics than
xc_domain_getinfo() (failing if domid isn't found) to migrate the rest to.

With no callers left the xc_dominfo_t structure and the xc_domain_getinfo()
call itself can be cleanly removed, and the DOMCTL interface simplified to
only use its fastpath.

With the DOMCTL ammended, the new xc_domain_getinfo_single() drops its
stricter check, becoming a simple wrapper to invoke the hypercall itself.

Alejandro Vallejo (7):
  tools: Make some callers of xc_domain_getinfo use
    xc_domain_getinfolist
  tools: Create xc_domain_getinfo_single()
  tools: Refactor the console/io.c to avoid using xc_domain_getinfo()
  tools: Make init-xenstore-domain use xc_domain_getinfolist()
  tools: Modify single-domid callers of xc_domain_getinfolist
  tools: Use new xc function for some xc_domain_getinfo calls
  domctl: Modify getdomaininfo to fail if domid is not found

 tools/console/client/main.c             |  7 +--
 tools/console/daemon/io.c               | 31 +++++-----
 tools/debugger/kdd/kdd-xen.c            |  6 +-
 tools/helpers/init-xenstore-domain.c    | 14 +++--
 tools/include/xenctrl.h                 | 63 ++++++++------------
 tools/libs/ctrl/xc_domain.c             | 79 +++++--------------------
 tools/libs/ctrl/xc_pagetab.c            |  7 +--
 tools/libs/ctrl/xc_private.c            |  7 +--
 tools/libs/ctrl/xc_private.h            |  6 +-
 tools/libs/guest/xg_core.c              | 21 +++----
 tools/libs/guest/xg_core.h              |  6 +-
 tools/libs/guest/xg_core_arm.c          | 10 ++--
 tools/libs/guest/xg_core_x86.c          | 18 +++---
 tools/libs/guest/xg_cpuid_x86.c         | 28 +++++----
 tools/libs/guest/xg_dom_boot.c          | 12 +---
 tools/libs/guest/xg_domain.c            |  6 +-
 tools/libs/guest/xg_offline_page.c      | 10 ++--
 tools/libs/guest/xg_private.h           |  1 +
 tools/libs/guest/xg_resume.c            | 17 +++---
 tools/libs/guest/xg_sr_common.h         |  2 +-
 tools/libs/guest/xg_sr_restore.c        | 14 ++---
 tools/libs/guest/xg_sr_restore_x86_pv.c |  2 +-
 tools/libs/guest/xg_sr_save.c           | 26 ++++----
 tools/libs/guest/xg_sr_save_x86_pv.c    |  6 +-
 tools/libs/light/libxl_dom.c            | 15 ++---
 tools/libs/light/libxl_dom_suspend.c    |  7 +--
 tools/libs/light/libxl_domain.c         | 12 ++--
 tools/libs/light/libxl_mem.c            |  4 +-
 tools/libs/light/libxl_sched.c          | 28 ++++-----
 tools/libs/light/libxl_x86_acpi.c       |  4 +-
 tools/misc/xen-hvmcrash.c               |  6 +-
 tools/misc/xen-lowmemd.c                |  6 +-
 tools/misc/xen-mfndump.c                | 22 +++----
 tools/misc/xen-vmtrace.c                |  6 +-
 tools/python/xen/lowlevel/xc/xc.c       | 29 ++++-----
 tools/vchan/vchan-socket-proxy.c        |  6 +-
 tools/xenmon/xenbaked.c                 |  6 +-
 tools/xenpaging/xenpaging.c             | 14 ++---
 tools/xenstore/xenstored_domain.c       | 15 +++--
 tools/xentrace/xenctx.c                 |  8 +--
 xen/common/domctl.c                     | 32 +---------
 41 files changed, 245 insertions(+), 374 deletions(-)

-- 
2.34.1



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

end of thread, other threads:[~2023-04-27 18:07 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-26 14:59 [PATCH 0/7] Rationalize usage of xc_domain_getinfo{,list}() Alejandro Vallejo
2023-04-26 14:59 ` [PATCH 1/7] tools: Make some callers of xc_domain_getinfo use xc_domain_getinfolist Alejandro Vallejo
2023-04-27  9:51   ` Andrew Cooper
2023-04-27 14:37     ` Alejandro Vallejo
2023-04-26 14:59 ` [PATCH 2/7] tools: Create xc_domain_getinfo_single() Alejandro Vallejo
2023-04-27  9:53   ` Andrew Cooper
2023-04-26 14:59 ` [PATCH 3/7] tools: Refactor the console/io.c to avoid using xc_domain_getinfo() Alejandro Vallejo
2023-04-27 10:36   ` Andrew Cooper
2023-04-26 14:59 ` [PATCH 4/7] tools: Make init-xenstore-domain use xc_domain_getinfolist() Alejandro Vallejo
2023-04-26 15:20   ` Juergen Gross
2023-04-27 14:29     ` Alejandro Vallejo
2023-04-26 14:59 ` [PATCH 5/7] tools: Modify single-domid callers of xc_domain_getinfolist Alejandro Vallejo
2023-04-27 11:14   ` Andrew Cooper
2023-04-26 14:59 ` [PATCH 6/7] tools: Use new xc function for some xc_domain_getinfo calls Alejandro Vallejo
2023-04-27 12:35   ` Andrew Cooper
2023-04-27 18:07     ` Alejandro Vallejo
2023-04-26 14:59 ` [PATCH 7/7] domctl: Modify getdomaininfo to fail if domid is not found Alejandro Vallejo
2023-04-27 11:15   ` Andrew Cooper
2023-04-26 22:30 ` Gitlab curiosity: Was [PATCH 0/7] Rationalize usage of xc_domain_getinfo{,list}() Andrew Cooper
2023-04-27  9:26   ` Andrew Cooper

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.