mbox series

[v3,0/7] xsm: refactoring xsm hooks

Message ID 20210805140644.357-1-dpsmith@apertussolutions.com (mailing list archive)
Headers show
Series xsm: refactoring xsm hooks | expand

Message

Daniel P. Smith Aug. 5, 2021, 2:06 p.m. UTC
Based on feedback from 2021 Xen Developers Summit the xsm-roles RFC patch set
is being split into two separate patch sets. This is the first patch set and is
focused purely on the clean up and refactoring of the XSM hooks.

This patch set refactors the xsm_ops wrapper hooks to use the alternative_call
infrastructure. Then proceeds to move and realign the headers to simplify the
unnecessarily complicated header inclusions, remove the facad of being able to
enable/disable XSM, and simplify the XSM hooks down to a single interface and
implementation. The remainder of the changes are clean up and removing no
longer necessary abstractions.

v2:
 - restructured the patches, breaking them up as needed
 - incorporate Andrew Cooper's alternative call common code
 - change XSM module registration, removing register_xsm
 - incoporate KConfig recommendations
 - reworded commit messages
 - incorporate macro expansion recommendations
 - misc clean-up fallout from recommendations

v3:
 - renamed struct xsm_operations to struct xsm_ops
 - flask and silo ops structs made __initconst
 - fixed misplacement of __init on flask/silo_init
 - lots of coding style alignment
 - further clean up from FLASK_DISABLE removal
 - addressed commit message comments
 - removed missed guard around alternative-call include
 - reworked approach to XSM hooks, merging the two interfaces instead of
   dropping one

Andrew Cooper (1):
  xen: Implement xen/alternative-call.h for use in common code

Daniel P. Smith (6):
  xsm: remove the ability to disable flask
  xsm: refactor xsm_ops handling
  xsm: convert xsm_ops hook calls to alternative call
  xsm: decouple xsm header inclusion selection
  xsm: drop generic event channel labeling exclusion
  xsm: removing facade that XSM can be enabled/disabled

 xen/arch/x86/Kconfig               |    1 +
 xen/common/Kconfig                 |   50 +-
 xen/include/public/xsm/flask_op.h  |    2 +-
 xen/include/xen/alternative-call.h |   63 ++
 xen/include/xen/sched.h            |    4 -
 xen/include/xsm/dummy.h            |  711 +----------------
 xen/include/xsm/xsm-core.h         |  247 ++++++
 xen/include/xsm/xsm.h              | 1145 +++++++++++++++++-----------
 xen/xsm/Makefile                   |    3 +-
 xen/xsm/dummy.c                    |  160 ----
 xen/xsm/flask/flask_op.c           |   30 -
 xen/xsm/flask/hooks.c              |   12 +-
 xen/xsm/silo.c                     |   23 +-
 xen/xsm/xsm_core.c                 |   72 +-
 14 files changed, 1083 insertions(+), 1440 deletions(-)
 create mode 100644 xen/include/xen/alternative-call.h
 create mode 100644 xen/include/xsm/xsm-core.h
 delete mode 100644 xen/xsm/dummy.c