From: George Dunlap <george.dunlap@eu.citrix.com>
To: Don Slutz <don.slutz@gmail.com>, Don Slutz <dslutz@verizon.com>,
xen-devel@lists.xen.org
Cc: Kevin Tian <kevin.tian@intel.com>, Keir Fraser <keir@xen.org>,
Ian Campbell <ian.campbell@citrix.com>,
Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
Ian Jackson <ian.jackson@eu.citrix.com>,
Eddie Dong <eddie.dong@intel.com>, Tim Deegan <tim@xen.org>,
Jan Beulich <jbeulich@suse.com>,
Aravind Gopalakrishnan <Aravind.Gopalakrishnan@amd.com>,
Jun Nakajima <jun.nakajima@intel.com>,
Andrew Cooper <andrew.cooper3@citrix.com>,
Boris Ostrovsky <boris.ostrovsky@oracle.com>,
Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
Subject: Re: [PATCH v11 8/9] Add IOREQ_TYPE_VMWARE_PORT
Date: Mon, 8 Jun 2015 11:05:12 +0100 [thread overview]
Message-ID: <557568D8.8050303@eu.citrix.com> (raw)
In-Reply-To: <5570365F.8000908@Gmail.com>
On 06/04/2015 12:28 PM, Don Slutz wrote:
> On 06/03/15 13:09, George Dunlap wrote:
>> On 05/22/2015 04:50 PM, Don Slutz wrote:
>>> This adds synchronization of the 6 vcpu registers (only 32bits of
>>> them) that vmport.c needs between Xen and QEMU.
>>>
>>> This is to avoid a 2nd and 3rd exchange between QEMU and Xen to
>>> fetch and put these 6 vcpu registers used by the code in vmport.c
>>> and vmmouse.c
>>>
>>> In the tools, enable usage of QEMU's vmport code.
>>>
>>> The currently most useful VMware port support that QEMU has is the
>>> VMware mouse support. Xorg included a VMware mouse support that
>>> uses absolute mode. This make using a mouse in X11 much nicer.
>>>
>>> Signed-off-by: Don Slutz <dslutz@verizon.com>
>>> Acked-by: Ian Campbell <ian.campbell@citrix.com>
>> Sorry for coming a bit late to this party. On a high level I think this
>> is good, but there doesn't seem to be anything in here in particular
>> that is vmware-specific. Would it make more sense to give this a more
>> generic name, and have it include all of the general-purpose registers?
>
> I do not know of a more general case. The code here is very VMware "in
> (%dx),%eax" specific. The x86 architecture does not have an in/out case
> where registers other then rax get used and/or changed that need to be
> sent to QEMU. There already is code to handle ins better then 1 byte at
> a time.
"VMWare-specific" doesn't mean VMWare is *currently* the only one that
uses it; it means that the data passed is so VMWare specific that VMWare
is likely to *always* be the only user.
All this additional functionality does (as I understand it) is ship over
some registers verbatim, and restore them on completion. You could
imagine other functionality which might be implemented in qemu (or
another ioreq server) that could use functionality like that.
For example, this functionality might potentially be of use to the XenGT
guys, who need to emulate writes to some pages to shadow the graphics
card pagetables; or to someone wanting to implement some sort of
introspection feature that is meant to work in both KVM and Xen.
The only thing vmware-specific about this at the moment is the
particular subset of registers you're copying over.
> There is also a data size issue. The register data sent over is smaller
> then the ioreq data. Therefore the number of vCPUs that are supported
> is the the same. Changing the amount of data sent would effect this
> (like requiring more then 1 page).
Hmm... so it looks like the ioreq struct is about the size of 8
uint32_t's, or 4 uint64_ts.
So you could easily include eax, ebx, ecx, edx, esi, edi, eip, esp.
But it's not clear that you could do general-purpose emulation without
things like ebp, eflags, and so on. Nor is it clear that it would be
useful to do only emulation for 32-bit instructions.
Would it be terribly bad to make it 4 pages long -- long enough to get
most of the 64-bit registers in there if wanted?
Or alternately, would it be possible to allow the contents of this page
to be changed in the future, perhaps with a domctl?
-George
next prev parent reply other threads:[~2015-06-08 10:05 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-22 15:50 [PATCH v11 0/9] Xen VMware tools support Don Slutz
2015-05-22 15:50 ` [PATCH v11 1/9] tools: Add vga=vmware Don Slutz
2015-05-22 15:50 ` [PATCH v11 2/9] xen: Add support for VMware cpuid leaves Don Slutz
2015-05-22 15:50 ` [PATCH v11 3/9] tools: Add vmware_hwver support Don Slutz
2015-06-03 14:53 ` George Dunlap
2015-06-04 15:15 ` Ian Campbell
2015-06-04 15:46 ` Don Slutz
2015-06-04 15:17 ` Ian Campbell
2015-06-04 15:59 ` Don Slutz
2015-05-22 15:50 ` [PATCH v11 4/9] vmware: Add VMware provided include file Don Slutz
2015-05-22 15:50 ` [PATCH v11 5/9] xen: Add vmware_port support Don Slutz
2015-06-05 9:52 ` Jan Beulich
2015-06-05 13:18 ` Don Slutz
2015-05-22 15:50 ` [PATCH v11 6/9] xen: Add ring 3 " Don Slutz
2015-06-03 15:26 ` George Dunlap
2015-06-03 15:58 ` Andrew Cooper
2015-06-03 16:23 ` George Dunlap
2015-06-03 16:40 ` Andrew Cooper
2015-06-03 17:00 ` George Dunlap
2015-06-03 16:41 ` Don Slutz
2015-06-03 16:58 ` George Dunlap
2015-06-04 12:37 ` Don Slutz
2015-06-04 14:14 ` George Dunlap
2015-06-04 16:17 ` Don Slutz
2015-06-03 16:36 ` Don Slutz
2015-06-03 16:50 ` George Dunlap
2015-06-05 9:31 ` Jan Beulich
2015-06-05 10:54 ` Ian Campbell
2015-06-11 22:10 ` Don Slutz
2015-06-12 6:25 ` Jan Beulich
2015-06-12 12:52 ` Don Slutz
2015-06-23 16:14 ` Jan Beulich
2015-06-26 14:54 ` Don Slutz
2015-05-22 15:50 ` [PATCH v11 7/9] tools: Add " Don Slutz
2015-06-03 17:06 ` George Dunlap
2015-06-04 15:49 ` Ian Campbell
2015-06-04 16:09 ` Don Slutz
2015-06-04 15:20 ` Ian Campbell
2015-05-22 15:50 ` [PATCH v11 8/9] Add IOREQ_TYPE_VMWARE_PORT Don Slutz
2015-06-03 17:09 ` George Dunlap
2015-06-04 11:28 ` Don Slutz
2015-06-05 9:35 ` Jan Beulich
2015-06-05 10:03 ` Paul Durrant
2015-06-08 10:05 ` George Dunlap [this message]
2015-06-11 21:51 ` Don Slutz
2015-05-22 15:50 ` [PATCH v11 9/9] Add xentrace to vmware_port Don Slutz
2015-06-04 11:20 ` George Dunlap
2015-06-04 12:31 ` Don Slutz
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=557568D8.8050303@eu.citrix.com \
--to=george.dunlap@eu.citrix.com \
--cc=Aravind.Gopalakrishnan@amd.com \
--cc=andrew.cooper3@citrix.com \
--cc=boris.ostrovsky@oracle.com \
--cc=don.slutz@gmail.com \
--cc=dslutz@verizon.com \
--cc=eddie.dong@intel.com \
--cc=ian.campbell@citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=jbeulich@suse.com \
--cc=jun.nakajima@intel.com \
--cc=keir@xen.org \
--cc=kevin.tian@intel.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=suravee.suthikulpanit@amd.com \
--cc=tim@xen.org \
--cc=xen-devel@lists.xen.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 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.