lkml.org 
[lkml]   [2015]   [Oct]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH v3 0/3] uio: add MSI/MSI-X support to uio_pci_generic driver
From
Date


On 10/06/2015 05:30 PM, Michael S. Tsirkin wrote:
> On Tue, Oct 06, 2015 at 11:37:59AM +0300, Vlad Zolotarov wrote:
>> Bus mastering is easily enabled from the user space (taken from DPDK code):
>>
>> static int
>> pci_uio_set_bus_master(int dev_fd)
>> {
>> uint16_t reg;
>> int ret;
>>
>> ret = pread(dev_fd, &reg, sizeof(reg), PCI_COMMAND);
>> if (ret != sizeof(reg)) {
>> RTE_LOG(ERR, EAL,
>> "Cannot read command from PCI config space!\n");
>> return -1;
>> }
>>
>> /* return if bus mastering is already on */
>> if (reg & PCI_COMMAND_MASTER)
>> return 0;
>>
>> reg |= PCI_COMMAND_MASTER;
>>
>> ret = pwrite(dev_fd, &reg, sizeof(reg), PCI_COMMAND);
>> if (ret != sizeof(reg)) {
>> RTE_LOG(ERR, EAL,
>> "Cannot write command to PCI config space!\n");
>> return -1;
>> }
>>
>> return 0;
>> }
>>
>> So, this is a non-issue. ;)
> There might be valid reasons for DPDK to do this, e.g. if using VFIO.

DPDK does this when using vfio, and when using uio_pci_generic. All of
the network cards that DPDK supports require DMA.

> I'm guessing it doesn't enable MSI though, does it?

It does not enable MSI, because the main kernel driver used for
interacting with the device, pci_uio_generic, does not support MSI. In
some configurations, PCI INTA is not available, while MSI(X) is, hence
the desire that pci_uio_generic support MSI.

While it is possible that userspace malfunctions and accidentally
programs MSI incorrectly, the risk is dwarfed by the ability of
userspace to program DMA incorrectly. Under normal operation userspace
programs tens of millions of DMA operations per second, while it never
touches the MSI BARs (it is the kernel that programs them).


\
 
 \ /
  Last update: 2015-10-06 17:21    [W:0.322 / U:0.688 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site