From: Andrea Arcangeli <aarcange@redhat.com>
To: Avi Kivity <avi@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH QEMU] transparent hugepage support
Date: Thu, 11 Mar 2010 17:05:05 +0100 [thread overview]
Message-ID: <20100311160505.GG5677@random.random> (raw)
In-Reply-To: <4B9911B0.5000302@redhat.com>
On Thu, Mar 11, 2010 at 05:52:16PM +0200, Avi Kivity wrote:
> That is a little wasteful. How about a hint to mmap() requesting proper
> alignment (MAP_HPAGE_ALIGN)?
So you suggest adding a new kernel feature to mmap? Not sure if it's
worth it, considering it'd also increase the number of vmas because it
will have to leave an hole. Wasting 2M-4k of virtual memory is likely
cheaper than having 1 more vma in the rbtree for every page fault. So
I think it's better to just malloc and adjust ourselfs on the next
offset which is done in userland by qemu_memalign I think.
What we could ask the kernel is the HPAGE_SIZE. Also thinking a bit
more about it, it now comes to mind what we really care about is the
HOST_HPAGE_SIZE. Said that I doubt for kvm it makes a lot of
difference and this only changes the kvm path. I'm open to suggestions
of where to get the HPAGE_SIZE from and how to call it...
> Failing that, modify qemu_memalign() to trim excess memory.
>
> Come to think of it, posix_memalign() needs to do that (but doesn't).
It's hard to tell because of the amount of #ifdefs in .c files, but it
seems to be using posix_memalign.
If we don't touch these additional pages allocated and there's no
transparent hugepage support in the kernel, you won't waste any more
memory and less vmas will be generated this way than with a kernel
option to reduce the virtual memory waste. Basically the idea is to
waste virtual memory to avoid wasting cpu.
In short we should make sure it only wastes virtual memory...
next prev parent reply other threads:[~2010-03-11 16:05 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-11 15:14 [Qemu-devel] [PATCH QEMU] transparent hugepage support Andrea Arcangeli
2010-03-11 15:52 ` Avi Kivity
2010-03-11 16:05 ` Andrea Arcangeli [this message]
2010-03-13 8:28 ` Avi Kivity
2010-03-13 17:47 ` Andrea Arcangeli
2010-03-11 16:28 ` Paul Brook
2010-03-11 16:46 ` Andrea Arcangeli
2010-03-11 17:55 ` Paul Brook
2010-03-11 18:49 ` Andrea Arcangeli
2010-03-12 11:36 ` Paul Brook
2010-03-12 14:52 ` Andrea Arcangeli
2010-03-12 16:04 ` Paul Brook
2010-03-12 16:17 ` Andrea Arcangeli
2010-03-12 16:24 ` Paul Brook
2010-03-12 16:57 ` Andrea Arcangeli
2010-03-12 17:10 ` Paul Brook
2010-03-12 17:41 ` Andrea Arcangeli
2010-03-12 18:17 ` Paul Brook
2010-03-12 18:36 ` Andrea Arcangeli
2010-03-12 18:41 ` Paul Brook
2010-03-12 18:51 ` Andrea Arcangeli
2010-03-12 22:40 ` Jamie Lokier
2010-03-12 16:10 ` Paul Brook
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100311160505.GG5677@random.random \
--to=aarcange@redhat.com \
--cc=avi@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).