On Mon, Nov 30, 2015 at 08:17:05 +0000, Ren, Qiaowei wrote: > > > -----Original Message----- > > From: Jiri Denemark [mailto:jdenemar@xxxxxxxxxx] > > Sent: Tuesday, November 24, 2015 9:01 PM > > To: Ren, Qiaowei > > Cc: libvir-list@xxxxxxxxxx > > Subject: Re: [PATCH 6/8] qemu_driver: add support to perf event > > > > On Tue, Nov 17, 2015 at 16:00:46 +0800, Qiaowei Ren wrote: > > > This patch implement the internal driver API for perf event into qemu > > > driver. > > > > > > In addition, this patch extend virDomainListGetStats API to get the > > > statistics for perf event. To do so, we add a 'VIR_DOMAIN_STATS_PERF' > > > enum to causes reporting of all previously enabled perf events. > > > > > > Signed-off-by: Qiaowei Ren <qiaowei.ren@xxxxxxxxx> > > > --- > > > include/libvirt/libvirt-domain.h | 1 + > > > src/qemu/qemu_domain.h | 3 + > > > src/qemu/qemu_driver.c | 181 > > +++++++++++++++++++++++++++++++++++++++ > > > #define QEMU_SCHED_MIN_PERIOD 1000LL > > > #define QEMU_SCHED_MAX_PERIOD 1000000LL > > > #define QEMU_SCHED_MIN_QUOTA 1000LL > > > @@ -10244,6 +10247,106 @@ > > qemuDomainGetNumaParameters(virDomainPtr > > > dom, } > > > > > > static int > > > +qemuDomainSetPerfEvents(virDomainPtr dom, > > > + virTypedParameterPtr params, > > > + int nparams) > > > +{ > > > + size_t i; > > > + virDomainObjPtr vm = NULL; > > > + qemuDomainObjPrivatePtr priv; > > > + int ret = -1; > > > + bool enabled; > > > + > > > + if (virTypedParamsValidate(params, nparams, > > > + VIR_DOMAIN_PERF_CMT, > > > + VIR_TYPED_PARAM_BOOLEAN, > > > + NULL) < 0) > > > + return -1; > > > > Use virTypedParamsCheck and define the data for it in virperf.h so that you > > don't need to change the code here if new event type is added. > > > > Jirka, I checked the difference between virTypedParamsValidate and > virTypedParamsCheck, and found that virTypedParamsCheck just check > whether the param is valid through param name, but > virTypedParamsValidate will check whether the param type is right. Oh, sorry for the confusion then. I actually wanted the code to be something like if (virTypedParamsValidate(params, nparams, VIR_PERF_PARAMS) < 0) return -1; and VIR_PERF_PARAMS would be a macro defined in virparams.h: # define VIR_PERF_PARAMS \ VIR_DOMAIN_PERF_CMT, VIR_TYPED_PARAM_BOOLEAN, \ NULL Similar to QEMU_MIGRATION_PARAMETERS and few others. Jirka -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list