From: Nathan Baum <nathan@parenthephobia.org.uk>
To: Jamie Lokier <jamie@shareable.org>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [RFC][PATCH] File-backed memory maps
Date: Fri, 18 Sep 2009 16:05:48 +0100 [thread overview]
Message-ID: <1253286348.11717.296.camel@localhost.localdomain> (raw)
In-Reply-To: <20090918135906.GB1631@shareable.org>
On Fri, 2009-09-18 at 14:59 +0100, Jamie Lokier wrote:
> Nathan Baum wrote:
> > makes two files named "prefix.vga" and "prefix.bios" which contain the
> > respective memory regions. The maps I've named are 640k, before_4g,
> > after_4g, vga, bios and option_rom.
> >
> > I'm mainly interested in the idea of moving the VNC server into its own
> > process. It would listen for connections as usual and then send
> > framebuffer updates from the file. Doing that also requires a
> > side-channel for communicating graphics mode updates and peripheral
> > input between QEMU and the VNC server. (Something like "-mouse
> > <char-dev-spec> -keyboard <char-dev-spec>", perhaps?)
>
> Are there any cache coherency issues?
Hmm. I expect so.
I'm not sure what the consequences of this are, or whether cache
decoherence itself is the major issue. Even if cache coherence is
guaranteed, the contents of VRAM can change whilst the "display server"
is processing it, likely with undesirable results, unless it were double
buffered.
If, upon a dpy_update, VRAM was blitted to "prefix.vga" which we then
msync(), a display server could be sure of always seeing its copy of the
VRAM in a consistent state. It seems to me that might as well be
implemented as the new display type I mentioned later in my post, rather
than a double-buffered version of this more general memory sharing
feature (who wants to be blitting 4GB of RAM around anyway?). I assume
that with that arrangement, cache decoherence wouldn't be an issue on
any platform.
I'm not sure that would leave this patch with much to do. :-)
> On architectures other than x86, sometimes data written by one process
> is not visible to another process mapping the same file, until the
> writing process flushes it's cache for those pages. Whether that's
> necessary depends on the address that pages are mapped to. Afaik,
> normally Linux chooses an address where this issue is avoided, but if
> you specify it with MAP_FIXED (or whatever KVM does to map pages),
> then there's cache coherency to deal with.
> -- Jamie
next prev parent reply other threads:[~2009-09-18 15:04 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-18 12:11 [Qemu-devel] [RFC][PATCH] File-backed memory maps Nathan Baum
2009-09-18 13:59 ` Jamie Lokier
2009-09-18 15:05 ` Nathan Baum [this message]
2009-09-18 16:10 ` Jamie Lokier
2009-09-18 15:15 ` Anthony Liguori
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=1253286348.11717.296.camel@localhost.localdomain \
--to=nathan@parenthephobia.org.uk \
--cc=jamie@shareable.org \
--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).