From: Luke Shumaker <lukeshu@lukeshu.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: Luke Shumaker <lukeshu@lukeshu.com>,
Luke Shumaker <lukeshu@parabola.nu>,
Riku Voipio <riku.voipio@iki.fi>,
Laurent Vivier <laurent@vivier.eu>,
QEMU Developers <qemu-devel@nongnu.org>,
Paul Brook <paul@codesourcery.com>
Subject: Re: [Qemu-devel] [PATCH 10/10] linux-user: init_guest_space: Try to make ARM space+commpage continuous
Date: Tue, 20 Mar 2018 14:49:01 -0400 [thread overview]
Message-ID: <87tvtawpk2.wl-lukeshu@lukeshu.com> (raw)
In-Reply-To: <CAFEAcA9joyBcXSOqDu=hWRUZPKA1wEKMpYhRr5+p0YCKQOs5Kw@mail.gmail.com>
On Fri, 02 Mar 2018 09:13:12 -0500,
Peter Maydell wrote:
> On 28 December 2017 at 18:08, Luke Shumaker <lukeshu@lukeshu.com> wrote:
> > + guest_full_size =
> > + (0xffff0f00 & qemu_host_page_mask) + qemu_host_page_size;
^
> I think this is probably more clearly written as 0x100000000ULL,
> since rounding down to the host-page-size then adding the host-page-size
> gets us the full 32-bit size of the guest address space.
Wait, is that right? Isn't that only true if qemu_host_page_size is
at least 8KiB (16 bits), enough to fill the zero in the middle? Won't
a typical qemu_host_page_size be only 4KiB?
> That shows up that there's a potential problem here if the host
> is 32-bit, because in that case guest_full_size (being only unsigned
> long) will be 0, and we'll end up trying an mmap with an incorrect size.
>
> > + host_full_size = guest_full_size - guest_start;
> > + real_start = (unsigned long)
> > + mmap(NULL, host_full_size, PROT_NONE, flags, -1, 0);
>
> I think the general approach is right, though. Sorry it took so long
> for us to get to reviewing this patchset.
It's all good. I'm amazed at the amount of traffic qemu-devel gets!
> Incidentally, this code would be rather less complicated if it didn't
> have to account for qemu_host_page_size not actually being the host
> page size (since then you couldn't get a return from mmap() that wasn't
> aligned properly). Does anybody know why we allow the user to specify
> it on the command line? (git revision history doesn't help, it just says
> there's been a -pagesize argument since commit 54936004fddc5 in 2003,
> right back when mmap emulation was first added...)
I have no idea, I just assumed that it was a feature useful to people
far smarter than me.
--
Happy hacking,
~ Luke Shumaker
next prev parent reply other threads:[~2018-03-20 18:49 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-28 18:08 [Qemu-devel] [PATCH 00/10] linux-user: Speed up guest space initialization on 32-bit ARM target Luke Shumaker
2017-12-28 18:08 ` [Qemu-devel] [PATCH 01/10] linux-user: Use #if to only call validate_guest_space for " Luke Shumaker
2018-02-23 18:35 ` Peter Maydell
2018-02-23 18:48 ` Peter Maydell
2018-03-02 13:18 ` Peter Maydell
2018-03-09 20:20 ` Laurent Vivier
2017-12-28 18:08 ` [Qemu-devel] [PATCH 02/10] linux-user: Rename validate_guest_space => init_guest_commpage Luke Shumaker
2018-03-02 13:18 ` Peter Maydell
2018-03-09 20:24 ` Laurent Vivier
2017-12-28 18:08 ` [Qemu-devel] [PATCH 03/10] linux-user: init_guest_space: Clean up if we can't initialize the commpage Luke Shumaker
2018-02-23 18:38 ` Peter Maydell
2018-03-09 20:25 ` Laurent Vivier
2017-12-28 18:08 ` [Qemu-devel] [PATCH 04/10] linux-user: init_guest_space: Correctly handle guest_start in commpage initialization Luke Shumaker
2018-03-02 13:19 ` Peter Maydell
2018-03-09 20:26 ` Laurent Vivier
2017-12-28 18:08 ` [Qemu-devel] [PATCH 05/10] linux-user: init_guest_space: Clarify page alignment logic Luke Shumaker
2018-03-02 13:19 ` Peter Maydell
2018-03-09 20:28 ` Laurent Vivier
2017-12-28 18:08 ` [Qemu-devel] [PATCH 06/10] linux-user: init_guest_commpage: Add a comment about size check Luke Shumaker
2018-03-02 13:20 ` Peter Maydell
2018-03-09 20:30 ` Laurent Vivier
2017-12-28 18:08 ` [Qemu-devel] [PATCH 07/10] linux-user: init_guest_space: Clean up control flow a bit Luke Shumaker
2018-03-02 13:20 ` Peter Maydell
2018-03-09 20:37 ` Laurent Vivier
2018-03-13 13:30 ` Laurent Vivier
2018-03-13 13:54 ` Peter Maydell
2018-03-13 14:00 ` Laurent Vivier
2017-12-28 18:08 ` [Qemu-devel] [PATCH 08/10] linux-user: init_guest_space: Don't try to align if we'll reject it Luke Shumaker
2018-03-02 13:20 ` Peter Maydell
2018-03-13 14:02 ` Laurent Vivier
2017-12-28 18:08 ` [Qemu-devel] [PATCH 09/10] linux-user: init_guest_space: Add a comment about search strategy Luke Shumaker
2018-03-02 13:20 ` Peter Maydell
2018-03-13 14:04 ` Laurent Vivier
2017-12-28 18:08 ` [Qemu-devel] [PATCH 10/10] linux-user: init_guest_space: Try to make ARM space+commpage continuous Luke Shumaker
2018-03-02 14:13 ` Peter Maydell
2018-03-03 14:09 ` Richard Henderson
2018-03-20 15:23 ` Laurent Vivier
2018-03-20 15:53 ` Peter Maydell
2018-03-20 18:49 ` Luke Shumaker [this message]
2018-03-20 18:50 ` Laurent Vivier
2018-03-20 18:57 ` Peter Maydell
2018-01-15 17:33 ` [Qemu-devel] [PATCH 00/10] linux-user: Speed up guest space initialization on 32-bit ARM target Luke Shumaker
2018-02-09 2:29 ` Luke Shumaker
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=87tvtawpk2.wl-lukeshu@lukeshu.com \
--to=lukeshu@lukeshu.com \
--cc=laurent@vivier.eu \
--cc=lukeshu@parabola.nu \
--cc=paul@codesourcery.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=riku.voipio@iki.fi \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.