PERFORCE change 126455 for review

Kip Macy kmacy at FreeBSD.org
Sat Sep 15 16:26:59 PDT 2007


http://perforce.freebsd.org/chv.cgi?CH=126455

Change 126455 by kmacy at kmacy_home:ethng on 2007/09/15 23:26:15

	skip busdma rx setup on x86
	increases rx throughput by about 15% on udp netperf recv

Affected files ...

.. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_sge.c#20 edit

Differences ...

==== //depot/projects/ethng/src/sys/dev/cxgb/cxgb_sge.c#20 (text+ko) ====

@@ -83,7 +83,7 @@
 
 #define SGE_RX_SM_BUF_SIZE	1536
 #define SGE_RX_DROP_THRES	16
-#define SGE_RX_COPY_THRES	128
+#define SGE_RX_COPY_THRES	MHLEN
 
 /*
  * Period of the Tx buffer reclaim timer.  This timer does not need to run
@@ -518,6 +518,7 @@
 	qs->rspq.polling = 0 /* p->polling */;
 }
 
+#if !defined(__i386__) && !defined(__amd64__)
 static void
 refill_fl_cb(void *arg, bus_dma_segment_t *segs, int nseg, int error)
 {
@@ -528,7 +529,7 @@
 	cb_arg->nseg = nseg;
 
 }
-
+#endif
 /**
  *	refill_fl - refill an SGE free-buffer list
  *	@sc: the controller softc
@@ -567,7 +568,7 @@
 			}
 			sd->flags |= RX_SW_DESC_MAP_CREATED;
 		}
-		
+#if !defined(__i386__) && !defined(__amd64__)
 		err = bus_dmamap_load(q->entry_tag, sd->map, (uint32_t *)cl + 1, q->buf_size,
 		    refill_fl_cb, &cb_arg, 0);
 		
@@ -578,7 +579,9 @@
 			 */
 			return;
 		}
-		
+#else
+		cb_arg.seg.ds_addr = pmap_kextract((vm_offset_t)((uint32_t *)cl + 1));
+#endif		
 		sd->flags |= RX_SW_DESC_INUSE;
 		sd->rxsd_cl = cl;
 		sd->data = (uint8_t *)(sd->rxsd_ref + 1);


More information about the p4-projects mailing list