[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [RFC XEN PATCH 2/6] vpci: accept BAR writes if dom0 is PVH


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: Huang Rui <ray.huang@xxxxxxx>
  • Date: Tue, 21 Mar 2023 19:49:26 +0800
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=deYyMrxKmMPRYDfalKKcUxLxBW36RW5FouMROlO/dNc=; b=LGykWlWn3XgjUYd3zmUB4hFawrz49+fkxJrcofki4DH0sdycIhglmIUJBh0XYu6piT0NIISu9fr3WOJYfkTOJ96s7sd3mN8M/ajAidt5ycYo3j2DZZAr7N7cP5LPpz/rhZcNA+LdtjO/B23vzy4ai4bGhou36fEplb8mwxGzoNLLnjcmDFf5w7pCq1tXKiuSHjJOtOPqActFWGI02JJQc/Xnc7ZKEBmdhOgE6U8GZ5h9skpKa+BCfStHhBlGhiDen9ZzF/htgZBdAW2/m/9ABVS58UhhTFTcQhaYDzS07b4mkyXXUTgEcd947CT2robvLDgJ6DbX24kFy8xQjtzs2A==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Pl18X6tIdvTsbHoVWX0/jkeyQwpGnPld5+zAeWI/IZyGWtstIwi0EBQ6tubX3pn6xZO6Lg1CFgIso3xFPS2Va/jHOulBx27jQWgg/gGzFofh9ICr+QdBfDIjAziBZC7wprrk6fjpXzBfEfa7QmFf0Tf9wjeirTeY+VNuKAS1Eu2tqGeKH+ZgPtrEBYVxVL0CPHn4uVknzKQ/cMqa6qnBF/4SXZeT3/yne5tD5kQ70omj6PzgGUbRJQX8RPHVLsZ7LaD1FE7B5BSIAsuGW+ftbwBGSqS9zRKXQnYSXOccDMacgscbQK8cjFlhnozF78AutwRaMGUFf09YjdsP83nqcg==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com;
  • Cc: "Deucher, Alexander" <Alexander.Deucher@xxxxxxx>, "Koenig, Christian" <Christian.Koenig@xxxxxxx>, "Hildebrand, Stewart" <Stewart.Hildebrand@xxxxxxx>, Xenia Ragiadakou <burzalodowa@xxxxxxxxx>, "Huang, Honglei1" <Honglei1.Huang@xxxxxxx>, "Zhang, Julia" <Julia.Zhang@xxxxxxx>, "Chen, Jiqian" <Jiqian.Chen@xxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Tue, 21 Mar 2023 11:50:14 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On Tue, Mar 21, 2023 at 06:20:03PM +0800, Jan Beulich wrote:
> On 21.03.2023 11:14, Huang Rui wrote:
> > On Tue, Mar 21, 2023 at 05:41:57PM +0800, Jan Beulich wrote:
> >> On 21.03.2023 10:36, Huang Rui wrote:
> >>> On Wed, Mar 15, 2023 at 12:02:35AM +0800, Jan Beulich wrote:
> >>>> On 12.03.2023 08:54, Huang Rui wrote:
> >>>>> --- a/xen/drivers/vpci/header.c
> >>>>> +++ b/xen/drivers/vpci/header.c
> >>>>> @@ -392,7 +392,7 @@ static void cf_check bar_write(
> >>>>>       * Xen only cares whether the BAR is mapped into the p2m, so allow 
> >>>>> BAR
> >>>>>       * writes as long as the BAR is not mapped into the p2m.
> >>>>>       */
> >>>>> -    if ( bar->enabled )
> >>>>> +    if ( pci_conf_read16(pdev->sbdf, PCI_COMMAND) & PCI_COMMAND_MEMORY 
> >>>>> )
> >>>>>      {
> >>>>>          /* If the value written is the current one avoid printing a 
> >>>>> warning. */
> >>>>>          if ( val != (uint32_t)(bar->addr >> (hi ? 32 : 0)) )
> >>>>
> >>>> ... bar->enabled doesn't properly reflect the necessary state? It
> >>>> generally shouldn't be necessary to look at the physical device's
> >>>> state here.
> >>>>
> >>>> Furthermore when you make a change in a case like this, the
> >>>> accompanying comment also needs updating (which might have clarified
> >>>> what, if anything, has been wrong).
> >>>>
> >>>
> >>> That is the problem that we start domU at the first time, the enable flag
> >>> will be set while the passthrough device would like to write the real pcie
> >>> bar on the host.
> >>
> >> A pass-through device (i.e. one already owned by a DomU) should never
> >> be allowed to write to the real BAR. But it's not clear whether I'm not
> >> misinterpreting what you said ...
> >>
> > 
> > OK. Thanks to clarify this. May I know how does a passthrough device modify
> > pci bar with correct behavior on Xen?
> 
> A pass-through device may write to the virtual BAR, changing where in its
> own memory space the MMIO range appears. But it cannot (and may not) alter
> where in host memory space the (physical) MMIO range appears.
> 

Thanks, but we found if dom0 is PV domain, the passthrough device will
access this function to write the real bar.

Thanks,
Ray



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.