On 11/30/2010 04:46 PM, Juan Quintela wrote:
Anthony Liguori<anth...@codemonkey.ws> wrote:
> On 11/23/2010 05:03 PM, Juan Quintela wrote:
>> From: Juan Quintela<quint...@trasno.org>
>>
>> Calculate the number of dirty pages takes a lot on hosts with lots
>> of memory. Just maintain how many pages are dirty. Only sync bitmaps
>> if number is small enough.
>>
>
> There needs to be numbers that justify this as part of the commit message.
They are on patch 0/6.
Additionally, with 64GB of RAM, this bitmap is HUGE, having to walk over
it in each ram_save_live() call is too onerous.
It's not so huge. It's scaled down by a factor of 8 * 4096 = 32K. So
it's a 2MB bitmap. If kept as a bitmap and accessed in longs, it can be
read in less than a millisecond.
An optimization can be to look at the previous ram_save_live (which had
to walk the bitmap). If old_nr_dirty > 4*target_nr_dirty, assume we
need one more pass and don't scan the bitmap.
Another optimization is to stop the count when we reach the target;
instead of ram_save_remaining() have a ram_save_may_stop() which counts
the number of dirty bits until it reaches target_nr_dirty or exhausts
the bitmap.
--
error compiling committee.c: too many arguments to function