From: geoff@hostfission.com
To: Eric Blake <eblake@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] ivshmem Windows Driver
Date: Tue, 17 Oct 2017 03:05:43 +1100 [thread overview]
Message-ID: <f943ff3537236d38b711a907cdb6aed4@hostfission.com> (raw)
In-Reply-To: <4d957ed9-0430-927c-ec78-672c39f11682@redhat.com>
On 2017-10-17 02:20, Eric Blake wrote:
> On 10/15/2017 04:32 AM, geoff--- via Qemu-devel wrote:
>> Hi All,
>>
>> I am writing some code that needs to share a block of ram between a
>> Windows guest and Linux host. For this I am using the ivshmem device
>> and
>> I have written a very primitive driver for windows that allows a
>> single
>> application to request to memory map the pci bar (shared memory) into
>> the program's context using DeviceIoControl.
>
> Note that upstream support of ivshmem is rather lackluster. Very
> often,
> the first question in response to someone saying "I need ivshmem", is
> "Why? and can we accomplish the same task using a better device
> instead?" Without knowing the full use case, it's hard to argue that
> ivshmem is the right device to fit the use case.
Noted, but I believe that this is a very useful feature for even hacking
about with VMs before going as far as to write an entire driver for some
simple once use code.
There are some future personal projects I can see this being very handy
for into the future.
>
> There have been efforts to propose a better specified and better
> structured replacement for ivshmem, such as vhost-pci, but I'm not sure
> what status those patches are in, or if it would be a better fit for
> your needs.
My needs are rather specific, I am capturing the desktop on a VM with
passthrough VGA using nVidia NvFBC and mapping it to the host for
extremely low latency high quality display. Unfortunately the use of
NvFBC is limited to high end professional cards such as the GRID. As
such
I don't see it warranting a specific driver for my niche use.
I also lack the time to learn how to write a virtual PCI device for QEMU
that would be able to accommodate this exact feature. I would also need
to acquire a signing certificate to sign the driver which is a cost I
can
not justify.
In comparison writing a windows interface to the existing IVSHMEM device
is not such a huge feat. In fact, I have already got a prototype driver
as part of my local virtio-win fork.
-Geoff
prev parent reply other threads:[~2017-10-16 16:05 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-15 9:32 [Qemu-devel] ivshmem Windows Driver geoff
2017-10-15 11:14 ` Yan Vugenfirer
2017-10-15 12:21 ` geoff
2017-10-15 12:24 ` Yan Vugenfirer
2017-10-15 12:29 ` geoff
2017-10-16 18:31 ` geoff
2017-10-18 5:31 ` Ladi Prosek
2017-10-18 5:50 ` geoff
2017-10-18 6:50 ` Ladi Prosek
2017-10-18 6:56 ` geoff
2017-10-18 12:34 ` Ladi Prosek
2017-10-18 15:04 ` geoff
2017-10-19 8:35 ` Ladi Prosek
2017-10-19 8:44 ` geoff
2017-10-19 9:01 ` Ladi Prosek
2017-10-19 9:07 ` geoff
2017-10-19 9:41 ` geoff
2017-10-19 9:51 ` Ladi Prosek
2017-10-19 10:42 ` geoff
2017-10-16 15:20 ` Eric Blake
2017-10-16 16:05 ` geoff [this message]
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=f943ff3537236d38b711a907cdb6aed4@hostfission.com \
--to=geoff@hostfission.com \
--cc=eblake@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).