For OPL, the NorthBridge is a Fire varient. The fire has a hardware
limitation of the maximum IOMMU as 4G per RootComplex. Some of the 4G
are used for other purpose such as MSI/MSI-X address, so only 2G can be
used for dvma on sun4v platform with a Fire NorthBridge. On OPL, only 1G
can be used for dvma.
You can check by this:
# prtconf -vp|grep virtual-dma
virtual-dma: 80000000.7ff80000
virtual-dma: 80000000.7ff80000
where, the 80000000 is the start address, the 7ff80000(about 2G) is the
length.
This space is not configurable.
On newer platforms where there are new NorthBridge, the IOMMU space is
quite large. But I still don“t think it is configurable. The space can
be used maybe staticly set in firmware.
--Brian
On 08/04/10 01:10, tom60 wrote:
Garrett,
Is the IOMMU space configurable? I wish there are some commands or a
file in /etc/ to modify to expand IOMMU space.
Tom
--------------------------------------------------
From: "Garrett D'Amore" <[email protected]>
Sent: Sunday, July 25, 2010 11:02 AM
To: "Winson Wang" <[email protected]>
Cc: <[email protected]>
Subject: Re: [driver-discuss] dma memory allocation failure
On Sun, 2010-07-25 at 20:12 +0800, Winson Wang wrote:
On 2010-7-25 20:00, [email protected] wrote:
> Re: dma memory allocation failure
> Then I added several Gig of DDR memory module, however, the
failure > remains.
I suspect your driver used all IOMMU space, on OPL, one root complex
is 1GB.
The page size as I know is 8K.
Please check the ddi_dma_bind called times, if your requested buf size
every time
is lower than 8k, then every bind will casue IOMMU space 8k.
You checked it in your driver, how much IOMMU space has been
consumed in
your driver.
If its 9K, it will be 16K of IOMMU address space consumed.
There may *also* be a limit on the number of IOMMU entries. I know some
platforms had such limitations. Perhaps you can try reducing from 1000
frames prealloc'd to something smaller -- say 512? Is this a 10GbE
driver? If its only 1GbE, then 512 ought to be enough.
-- Garrett
Thanks,
Winson
> Each driver instance is allocating some miscellaneous buffers + 1k
* > 9000s
> bytes buffers. The 4th instance boot up issue seems only happen on
> m3000
> Sparc server(8G memory). I guess m3000 dma region is somewhat
limited. > I am
> wondering how I can know its dma region range.
>
> Tom
_______________________________________________
driver-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/driver-discuss
_______________________________________________
driver-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/driver-discuss
_______________________________________________
driver-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/driver-discuss
_______________________________________________
driver-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/driver-discuss