ixgbe: Do not use mbuf jumbo clusters
authorFrançois Tigeot <ftigeot@wolfpond.org>
Wed, 3 Oct 2012 10:04:56 +0000 (12:04 +0200)
committerFrançois Tigeot <ftigeot@wolfpond.org>
Wed, 3 Oct 2012 10:17:02 +0000 (12:17 +0200)
* They caused crashes when using jumbo frames; the root of the issue should
  probably be investigated further but the driver works perfectly with this
  change.

* Single-stream TCP performance has been measured up to 9.89 Gb/s with
  mtu=16114

sys/dev/netif/ixgbe/ixgbe.c

index 805c904..371f69b 100644 (file)
@@ -1056,6 +1056,7 @@ ixgbe_init_locked(struct adapter *adapter)
        ** Determine the correct mbuf pool
        ** for doing jumbo/headersplit
        */
        ** Determine the correct mbuf pool
        ** for doing jumbo/headersplit
        */
+#if 0 /* XXX */
        if (adapter->max_frame_size <= 2048)
                adapter->rx_mbuf_sz = MCLBYTES;
        else if (adapter->max_frame_size <= 4096)
        if (adapter->max_frame_size <= 2048)
                adapter->rx_mbuf_sz = MCLBYTES;
        else if (adapter->max_frame_size <= 4096)
@@ -1064,6 +1065,9 @@ ixgbe_init_locked(struct adapter *adapter)
                adapter->rx_mbuf_sz = MJUM9BYTES;
        else
                adapter->rx_mbuf_sz = MJUM16BYTES;
                adapter->rx_mbuf_sz = MJUM9BYTES;
        else
                adapter->rx_mbuf_sz = MJUM16BYTES;
+#else
+       adapter->rx_mbuf_sz = MCLBYTES;
+#endif
 
        /* Prepare receive descriptors and buffers */
        if (ixgbe_setup_receive_structures(adapter)) {
 
        /* Prepare receive descriptors and buffers */
        if (ixgbe_setup_receive_structures(adapter)) {