From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39660) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XCml6-0000Ju-6t for qemu-devel@nongnu.org; Thu, 31 Jul 2014 05:34:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XCmkr-0003bH-7y for qemu-devel@nongnu.org; Thu, 31 Jul 2014 05:34:48 -0400 Received: from e23smtp09.au.ibm.com ([202.81.31.142]:44047) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XCmkq-0003aD-K1 for qemu-devel@nongnu.org; Thu, 31 Jul 2014 05:34:33 -0400 Received: from /spool/local by e23smtp09.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 31 Jul 2014 19:34:07 +1000 From: Alexey Kardashevskiy Date: Thu, 31 Jul 2014 19:34:11 +1000 Message-Id: <1406799254-25223-8-git-send-email-aik@ozlabs.ru> In-Reply-To: <1406799254-25223-1-git-send-email-aik@ozlabs.ru> References: <1406799254-25223-1-git-send-email-aik@ozlabs.ru> Subject: [Qemu-devel] [RFC PATCH 07/10] spapr: Add "ddw" machine option List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Alexey Kardashevskiy , Alex Williamson , qemu-ppc@nongnu.org, Alexander Graf This adds a new "ddw" option for a machine to control presense of the Dynamic DMA window (DDW) feature. This option will be used by pseries to decide whether to put DDW RTAS tokens to PHB device tree nodes or not. This is not a PHB property because there is no way to change the emulated PHB properties at start time. Also there is no point in enabling DDW only for some PHB's because for emulated PHBs it would not add any noticible overhead and for VFIO the very first DDW-capable PHB will pin the entire guest memory and others won't change it anyhow. Signed-off-by: Alexey Kardashevskiy --- hw/ppc/spapr.c | 15 +++++++++++++++ vl.c | 4 ++++ 2 files changed, 19 insertions(+) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 364a1e1..192e398 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -101,6 +101,7 @@ struct sPAPRMachineState { /*< public >*/ char *kvm_type; + bool ddw_supported; }; sPAPREnvironment *spapr; @@ -1633,10 +1634,24 @@ static void spapr_set_kvm_type(Object *obj, const char *value, Error **errp) sm->kvm_type = g_strdup(value); } +static bool spapr_machine_get_ddw(Object *obj, Error **errp) +{ + sPAPRMachineState *sms = SPAPR_MACHINE(obj); + return sms->ddw_supported; +} + +static void spapr_machine_set_ddw(Object *obj, bool value, Error **errp) +{ + sPAPRMachineState *sms = SPAPR_MACHINE(obj); + sms->ddw_supported = value; +} + static void spapr_machine_initfn(Object *obj) { object_property_add_str(obj, "kvm-type", spapr_get_kvm_type, spapr_set_kvm_type, NULL); + object_property_add_bool(obj, "ddw", spapr_machine_get_ddw, + spapr_machine_set_ddw, NULL); } static void spapr_machine_class_init(ObjectClass *oc, void *data) diff --git a/vl.c b/vl.c index fe451aa..e53eaeb 100644 --- a/vl.c +++ b/vl.c @@ -383,6 +383,10 @@ static QemuOptsList qemu_machine_opts = { .name = "kvm-type", .type = QEMU_OPT_STRING, .help = "Specifies the KVM virtualization mode (HV, PR)", + }, { + .name = "ddw", + .type = QEMU_OPT_BOOL, + .help = "Enable Dynamic DMA windows support (pseries only)", },{ .name = PC_MACHINE_MAX_RAM_BELOW_4G, .type = QEMU_OPT_SIZE, -- 2.0.0