Print this page
5253 kmem_alloc/kmem_zalloc won't fail with KM_SLEEP
5254 getrbuf won't fail with KM_SLEEP
*** 1677,1696 ****
* Use kmem_alloc instead of ddi_dma_mem_alloc here since the latter
* may fail on x86 platform if a physically contiguous memory chunk
* cannot be found. From initial testing, we did not see performance
* degradation as seen on Sparc.
*/
! if ((reqp->dr_ibuf_kaddr = kmem_alloc(size, KM_SLEEP)) == NULL) {
! dca_error(dca, "unable to alloc request ibuf memory");
! dca_destroyreq(reqp);
! return (NULL);
! }
! if ((reqp->dr_obuf_kaddr = kmem_alloc(size, KM_SLEEP)) == NULL) {
! dca_error(dca, "unable to alloc request obuf memory");
! dca_destroyreq(reqp);
! return (NULL);
! }
#else
/*
* We could kmem_alloc for Sparc too. However, it gives worse
* performance when transferring more than one page data. For example,
* using 4 threads and 12032 byte data and 3DES on 900MHZ Sparc system,
--- 1677,1688 ----
* Use kmem_alloc instead of ddi_dma_mem_alloc here since the latter
* may fail on x86 platform if a physically contiguous memory chunk
* cannot be found. From initial testing, we did not see performance
* degradation as seen on Sparc.
*/
! reqp->dr_ibuf_kaddr = kmem_alloc(size, KM_SLEEP);
! reqp->dr_obuf_kaddr = kmem_alloc(size, KM_SLEEP);
#else
/*
* We could kmem_alloc for Sparc too. However, it gives worse
* performance when transferring more than one page data. For example,
* using 4 threads and 12032 byte data and 3DES on 900MHZ Sparc system,