Powerpc: Kernel warn_on when enabling IOMMU_API

Bhushan Bharat-R65777 R65777 at freescale.com
Wed Aug 14 01:30:08 EST 2013



> -----Original Message-----
> From: Alexey Kardashevskiy [mailto:aik at ozlabs.ru]
> Sent: Tuesday, August 13, 2013 6:25 PM
> To: Bhushan Bharat-R65777
> Cc: benh at kernel.crashing.org; linuxppc-dev at lists.ozlabs.org
> Subject: Re: Powerpc: Kernel warn_on when enabling IOMMU_API
> 
> On 08/13/2013 08:44 PM, Bhushan Bharat-R65777 wrote:
> >
> >
> >> -----Original Message----- From: Alexey Kardashevskiy
> >> [mailto:aik at ozlabs.ru] Sent: Tuesday, August 13, 2013 5:41 AM To:
> >> Bhushan Bharat-R65777 Cc: benh at kernel.crashing.org;
> >> linuxppc-dev at lists.ozlabs.org Subject: Re: Powerpc: Kernel warn_on
> >> when enabling IOMMU_API
> >>
> >> On 08/13/2013 02:14 AM, Bhushan Bharat-R65777 wrote:
> >>>
> >>>
> >>>> -----Original Message----- From: Alexey Kardashevskiy
> >>>> [mailto:aik at ozlabs.ru] Sent: Monday, August 12, 2013 7:44 PM To:
> >>>> Bhushan Bharat-R65777 Cc: benh at kernel.crashing.org;
> >>>> linuxppc-dev at lists.ozlabs.org Subject: Re: Powerpc: Kernel warn_on
> >>>> when enabling IOMMU_API
> >>>>
> >>>> On 08/12/2013 08:20 PM, Bhushan Bharat-R65777 wrote:
> >>>>> And this simple fix work for me diff --git
> >>>>> a/arch/powerpc/kernel/iommu.c b/arch/powerpc/kernel/iommu.c index
> >>>>> b20ff17..8869b0d 100644 --- a/arch/powerpc/kernel/iommu.c
> >>>>> +++ b/arch/powerpc/kernel/iommu.c @@ -48,6 +48,8 @@ #include
> >>>>> <asm/vio.h> #include <asm/tce.h>
> >>>>>
> >>>>> +#define DEBUG + #define DBG(...)
> >>>>>
> >>>>> static int novmerge; @@ -871,7 +873,7 @@ void
> >>>>> iommu_free_coherent(struct iommu_table *tbl, size_t
> >>>> size,
> >>>>> } }
> >>>>>
> >>>>> -#ifdef CONFIG_IOMMU_API +#ifdef SPAPR_TCE_IOMMU /* * SPAPR TCE
> >>>>> API */ ----------------------
> >>>>
> >>>>
> >>>> And with this fix, what does "ls -laR /sys/kernel/iommu_groups/"
> >>>> print?
> >>>
> >>> It shows the list of group id and respective devices:
> >>>
> >>
> >> Is it vanilla 3.11-rc1 kernel? Wow. What does "lspci" show there?
> >
> > It is 3.11-rc1 + (FSL_IOMMU + VFIO-PCI : local changes).
> >
> > root at p5040ds:~# lspci
> 00:00.0 Class 0604: 1957:0450
> 01:00.0 Class 0200: 8086:10fb
> 00:00.0 Class 0604: 1957:0450
> 01:00.0 Class 0200: 8086:10d3
> 
> 
> Is it one PCI domain or two PCI domains? Hm.
> 
> > We uses the bus_set_iommu(), generic iommu api, which creates a
> > iommu_group for a device (drivers/iommu/iommu.c) using. Also this have
> > notifier to support hotplug-able device. So when this initcall (in
> > arch/powerpc/kernel/iommu.c) is called, iommu group is already setup
> > for the device/s.
> 
> > I think we do not need this piece of code for powerpc. So what is the
> > best way to stub this out for FSL PowerPC/IOMMU?
> 
> 
> So you implemented iommu_ops? Can you share your code somewhere, just to have a
> look?

https://lkml.org/lkml/2013/7/1/158

> 
> 
> > Will the above #ifdef SPAPR_TCE_IOMMU work? Other way can be selecting
> > iommu.c and dma-iommu.c in Makefile if SPAPR_TCE_IOMMU defined and not
> > if CONFIG_64BIT.
> 
> If SPAPR_TCE_IOMMU is enabled, the code would compile and the subsys_init would
> be called anyway, so normal production kernel will fail anyway.

We will not enable this on FSL powerpc,

-Bharat

> 
> 
> 
> --
> Alexey




More information about the Linuxppc-dev mailing list