hw/i386/pc.c | 1 - hw/i386/x86.c | 9 ++++- include/hw/i386/topology.h | 40 +++++--------------- target/i386/cpu.c | 86 +++++++++++++++++++------------------------- target/i386/cpu.h | 1 - 5 files changed, 55 insertions(+), 82 deletions(-)
This series fixes couple of issues with recent topology related code. 1. Modify AMD topology to use socket/dies/core/thread model 2. Error out if the user does not pass the dies information if EPYC cpu is numa configured. 3. Remove the node_id references in topology and use die_id instead. 4. With node_id removed in topology the uninitialized memory issue with -device and CPU hotplug will be fixed. Link: https://bugzilla.redhat.com/show_bug.cgi?id=1828750 --- v4: Not much of a change. Just added few text changes. Error out configuration instead of warning if dies are not configured in EPYC. Few other text changes to clarify the removal of node_id, nr_nodes and nodes_per_pkg. v3: https://lore.kernel.org/qemu-devel/159681772267.9679.1334429994189974662.stgit@naples-babu.amd.com/#r Added a new check to pass the dies for EPYC numa configuration. Added Simplify CPUID_8000_001E patch with some changes suggested by Igor. Dropped the patch to build the topology from CpuInstanceProperties. TODO: Not sure if we still need the Autonuma changes Igor mentioned. Needs more clarity on that. v2: https://lore.kernel.org/qemu-devel/159362436285.36204.986406297373871949.stgit@naples-babu.amd.com/ - Used the numa information from CpuInstanceProperties for building the apic_id suggested by Igor. - Also did some minor code re-aarangement to take care of changes. - Dropped the patch "Simplify CPUID_8000_001E" from v1. Will send it later. v1: https://lore.kernel.org/qemu-devel/159164739269.20543.3074052993891532749.stgit@naples-babu.amd.com Babu Moger (3): i386: Simplify CPUID_8000_001E for AMD hw/i386: Update the EPYC topology to use socket/dies/core/thread model hw/i386: Remove node_id, nr_nodes and nodes_per_pkg from topology hw/i386/pc.c | 1 - hw/i386/x86.c | 9 ++++- include/hw/i386/topology.h | 40 +++++--------------- target/i386/cpu.c | 86 +++++++++++++++++++------------------------- target/i386/cpu.h | 1 - 5 files changed, 55 insertions(+), 82 deletions(-) --
Patchew URL: https://patchew.org/QEMU/159744083536.39197.13827776633866601278.stgit@naples-babu.amd.com/ Hi, This series failed the docker-quick@centos7 build test. Please find the testing commands and their output below. If you have Docker installed, you can probably reproduce it locally. === TEST SCRIPT BEGIN === #!/bin/bash make docker-image-centos7 V=1 NETWORK=1 time make docker-test-quick@centos7 SHOW_ENV=1 J=14 NETWORK=1 === TEST SCRIPT END === CC tests/test-timed-average.o CC tests/test-util-filemonitor.o /tmp/qemu-test/src/tests/test-x86-cpuid.c: In function 'test_topo_bits': /tmp/qemu-test/src/tests/test-x86-cpuid.c:34:5: error: excess elements in struct initializer [-Werror] topo_info = (X86CPUTopoInfo) {0, 1, 1, 1}; ^ /tmp/qemu-test/src/tests/test-x86-cpuid.c:34:5: error: (near initialization for '(anonymous)') [-Werror] /tmp/qemu-test/src/tests/test-x86-cpuid.c:39:5: error: excess elements in struct initializer [-Werror] topo_info = (X86CPUTopoInfo) {0, 1, 1, 1}; ^ /tmp/qemu-test/src/tests/test-x86-cpuid.c:39:5: error: (near initialization for '(anonymous)') [-Werror] /tmp/qemu-test/src/tests/test-x86-cpuid.c:48:5: error: excess elements in struct initializer [-Werror] topo_info = (X86CPUTopoInfo) {0, 1, 1, 2}; ^ /tmp/qemu-test/src/tests/test-x86-cpuid.c:48:5: error: (near initialization for '(anonymous)') [-Werror] /tmp/qemu-test/src/tests/test-x86-cpuid.c:50:5: error: excess elements in struct initializer [-Werror] topo_info = (X86CPUTopoInfo) {0, 1, 1, 3}; ^ /tmp/qemu-test/src/tests/test-x86-cpuid.c:50:5: error: (near initialization for '(anonymous)') [-Werror] /tmp/qemu-test/src/tests/test-x86-cpuid.c:52:5: error: excess elements in struct initializer [-Werror] topo_info = (X86CPUTopoInfo) {0, 1, 1, 4}; ^ /tmp/qemu-test/src/tests/test-x86-cpuid.c:52:5: error: (near initialization for '(anonymous)') [-Werror] /tmp/qemu-test/src/tests/test-x86-cpuid.c:55:5: error: excess elements in struct initializer [-Werror] topo_info = (X86CPUTopoInfo) {0, 1, 1, 14}; ^ /tmp/qemu-test/src/tests/test-x86-cpuid.c:55:5: error: (near initialization for '(anonymous)') [-Werror] /tmp/qemu-test/src/tests/test-x86-cpuid.c:57:5: error: excess elements in struct initializer [-Werror] topo_info = (X86CPUTopoInfo) {0, 1, 1, 15}; ^ /tmp/qemu-test/src/tests/test-x86-cpuid.c:57:5: error: (near initialization for '(anonymous)') [-Werror] /tmp/qemu-test/src/tests/test-x86-cpuid.c:59:5: error: excess elements in struct initializer [-Werror] topo_info = (X86CPUTopoInfo) {0, 1, 1, 16}; ^ /tmp/qemu-test/src/tests/test-x86-cpuid.c:59:5: error: (near initialization for '(anonymous)') [-Werror] /tmp/qemu-test/src/tests/test-x86-cpuid.c:61:5: error: excess elements in struct initializer [-Werror] topo_info = (X86CPUTopoInfo) {0, 1, 1, 17}; ^ /tmp/qemu-test/src/tests/test-x86-cpuid.c:61:5: error: (near initialization for '(anonymous)') [-Werror] /tmp/qemu-test/src/tests/test-x86-cpuid.c:65:5: error: excess elements in struct initializer [-Werror] topo_info = (X86CPUTopoInfo) {0, 1, 30, 2}; ^ /tmp/qemu-test/src/tests/test-x86-cpuid.c:65:5: error: (near initialization for '(anonymous)') [-Werror] /tmp/qemu-test/src/tests/test-x86-cpuid.c:67:5: error: excess elements in struct initializer [-Werror] topo_info = (X86CPUTopoInfo) {0, 1, 31, 2}; ^ /tmp/qemu-test/src/tests/test-x86-cpuid.c:67:5: error: (near initialization for '(anonymous)') [-Werror] /tmp/qemu-test/src/tests/test-x86-cpuid.c:69:5: error: excess elements in struct initializer [-Werror] topo_info = (X86CPUTopoInfo) {0, 1, 32, 2}; ^ /tmp/qemu-test/src/tests/test-x86-cpuid.c:69:5: error: (near initialization for '(anonymous)') [-Werror] /tmp/qemu-test/src/tests/test-x86-cpuid.c:71:5: error: excess elements in struct initializer [-Werror] topo_info = (X86CPUTopoInfo) {0, 1, 33, 2}; ^ /tmp/qemu-test/src/tests/test-x86-cpuid.c:71:5: error: (near initialization for '(anonymous)') [-Werror] /tmp/qemu-test/src/tests/test-x86-cpuid.c:74:5: error: excess elements in struct initializer [-Werror] topo_info = (X86CPUTopoInfo) {0, 1, 30, 2}; ^ /tmp/qemu-test/src/tests/test-x86-cpuid.c:74:5: error: (near initialization for '(anonymous)') [-Werror] /tmp/qemu-test/src/tests/test-x86-cpuid.c:76:5: error: excess elements in struct initializer [-Werror] topo_info = (X86CPUTopoInfo) {0, 2, 30, 2}; ^ /tmp/qemu-test/src/tests/test-x86-cpuid.c:76:5: error: (near initialization for '(anonymous)') [-Werror] /tmp/qemu-test/src/tests/test-x86-cpuid.c:78:5: error: excess elements in struct initializer [-Werror] topo_info = (X86CPUTopoInfo) {0, 3, 30, 2}; ^ /tmp/qemu-test/src/tests/test-x86-cpuid.c:78:5: error: (near initialization for '(anonymous)') [-Werror] /tmp/qemu-test/src/tests/test-x86-cpuid.c:80:5: error: excess elements in struct initializer [-Werror] topo_info = (X86CPUTopoInfo) {0, 4, 30, 2}; ^ /tmp/qemu-test/src/tests/test-x86-cpuid.c:80:5: error: (near initialization for '(anonymous)') [-Werror] /tmp/qemu-test/src/tests/test-x86-cpuid.c:88:5: error: excess elements in struct initializer [-Werror] topo_info = (X86CPUTopoInfo) {0, 1, 6, 3}; ^ /tmp/qemu-test/src/tests/test-x86-cpuid.c:88:5: error: (near initialization for '(anonymous)') [-Werror] /tmp/qemu-test/src/tests/test-x86-cpuid.c:94:5: error: excess elements in struct initializer [-Werror] topo_info = (X86CPUTopoInfo) {0, 1, 6, 3}; ^ /tmp/qemu-test/src/tests/test-x86-cpuid.c:94:5: error: (near initialization for '(anonymous)') [-Werror] /tmp/qemu-test/src/tests/test-x86-cpuid.c:99:5: error: excess elements in struct initializer [-Werror] topo_info = (X86CPUTopoInfo) {0, 1, 6, 3}; ^ /tmp/qemu-test/src/tests/test-x86-cpuid.c:99:5: error: (near initialization for '(anonymous)') [-Werror] cc1: all warnings being treated as errors CC tests/test-util-sockets.o make: *** [tests/test-x86-cpuid.o] Error 1 make: *** Waiting for unfinished jobs.... CC tests/test-authz-simple.o Traceback (most recent call last): --- raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['sudo', '-n', 'docker', 'run', '--label', 'com.qemu.instance.uuid=f1d81aa90662430dbfbbafedb6be792d', '-u', '1003', '--security-opt', 'seccomp=unconfined', '--rm', '-e', 'TARGET_LIST=', '-e', 'EXTRA_CONFIGURE_OPTS=', '-e', 'V=', '-e', 'J=14', '-e', 'DEBUG=', '-e', 'SHOW_ENV=1', '-e', 'CCACHE_DIR=/var/tmp/ccache', '-v', '/home/patchew2/.cache/qemu-docker-ccache:/var/tmp/ccache:z', '-v', '/var/tmp/patchew-tester-tmp-cccrxg3c/src/docker-src.2020-08-15-13.09.03.12551:/var/tmp/qemu:z,ro', 'qemu/centos7', '/var/tmp/qemu/run', 'test-quick']' returned non-zero exit status 2. filter=--filter=label=com.qemu.instance.uuid=f1d81aa90662430dbfbbafedb6be792d make[1]: *** [docker-run] Error 1 make[1]: Leaving directory `/var/tmp/patchew-tester-tmp-cccrxg3c/src' make: *** [docker-run-test-quick@centos7] Error 2 real 3m9.661s user 0m8.272s The full log is available at http://patchew.org/logs/159744083536.39197.13827776633866601278.stgit@naples-babu.amd.com/testing.docker-quick@centos7/?type=message. --- Email generated automatically by Patchew [https://patchew.org/]. Please send your feedback to patchew-devel@redhat.com
© 2016 - 2024 Red Hat, Inc.