[PATCH v2 00/26] Introduce enablemenant of dom0less

Oleksii Kurochko posted 26 patches 3 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://gitlab.com/xen-project/patchew/xen tags/patchew/cover.1778250616.git.oleksii.kurochko@gmail.com
automation/gitlab-ci/build.yaml           |   1 +
xen/arch/arm/include/asm/p2m.h            |   1 -
xen/arch/arm/include/asm/setup.h          |   3 -
xen/arch/arm/mmu/p2m.c                    |  22 +-
xen/arch/riscv/Kconfig                    |   3 +
xen/arch/riscv/Makefile                   |   4 +
xen/arch/riscv/aia.c                      | 167 +++++++++
xen/arch/riscv/aplic.c                    |  49 ++-
xen/arch/riscv/cpufeature.c               |  59 ++-
xen/arch/riscv/device.c                   | 108 ++++++
xen/arch/riscv/dom0less-build.c           |  39 ++
xen/arch/riscv/domain-build.c             | 179 +++++++++
xen/arch/riscv/domain.c                   |  44 ++-
xen/arch/riscv/imsic.c                    | 167 +++++++++
xen/arch/riscv/include/asm/aia.h          |  18 +
xen/arch/riscv/include/asm/aplic.h        |  53 +++
xen/arch/riscv/include/asm/cpufeature.h   |   5 +
xen/arch/riscv/include/asm/domain.h       |   8 +
xen/arch/riscv/include/asm/guest-layout.h |   7 +
xen/arch/riscv/include/asm/imsic.h        |  26 ++
xen/arch/riscv/include/asm/intc.h         |  58 ++-
xen/arch/riscv/include/asm/irq.h          |   3 +
xen/arch/riscv/include/asm/paging.h       |   2 +-
xen/arch/riscv/include/asm/setup.h        |   8 +-
xen/arch/riscv/include/asm/vaplic.h       |  37 ++
xen/arch/riscv/intc.c                     | 103 ++++-
xen/arch/riscv/irq.c                      | 178 ++++++++-
xen/arch/riscv/p2m.c                      |  31 +-
xen/arch/riscv/paging.c                   |   7 +-
xen/arch/riscv/setup.c                    |  14 +
xen/arch/riscv/stubs.c                    |  12 -
xen/arch/riscv/vaplic.c                   | 436 ++++++++++++++++++++++
xen/common/device-tree/dom0less-build.c   |   2 +-
xen/include/xen/fdt-domain-build.h        |  13 +
xen/include/xen/p2m-common.h              |   2 +
35 files changed, 1807 insertions(+), 62 deletions(-)
create mode 100644 xen/arch/riscv/aia.c
create mode 100644 xen/arch/riscv/device.c
create mode 100644 xen/arch/riscv/domain-build.c
create mode 100644 xen/arch/riscv/include/asm/aia.h
create mode 100644 xen/arch/riscv/include/asm/vaplic.h
create mode 100644 xen/arch/riscv/vaplic.c
[PATCH v2 00/26] Introduce enablemenant of dom0less
Posted by Oleksii Kurochko 3 weeks ago
This patch series reprensent a bunch of patches necessary to enable common part
of Dom0less.
The stuff necessary to start/launch domains will be introduced separately.

This patch series is based on [1], but a lot of patch could go even without
it.

[1] https://lore.kernel.org/xen-devel/cover.1778140240.git.oleksii.kurochko@gmail.com/T/#t

CI tests: https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2510638764

---
Changes in v2:
 - Move patch "[PATCH v1 04/27] xen/riscv: rework G-stage mode handling" to
   patch series [1]
 - Address the comments from ML.
 - The following patches were folded into one:
   # xen/riscv: implement init_intc_phandle()
   # xen/riscv: call do_initcalls() in start_xen()
   # xen/riscv: setup system domains
 - The following patch were folded into one:
   # xen/riscv: add vaplic access check
   # xen/riscv: emulate guest writes to virtual APLIC MMIO
   # xen/riscv: emulate guest reads from virtual APLIC MMIO
 - Add new bug fix, not really necessary to this patch series:
   xen/riscv: manage IRQ_DISABLED flag in APLIC irq enable/disable callbacks
---

