Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1633068

Re: [RFC PATCH 0/2] iommu/s390: Fix iommu-groups and add sysfs support

From Gerald Schaefer <gerald.schaefer@de.ibm.com>
Newsgroups linux.kernel
Subject Re: [RFC PATCH 0/2] iommu/s390: Fix iommu-groups and add sysfs support
Date 2017-04-28 20:10 +0200
Message-ID <tBiv8-2EY-27@gated-at.bofh.it> (permalink)
References <tATwJ-2t3-3@gated-at.bofh.it> <tAWbg-4jZ-15@gated-at.bofh.it> <tAYPM-6eT-9@gated-at.bofh.it> <tBdvr-7lB-9@gated-at.bofh.it> <tBfxg-jE-15@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Fri, 28 Apr 2017 16:55:13 +0200
Joerg Roedel <joro@8bytes.org> wrote:

> > I am however a bit confused now, about how we would have allowed group
> > sharing with the current s390 IOMMU code, or IOW in which scenario would
> > iommu_group_get() in the add_device callback find a shareable iommu-group?  
> 
> The usual way to do this is to use the iommu_group_get_for_dev()
> function, which invokes the iommu_ops->device_group call-back of the
> driver to find a matching group or allocating a new one.
> 
> There are ready-to-use functions for this call-back already:
> 
> 	1) generic_device_group() - which just allocates a new group for
> 	   the device. This is usually used outside of PCI
> 
> 	2) pci_device_group() - Which walks the PCI hierarchy to find
> 	   devices that are not isolated and uses the matching group for
> 	   its isolation domain.
> 
> A few drivers have their own versions of this call-back, but those are
> IOMMU drivers supporting multiple bus-types and need to find the right
> way to determine the group first.
> 
> > So, I guess we may have an issue with not sharing iommu-groups when
> > it could make sense to do so. But your patch would not fix this, as
> > we still would allocate separate iommu-groups for all functions.  
> 
> Yes, but the above approach won't help when each function ends up on a
> seperate bus because the code looks for different functions that are
> enumerated as such. Anyway, some more insight into how this enumeration
> works on s390 would be great :)

Since Sebastian confirmed this, it looks like we do not really have any
enumeration when there is a separate bus for each function.

Also, IIRC, add_device will get called before attach_dev. Currently we
allow to attach more than one device (apparently from different buses) to
one domain (one shared DMA table) in attach_dev. But then it would be too
late to also add all devices to the same iommu-group. That would have had
to be done earlier in add_device, but there we don't know yet if a shared
DMA table would be set up later in attach_dev.

So, it looks to me that we cannot provide correct iommu-group sharing
on s390, even though we allow iommu-domain sharing, which sounds odd. Since
this "shared domain / DMA table" option in attach_dev was only added
because at that time I thought that was a hard requirement for any arch-
specific IOMMU API implementation, maybe there was some misunderstanding.

It would make the code easier (and more consistent with the s390 hardware)
if I would just remove that option from attach_dev, and allow only one
device/function per iommu-domain. What do you think, could this be removed
for s390, or is there any common code requirement for providing that option
(and is it OK that we have separate iommu-groups in this case)?

Regards,
Gerald

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[RFC PATCH 0/2] iommu/s390: Fix iommu-groups and add sysfs support Joerg Roedel <joro@8bytes.org> - 2017-04-27 17:30 +0200
  Re: [RFC PATCH 0/2] iommu/s390: Fix iommu-groups and add sysfs  support Gerald Schaefer <gerald.schaefer@de.ibm.com> - 2017-04-27 20:20 +0200
    Re: [RFC PATCH 0/2] iommu/s390: Fix iommu-groups and add sysfs  support Joerg Roedel <joro@8bytes.org> - 2017-04-27 23:10 +0200
      Re: [RFC PATCH 0/2] iommu/s390: Fix iommu-groups and add sysfs  support Gerald Schaefer <gerald.schaefer@de.ibm.com> - 2017-04-28 14:50 +0200
        Re: [RFC PATCH 0/2] iommu/s390: Fix iommu-groups and add sysfs  support Joerg Roedel <joro@8bytes.org> - 2017-04-28 17:00 +0200
          Re: [RFC PATCH 0/2] iommu/s390: Fix iommu-groups and add sysfs  support Sebastian Ott <sebott@linux.vnet.ibm.com> - 2017-04-28 17:30 +0200
            Re: [RFC PATCH 0/2] iommu/s390: Fix iommu-groups and add sysfs  support Joerg Roedel <joro@8bytes.org> - 2017-04-29 00:40 +0200
          Re: [RFC PATCH 0/2] iommu/s390: Fix iommu-groups and add sysfs  support Gerald Schaefer <gerald.schaefer@de.ibm.com> - 2017-04-28 20:10 +0200
            Re: [RFC PATCH 0/2] iommu/s390: Fix iommu-groups and add sysfs  support Joerg Roedel <joro@8bytes.org> - 2017-04-29 00:50 +0200

csiph-web