[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [RFC PATCH 07/10] spapr: Add "ddw" machine option
From: |
Alexey Kardashevskiy |
Subject: |
[Qemu-ppc] [RFC PATCH 07/10] spapr: Add "ddw" machine option |
Date: |
Thu, 31 Jul 2014 19:34:11 +1000 |
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 <address@hidden>
---
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
- [Qemu-ppc] [RFC PATCH 00/10] spapr: vfio: Enable Dynamic DMA windows (DDW), Alexey Kardashevskiy, 2014/07/31
- [Qemu-ppc] [RFC PATCH 05/10] linux headers update for DDW, Alexey Kardashevskiy, 2014/07/31
- [Qemu-ppc] [RFC PATCH 06/10] spapr_rtas: Add Dynamic DMA windows (DDW) RTAS calls support, Alexey Kardashevskiy, 2014/07/31
- [Qemu-ppc] [RFC PATCH 03/10] spapr_pci: Make find_phb()/find_dev() public, Alexey Kardashevskiy, 2014/07/31
- [Qemu-ppc] [RFC PATCH 07/10] spapr: Add "ddw" machine option,
Alexey Kardashevskiy <=
- [Qemu-ppc] [RFC PATCH 01/10] qom: Make object_child_foreach safe for objects removal, Alexey Kardashevskiy, 2014/07/31
- [Qemu-ppc] [RFC PATCH 08/10] spapr_pci: Enable DDW, Alexey Kardashevskiy, 2014/07/31
- [Qemu-ppc] [RFC PATCH 02/10] spapr_iommu: Disable in-kernel IOMMU tables for >4GB windows, Alexey Kardashevskiy, 2014/07/31
- [Qemu-ppc] [RFC PATCH 09/10] spapr_pci_vfio: Enable DDW, Alexey Kardashevskiy, 2014/07/31
- [Qemu-ppc] [RFC PATCH 10/10] vfio: Enable DDW ioctls to VFIO IOMMU driver, Alexey Kardashevskiy, 2014/07/31
- [Qemu-ppc] [RFC PATCH 04/10] spapr_iommu: Make spapr_tce_find_by_liobn() public, Alexey Kardashevskiy, 2014/07/31