[EMAIL PROTECTED] wrote this message on Fri, Dec 29, 2006 at 12:13 +0530:
>        Is it possible to allocate contigous memory of MJUM9BYTES ( 9K )
> and  dmamap_load in one segment ? 

You can use bus_dmamem_alloc, which will use contigmalloc to allocate
the necessary memory...  You can then attach your own mbuf to the
memory...  Allocating contigous memory is an expensive operation...

If the card doesn't support sg, you'll probably get better performance
by not doing jumbo frames...

> -----Original Message-----
> From: John-Mark Gurney [mailto:[EMAIL PROTECTED] 
> Sent: Tuesday, December 19, 2006 2:19 AM
> To: Tanniru Sankar (WT01 - Computing Systems & Storage)
> Cc: freebsd-net@freebsd.org
> Subject: Re: ' bus_dmamap_load_mbuf_sg ( ) ' function usage problem
> 
> [EMAIL PROTECTED] wrote this message on Mon, Dec 18, 2006 at
> 20:05 +0530:
> >    I am facing a problem on FreeBSD 7.0 during mapping using '
> > bus_dmamap_load_mbuf_sg ( ) ' function .
> >    Details are below.
> >  
> >    It is AMD 64 bit machine. I have allocated jumbo buffer memory 
> > using ' m_getcl ' function.
> >  
> >        mp = m_getjcl(M_DONTWAIT, MT_DATA, M_PKTHDR,  MJUM9BYTES);
> >  
> >     As it got success here, I am trying to map the buffer as below.
> >         
> >        err = bus_dmamap_load_mbuf_sg(dma_tag_rx, map, mp, &seg, &cnt, 
> > BUS_DMA_NOWAIT);
> >         
> >       Here it is getting error for the mbuf size equal to  MJUM9BYTES.
> > The type of error is ' EFBIG  '.
> >    
> >     I have create  rx jumbo dma tag with attributes as following.
> 
> [...]
> 
> >         MJUM9BYTES,       /* Maximum Size              */
> > 
> >         1 ,                           /* Number of Segments        */
> > 
> >         MJUM9BYTES,       /* Maximum Segment Size      */
> 
> This is probably the problem...  Most likely the buffer is
> non-contiguous in memory, and needs 3 segments to satisfy the mapping...
> Try increasing the number of segments and see what happens...

-- 
  John-Mark Gurney                              Voice: +1 415 225 5579

     "All that I will do, has been done, All that I have, has not."
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to