Hello all,
I am running Opensolaris build snv_48 on dualcore, dual cpu Xeon Processor
(2.6Ghz) . The box has 4Gigs of RAM.
The ddi_dma_alloc_handle and ddi_dma_bind_addr_handle calls are taking 6-7
times more time
as compared to that on other machines (AMD Opteron and other xeon machine with
similar configuration). I am trying to DMA bind memory chunks of size 10 to
1700 bytes. I have not allocated the buffer for DMA bind using
ddi_dma_alloc_mem as I cannot do so.
The PCI express card for which I am allocating this DMA memory is cabable of
accessing 64bit memory, but I am limiting physical memory to 32bit as the RAM
is not > 4 Gigs
The attributes which I am using for DMA are as follows :
static ddi_dma_attr_t dma_attr_cmddesc = {
DMA_ATTR_V0, /* dma_attr_version */
0, /* dma_attr_addr_lo */
0xffffffffull, /* dma_attr_addr_hi */
255, /* dma_attr_count_max */
1, /* dma_attr_align */
255, /* dma_attr_burstsizes */
1, /* dma_attr_minxfer */
0x00003fffull, /* dma_attr_maxxfer */
0xffffffffull, /* dma_attr_seg */
3, /* dma_attr_sgllen */
1, /* dma_attr_granular */
0 /* dma_attr_flags */
};
I do not understand why the DMA function calls are taking so much time on this
particular machine. The same code works well on other machines. This is causing
to detoriorate my NIC's performance by a factor of about 20 !!! Can I do
something to decrease time required by DMA functions ?
Any system level configuration which can help increase DMA memory available ?
or make it easier for driver to get DMAable memory ? Or is there anything I can
do to diagnosis the problem further ?
Please help.
->Shreyas
This message posted from opensolaris.org
_______________________________________________
networking-discuss mailing list
[email protected]