[libvirt] [PATCH] test_driver: implement virDomainMemoryStats

Erik Skultety eskultet at redhat.com
Tue Jul 30 14:57:01 UTC 2019


On Fri, Jul 26, 2019 at 03:47:55PM +0200, Ilias Stamatis wrote:
> On Wed, Jul 24, 2019 at 4:19 PM Erik Skultety <eskultet at redhat.com> wrote:
> >
> > On Tue, Jul 16, 2019 at 11:36:31PM +0200, Ilias Stamatis wrote:
> > > Signed-off-by: Ilias Stamatis <stamatis.iliass at gmail.com>
> > > ---
> > >  src/test/test_driver.c | 52 ++++++++++++++++++++++++++++++++++++++++++
> > >  1 file changed, 52 insertions(+)
> > >
> > > diff --git a/src/test/test_driver.c b/src/test/test_driver.c
> > > index fcb80c9e47..55976eedf1 100644
> > > --- a/src/test/test_driver.c
> > > +++ b/src/test/test_driver.c
> > > @@ -6845,6 +6845,57 @@ testDomainManagedSaveRemove(virDomainPtr dom, unsigned int flags)
> > >      return 0;
> > >  }
> > >
> > > +
> > > +static int
> > > +testDomainMemoryStats(virDomainPtr dom,
> > > +                      virDomainMemoryStatPtr stats,
> > > +                      unsigned int nr_stats,
> > > +                      unsigned int flags)
> > > +{
> > > +    virDomainObjPtr vm;
> > > +    int ret = -1;
> > > +
> > > +    virCheckFlags(0, -1);
> > > +
> > > +    if (!(vm = testDomObjFromDomain(dom)))
> > > +        return -1;
> > > +
> > > +    if (virDomainObjCheckActive(vm) < 0)
> > > +        goto cleanup;
> > > +
> > > +    ret = 0;
> > > +
> > > +#define STATS_SET_PARAM(name, value) \
> > > +    if (ret < nr_stats) { \
> > > +        stats[ret].tag = name; \
> > > +        stats[ret].val = value; \
> > > +        ret++; \
> > > +    }
> > > +
> > > +    if (virDomainDefHasMemballoon(vm->def)) {
> > > +        STATS_SET_PARAM(VIR_DOMAIN_MEMORY_STAT_ACTUAL_BALLOON, 1024000);
> >
> > ^This one...
> >
> > > +        STATS_SET_PARAM(VIR_DOMAIN_MEMORY_STAT_SWAP_IN, 0);
> > > +        STATS_SET_PARAM(VIR_DOMAIN_MEMORY_STAT_SWAP_OUT, 0);
> > > +        STATS_SET_PARAM(VIR_DOMAIN_MEMORY_STAT_MAJOR_FAULT, 0);
> > > +        STATS_SET_PARAM(VIR_DOMAIN_MEMORY_STAT_MINOR_FAULT, 0);
> > > +        STATS_SET_PARAM(VIR_DOMAIN_MEMORY_STAT_UNUSED, 791584);
> > > +        STATS_SET_PARAM(VIR_DOMAIN_MEMORY_STAT_AVAILABLE, 977816);
> >
> > ...and this one should be taken from the definition from what is reported in
> > <currentMemory>. The reasoning behind that is that you can have multiple
> > machines defined and those values wouldn't make sense.
>
> Right, I'll fix that.
>
> > The rest can be semi-random in that the values need to be less than those I
> > mentioned.
>
> My concern here again is that we will have to send different values
> every time depending on the config. E.g. currentMemory - 45000.
>
> But is that good for testing?

Yes, because it's deterministic, it's based on the config value, if you don't
change the config in your test environment, the return values will always be
the same and will keep it stable.

Erik




More information about the libvir-list mailing list