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,