[Libvirt-cim] [PATCH] Complete the support for dumpCore
John Ferlan
jferlan at redhat.com
Wed Jun 11 18:53:40 UTC 2014
On 05/26/2014 05:00 AM, Xu Wang wrote:
> Add API support for dumpCore field of Memory devices.
>
> Signed-off-by: Xu Wang <gesaint at linux.vnet.ibm.com>
> ---
> libxkutil/device_parsing.c | 1 +
> schema/ResourceAllocationSettingData.mof | 3 +++
> src/Virt_RASD.c | 8 ++++++++
> src/Virt_VirtualSystemManagementService.c | 11 +++++++++++
> 4 files changed, 23 insertions(+), 0 deletions(-)
>
Seems reasonable - should I merge in the other patch as well?
John
> diff --git a/libxkutil/device_parsing.c b/libxkutil/device_parsing.c
> index f863cc5..d654a6a 100644
> --- a/libxkutil/device_parsing.c
> +++ b/libxkutil/device_parsing.c
> @@ -1438,6 +1438,7 @@ struct virt_device *virt_device_dup(struct virt_device *_dev)
> } else if (dev->type == CIM_RES_TYPE_MEM) {
> dev->dev.mem.size = _dev->dev.mem.size;
> dev->dev.mem.maxsize = _dev->dev.mem.maxsize;
> + dev->dev.mem.dumpCore = _dev->dev.mem.dumpCore;
> } else if (dev->type == CIM_RES_TYPE_PROC) {
> dev->dev.vcpu.quantity = _dev->dev.vcpu.quantity;
> } else if (dev->type == CIM_RES_TYPE_EMU) {
> diff --git a/schema/ResourceAllocationSettingData.mof b/schema/ResourceAllocationSettingData.mof
> index 9c387f0..11a444f 100644
> --- a/schema/ResourceAllocationSettingData.mof
> +++ b/schema/ResourceAllocationSettingData.mof
> @@ -229,6 +229,9 @@ class Xen_MemResourceAllocationSettingData : Xen_ResourceAllocationSettingData
> ]
> class KVM_MemResourceAllocationSettingData : KVM_ResourceAllocationSettingData
> {
> + [Description ("dumpCore could be set as 'on' or 'off'. "
> + "it also could be leave null.")]
> + boolean dumpCore;
> };
>
> [Description ("LXC virtual memory"),
> diff --git a/src/Virt_RASD.c b/src/Virt_RASD.c
> index 3c62c2d..691fff9 100644
> --- a/src/Virt_RASD.c
> +++ b/src/Virt_RASD.c
> @@ -1044,6 +1044,14 @@ CMPIInstance *rasd_from_vdev(const CMPIBroker *broker,
> (CMPIValue *)&dev->dev.mem.size, CMPI_uint64);
> CMSetProperty(inst, "Limit",
> (CMPIValue *)&dev->dev.mem.maxsize, CMPI_uint64);
> +
> + if (dev->dev.mem.dumpCore != MEM_DUMP_CORE_NOT_SET) {
> + bool dumpCore = true;
> + if (dev->dev.mem.dumpCore == MEM_DUMP_CORE_OFF)
> + dumpCore = false;
> + CMSetProperty(inst, "dumpCore",
> + (CMPIValue *)&dumpCore, CMPI_boolean);
> + }
> } else if (dev->type == CIM_RES_TYPE_PROC) {
> set_proc_rasd_params(broker, ref, dev, host, inst);
> } else if (dev->type == CIM_RES_TYPE_GRAPHICS) {
> diff --git a/src/Virt_VirtualSystemManagementService.c b/src/Virt_VirtualSystemManagementService.c
> index f673c38..f228a73 100644
> --- a/src/Virt_VirtualSystemManagementService.c
> +++ b/src/Virt_VirtualSystemManagementService.c
> @@ -1236,6 +1236,17 @@ static const char *mem_rasd_to_vdev(CMPIInstance *inst,
> const char *units;
> CMPIrc ret;
> int shift;
> + bool dumpCore;
> +
> + ret = cu_get_bool_prop(inst, "dumpCore", &dumpCore);
> + if (ret != CMPI_RC_OK) {
> + dev->dev.mem.dumpCore = MEM_DUMP_CORE_NOT_SET;
> + } else {
> + if (dumpCore)
> + dev->dev.mem.dumpCore = MEM_DUMP_CORE_ON;
> + else
> + dev->dev.mem.dumpCore = MEM_DUMP_CORE_OFF;
> + }
>
> ret = cu_get_u64_prop(inst, "VirtualQuantity", &dev->dev.mem.size);
> if (ret != CMPI_RC_OK)
>
More information about the Libvirt-cim
mailing list