Message ID | 20231114235628.534334-1-gshan@redhat.com (mailing list archive) |
---|---|
Headers | show |
Series | Unified CPU type check | expand |
Hi Gavin, On 15/11/23 00:55, Gavin Shan wrote: > There are two places where the user specified CPU type is checked to see > if it's supported or allowed by the board: machine_run_board_init() and > mc->init(). We don't have to maintain two duplicate sets of logic. This > series intends to move the check to machine_run_board_init() so that we > have unified CPU type check. > > PATCH[01-04] consolidate CPUClass::class_by_name() so that the returned > CPU class is checked for once in cpu_class_by_name() > PATCH[05] add generic helper cpu_model_from_type() to extract the CPU > model name from the CPU type name > PATCH[06] add generic cpu_list(), to be reused by most of the targets > PATCH[07-21] switch to generic cpu_list() for most of the targets > PATCH[22] use generic helper cpu_model_from_type() for several targets > PATCH[23-31] validate the CPU type in machine_run_board_init() for the > individual board > > v1: https://lists.nongnu.org/archive/html/qemu-arm/2023-07/msg00302.html > v2: https://lists.nongnu.org/archive/html/qemu-arm/2023-07/msg00528.html > v3: https://lists.nongnu.org/archive/html/qemu-arm/2023-09/msg00157.html > v4: https://lists.nongnu.org/archive/html/qemu-arm/2023-11/msg00005.html Maybe I missed the comment in earlier series, but what is the plan for the following targets? $ git grep 'define cpu_list' target/i386/cpu.h:2289:#define cpu_list x86_cpu_list target/ppc/cpu.h:1623:#define cpu_list ppc_cpu_list target/s390x/cpu.h:922:#define cpu_list s390_cpu_list target/sparc/cpu.h:673:#define cpu_list sparc_cpu_list Thanks, Phil.
Hi Phil, On 11/16/23 20:01, Philippe Mathieu-Daudé wrote: > On 15/11/23 00:55, Gavin Shan wrote: >> There are two places where the user specified CPU type is checked to see >> if it's supported or allowed by the board: machine_run_board_init() and >> mc->init(). We don't have to maintain two duplicate sets of logic. This >> series intends to move the check to machine_run_board_init() so that we >> have unified CPU type check. >> >> PATCH[01-04] consolidate CPUClass::class_by_name() so that the returned >> CPU class is checked for once in cpu_class_by_name() >> PATCH[05] add generic helper cpu_model_from_type() to extract the CPU >> model name from the CPU type name >> PATCH[06] add generic cpu_list(), to be reused by most of the targets >> PATCH[07-21] switch to generic cpu_list() for most of the targets >> PATCH[22] use generic helper cpu_model_from_type() for several targets >> PATCH[23-31] validate the CPU type in machine_run_board_init() for the >> individual board >> >> v1: https://lists.nongnu.org/archive/html/qemu-arm/2023-07/msg00302.html >> v2: https://lists.nongnu.org/archive/html/qemu-arm/2023-07/msg00528.html >> v3: https://lists.nongnu.org/archive/html/qemu-arm/2023-09/msg00157.html >> v4: https://lists.nongnu.org/archive/html/qemu-arm/2023-11/msg00005.html > > Maybe I missed the comment in earlier series, but what is the plan for > the following targets? > > $ git grep 'define cpu_list' > target/i386/cpu.h:2289:#define cpu_list x86_cpu_list > target/ppc/cpu.h:1623:#define cpu_list ppc_cpu_list > target/s390x/cpu.h:922:#define cpu_list s390_cpu_list > target/sparc/cpu.h:673:#define cpu_list sparc_cpu_list > Thanks a lot for your review. The generic cpu_list() was suggested by Richard on v5, so there're nothing you missed. For those targets, there are target dependent output from xxx_cpu_list() and the generic cpu_list() doesn't fit. So the plan is to leave them as of being. Thanks, Gavin
Hi Gavin, On 15/11/23 00:55, Gavin Shan wrote: > There are two places where the user specified CPU type is checked to see > if it's supported or allowed by the board: machine_run_board_init() and > mc->init(). We don't have to maintain two duplicate sets of logic. This > series intends to move the check to machine_run_board_init() so that we > have unified CPU type check. > Gavin Shan (30): > target/alpha: Remove 'ev67' CPU class > target/hppa: Remove object_class_is_abstract() > target: Remove 'oc == NULL' check > cpu: Add helper cpu_model_from_type() > cpu: Add generic cpu_list() > target/alpha: Use generic cpu_list() > target/arm: Use generic cpu_list() > target/avr: Use generic cpu_list() > target/cris: Use generic cpu_list() > target/hexagon: Use generic cpu_list() > target/hppa: Use generic cpu_list() > target/loongarch: Use generic cpu_list() > target/m68k: Use generic cpu_list() > target/mips: Use generic cpu_list() > target/openrisc: Use generic cpu_list() > target/riscv: Use generic cpu_list() > target/rx: Use generic cpu_list() > target/sh4: Use generic cpu_list() > target/tricore: Use generic cpu_list() > target/xtensa: Use generic cpu_list() > target: Use generic cpu_model_from_type() > machine: Constify MachineClass::valid_cpu_types[i] I'm queuing patches 1-3 & 5-23 to my cpus-next tree. No need to repost them, please base them on my tree. I'll follow up with the branch link when I finish my testing and push it. > machine: Use error handling when CPU type is checked > machine: Introduce helper is_cpu_type_supported() > machine: Print CPU model name instead of CPU type name > hw/arm/virt: Hide host CPU model for tcg > hw/arm/virt: Check CPU type in machine_run_board_init() > hw/arm/sbsa-ref: Check CPU type in machine_run_board_init() > hw/arm: Check CPU type in machine_run_board_init() > hw/riscv/shakti_c: Check CPU type in machine_run_board_init()
On 16/11/23 14:35, Philippe Mathieu-Daudé wrote: > Hi Gavin, > > On 15/11/23 00:55, Gavin Shan wrote: >> There are two places where the user specified CPU type is checked to see >> if it's supported or allowed by the board: machine_run_board_init() and >> mc->init(). We don't have to maintain two duplicate sets of logic. This >> series intends to move the check to machine_run_board_init() so that we >> have unified CPU type check. > > >> Gavin Shan (30): >> target/alpha: Remove 'ev67' CPU class >> target/hppa: Remove object_class_is_abstract() >> target: Remove 'oc == NULL' check >> cpu: Add helper cpu_model_from_type() >> cpu: Add generic cpu_list() >> target/alpha: Use generic cpu_list() >> target/arm: Use generic cpu_list() >> target/avr: Use generic cpu_list() >> target/cris: Use generic cpu_list() >> target/hexagon: Use generic cpu_list() >> target/hppa: Use generic cpu_list() >> target/loongarch: Use generic cpu_list() >> target/m68k: Use generic cpu_list() >> target/mips: Use generic cpu_list() >> target/openrisc: Use generic cpu_list() >> target/riscv: Use generic cpu_list() >> target/rx: Use generic cpu_list() >> target/sh4: Use generic cpu_list() >> target/tricore: Use generic cpu_list() >> target/xtensa: Use generic cpu_list() >> target: Use generic cpu_model_from_type() >> machine: Constify MachineClass::valid_cpu_types[i] > > I'm queuing patches 1-3 & 5-23 to my cpus-next tree. No need to > repost them, please base them on my tree. I'll follow up with the > branch link when I finish my testing and push it. Here are these patches queued: https://github.com/philmd/qemu.git branches/cpus-next I might queue more patches before the 9.0 merge window opens. Regards, Phil.
Hi Phil, On 11/17/23 02:20, Philippe Mathieu-Daudé wrote: > On 16/11/23 14:35, Philippe Mathieu-Daudé wrote: >> >> I'm queuing patches 1-3 & 5-23 to my cpus-next tree. No need to >> repost them, please base them on my tree. I'll follow up with the >> branch link when I finish my testing and push it. > > Here are these patches queued: > > https://github.com/philmd/qemu.git branches/cpus-next > > I might queue more patches before the 9.0 merge window opens. > Thanks for queuing these patches, but I don't see 'cpus-next' branch in the repository. Please let me know if I checked out the code properly. $ git clone https://github.com/philmd/qemu.git philmd $ cd philmd $ git branch * staging $ git branch -a | grep cpus-next $ echo $? 1 Thanks, Gavin
On 17/11/23 00:26, Gavin Shan wrote: > Hi Phil, > > On 11/17/23 02:20, Philippe Mathieu-Daudé wrote: >> On 16/11/23 14:35, Philippe Mathieu-Daudé wrote: >>> >>> I'm queuing patches 1-3 & 5-23 to my cpus-next tree. No need to >>> repost them, please base them on my tree. I'll follow up with the >>> branch link when I finish my testing and push it. >> >> Here are these patches queued: >> >> https://github.com/philmd/qemu.git branches/cpus-next Oops, no clue why I wrote github instead of gitlab, sorry =) >> I might queue more patches before the 9.0 merge window opens. >> > > Thanks for queuing these patches, but I don't see 'cpus-next' branch > in the repository. Please let me know if I checked out the code properly. > > $ git clone https://github.com/philmd/qemu.git philmd > $ cd philmd > $ git branch > * staging > $ git branch -a | grep cpus-next > $ echo $? > 1 No need to clone, you can use in your current cloned repository: $ git fetch https://gitlab.com/philmd/qemu.git cpus-next:cpus-next Regards, Phil.
On 11/17/23 17:34, Philippe Mathieu-Daudé wrote: > On 17/11/23 00:26, Gavin Shan wrote: >> On 11/17/23 02:20, Philippe Mathieu-Daudé wrote: >>> On 16/11/23 14:35, Philippe Mathieu-Daudé wrote: >>>> >>>> I'm queuing patches 1-3 & 5-23 to my cpus-next tree. No need to >>>> repost them, please base them on my tree. I'll follow up with the >>>> branch link when I finish my testing and push it. >>> >>> Here are these patches queued: >>> >>> https://github.com/philmd/qemu.git branches/cpus-next > > Oops, no clue why I wrote github instead of gitlab, sorry =) > No worries, Phil. >>> I might queue more patches before the 9.0 merge window opens. >>> >> >> Thanks for queuing these patches, but I don't see 'cpus-next' branch >> in the repository. Please let me know if I checked out the code properly. >> >> $ git clone https://github.com/philmd/qemu.git philmd >> $ cd philmd >> $ git branch >> * staging >> $ git branch -a | grep cpus-next >> $ echo $? >> 1 > > No need to clone, you can use in your current cloned repository: > > $ git fetch https://gitlab.com/philmd/qemu.git cpus-next:cpus-next > Thanks. It worked for me. Thanks, Gavin