From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?ISO-8859-15?Q?Andreas_F=E4rber?= Subject: Re: [Qemu-devel] [PATCH for-1.4 00/12] target-i386: Fix APIC-ID-based topology (v4) Date: Mon, 21 Jan 2013 13:31:26 +0100 Message-ID: <50FD351E.7010602@suse.de> References: <1358456378-29248-1-git-send-email-ehabkost@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: QUOTED-PRINTABLE Cc: qemu-devel@nongnu.org, Anthony Liguori , Igor Mammedov , "kvm@vger.kernel.org list" , Gleb Natapov , Marcelo Tosatti , "Michael S. Tsirkin" To: Eduardo Habkost Return-path: Received: from cantor2.suse.de ([195.135.220.15]:52468 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752573Ab3AUMbb (ORCPT ); Mon, 21 Jan 2013 07:31:31 -0500 In-Reply-To: <1358456378-29248-1-git-send-email-ehabkost@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: Am 17.01.2013 21:59, schrieb Eduardo Habkost: > I am hoping to get this bug fixed in 1.4. I didn't get much feedback = on the RFC > I sent last week, though. >=20 > Igor argued that APIC ID should be set by the board and not by the CP= U itself, > but I am not doing that because: > - I want to keep the bug fix simple and isolated as we are past soft= freeze > - I believe the creator of the CPU object shouldn't be forced to pro= vide the > APIC ID, so the APIC ID is not unnecessarily exposed on the CPU ho= tplug > device_add interface in the future > - The APIC ID _is_ set by the CPU itself (because each CPU package m= ay have > multiple core/threads, and each core/thread has a different APIC I= D). What > needs to be provided by the board to the CPU package in the future= is the > package ID and the bit width of the core/thread IDs. >=20 > Git tree for reference: > git://github.com/ehabkost/qemu-hacks.git apicid-topology.v5 > https://github.com/ehabkost/qemu-hacks/tree/apicid-topology.v5 >=20 > Eduardo Habkost (12): > kvm: Add fake KVM_FEATURE_CLOCKSOURCE_STABLE_BIT for builds withou > KVM > target-i386: Don't set any KVM flag by default if KVM is disabled > pc: Reverse pc_init_pci() compatibility logic Applied these to qom-cpu (for 1.4, with some typo fixes): https://github.com/afaerber/qemu-cpu/commits/qom-cpu =46or the rest there's either open questions or still ongoing review. Andreas > kvm: Create kvm_arch_vcpu_id() function > target-i386: kvm: Set vcpu_id to APIC ID instead of CPU index > fw_cfg: Remove FW_CFG_MAX_CPUS from fw_cfg_init() > target-i386/cpu: Introduce apic_id_for_cpu() function > cpus.h: Make constant smp_cores/smp_threads available on *-user > pc: Set fw_cfg data based on APIC ID calculation > tests: Support target-specific unit tests > target-i386: Topology & APIC ID utility functions > pc: Generate APIC IDs according to CPU topology >=20 > hw/fw_cfg.c | 1 - > hw/pc.c | 44 +++++++++++++--- > hw/pc_piix.c | 26 +++++++--- > hw/ppc_newworld.c | 1 + > hw/ppc_oldworld.c | 1 + > hw/sun4m.c | 3 ++ > hw/sun4u.c | 1 + > include/sysemu/cpus.h | 7 +++ > include/sysemu/kvm.h | 4 ++ > kvm-all.c | 2 +- > target-i386/cpu.c | 52 +++++++++++++++---- > target-i386/cpu.h | 5 +- > target-i386/kvm.c | 6 +++ > target-i386/topology.h | 133 +++++++++++++++++++++++++++++++++++++++= ++++++++++ > target-ppc/kvm.c | 5 ++ > target-s390x/kvm.c | 5 ++ > tests/.gitignore | 1 + > tests/Makefile | 21 +++++++- > tests/test-x86-cpuid.c | 101 +++++++++++++++++++++++++++++++++++++ > 19 files changed, 391 insertions(+), 28 deletions(-) > create mode 100644 target-i386/topology.h > create mode 100644 tests/test-x86-cpuid.c >=20 --=20 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N=FCrnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imend=F6rffer; HRB 16746 AG N=FCrn= berg