[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