On Thu, Jan 31, 2013 at 4:42 PM, Gleb Natapov <g...@redhat.com> wrote:
> On Thu, Jan 31, 2013 at 04:36:25PM +0200, Avi Kivity wrote:
>> On Thu, Jan 31, 2013 at 4:30 PM, Gleb Natapov <g...@redhat.com> wrote:
>> >> >
>> >> > Avi/Michael do you remember why mincore can't be used to check if a 
>> >> > guest
>> >> page is unmapped?
>> >>
>> >> A page may be not in core, but also nonzero (for example swap).
>> > Yes, mincore() should not be used as zero page check, but it can be used
>> > as an indicator that page can be dealt with in dead stage of migration
>> > since it is likely zero and will not take much time to send.
>>
>> Or it's swapped, in which case we know nothing about it.
>>
>> > It is
> Of course, that is why I said "likely' :)
>
>> > possible to call madvise(MADV_WILLNEED) on them meanwhile to pre-load
>> > swap without faulting on each page individually.
>>
>> During migration you're faulting like mad anyway.
> That's guest faulting on dirty bit logging, as far as I understand Orit
> says that in addition to that she sees a lot of faults generated by
> migration reading unmapped guest memory. She wants to eliminate at least
> those.

For that, we once talked about extending mincore() to return info
whether a page is known zero (anonymous memory without a backing page,
or backing page == zero page).  But I doubt it's worth it, yes we're
faulting a lot, but it's still a lot cheaper than actually sending a
page, so we're still ahead of a non-idle guest.

Reply via email to