From: "Michael S. Tsirkin" <mst@redhat.com>
To: "Chen, Tiejun" <tiejun.chen@intel.com>
Cc: peter.maydell@linaro.org, xen-devel@lists.xensource.com,
Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
allen.m.kay@intel.com, Kelly.Zytaruk@amd.com,
qemu-devel@nongnu.org, anthony.perard@citrix.com,
anthony@codemonkey.ws, yang.z.zhang@intel.com,
pbonzini@redhat.com
Subject: Re: [Qemu-devel] [v5][PATCH 2/5] xen, gfx passthrough: create pseudo intel isa bridge
Date: Tue, 1 Jul 2014 15:34:50 +0300 [thread overview]
Message-ID: <20140701123450.GB4715@redhat.com> (raw)
In-Reply-To: <53B28463.60307@intel.com>
On Tue, Jul 01, 2014 at 05:50:27PM +0800, Chen, Tiejun wrote:
> On 2014/7/1 13:47, Michael S. Tsirkin wrote:
> >On Mon, Jun 30, 2014 at 08:34:46PM +0100, Stefano Stabellini wrote:
> >>On Fri, 27 Jun 2014, Chen, Tiejun wrote:
> >>>On 2014/6/25 17:58, Chen, Tiejun wrote:
> >>>>On 2014/6/25 17:44, Michael S. Tsirkin wrote:
> >>>>>On Wed, Jun 25, 2014 at 05:28:48PM +0800, Chen, Tiejun wrote:
> >>>>>>On 2014/6/25 17:21, Michael S. Tsirkin wrote:
> >>>>>>>On Wed, Jun 25, 2014 at 05:14:30PM +0800, Chen, Tiejun wrote:
> >>>>>>>>On 2014/6/25 17:04, Michael S. Tsirkin wrote:
> >>>>>>>>>On Wed, Jun 25, 2014 at 04:48:02PM +0800, Chen, Tiejun wrote:
> >>>>>>>>>>On 2014/6/25 16:43, Michael S. Tsirkin wrote:
> >>>>>>>>>>>On Wed, Jun 25, 2014 at 04:39:07PM +0800, Chen, Tiejun wrote:
> >>>>>>>>>>>>>In fact it's exactly what passthrough does.
> >>>>>>>>>>>>>I wonder if more bits from ./hw/i386/kvm/pci-assign.c
> >>>>>>>>>>>>>can be reused. How do you poke at the host device? sysfs?
> >>>>>>>>>>>>
> >>>>>>>>>>>>Yes, sysfs.
> >>>>>>>>>>>>
> >>>>>>>>>>>>Thanks
> >>>>>>>>>>>>Tiejun
> >>>>>>>>>>>
> >>>>>>>>>>>Then you should be able to re-use large chunks of
> >>>>>>>>>>>./hw/i386/kvm/pci-assign.c: basically everything
> >>>>>>>>>>>that deals with emulation.
> >>>>>>>>>>
> >>>>>>>>>>Do you mean those hooks to get info from the real device? Xen
> >>>>>>>>>>have its own
> >>>>>>>>>>wrapper, xen_host_pci_get_block(), so we always go there in xen
> >>>>>>>>>>scenario.
> >>>>>>>>>>
> >>>>>>>>>>Thanks
> >>>>>>>>>>Tiejun
> >>>>>>>>>
> >>>>>>>>>Yes and that's not good. We have two pieces of code doing mostly
> >>>>>>>>>identical things slightly differently.
> >>>>>>>>>hw/i386/kvm/pci-assign.c is a bit younger so it's cleaner,
> >>>>>>>>>but these really need to be unified.
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>>Sorry, take a look at this again,
> >>>>>>>>
> >>>>>>>>xen_host_pci_get_block(XenHostPCIDevice *d, int pos, uint8_t *buf,
> >>>>>>>>int len)
> >>>>>>>> |
> >>>>>>>> + xen_host_pci_config_read(d, pos, buf, len)
> >>>>>>>> |
> >>>>>>>> + pread(d->config_fd, buf, len, pos)
> >>>>>>>>
> >>>>>>>>I thinks this should be same as kvm.
> >>>>>>>>
> >>>>>>>>Thanks
> >>>>>>>>Tiejun
> >>>>>>>
> >>>>>>>get_block is trivial.
> >>>>>>>
> >>>>>>>I really mean the whole PT infrastructure for
> >>>>>>>- discovering host devices through sysfs
> >>>>>>>- virtualizing devices
> >>>>>>>
> >>>>>>>rom, bars, msi ...
> >>>>>>>the list goes on.
> >>>>>>>
> >>>>>>>logic is mostly the same.
> >>>>>>>
> >>>>>>
> >>>>>>Looks you mean we can unify the entire PT infrastructure between kvm
> >>>>>>and xen
> >>>>>>inside qemu. But I'm afraid its not easy to do in a short time, so
> >>>>>>maybe we
> >>>>>>can queue this as next phase.
> >>>>>>
> >>>>>>Thanks
> >>>>>>Tiejun
> >>>>>
> >>>>>I'm afraid once we merge your code, you'll lose interest :)
> >>>>>
> >>>>
> >>>>Currently we have to push this feature into upstream as our first
> >>>>priority, so unless something is really needed to address. Of course I
> >>>>hope this point what we're talking is not such a thing :)
> >>>>
> >>>>But I can promise here I'd like to do this optimization with your guide
> >>>>next :)
> >>>>
> >>>>>At least, don't add duplicate code for ROM.
> >>>>>
> >>>>
> >>>>Let me try this.
> >>>>
> >>>
> >>>Its not easy as expected.
> >>>
> >>>kvm always work with this structure, AssignedDevice, and especially this is
> >>>just activated in kvm_enabled(). And then set all properties to this
> >>>structure.
> >>>
> >>>In xen case, the similar structure, XenHostPCIDevice, is not easy transferred
> >>>into the structure, AssignedDevice. So this mean we have to split
> >>>assigned_dev_load_option_rom() as line by line for xen and kvm, respectively.
> >>>
> >>>I really agree we definitely need to unify PT infrastructure between kvm and
> >>>xen after this try since I can't understand why we originally introduce same
> >>>way to do same thing :(
> >>>
> >>>Do you have better idea? If not, I prefer we open this completely as next
> >>>action to follow-up. But this time I'm afraid I can't get in this.
> >>
> >>The Xen PT code came first. At the time Anthony Liguori and I argued for
> >>sharing the PT code with KVM going forward but Avi wanted to retain the
> >>KVM PT code as is in order not to introduce any regressions on KVM.
> >>
> >>Ah.. the good old times :-)
> >>
> >>http://lists.xen.org/archives/html/xen-devel/2011-10/msg00195.html
> >
> >Right, I remember that there was an idea to first make the code
> >reusable before merging either Xen or KVM PT, but in the end
> >the plan to merge both and then abstract it out, won.
> >We never got to abstracting it out but we should!
> >
> >Yet, I do not think we should require abstracting all of Xen PT as
> >a pre-requisite for this work, but I think we can
> >avoid adding to the duplication without a lot of effort.
> >To start sharing with ROM code, I think we should rename
> >AssignedDevice->KvmAssignedDevice, and move fields that can be shared
> >with Xen from there to AssignedDevice.
>
> Its not simple to share something between AssignedDevice and the similar
> structure, XenHostPCIDevice.
>
> As I said previously AssignedDevice is just activated in kvm_enabled(), then
> set all properties to this structure.
>
> But kvm_enabled() is zero since we always disable this in xen scenario. So
> this means we have to invoke pci-assign framework completely if we try to
> force to use this. So actually this would be equal to merge kvm and xen.
>
> Or if you already figure out to avoid this happened let me know.
>
> Thanks
> Tiejun
For now fill in the structure separately in xen.
--
MST
next prev parent reply other threads:[~2014-07-01 12:33 UTC|newest]
Thread overview: 169+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-25 2:17 [Qemu-devel] [v5][PATCH 0/5] xen: add Intel IGD passthrough support Tiejun Chen
2014-06-25 2:17 ` [Qemu-devel] [v5][PATCH 1/5] xen, gfx passthrough: basic graphics " Tiejun Chen
2014-06-25 6:21 ` Paolo Bonzini
2014-06-25 7:48 ` Chen, Tiejun
2014-06-25 6:35 ` Michael S. Tsirkin
2014-06-25 9:06 ` Chen, Tiejun
2014-06-25 9:16 ` Michael S. Tsirkin
2014-06-25 2:17 ` [Qemu-devel] [v5][PATCH 2/5] xen, gfx passthrough: create pseudo intel isa bridge Tiejun Chen
2014-06-25 6:22 ` Paolo Bonzini
2014-06-25 7:51 ` Chen, Tiejun
2014-06-25 6:45 ` Michael S. Tsirkin
2014-06-25 8:10 ` Chen, Tiejun
2014-06-25 8:28 ` Michael S. Tsirkin
2014-06-25 8:39 ` Chen, Tiejun
2014-06-25 8:43 ` Michael S. Tsirkin
2014-06-25 8:48 ` Chen, Tiejun
2014-06-25 9:04 ` Michael S. Tsirkin
2014-06-25 9:14 ` Chen, Tiejun
2014-06-25 9:21 ` Michael S. Tsirkin
2014-06-25 9:28 ` Chen, Tiejun
2014-06-25 9:44 ` Michael S. Tsirkin
2014-06-25 9:58 ` Chen, Tiejun
2014-06-27 7:22 ` Chen, Tiejun
2014-06-30 19:34 ` Stefano Stabellini
2014-07-01 2:21 ` Chen, Tiejun
2014-07-01 5:47 ` Michael S. Tsirkin
2014-07-01 9:50 ` Chen, Tiejun
2014-07-01 12:34 ` Michael S. Tsirkin [this message]
2014-07-01 16:51 ` Stefano Stabellini
2014-06-25 2:17 ` [Qemu-devel] [v5][PATCH 3/5] xen, gfx passthrough: support Intel IGD passthrough with VT-D Tiejun Chen
2014-06-25 6:25 ` Paolo Bonzini
2014-06-25 7:54 ` Chen, Tiejun
2014-06-25 7:04 ` Michael S. Tsirkin
2014-06-27 9:16 ` Chen, Tiejun
2014-06-25 14:05 ` Michael S. Tsirkin
2014-06-26 5:34 ` Chen, Tiejun
2014-06-26 6:04 ` Michael S. Tsirkin
2014-06-26 8:26 ` Chen, Tiejun
2014-06-25 2:17 ` [Qemu-devel] [v5][PATCH 4/5] xen, gfx passthrough: create host bridge to passthrough Tiejun Chen
2014-06-25 6:24 ` Paolo Bonzini
2014-06-27 8:34 ` Chen, Tiejun
2014-06-27 11:26 ` Paolo Bonzini
2014-06-29 7:56 ` Chen, Tiejun
2014-06-29 12:14 ` Michael S. Tsirkin
2014-06-30 2:52 ` Chen, Tiejun
2014-06-30 19:42 ` Stefano Stabellini
2014-07-01 2:19 ` Chen, Tiejun
2014-07-01 16:49 ` Stefano Stabellini
2014-07-01 18:34 ` Michael S. Tsirkin
2014-07-01 18:45 ` Michael S. Tsirkin
2014-06-25 2:17 ` [Qemu-devel] [v5][PATCH 5/5] xen, gfx passthrough: add opregion mapping Tiejun Chen
2014-06-25 7:13 ` Michael S. Tsirkin
2014-06-27 9:22 ` Chen, Tiejun
2014-06-29 11:43 ` Michael S. Tsirkin
2014-06-30 0:57 ` Chen, Tiejun
2014-06-25 6:19 ` [Qemu-devel] [v5][PATCH 0/5] xen: add Intel IGD passthrough support Paolo Bonzini
2014-06-25 7:15 ` Michael S. Tsirkin
2014-06-25 7:56 ` Paolo Bonzini
2014-06-25 7:35 ` Chen, Tiejun
2014-06-25 7:40 ` Michael S. Tsirkin
2014-06-25 7:44 ` Paolo Bonzini
2014-06-25 8:31 ` Michael S. Tsirkin
2014-06-25 8:39 ` Paolo Bonzini
2014-06-25 8:48 ` Michael S. Tsirkin
2014-06-25 8:55 ` Chen, Tiejun
2014-06-25 9:09 ` Michael S. Tsirkin
2014-06-25 9:21 ` Chen, Tiejun
2014-06-25 9:31 ` Paolo Bonzini
2014-06-25 9:50 ` Chen, Tiejun
2014-06-25 9:54 ` Paolo Bonzini
2014-06-25 10:00 ` Michael S. Tsirkin
2014-06-26 9:18 ` Chen, Tiejun
2014-06-26 10:03 ` Paolo Bonzini
2014-06-26 11:26 ` Michael S. Tsirkin
2014-06-26 11:30 ` Paolo Bonzini
2014-06-26 11:36 ` Michael S. Tsirkin
2014-06-26 13:30 ` Paolo Bonzini
2014-06-26 15:40 ` Michael S. Tsirkin
2014-06-30 2:51 ` Chen, Tiejun
2014-06-30 6:48 ` Michael S. Tsirkin
2014-06-30 7:24 ` Chen, Tiejun
2014-06-30 9:05 ` Michael S. Tsirkin
2014-06-30 9:38 ` Chen, Tiejun
2014-06-30 9:55 ` Michael S. Tsirkin
2014-06-30 10:20 ` [Qemu-devel] [Xen-devel] " Chen, Tiejun
2014-06-30 11:18 ` Paolo Bonzini
2014-06-30 11:31 ` Michael S. Tsirkin
2014-06-30 11:28 ` Michael S. Tsirkin
2014-07-01 2:40 ` Chen, Tiejun
2014-07-01 9:12 ` Michael S. Tsirkin
2014-07-01 9:46 ` Chen, Tiejun
2014-07-01 12:33 ` Michael S. Tsirkin
2014-07-02 0:59 ` Chen, Tiejun
2014-07-02 6:22 ` Michael S. Tsirkin
2014-07-02 8:45 ` Chen, Tiejun
2014-06-30 19:22 ` [Qemu-devel] " Stefano Stabellini
2014-06-30 19:31 ` [Qemu-devel] [Xen-devel] " Ross Philipson
2014-07-01 2:24 ` Chen, Tiejun
2014-07-01 5:39 ` Michael S. Tsirkin
2014-07-01 16:47 ` Stefano Stabellini
2014-07-01 17:02 ` Michael S. Tsirkin
2014-07-01 17:39 ` Ross Philipson
2014-07-01 18:06 ` Michael S. Tsirkin
2014-07-01 19:29 ` Ross Philipson
2014-07-02 6:11 ` Michael S. Tsirkin
2014-07-02 7:56 ` Chen, Tiejun
2014-07-02 11:33 ` Paolo Bonzini
2014-07-02 14:00 ` Konrad Rzeszutek Wilk
2014-07-02 14:07 ` Stefano Stabellini
2014-07-03 3:00 ` Chen, Tiejun
2014-07-03 18:25 ` Konrad Rzeszutek Wilk
2014-07-02 14:08 ` Michael S. Tsirkin
2014-07-02 16:05 ` Konrad Rzeszutek Wilk
2014-07-02 17:58 ` Michael S. Tsirkin
2014-07-02 14:50 ` [Qemu-devel] ResettRe: " Paolo Bonzini
2014-07-02 15:12 ` Michael S. Tsirkin
2014-07-02 19:33 ` Alex Williamson
2014-07-02 16:23 ` Konrad Rzeszutek Wilk
2014-07-02 16:27 ` Paolo Bonzini
2014-07-02 16:53 ` Michael S. Tsirkin
2014-07-03 7:32 ` Michael S. Tsirkin
2014-07-03 18:26 ` Konrad Rzeszutek Wilk
2014-07-03 19:09 ` [Qemu-devel] [Intel-gfx] " Jesse Barnes
2014-07-03 20:27 ` Michael S. Tsirkin
2014-07-16 14:20 ` Konrad Rzeszutek Wilk
2014-07-17 9:42 ` Chen, Tiejun
2014-07-17 17:37 ` Kay, Allen M
2014-07-18 13:44 ` Konrad Rzeszutek Wilk
2014-07-19 0:27 ` Kay, Allen M
2014-07-23 20:54 ` Konrad Rzeszutek Wilk
2014-07-24 1:44 ` Chen, Tiejun
2014-07-25 17:01 ` Konrad Rzeszutek Wilk
2014-07-29 6:59 ` Chen, Tiejun
2014-07-29 8:32 ` Paolo Bonzini
2014-07-29 9:14 ` Chen, Tiejun
2014-07-04 6:28 ` [Qemu-devel] " Paolo Bonzini
2014-07-06 6:08 ` Michael S. Tsirkin
2014-07-02 15:15 ` [Qemu-devel] " Ross Philipson
2014-07-02 15:27 ` Michael S. Tsirkin
2014-07-02 16:29 ` Paolo Bonzini
2014-07-02 16:45 ` Konrad Rzeszutek Wilk
2014-07-02 18:00 ` Michael S. Tsirkin
2014-07-03 5:57 ` Chen, Tiejun
2014-07-03 6:40 ` Michael S. Tsirkin
2014-07-01 18:20 ` Stefano Stabellini
2014-07-01 18:38 ` Michael S. Tsirkin
2014-07-02 1:37 ` Chen, Tiejun
2014-07-02 6:09 ` Michael S. Tsirkin
2014-07-02 7:51 ` Chen, Tiejun
2014-06-25 9:55 ` [Qemu-devel] " Michael S. Tsirkin
2014-06-25 9:59 ` Paolo Bonzini
2014-06-25 10:06 ` Chen, Tiejun
2014-06-25 10:21 ` Michael S. Tsirkin
2014-06-25 10:28 ` Chen, Tiejun
2014-06-25 10:32 ` Michael S. Tsirkin
2014-06-25 10:37 ` Chen, Tiejun
2014-06-25 10:55 ` Michael S. Tsirkin
2014-06-25 12:11 ` Paolo Bonzini
2014-06-25 13:47 ` Michael S. Tsirkin
2014-06-25 13:53 ` Paolo Bonzini
2014-06-25 14:10 ` Michael S. Tsirkin
2014-06-25 14:16 ` Paolo Bonzini
2014-06-25 14:26 ` Michael S. Tsirkin
2014-06-25 10:09 ` Michael S. Tsirkin
2014-06-25 10:14 ` Paolo Bonzini
2014-06-25 10:15 ` Chen, Tiejun
2014-06-25 10:28 ` Michael S. Tsirkin
2014-06-25 9:43 ` Michael S. Tsirkin
2014-07-08 10:45 ` [Qemu-devel] [Xen-devel] " Andrew Barnes
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=20140701123450.GB4715@redhat.com \
--to=mst@redhat.com \
--cc=Kelly.Zytaruk@amd.com \
--cc=allen.m.kay@intel.com \
--cc=anthony.perard@citrix.com \
--cc=anthony@codemonkey.ws \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=stefano.stabellini@eu.citrix.com \
--cc=tiejun.chen@intel.com \
--cc=xen-devel@lists.xensource.com \
--cc=yang.z.zhang@intel.com \
/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).