Hi,

this is a rebase of "wip/new-cpu-config" branch of Jan. We will need
these patches for RISC-V support, which will land on the list soon.

Basically, this series adds support for both: logical and physical CPU
IDs in Jailhouse.

Thanks
  Ralf

Jan Kiszka (20):
  core: Add internal event check before hypervisor activation
  core: Skip arch_flush_cell_vcpu_caches during setup
  x86: Do not kick targets of vcpu cache flushes
  core: Clarify invocation context of arch_flush_cell_vcpu_caches
  core: Convert config_commit into a unit callback
  arm64: Update unit link order comment and save a line
  arm, arm64: Make GICv3 arm64-only
  x86: Rename CPU_ID_INVALID to APIC_INVALID_CPU
  core: Beautify for_each_cpu helper
  core: Use statically sized cpu sets
  core: Move cell_init() of root cell from init_early to init_late
  core: Change CPU configuration to an array of structures
  driver: Convert to new CPU configuration format
  core: Convert to new CPU configuration format
  tools: Convert to new CPU configuration format
  configs: x86: Convert to new CPU configuration format
  configs: arm: Convert to new CPU configuration format
  configs: arm64: Convert to new CPU configuration format
  core: Optimize parsing of large CPU sets
  RISC-V cornerstone

 configs/arm/bananapi-inmate-demo.c            |  10 +-
 configs/arm/bananapi-linux-demo.c             |  10 +-
 configs/arm/bananapi.c                        |  13 ++-
 configs/arm/emtrion-rzg1e-inmate-demo.c       |   8 +-
 configs/arm/emtrion-rzg1e-linux-demo.c        |   8 +-
 configs/arm/emtrion-rzg1e.c                   |  11 +-
 configs/arm/emtrion-rzg1h-inmate-demo.c       |   8 +-
 configs/arm/emtrion-rzg1h-linux-demo.c        |   8 +-
 configs/arm/emtrion-rzg1h.c                   |  29 ++++-
 configs/arm/emtrion-rzg1m-inmate-demo.c       |   8 +-
 configs/arm/emtrion-rzg1m-linux-demo.c        |   8 +-
 configs/arm/emtrion-rzg1m.c                   |  11 +-
 configs/arm/jetson-tk1-inmate-demo.c          |  10 +-
 configs/arm/jetson-tk1-linux-demo.c           |  13 ++-
 configs/arm/jetson-tk1.c                      |  19 +++-
 configs/arm/orangepi0-inmate-demo.c           |  10 +-
 configs/arm/orangepi0-linux-demo.c            |  13 ++-
 configs/arm/orangepi0.c                       |  19 +++-
 configs/arm/qemu-arm-inmate-demo.c            |  10 +-
 configs/arm/qemu-arm-linux-demo.c             |  13 ++-
 configs/arm/qemu-arm.c                        |  31 ++++-
 configs/arm64/amd-seattle-inmate-demo.c       |   8 +-
 configs/arm64/amd-seattle-linux-demo.c        |  11 +-
 configs/arm64/amd-seattle.c                   |  29 ++++-
 configs/arm64/espressobin-inmate-demo.c       |  10 +-
 configs/arm64/espressobin-linux-demo.c        |  10 +-
 configs/arm64/espressobin.c                   |  13 ++-
 configs/arm64/foundation-v8-inmate-demo.c     |   8 +-
 configs/arm64/foundation-v8-linux-demo.c      |  11 +-
 configs/arm64/foundation-v8.c                 |  17 ++-
 configs/arm64/hikey-inmate-demo.c             |  10 +-
 configs/arm64/hikey-linux-demo.c              |  13 ++-
 configs/arm64/hikey.c                         |  31 ++++-
 configs/arm64/imx8dxl-inmate-demo.c           |   8 +-
 configs/arm64/imx8dxl.c                       |  13 ++-
 configs/arm64/imx8mm-inmate-demo.c            |   8 +-
 configs/arm64/imx8mm-linux-demo.c             |  11 +-
 configs/arm64/imx8mm.c                        |  19 +++-
 configs/arm64/imx8mn-inmate-demo.c            |   8 +-
 configs/arm64/imx8mn-linux-demo.c             |  11 +-
 configs/arm64/imx8mn.c                        |  19 +++-
 configs/arm64/imx8mp-inmate-demo.c            |   8 +-
 configs/arm64/imx8mp-linux-demo.c             |  11 +-
 configs/arm64/imx8mp.c                        |  19 +++-
 configs/arm64/imx8mq-inmate-demo.c            |   8 +-
 configs/arm64/imx8mq-linux-demo.c             |  11 +-
 configs/arm64/imx8mq.c                        |  19 +++-
 configs/arm64/imx8qm-inmate-demo.c            |   8 +-
 configs/arm64/imx8qm-linux-demo.c             |  11 +-
 configs/arm64/imx8qm.c                        |  25 ++++-
 configs/arm64/jetson-tx1-inmate-demo.c        |   8 +-
 configs/arm64/jetson-tx1-linux-demo.c         |  11 +-
 configs/arm64/jetson-tx1.c                    |  17 ++-
 configs/arm64/jetson-tx2-inmate-demo.c        |   8 +-
 configs/arm64/jetson-tx2.c                    |  17 ++-
 configs/arm64/k3-am625-sk-inmate-demo.c       |   8 +-
 configs/arm64/k3-am625-sk-linux-demo.c        |  14 ++-
 configs/arm64/k3-am625-sk.c                   |  17 ++-
 configs/arm64/k3-am654-idk-linux-demo.c       |  11 +-
 configs/arm64/k3-am654-idk.c                  |  17 ++-
 configs/arm64/k3-am654-inmate-demo.c          |   8 +-
 configs/arm64/k3-j7200-evm-inmate-demo.c      |   8 +-
 configs/arm64/k3-j7200-evm-linux-demo.c       |   8 +-
 configs/arm64/k3-j7200-evm.c                  |  11 +-
 configs/arm64/k3-j721e-evm-inmate-demo.c      |   8 +-
 configs/arm64/k3-j721e-evm-linux-demo.c       |   8 +-
 configs/arm64/k3-j721e-evm.c                  |  11 +-
 configs/arm64/ls1028a-rdb-inmate-demo.c       |   8 +-
 configs/arm64/ls1028a-rdb-linux-demo.c        |   8 +-
 configs/arm64/ls1028a-rdb.c                   |  13 ++-
 configs/arm64/ls1043a-rdb-dpaa-linux-demo.c   |  11 +-
 configs/arm64/ls1043a-rdb-inmate-demo.c       |   8 +-
 configs/arm64/ls1043a-rdb-linux-demo.c        |  11 +-
 configs/arm64/ls1043a-rdb.c                   |  19 +++-
 configs/arm64/ls1046a-rdb-inmate-demo.c       |   8 +-
 configs/arm64/ls1046a-rdb-linux-demo.c        |  11 +-
 configs/arm64/ls1046a-rdb.c                   |  19 +++-
 configs/arm64/ls1088a-rdb-inmate-demo.c       |   8 +-
 configs/arm64/ls1088a-rdb-linux-demo.c        |  11 +-
 configs/arm64/ls1088a-rdb.c                   |  29 ++++-
 configs/arm64/ls2088a-rdb-inmate-demo.c       |   8 +-
 configs/arm64/ls2088a-rdb-linux-demo.c        |  11 +-
 configs/arm64/ls2088a-rdb.c                   |  29 ++++-
 configs/arm64/macchiatobin-inmate-demo.c      |  10 +-
 configs/arm64/macchiatobin-linux-demo.c       |  13 ++-
 configs/arm64/macchiatobin.c                  |  19 +++-
 .../arm64/miriac-sbc-ls1046a-inmate-demo.c    |   8 +-
 configs/arm64/miriac-sbc-ls1046a-linux-demo.c |  11 +-
 configs/arm64/miriac-sbc-ls1046a.c            |  17 ++-
 configs/arm64/pine64-plus-inmate-demo.c       |   8 +-
 configs/arm64/pine64-plus-linux-demo.c        |  11 +-
 configs/arm64/pine64-plus.c                   |  17 ++-
 configs/arm64/qemu-arm64-inmate-demo.c        |  10 +-
 configs/arm64/qemu-arm64-linux-demo.c         |  13 ++-
 configs/arm64/qemu-arm64-zephyr-demo.c        |  11 +-
 configs/arm64/qemu-arm64.c                    |  55 ++++++++-
 configs/arm64/rpi4-inmate-demo.c              |  10 +-
 configs/arm64/rpi4-linux-demo.c               |  13 ++-
 configs/arm64/rpi4.c                          |  19 +++-
 configs/arm64/ultra96-inmate-demo.c           |  10 +-
 configs/arm64/ultra96-linux-demo.c            |  13 ++-
 configs/arm64/ultra96.c                       |  19 +++-
 configs/arm64/zynqmp-zcu102-inmate-demo.c     |  10 +-
 configs/arm64/zynqmp-zcu102-linux-demo-2.c    |  10 +-
 configs/arm64/zynqmp-zcu102-linux-demo.c      |  13 ++-
 configs/arm64/zynqmp-zcu102.c                 |  19 +++-
 configs/riscv/qemu-riscv64.c                  |  65 +++++++++++
 configs/x86/apic-demo.c                       |  10 +-
 configs/x86/e1000-demo.c                      |  10 +-
 configs/x86/f2a88xm-hd3.c                     |  19 +++-
 configs/x86/imb-a180.c                        |  19 +++-
 configs/x86/ioapic-demo.c                     |  10 +-
 configs/x86/ivshmem-demo.c                    |  10 +-
 configs/x86/linux-x86-demo.c                  |  13 ++-
 configs/x86/pci-demo.c                        |  10 +-
 configs/x86/qemu-x86.c                        |  19 +++-
 configs/x86/smp-demo.c                        |  16 ++-
 configs/x86/tiny-demo.c                       |  10 +-
 driver/cell.c                                 |  20 +++-
 driver/main.c                                 |  98 +++++++++-------
 driver/main.h                                 |   5 +-
 driver/sysfs.c                                |  20 ++--
 hypervisor/arch/arm-common/Kbuild             |   4 +-
 hypervisor/arch/arm-common/control.c          |  22 ++--
 hypervisor/arch/arm-common/gic-v2.c           |   2 +-
 hypervisor/arch/arm-common/include/asm/gic.h  |   1 -
 .../arch/arm-common/include/asm/iommu.h       |   1 -
 .../arch/arm-common/include/asm/irqchip.h     |   2 -
 hypervisor/arch/arm-common/irqchip.c          |   8 +-
 hypervisor/arch/arm-common/lib.c              |   6 +-
 hypervisor/arch/arm-common/psci.c             |  13 +--
 hypervisor/arch/arm/include/asm/arch_gicv3.h  |  53 ---------
 hypervisor/arch/arm/include/asm/types.h       |   4 +-
 hypervisor/arch/arm/iommu.c                   |   4 -
 hypervisor/arch/arm/traps.c                   |  13 +--
 hypervisor/arch/arm64/Kbuild                  |   9 +-
 .../arch/{arm-common => arm64}/gic-v3.c       |  48 ++++----
 .../arch/arm64/include/asm/arch_gicv3.h       |  30 -----
 .../include/asm/gic_v3.h                      |  10 +-
 hypervisor/arch/arm64/include/asm/ti-pvu.h    |   2 -
 hypervisor/arch/arm64/include/asm/types.h     |   2 +
 hypervisor/arch/arm64/iommu.c                 |   7 --
 hypervisor/arch/arm64/paging.c                |   5 +-
 hypervisor/arch/arm64/smmu-v3.c               |   1 +
 hypervisor/arch/arm64/smmu.c                  |   7 +-
 hypervisor/arch/arm64/ti-pvu.c                |  14 +--
 hypervisor/arch/arm64/traps.c                 |   2 +-
 hypervisor/arch/riscv/Kbuild                  |  17 +++
 hypervisor/arch/riscv/Makefile                |  13 +++
 hypervisor/arch/riscv/asm-defines.c           |  19 ++++
 hypervisor/arch/riscv/control.c               |  78 +++++++++++++
 hypervisor/arch/riscv/dbg-write.c             |  17 +++
 hypervisor/arch/riscv/entry.S                 |  17 +++
 hypervisor/arch/riscv/include/asm/bitops.h    |  37 ++++++
 hypervisor/arch/riscv/include/asm/cell.h      |  24 ++++
 hypervisor/arch/riscv/include/asm/control.h   |   0
 .../smmu.h => riscv/include/asm/ivshmem.h}    |  10 +-
 .../arch/riscv/include/asm/jailhouse_header.h |  14 +++
 hypervisor/arch/riscv/include/asm/mmio.h      |   0
 hypervisor/arch/riscv/include/asm/paging.h    |  54 +++++++++
 .../arch/riscv/include/asm/paging_modes.h     |   0
 hypervisor/arch/riscv/include/asm/percpu.h    |  23 ++++
 hypervisor/arch/riscv/include/asm/processor.h |  33 ++++++
 hypervisor/arch/riscv/include/asm/sections.h  |  14 +++
 hypervisor/arch/riscv/include/asm/spinlock.h  |  27 +++++
 hypervisor/arch/riscv/include/asm/types.h     |  14 +++
 hypervisor/arch/riscv/ivshmem.c               |  29 +++++
 hypervisor/arch/riscv/lib.c                   |  19 ++++
 hypervisor/arch/riscv/paging.c                |  23 ++++
 hypervisor/arch/riscv/pci.c                   |  49 ++++++++
 hypervisor/arch/riscv/setup.c                 |  32 ++++++
 hypervisor/arch/x86/amd_iommu.c               |   4 +-
 hypervisor/arch/x86/apic.c                    |  24 ++--
 hypervisor/arch/x86/cat.c                     |   5 +-
 hypervisor/arch/x86/control.c                 |  26 ++---
 hypervisor/arch/x86/include/asm/apic.h        |   4 +-
 hypervisor/arch/x86/include/asm/control.h     |   4 +-
 hypervisor/arch/x86/include/asm/ioapic.h      |   4 +-
 hypervisor/arch/x86/include/asm/iommu.h       |   2 -
 hypervisor/arch/x86/include/asm/types.h       |   4 +-
 hypervisor/arch/x86/ioapic.c                  |   4 +-
 hypervisor/arch/x86/iommu.c                   |   4 +-
 hypervisor/arch/x86/svm.c                     |   6 +-
 hypervisor/arch/x86/test-device.c             |   3 +-
 hypervisor/arch/x86/vmx.c                     |   4 +-
 hypervisor/arch/x86/vtd.c                     |   4 +-
 hypervisor/control.c                          | 106 +++++++++---------
 hypervisor/include/jailhouse/cell.h           |   8 +-
 hypervisor/include/jailhouse/control.h        |  31 +++--
 hypervisor/include/jailhouse/pci.h            |   4 +-
 hypervisor/include/jailhouse/percpu.h         |   4 +-
 hypervisor/include/jailhouse/processor.h      |   4 +-
 hypervisor/include/jailhouse/types.h          |  14 +--
 hypervisor/include/jailhouse/unit.h           |   7 +-
 hypervisor/pci.c                              |  11 +-
 hypervisor/setup.c                            |  22 ++--
 include/arch/riscv/asm/jailhouse_hypercall.h  |  68 +++++++++++
 include/jailhouse/cell-config.h               |  22 ++--
 inmates/demos/riscv/Makefile                  |   0
 inmates/lib/riscv/Makefile                    |   0
 inmates/tests/riscv/Makefile                  |   0
 inmates/tools/riscv/Makefile                  |   0
 pyjailhouse/config_parser.py                  |  13 ++-
 pyjailhouse/sysfs_parser.py                   |  20 +++-
 scripts/include.mk                            |   3 +
 tools/jailhouse-config-create                 |  14 +--
 tools/root-cell-config.c.tmpl                 |  15 ++-
 207 files changed, 2206 insertions(+), 848 deletions(-)
 create mode 100644 configs/riscv/qemu-riscv64.c
 delete mode 100644 hypervisor/arch/arm/include/asm/arch_gicv3.h
 rename hypervisor/arch/{arm-common => arm64}/gic-v3.c (95%)
 delete mode 100644 hypervisor/arch/arm64/include/asm/arch_gicv3.h
 rename hypervisor/arch/{arm-common => arm64}/include/asm/gic_v3.h (94%)
 create mode 100644 hypervisor/arch/riscv/Kbuild
 create mode 100644 hypervisor/arch/riscv/Makefile
 create mode 100644 hypervisor/arch/riscv/asm-defines.c
 create mode 100644 hypervisor/arch/riscv/control.c
 create mode 100644 hypervisor/arch/riscv/dbg-write.c
 create mode 100644 hypervisor/arch/riscv/entry.S
 create mode 100644 hypervisor/arch/riscv/include/asm/bitops.h
 create mode 100644 hypervisor/arch/riscv/include/asm/cell.h
 create mode 100644 hypervisor/arch/riscv/include/asm/control.h
 rename hypervisor/arch/{arm64/include/asm/smmu.h => 
riscv/include/asm/ivshmem.h} (60%)
 create mode 100644 hypervisor/arch/riscv/include/asm/jailhouse_header.h
 create mode 100644 hypervisor/arch/riscv/include/asm/mmio.h
 create mode 100644 hypervisor/arch/riscv/include/asm/paging.h
 create mode 100644 hypervisor/arch/riscv/include/asm/paging_modes.h
 create mode 100644 hypervisor/arch/riscv/include/asm/percpu.h
 create mode 100644 hypervisor/arch/riscv/include/asm/processor.h
 create mode 100644 hypervisor/arch/riscv/include/asm/sections.h
 create mode 100644 hypervisor/arch/riscv/include/asm/spinlock.h
 create mode 100644 hypervisor/arch/riscv/include/asm/types.h
 create mode 100644 hypervisor/arch/riscv/ivshmem.c
 create mode 100644 hypervisor/arch/riscv/lib.c
 create mode 100644 hypervisor/arch/riscv/paging.c
 create mode 100644 hypervisor/arch/riscv/pci.c
 create mode 100644 hypervisor/arch/riscv/setup.c
 create mode 100644 include/arch/riscv/asm/jailhouse_hypercall.h
 create mode 100644 inmates/demos/riscv/Makefile
 create mode 100644 inmates/lib/riscv/Makefile
 create mode 100644 inmates/tests/riscv/Makefile
 create mode 100644 inmates/tools/riscv/Makefile

-- 
2.36.1

-- 
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jailhouse-dev/20220627131329.3659-1-ralf.ramsauer%40oth-regensburg.de.

Reply via email to