Oleksii Kurochko (26):
  xen: arm: update p2m_set_allocation() prototype
  xen/riscv: Implement ARCH_PAGING_MEMPOOL
  xen/riscv: Implement construct_domain()
  xen/riscv: implement prerequisites for domain_create()
  xen/riscv: introduce guest riscv,isa string
  xen/riscv: implement make_cpus_node()
  xen/riscv: implement make_timer_node()
  xen/riscv: implement make_arch_nodes()
  xen/riscv: introduce init interrupt controller operations
  xen/riscv: implement make_intc_domU_node()
  xen/riscv: introduce aia_init() and aia_usable()
  xen/riscv: add basic VGEIN management for AIA guests
  xen/riscv: introduce per-vCPU IMSIC state
  xen/riscv: add very early virtual APLIC (vAPLIC) initialization
    support
  xen/riscv: introduce (de)initialization helpers for vINTC
  xen/riscv: create APLIC DT node for guest domains
  xen/riscv: generate IMSIC DT node for guest domains
  xen: move declaration of map_device_irqs_to_domain() to common header
  xen/riscv: implement IRQ routing for device passthrough
  xen/riscv: add missing APLIC register offsets, masks to asm/aplic.h.
  xen/riscv: implement virtual APLIC MMIO emulation
  xen/riscv: implement init_intc_phandle()
  xen/riscv: initialize RCU, scheduler, and system domains in
    start_xen()
  xen/riscv: provide init_vuart()
  xen/riscv: add initial dom0less infrastructure support
  xen/riscv: manage IRQ_DISABLED flag in APLIC irq enable/disable
    callbacks

 automation/gitlab-ci/build.yaml           |   1 +
 xen/arch/arm/include/asm/p2m.h            |   1 -
 xen/arch/arm/include/asm/setup.h          |   3 -
 xen/arch/arm/mmu/p2m.c                    |  22 +-
 xen/arch/riscv/Kconfig                    |   3 +
 xen/arch/riscv/Makefile                   |   4 +
 xen/arch/riscv/aia.c                      | 167 +++++++++
 xen/arch/riscv/aplic.c                    |  49 ++-
 xen/arch/riscv/cpufeature.c               |  59 ++-
 xen/arch/riscv/device.c                   | 108 ++++++
 xen/arch/riscv/dom0less-build.c           |  39 ++
 xen/arch/riscv/domain-build.c             | 179 +++++++++
 xen/arch/riscv/domain.c                   |  44 ++-
 xen/arch/riscv/imsic.c                    | 167 +++++++++
 xen/arch/riscv/include/asm/aia.h          |  18 +
 xen/arch/riscv/include/asm/aplic.h        |  53 +++
 xen/arch/riscv/include/asm/cpufeature.h   |   5 +
 xen/arch/riscv/include/asm/domain.h       |   8 +
 xen/arch/riscv/include/asm/guest-layout.h |   7 +
 xen/arch/riscv/include/asm/imsic.h        |  26 ++
 xen/arch/riscv/include/asm/intc.h         |  58 ++-
 xen/arch/riscv/include/asm/irq.h          |   3 +
 xen/arch/riscv/include/asm/paging.h       |   2 +-
 xen/arch/riscv/include/asm/setup.h        |   8 +-
 xen/arch/riscv/include/asm/vaplic.h       |  37 ++
 xen/arch/riscv/intc.c                     | 103 ++++-
 xen/arch/riscv/irq.c                      | 178 ++++++++-
 xen/arch/riscv/p2m.c                      |  31 +-
 xen/arch/riscv/paging.c                   |   7 +-
 xen/arch/riscv/setup.c                    |  14 +
 xen/arch/riscv/stubs.c                    |  12 -
 xen/arch/riscv/vaplic.c                   | 436 ++++++++++++++++++++++
 xen/common/device-tree/dom0less-build.c   |   2 +-
 xen/include/xen/fdt-domain-build.h        |  13 +
 xen/include/xen/p2m-common.h              |   2 +
 35 files changed, 1807 insertions(+), 62 deletions(-)
 create mode 100644 xen/arch/riscv/aia.c
 create mode 100644 xen/arch/riscv/device.c
 create mode 100644 xen/arch/riscv/domain-build.c
 create mode 100644 xen/arch/riscv/include/asm/aia.h
 create mode 100644 xen/arch/riscv/include/asm/vaplic.h
 create mode 100644 xen/arch/riscv/vaplic.c

-- 
2.54.0
Re: [PATCH v2 00/26] Introduce enablemenant of dom0less
Posted by Jan Beulich 1 week, 4 days ago
On 08.05.2026 16:43, Oleksii Kurochko wrote:
> This patch series reprensent a bunch of patches necessary to enable common part
> of Dom0less.
> The stuff necessary to start/launch domains will be introduced separately.
> 
> This patch series is based on [1], but a lot of patch could go even without
> it.

What do I do with this kind of statement? This still leaves it to the committer
to figure out which ones could go in earlier. What helps in this specific case
it that ...

> [1] https://lore.kernel.org/xen-devel/cover.1778140240.git.oleksii.kurochko@gmail.com/T/#t
... the remainder of this looks to be ready to go in now (and I intend to commit
that tomorrow).

Jan
Re: [PATCH v2 00/26] Introduce enablemenant of dom0less
Posted by Oleksii Kurochko 1 week, 4 days ago

On 5/18/26 5:38 PM, Jan Beulich wrote:
> On 08.05.2026 16:43, Oleksii Kurochko wrote:
>> This patch series reprensent a bunch of patches necessary to enable common part
>> of Dom0less.
>> The stuff necessary to start/launch domains will be introduced separately.
>>
>> This patch series is based on [1], but a lot of patch could go even without
>> it.
> 
> What do I do with this kind of statement? This still leaves it to the committer
> to figure out which ones could go in earlier. What helps in this specific case
> it that ...
> 
>> [1] https://lore.kernel.org/xen-devel/cover.1778140240.git.oleksii.kurochko@gmail.com/T/#t
> ... the remainder of this looks to be ready to go in now (and I intend to commit
> that tomorrow).

I will be more specific in the future and specify which patches can go 
in without waiting for the dependency patch series to be fully merged.


~ Oleksii