Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754224AbbDMODk (ORCPT ); Mon, 13 Apr 2015 10:03:40 -0400 Received: from e06smtp17.uk.ibm.com ([195.75.94.113]:50486 "EHLO e06smtp17.uk.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754108AbbDMN5G (ORCPT ); Mon, 13 Apr 2015 09:57:06 -0400 From: Michael Mueller To: qemu-devel@nongnu.org, kvm@vger.kernel.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Eduardo Habkost , Gleb Natapov , Alexander Graf , Christian Borntraeger , "Jason J. Herne" , Cornelia Huck , Paolo Bonzini , Michael Mueller , Andreas Faerber , Richard Henderson , Daniel Hansel Subject: [PATCH v5 02/17] Add accelerator id and model name to CPUState Date: Mon, 13 Apr 2015 15:56:21 +0200 Message-Id: <1428933396-37887-3-git-send-email-mimu@linux.vnet.ibm.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1428933396-37887-1-git-send-email-mimu@linux.vnet.ibm.com> References: <1428933396-37887-1-git-send-email-mimu@linux.vnet.ibm.com> X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 15041313-0029-0000-0000-0000042AF8BF Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2434 Lines: 88 The patch defines ids per accelerator and adds the accel_id and the model_name to the CPUState. The accel_id is initialized by common code, the model name needs to be initialized by target specific code. Signed-off-by: Michael Mueller --- include/qom/cpu.h | 5 +++++ qapi-schema.json | 9 +++++++++ qom/cpu.c | 14 ++++++++++++++ 3 files changed, 28 insertions(+) diff --git a/include/qom/cpu.h b/include/qom/cpu.h index 9dafb48..4ffc050 100644 --- a/include/qom/cpu.h +++ b/include/qom/cpu.h @@ -236,6 +236,8 @@ struct kvm_run; * @mem_io_pc: Host Program Counter at which the memory was accessed. * @mem_io_vaddr: Target virtual address at which the memory was accessed. * @kvm_fd: vCPU file descriptor for KVM. + * @accel_id: accelerator id of this CPU. + * @model_name: model name of this CPU * * State of one CPU core or thread. */ @@ -313,6 +315,9 @@ struct CPUState { (absolute value) offset as small as possible. This reduces code size, especially for hosts without large memory offsets. */ volatile sig_atomic_t tcg_exit_req; + + AccelId accel_id; + char *model_name; }; QTAILQ_HEAD(CPUTailQ, CPUState); diff --git a/qapi-schema.json b/qapi-schema.json index ac9594d..540e520 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -2515,6 +2515,15 @@ ## { 'command': 'query-machines', 'returns': ['MachineInfo'] } +# @AccelId +# +# Defines accelerator ids +# +# Since: 2.4 +## +{ 'enum': 'AccelId', + 'data': ['qtest', 'tcg', 'kvm', 'xen'] } + ## # @CpuDefinitionInfo: # diff --git a/qom/cpu.c b/qom/cpu.c index 108bfa2..457afc7 100644 --- a/qom/cpu.c +++ b/qom/cpu.c @@ -67,6 +67,20 @@ CPUState *cpu_generic_init(const char *typename, const char *cpu_model) goto out; } + if (tcg_enabled()) { + cpu->accel_id = ACCEL_ID_TCG; + } else if (kvm_enabled()) { + cpu->accel_id = ACCEL_ID_KVM; + } +#ifdef CONFIG_XEN + else if (xen_enabled()) { + cpu->accel_id = ACCEL_ID_XEN; + } +#endif + else { + cpu->accel_id = ACCEL_ID_QTEST; + } + object_property_set_bool(OBJECT(cpu), true, "realized", &err); out: -- 1.8.3.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/