mbox series

[v6,0/5] RISC-V multi-socket support

Message ID 20200616032229.766089-1-anup.patel@wdc.com (mailing list archive)
Headers show
Series RISC-V multi-socket support | expand

Message

Anup Patel June 16, 2020, 3:22 a.m. UTC
This series adds multi-socket support for RISC-V virt machine and
RISC-V spike machine. The multi-socket support will help us improve
various RISC-V operating systems, firmwares, and bootloader to
support RISC-V NUMA systems.

These patch can be found in riscv_multi_socket_v6 branch at:
https://github.com/avpatel/qemu.git

Changes since v5:
 - Rebased patches on Spike changes from Alistair
 - Added comments describing RISC-V NUMA helper functions

Changes since v4:
 - Re-arrange patches and move CLINT and PLIC patches before other
   patches because these are already reviewed
 - Added PATCH3 for common RISC-V multi-socket helpers
 - Added support for "-numa cpu,node-id" option in PATCH4 and PATCH5

Changes since v3:
 - Use "-numa" QEMU options to populate sockets instead of custom
   "multi-socket" sub-option in machine name

Changes since v2:
 - Dropped PATCH1 as it is not required any more
 - Added "multi-socket" sub-option for Spike and Virt machine
   which can be used to enable/disable mult-socket support

Changes since v1:
 - Fixed checkpatch errors and warnings
 - Added PATCH1 for knowning whether "sockets" sub-option was specified
 - Remove SPIKE_CPUS_PER_SOCKET_MIN and SPIKE_CPUS_PER_SOCKET_MAX in PATCH3
 - Remove VIRT_CPUS_PER_SOCKET_MIN and VIRT_CPUS_PER_SOCKET_MAX in PATCH5

Anup Patel (5):
  hw/riscv: Allow creating multiple instances of CLINT
  hw/riscv: Allow creating multiple instances of PLIC
  hw/riscv: Add helpers for RISC-V multi-socket NUMA machines
  hw/riscv: spike: Allow creating multiple NUMA sockets
  hw/riscv: virt: Allow creating multiple NUMA sockets

 hw/riscv/Makefile.objs          |   1 +
 hw/riscv/numa.c                 | 242 +++++++++++++++
 hw/riscv/sifive_clint.c         |  20 +-
 hw/riscv/sifive_e.c             |   4 +-
 hw/riscv/sifive_plic.c          |  24 +-
 hw/riscv/sifive_u.c             |   4 +-
 hw/riscv/spike.c                | 237 +++++++++-----
 hw/riscv/virt.c                 | 530 ++++++++++++++++++--------------
 include/hw/riscv/numa.h         | 113 +++++++
 include/hw/riscv/sifive_clint.h |   7 +-
 include/hw/riscv/sifive_plic.h  |  12 +-
 include/hw/riscv/spike.h        |  11 +-
 include/hw/riscv/virt.h         |   9 +-
 13 files changed, 873 insertions(+), 341 deletions(-)
 create mode 100644 hw/riscv/numa.c
 create mode 100644 include/hw/riscv/numa.h

Comments

Alistair Francis June 16, 2020, 8:23 p.m. UTC | #1
On Mon, Jun 15, 2020 at 8:23 PM Anup Patel <anup.patel@wdc.com> wrote:
>
> This series adds multi-socket support for RISC-V virt machine and
> RISC-V spike machine. The multi-socket support will help us improve
> various RISC-V operating systems, firmwares, and bootloader to
> support RISC-V NUMA systems.
>
> These patch can be found in riscv_multi_socket_v6 branch at:
> https://github.com/avpatel/qemu.git
>
> Changes since v5:
>  - Rebased patches on Spike changes from Alistair
>  - Added comments describing RISC-V NUMA helper functions
>
> Changes since v4:
>  - Re-arrange patches and move CLINT and PLIC patches before other
>    patches because these are already reviewed
>  - Added PATCH3 for common RISC-V multi-socket helpers
>  - Added support for "-numa cpu,node-id" option in PATCH4 and PATCH5
>
> Changes since v3:
>  - Use "-numa" QEMU options to populate sockets instead of custom
>    "multi-socket" sub-option in machine name
>
> Changes since v2:
>  - Dropped PATCH1 as it is not required any more
>  - Added "multi-socket" sub-option for Spike and Virt machine
>    which can be used to enable/disable mult-socket support
>
> Changes since v1:
>  - Fixed checkpatch errors and warnings
>  - Added PATCH1 for knowning whether "sockets" sub-option was specified
>  - Remove SPIKE_CPUS_PER_SOCKET_MIN and SPIKE_CPUS_PER_SOCKET_MAX in PATCH3
>  - Remove VIRT_CPUS_PER_SOCKET_MIN and VIRT_CPUS_PER_SOCKET_MAX in PATCH5
>
> Anup Patel (5):
>   hw/riscv: Allow creating multiple instances of CLINT
>   hw/riscv: Allow creating multiple instances of PLIC
>   hw/riscv: Add helpers for RISC-V multi-socket NUMA machines
>   hw/riscv: spike: Allow creating multiple NUMA sockets
>   hw/riscv: virt: Allow creating multiple NUMA sockets

Applied to the RISC-V tree

Alistair

>
>  hw/riscv/Makefile.objs          |   1 +
>  hw/riscv/numa.c                 | 242 +++++++++++++++
>  hw/riscv/sifive_clint.c         |  20 +-
>  hw/riscv/sifive_e.c             |   4 +-
>  hw/riscv/sifive_plic.c          |  24 +-
>  hw/riscv/sifive_u.c             |   4 +-
>  hw/riscv/spike.c                | 237 +++++++++-----
>  hw/riscv/virt.c                 | 530 ++++++++++++++++++--------------
>  include/hw/riscv/numa.h         | 113 +++++++
>  include/hw/riscv/sifive_clint.h |   7 +-
>  include/hw/riscv/sifive_plic.h  |  12 +-
>  include/hw/riscv/spike.h        |  11 +-
>  include/hw/riscv/virt.h         |   9 +-
>  13 files changed, 873 insertions(+), 341 deletions(-)
>  create mode 100644 hw/riscv/numa.c
>  create mode 100644 include/hw/riscv/numa.h
>
> --
> 2.25.1
>
>