qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH, v2] Rewrite mmap_find_vma() to work fine on 64-


From: andrzej zaborowski
Subject: Re: [Qemu-devel] [PATCH, v2] Rewrite mmap_find_vma() to work fine on 64-bit hosts with 32-bit targets
Date: Mon, 10 Nov 2008 13:55:38 +0100

2008/11/10 Jamie Lokier <address@hidden>:
> andrzej zaborowski wrote:
>> Hi,
>>
>> 2008/11/1 Kirill A. Shutemov <address@hidden>:
>> > On Sat, Nov 01, 2008 at 04:51:10PM +0000, Jamie Lokier wrote:
>> >> Kirill A. Shutemov wrote:
>> >> > +        /* Unmap and try again with new page */
>> >> > +        munmap(ptr, size);
>> >> >          addr += qemu_host_page_size;
>> >>
>> >> Won't this be rather slow if it has to skip a large mapped area, one
>> >> page at a time?
>> >
>> > If we skip more than one page we increase memory fragmentation.
>>
>> This approach makes sense, however the iterating over all pages may
>> indeed have performance consequences, plus it would be great if people
>> who better know linux-user/ than me commented.  I'll assume that
>> everyone is happy with this otherwise.
>
> Just briefly to mention that binary search using shorter
> probe-mappings can eliminate the page-by-page iteration in this case,
> but alas I don't have time in this email to explain how :-)

I was wondering the same, but I think binary search won't work:
whenever you make a step greater than page size you risk having missed
a free page closer to you.  In the end you need to check all of them.

The in-kernel allocator probably is in a better position to have a
smart algorithm.

Cheers




reply via email to

[Prev in Thread] Current Thread [Next in Thread]