[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 2/9] alpha-linux-user: Work around hosted mmap a
From: |
Richard Henderson |
Subject: |
Re: [Qemu-devel] [PATCH 2/9] alpha-linux-user: Work around hosted mmap allocation problems |
Date: |
Tue, 12 Jun 2012 07:27:54 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20120430 Thunderbird/12.0.1 |
On 2012-06-12 07:12, Andreas Färber wrote:
> This looks fishy to me... why should the kernel use a bigger address
> space than hardware? For arm on x86_64 such a workaround was not
> necessary iirc.
I can tell you what I observe. That with a certain sequence of
allocations the x86_64 kernel will quit accepting an address "near"
(1<<38) as a hint for where to allocate memory and begin returning
an addresses near (1<<48). Further, the logic in find_mmap_vma tries
about 5 times (with different hints) to get a target-page-aligned
address at a lower address, all of which fail: the kernel continues
to return the (1<<48) address. At which point one wonders why we
should keep refusing the (1<<48) address when the target is in fact
64-bit capable.
I believe the host vs target page size difference plays a part in
this, which is why you wouldn't see this on arm.
All of the other targets with page size larger than 4k are 64 bit,
and set TARGET_VIRT_ADDR_SPACE_BITS to 64. So Alpha was unique in
being an 8k page size with T_B_A_S_B < 48, and so probably unique
in being able to tickle this problem.
r~
[Qemu-devel] [PATCH 3/9] alpha-linux-user: Handle TARGET_SSI_IEEE_RAISE_EXCEPTION properly, Richard Henderson, 2012/06/07
[Qemu-devel] [PATCH 6/9] linux-user: Translate pipe2 flags; add to strace, Richard Henderson, 2012/06/07
[Qemu-devel] [PATCH 5/9] linux-user: Allocate the right amount of space for non-fixed file maps, Richard Henderson, 2012/06/07
[Qemu-devel] [PATCH 4/9] linux-user: Handle O_SYNC, O_NOATIME, O_CLOEXEC, O_PATH, Richard Henderson, 2012/06/07