From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [PATCH QEMU-XEN] xen/pt: Start with emulated PCI_COMMAND set to zero. Date: Mon, 15 Jun 2015 14:46:07 -0400 Message-ID: <20150615184607.GE22887@l.oracle.com> References: <5578438C020000780008309D@mail.emea.novell.com> <1433969591-11202-1-git-send-email-konrad@kernel.org> <557959430200007800083634@mail.emea.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1Z4ZOu-0008Um-Ah for xen-devel@lists.xenproject.org; Mon, 15 Jun 2015 18:46:28 +0000 Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Stefano Stabellini Cc: linux@eikelenboom.it, andrew.cooper3@citrix.com, konrad@kernel.org, david.vrabel@citrix.com, Jan Beulich , xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org On Mon, Jun 15, 2015 at 05:19:09PM +0100, Stefano Stabellini wrote: > On Thu, 11 Jun 2015, Jan Beulich wrote: > > >>> On 10.06.15 at 22:53, wrote: > > > --- a/hw/xen/xen_pt.c > > > +++ b/hw/xen/xen_pt.c > > > @@ -785,7 +785,9 @@ out: > > > xen_host_pci_set_word(&s->real_device, PCI_COMMAND, > > > pci_get_word(d->config + PCI_COMMAND) | cmd); > > > } > > > - > > > + /* Until the guest enables the device use d->config values which will > > > + * inhibit pci_bar_address & pci_update_mappings from triggering updates.*/ > > > + pci_set_word(d->config + PCI_COMMAND, 0); > > > memory_listener_register(&s->memory_listener, &address_space_memory); > > > memory_listener_register(&s->io_listener, &address_space_io); > > > XEN_PT_LOG(d, > > > > Well, I can see this as something to be tried out as an experiment, > > but it looks like you mean this to be a proper submission for > > inclusion upstream? Or maybe not, considering that qemu-devel > > wasn't even Cc-ed? In any case - what we need here is a general > > solution to at least the initialization part of the problem, i.e. all > > fields we emulate some or all bits for need to have d->config[] > > updated accordingly (i.e. you need to merge d->config[] and > > XenPTReg's data field based on the respective XenPTRegInfo's > > emu_mask, but perhaps simply copying the data field to > > d->config[] would have the same effect; if it doesn't, we have > > yet another problem). For the command register this for example > > means that it is in no way guaranteed that it would end up being > > zero; its emu_mask however guarantees that the memory and I/O > > decode bits would start out as zero (which is what you're after). > > I am not sure I can ask Konrad to come up with a larger general solution > when his intent was just to fix this issue. This one liner is OK for > that. > > Of course it would be great if Konrad wanted to volunteer to submit a > patch that updates d->config for all fields, or gets rid of reg->data > entirely. > > Konrad, what do you think? You owe me a beer :-) I will take me some time unless I can find a way to clone myself.