[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] How to get the checkpoint size in remus code?

Hi Guys,

I see too that I can get stats using struct xen_domctl.

Then could I put the code below anywhere and get the dirty_count? For example:

    uint32_t dirty_count = domctl.u.shadow_op.stats.dirty_count;

Can I do this?

Or are there a permanent data that return dirty_count or checkpoint_size? If yes, what's it?


2012/10/17 José Eduardo França <jefranca@xxxxxxxxx>
Hi Shriram,

Thank you for your reply. I'm sorry coz I saw your email yesterday and my English is bad.
Ok... I saw your patch but I need to explain more my problem.

In my master research, I intend to deploy a based-time dynamic checkpoint that should work this way: if checkpoint size breaks Lmax (see attached figure) I reduce checkpoint interval, and if checkpoint size doesn't break Lmin I increase checkpoint interval. After that I will evaluate the performace.

I had read remus code and I saw that remus control the elapsed time in

            endtime = time.time()
            elapsed = (endtime - closure.starttime) * 1000

            if elapsed < cfg.interval:
                time.sleep((cfg.interval - elapsed) / 1000.0)

Then I thought I could change the checkpoint interval close to code above, but I suppose I need get checkpoint size. But here the remus code is python and I saw (or thought) that checkpoint size is gotten on xc_shadow_op_stats_t *stats or better on stats->dirty_count*PAGE_SIZE.

Would I get checkpoint size into remus code? I thought it's easier this way for I intend to do.
Please, help me, coz my time is running out.

Thanks jefranca

PS: My English is terrible coz I'm not native

2012/10/5 Shriram Rajagopalan <rshriram@xxxxxxxxx>
On Wed, Oct 3, 2012 at 4:11 AM, José Eduardo França <jefranca@xxxxxxxxx> wrote:
> I thought remus used xc_domain_save. Is this function used from live
> migration?
> Futhermore I have two doubts if really Remus takes the last iteration of
> live migration
> What's the function?

There is no specific function. xc_domain_save is where everything
happens. The infinite loop
that basically keeps sending checkpoints @ a particular frequency

> And how to get de I/O disk size on each period?

This depends on the disk backend. With blktap2 (unfortunately not
available in 3.* kernels)
tap-remus driver can give you the number of disk blocks sent per checkpoint.

With DRBD, it needs a little bit of hacking into the kernel module to
return the number of disk blocks
being sent with each checkpoint.

>> I'm doing my master research and I need to adapt remus code. Now... I
>> wanna get the checkpoint size (memory + disk) on each period. Does someone
>> know what function does this? I think some fd object's function in remus
>> code could just get the memory size.

You can get memory checkpoint stats for each iteration - like
number of pages dirtied, size of data actually transmitted after
compression (including headers, etc),
time to checkpoint, etc.

The attached patch (for xen-4.1.2) will give you the memory checkpoint
stats for each checkpoint and
can be easily parsed.


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.