Re: [PATCH] uio: add irq control support to uio_pci_generic

Michael S. Tsirkin
2015-04-20T13:59:06Z

On Thu, Apr 16, 2015 at 02:21:10PM -0700, Stephen Hemminger wrote:
> On Thu, 16 Apr 2015 09:43:24 +0200
> "Michael S. Tsirkin" <mst@redhat.com> wrote:
>
> > On Wed, Apr 15, 2015 at 09:59:34AM -0700, Stephen Hemminger wrote:
> > > The driver already supported INTX interrupts but had no in kernel
> > > function to enable and disable them.
> > >
> > > It is possible for userspace to do this by accessing PCI config
> > > directly, but this racy
> >
> > How is it racy? We have userspace using this interface,
> > if there's a race I want to fix it.
>
> There is nothing to prevent two threads in user space doing
> read/modify write at the same time.

Well that's a userspace bug then - so let's drop that
from commit log lest people think this fixes some
kernel bugs. read/modify/write to the same register
is at least an easy to grasp problem, creating
an extra interface for the same function opens up
the possibility that some userspace will do
read/modify/write from one thread with irqcontrol
from another thread, creating more races.

> The bigger issue is that DPDK needs to support multiple UIO
> interface types. And with current model there is no abstraction.
> The way to enable/disable IRQ is different depending on the UIO
> drivers.

OK compatibility with other devices might be useful, but what are the
other UIO drivers DPDK supports? I only found support for igb_uio so
far, and that doesn't seem to be upstream.

--
MST