[Top][All Lists]
[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: |
Kirill A. Shutemov |
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 16:38:10 +0200 |
User-agent: |
Mutt/1.5.18 (2008-05-29) |
On Mon, Nov 10, 2008 at 01:55:38PM +0100, andrzej zaborowski wrote:
> 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.
To have smarter algorithm we must know about every mapping in self address
space. But it's impossible without /proc/self/maps. Unfortunately it isn't
always available.
--
Regards, Kirill A. Shutemov
+ Belarus, Minsk
+ ALT Linux Team, http://www.altlinux.com/
signature.asc
Description: Digital signature
- Re: [Qemu-devel] [PATCH, v2] Rewrite mmap_find_vma() to work fine on 64-bit hosts with 32-bit targets, Jamie Lokier, 2008/11/01
- Re: [Qemu-devel] [PATCH, v2] Rewrite mmap_find_vma() to work fine on 64-bit hosts with 32-bit targets, Kirill A. Shutemov, 2008/11/01
- Re: [Qemu-devel] [PATCH, v2] Rewrite mmap_find_vma() to work fine on 64-bit hosts with 32-bit targets, andrzej zaborowski, 2008/11/09
- Re: [Qemu-devel] [PATCH, v2] Rewrite mmap_find_vma() to work fine on 64-bit hosts with 32-bit targets, Kirill A. Shutemov, 2008/11/10
- Re: [Qemu-devel] [PATCH, v2] Rewrite mmap_find_vma() to work fine on 64-bit hosts with 32-bit targets, Jamie Lokier, 2008/11/10
- Re: [Qemu-devel] [PATCH, v2] Rewrite mmap_find_vma() to work fine on 64-bit hosts with 32-bit targets, andrzej zaborowski, 2008/11/10
- Re: [Qemu-devel] [PATCH, v2] Rewrite mmap_find_vma() to work fine on 64-bit hosts with 32-bit targets,
Kirill A. Shutemov <=
- Re: [Qemu-devel] [PATCH, v2] Rewrite mmap_find_vma() to work fine on 64-bit hosts with 32-bit targets, Jamie Lokier, 2008/11/10
- Re: [Qemu-devel] [PATCH, v2] Rewrite mmap_find_vma() to work fine on 64-bit hosts with 32-bit targets, Kirill A. Shutemov, 2008/11/14
- Re: [Qemu-devel] [PATCH, v2] Rewrite mmap_find_vma() to work fine on 64-bit hosts with 32-bit targets, Paul Brook, 2008/11/14
- Re: [Qemu-devel] [PATCH, v2] Rewrite mmap_find_vma() to work fine on 64-bit hosts with 32-bit targets, Jamie Lokier, 2008/11/14
- Re: [Qemu-devel] [PATCH, v2] Rewrite mmap_find_vma() to work fine on 64-bit hosts with 32-bit targets, Kirill A. Shutemov, 2008/11/14