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

RE: [Xen-devel] Drivers cannot write to msix_iomem from DomU, is this right?


  • To: "Yi, Shunli" <syi@xxxxxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: "Jiang, Yunhong" <yunhong.jiang@xxxxxxxxx>
  • Date: Fri, 10 Jul 2009 12:56:34 +0800
  • Accept-language: en-US
  • Acceptlanguage: en-US
  • Cc:
  • Delivery-date: Thu, 09 Jul 2009 21:58:09 -0700
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>
  • Thread-index: AcoBEoobDrbquKY6TriAQcUu5wBLFQAB/w7Q
  • Thread-topic: [Xen-devel] Drivers cannot write to msix_iomem from DomU, is this right?

The MSI-x will include vector information, which should be resource owned by Xen HV.
For example, if domU set the vector to be same as another device that owned by another domain (or dom0), or Xen HV's IPI, then it will cause trouble.
 
--jyh


From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Yi, Shunli
Sent: 2009年7月10日 11:57
To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] Drivers cannot write to msix_iomem from DomU, is this right?

Hi:

I’m using the Xen-3.3.1. and I find Xend doesn’t permit the DomU driver to access the msix_iomem.

 

"xend/server/pciif.py" : Line :342.

        if dev.msix:

            for (start, size) in dev.msix_iomem:

                start_pfn = start>>PAGE_SHIFT

                nr_pfns = (size+(PAGE_SIZE-1))>>PAGE_SHIFT

                log.debug('pci-msix: remove permission for 0x%x/0x%x 0x%x/0x%x' % \

                         (start,size, start_pfn, nr_pfns))

                rc = xc.domain_iomem_permission(domid = fe_domid,

                                                first_pfn = start_pfn,

                                                nr_pfns = nr_pfns,

                                                allow_access = False)

 

I haven’t wrote any driver code, but I think the driver should can write messages to the msix_iomem.

Because the driver will write some MSI information to the MSI register.

 

And I find following code in bnx2-1.8.5b:

File :                       bnx2.c  

Version:               1.8.5b

Function:             bnx2_enable_msix()

    bnx2_setup_msix_tbl(bp);

    REG_WR(bp, BNX2_PCI_MSIX_CONTROL, BNX2_MAX_MSIX_HW_VEC - 1);

    REG_WR(bp, BNX2_PCI_MSIX_TBL_OFF_BIR, BNX2_PCI_GRC_WINDOW2_BASE);

REG_WR(bp, BNX2_PCI_MSIX_PBA_OFF_BIT, BNX2_PCI_GRC_WINDOW3_BASE);

 

 

So, I think the msix_iomem should be always  writable for the DomU.

Am I Right?

 

 

Best Regards!

 

SHUNLI YI

WEBSENSE NETWORK SECURITY TECHNOLOGY R&D (BEIJING) CO. LTD.
ph: +8610.5884.4142

 



Protected by Websense Hosted Email Security ― www.websense.com

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

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