From patchwork Fri Sep 27 10:52:05 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Aneesh Kumar K.V" X-Patchwork-Id: 278541 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 6F2EC2C0387 for ; Fri, 27 Sep 2013 20:52:15 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750965Ab3I0KwO (ORCPT ); Fri, 27 Sep 2013 06:52:14 -0400 Received: from e28smtp03.in.ibm.com ([122.248.162.3]:47929 "EHLO e28smtp03.in.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750946Ab3I0KwO (ORCPT ); Fri, 27 Sep 2013 06:52:14 -0400 Received: from /spool/local by e28smtp03.in.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 27 Sep 2013 16:22:11 +0530 Received: from d28dlp02.in.ibm.com (9.184.220.127) by e28smtp03.in.ibm.com (192.168.1.133) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Fri, 27 Sep 2013 16:22:09 +0530 Received: from d28relay05.in.ibm.com (d28relay05.in.ibm.com [9.184.220.62]) by d28dlp02.in.ibm.com (Postfix) with ESMTP id CAAA1394004D for ; Fri, 27 Sep 2013 16:21:52 +0530 (IST) Received: from d28av04.in.ibm.com (d28av04.in.ibm.com [9.184.220.66]) by d28relay05.in.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id r8RAq6Te48693412 for ; Fri, 27 Sep 2013 16:22:06 +0530 Received: from d28av04.in.ibm.com (localhost [127.0.0.1]) by d28av04.in.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id r8RAq6sF021310 for ; Fri, 27 Sep 2013 16:22:07 +0530 Received: from skywalker.linux.vnet.ibm.com (skywalker.in.ibm.com [9.124.158.186] (may be forged)) by d28av04.in.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id r8RAq6wY021241 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Fri, 27 Sep 2013 16:22:06 +0530 From: "Aneesh Kumar K.V" To: agraf@suse.de, benh@kernel.crashing.org, paulus@samba.org Cc: linuxppc-dev@lists.ozlabs.org, kvm-ppc@vger.kernel.org Subject: Re: [RFC PATCH 00/11 Allow PR and HV KVM to coexist in one kernel In-Reply-To: <1380276233-17095-1-git-send-email-aneesh.kumar@linux.vnet.ibm.com> References: <1380276233-17095-1-git-send-email-aneesh.kumar@linux.vnet.ibm.com> User-Agent: Notmuch/0.16+84~gcbbf53e (http://notmuchmail.org) Emacs/24.2.1 (x86_64-pc-linux-gnu) Date: Fri, 27 Sep 2013 16:22:05 +0530 Message-ID: <878uyibkq2.fsf@linux.vnet.ibm.com> MIME-Version: 1.0 X-TM-AS-MML: No X-Content-Scanned: Fidelis XPS MAILER x-cbid: 13092710-3864-0000-0000-00000A454C2D Sender: kvm-ppc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm-ppc@vger.kernel.org "Aneesh Kumar K.V" writes: > Hi All, > > This patch series support enabling HV and PR KVM together in the same kernel. We > extend machine property with new property "kvm_type". A value of 1 will force HV > KVM and 2 PR KVM. The default value is 0 which will select the fastest KVM mode. > ie, HV if that is supported otherwise PR. > > With Qemu command line having > > -machine pseries,accel=kvm,kvm_type=1 > > [root@llmp24l02 qemu]# bash ../qemu > failed to initialize KVM: Invalid argument > [root@llmp24l02 qemu]# modprobe kvm-pr > [root@llmp24l02 qemu]# bash ../qemu > failed to initialize KVM: Invalid argument > [root@llmp24l02 qemu]# modprobe kvm-hv > [root@llmp24l02 qemu]# bash ../qemu > > now with > > -machine pseries,accel=kvm,kvm_type=2 > > [root@llmp24l02 qemu]# rmmod kvm-pr > [root@llmp24l02 qemu]# bash ../qemu > failed to initialize KVM: Invalid argument > [root@llmp24l02 qemu]# > [root@llmp24l02 qemu]# modprobe kvm-pr > [root@llmp24l02 qemu]# bash ../qemu > > if don't specify kvm_type machine property, it will take a default value 0, > which means fastest supported. Related qemu patch commit 8d139053177d48a70cb710b211ea4c2843eccdfb Author: Aneesh Kumar K.V Date: Mon Sep 23 12:28:37 2013 +0530 kvm: Add a new machine property kvm_type Targets like ppc64 support different type of KVM, one which use hypervisor mode and the other which doesn't. Add a new machine property kvm_type that helps in selecting the respective ones Signed-off-by: Aneesh Kumar K.V --- To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/kvm-all.c b/kvm-all.c index b87215c..a061eda 100644 --- a/kvm-all.c +++ b/kvm-all.c @@ -1350,7 +1350,7 @@ int kvm_init(void) KVMState *s; const KVMCapabilityInfo *missing_cap; int ret; - int i; + int i, kvm_type; int max_vcpus; s = g_malloc0(sizeof(KVMState)); @@ -1407,7 +1407,8 @@ int kvm_init(void) goto err; } - s->vmfd = kvm_ioctl(s, KVM_CREATE_VM, 0); + kvm_type = qemu_opt_get_number(qemu_get_machine_opts(), "kvm_type", 0); + s->vmfd = kvm_ioctl(s, KVM_CREATE_VM, kvm_type); if (s->vmfd < 0) { #ifdef TARGET_S390X fprintf(stderr, "Please add the 'switch_amode' kernel parameter to " diff --git a/vl.c b/vl.c index 4e709d5..4374b17 100644 --- a/vl.c +++ b/vl.c @@ -427,7 +427,12 @@ static QemuOptsList qemu_machine_opts = { .name = "usb", .type = QEMU_OPT_BOOL, .help = "Set on/off to enable/disable usb", + },{ + .name = "kvm_type", + .type = QEMU_OPT_NUMBER, + .help = "Set to kvm type to be used in create vm ioctl", }, + { /* End of list */ } }, };