From: Vlad Zolotarov <vladz@cloudius-systems.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: linux-kernel@vger.kernel.org, hjk@hansjkoch.de, corbet@lwn.net,
gregkh@linuxfoundation.org, bruce.richardson@intel.com,
avi@cloudius-systems.com, gleb@cloudius-systems.com,
stephen@networkplumber.org, alexander.duyck@gmail.com
Subject: Re: [PATCH v5 0/4] uio: add MSI/MSI-X support to uio_pci_generic driver
Date: Wed, 7 Oct 2015 11:38:12 +0300 [thread overview]
Message-ID: <5614D9F4.6080203@cloudius-systems.com> (raw)
In-Reply-To: <20151007014957-mutt-send-email-mst@redhat.com>
On 10/07/15 01:51, Michael S. Tsirkin wrote:
> On Tue, Oct 06, 2015 at 11:35:27PM +0300, Vlad Zolotarov wrote:
>>
>> On 10/06/15 21:27, Michael S. Tsirkin wrote:
>>> On Tue, Oct 06, 2015 at 08:17:35PM +0300, Vlad Zolotarov wrote:
>>>> This series add support for MSI and MSI-X interrupts to uio_pci_generic driver.
>>>>
>>>> Currently uio_pci_generic demands INT#x interrupts source be available. However
>>>> there are devices that simply don't have INT#x capability, for instance SR-IOV
>>>> VF devices that simply don't have INT#x capability. For such devices
>>>> uio_pci_generic will simply fail (more specifically its probe() will fail).
>>>>
>>>> When IOMMU is either not available (e.g. Amazon EC2) or not acceptable due to
>>>> performance overhead and thus VFIO is not an option users that develop
>>>> user-space drivers are left without any option but to develop some proprietary
>>>> UIO drivers (e.g. igb_uio driver in Intel's DPDK) just to be able to use UIO
>>>> infrastructure.
>>>>
>>>> This series provides a generic solution for this problem while preserving the
>>>> original behaviour for devices for which the original uio_pci_generic had worked
>>>> before (i.e. INT#x will be used by default).
>>>>
>>>> New in v5:
>>>> - Expanded the commitlog on PATCH1.
>>> Looks like you didn't attempt to address any of my review comments.
>>> I don't intend to review this until you do.
>> So far there hasn't been any comments related to the code in these patches
>> from your side but rather comments about the general flaws of the current
>> uio_pci_generic in particular and UIO in general that have nothing to do
>> with this series. Therefore obviously there was nothing to address.
>> If u have any comments related to _THIS_ series I'd be glad to address. So
>> far I was under the strong impression that u develop an obviously
>> theoretical discussion about "nice to have fixed" stuff in UIO, which was
>> obvious to everybody on this thread had nothing to do with this patch
>> series.
>>
>> Could it be that I've got u wrong? If so, could u, pls., clarify what u'd
>> like me to fix in these patches exactly and why?
>>
>> thanks,
>> vlad
> The issues I pointed out are not "nice to have fixed" at all.
> The patchset isn't acceptable if you don't address them.
> Sorry, I don't have the time to go over them again.
> Please just dig them out of the archive.
Let's summarize "the issues u've pointed out" and the explanations why
they are not relevant to this series for those that haven't been addressed.
1. "This patch enables bus mastering when MSI or MSI-X interrupts mode
is used and this would allow bogus user space application trash
kernel memory".
1. It's been explained that simple bug in the application that uses
the newly added interface may not do this. Only specifically
written user space code that explicitly programs MSI table from
the user space may cause such harm and this may be done even
without these patches with the current uio_pci_generic
implementation.
2. It's been described how bus mastering and MSI may be enabled
from the user space right now.
3. It's been explained how root may trash the kernel memory right
now even without UIO.
2. "This patch allows insecure DMA operations since MSI actually
performs them"
1. It's been explained that this series adds no additional threat
to the current driver state since (as described above) this may
be done without these patches right now.
3. "Users should not be able to program MSI table from the user space
therefore it should be zero-mapped".
1. This may be true but this has nothing to do with this patches
since they have nothing to do with this ability.
4. "Why to mimic VFIO SET_IRQ ioctl instead of patching VFIO to be able
to work in iommu-less mode?"
1. Because this would break the basic VFIO design assumption and
would require a lot of non-trivial codding with little-to-none
added value. See the relevant thread for more detail.
5. "Separate bars mapping code into a separate patch"
1. Addressed.
Hope I didn't miss anything.
So, as u may see everything that could be addressed have been addressed
and the rest are as I've already stated - irrelevant for this patch.
thanks,
vlad
>
>>>> New in v4:
>>>> - Use portable __u32 and __s32 types from asm/types.h for
>>>> defining uio_pci_generic_irq_set fields.
>>>> - Use proper _IO macros for defining read and write ioctl()
>>>> commands.
>>>> - Moved bars mapping setting into a separate patch.
>>>> - Update uio_pci_generic example in uio-howto.tmpl.
>>>>
>>>> New in v3:
>>>> - Add __iomem qualifier to temp buffer receiving ioremap value.
>>>> New in v2:
>>>> - Added #include <linux/uaccess.h> to uio_pci_generic.c
>>>>
>>>>
>>>> Vlad Zolotarov (4):
>>>> uio: add ioctl support
>>>> uio_pci_generic: properly initialize PCI bars mappings towards UIO
>>>> uio_pci_generic: add MSI/MSI-X support
>>>> Documentation: update uio-howto
>>>>
>>>> Documentation/DocBook/uio-howto.tmpl | 139 ++++++++++--
>>>> drivers/uio/uio.c | 15 ++
>>>> drivers/uio/uio_pci_generic.c | 409 +++++++++++++++++++++++++++++++++--
>>>> include/linux/uio_driver.h | 3 +
>>>> include/uapi/linux/uio_pci_generic.h | 51 +++++
>>>> 5 files changed, 574 insertions(+), 43 deletions(-)
>>>> create mode 100644 include/uapi/linux/uio_pci_generic.h
>>>>
>>>> --
>>>> 2.1.0
next prev parent reply other threads:[~2015-10-07 8:38 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-06 17:17 [PATCH v5 0/4] uio: add MSI/MSI-X support to uio_pci_generic driver Vlad Zolotarov
2015-10-06 17:17 ` [PATCH v5 1/4] uio: add ioctl support Vlad Zolotarov
2015-10-06 21:33 ` Stephen Hemminger
2015-10-07 8:17 ` Vlad Zolotarov
2015-10-07 8:18 ` Vlad Zolotarov
2015-10-07 8:46 ` Greg KH
2015-10-07 8:55 ` Vlad Zolotarov
2015-10-07 17:21 ` Greg KH
2015-10-07 17:28 ` Vlad Zolotarov
[not found] ` <CAOaVG17hMG7cAnD_DZ9J3pRMpXctx3o_EF8A62vtZx6Mv9c-2g@mail.gmail.com>
2015-10-07 19:00 ` Vlad Zolotarov
[not found] ` <CAOaVG147Fxq0VyohAFBvw4cxtLRw3qd2aNt-e2Vr4_R5EYs7zQ@mail.gmail.com>
2015-10-08 12:41 ` Vlad Zolotarov
2015-10-08 13:03 ` Greg Kroah-Hartman
2015-10-06 17:17 ` [PATCH v5 2/4] uio_pci_generic: properly initialize PCI bars mappings towards UIO Vlad Zolotarov
2015-10-06 17:17 ` [PATCH v5 3/4] uio_pci_generic: add MSI/MSI-X support Vlad Zolotarov
2015-10-06 21:36 ` Stephen Hemminger
2015-10-06 17:17 ` [PATCH v5 4/4] Documentation: update uio-howto Vlad Zolotarov
2015-10-06 18:27 ` [PATCH v5 0/4] uio: add MSI/MSI-X support to uio_pci_generic driver Michael S. Tsirkin
2015-10-06 20:35 ` Vlad Zolotarov
2015-10-06 20:48 ` Vlad Zolotarov
2015-10-06 22:51 ` Michael S. Tsirkin
2015-10-07 8:38 ` Vlad Zolotarov [this message]
2015-10-07 10:42 ` Michael S. Tsirkin
2015-10-07 13:44 ` Vlad Zolotarov
2015-10-07 13:55 ` Vlad Zolotarov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5614D9F4.6080203@cloudius-systems.com \
--to=vladz@cloudius-systems.com \
--cc=alexander.duyck@gmail.com \
--cc=avi@cloudius-systems.com \
--cc=bruce.richardson@intel.com \
--cc=corbet@lwn.net \
--cc=gleb@cloudius-systems.com \
--cc=gregkh@linuxfoundation.org \
--cc=hjk@hansjkoch.de \
--cc=linux-kernel@vger.kernel.org \
--cc=mst@redhat.com \
--cc=stephen@networkplumber.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).