From: Mike <mic...@ne...> - 2011-08-10 11:12:22
|
Good day. While trying to test vmxnet3s's LSO functionality under Illumos (it is an OpenSolaris-based OS), I noticed, that throughput was dramatically slow - about 200-300 Kbits/Sec. Investigation led me to the fact that HW_LSO flag is resolved in a wrong way in ' Here is the patch that fixes the problem: @@ -103,13 +103,19 @@ vmxnet3_tx_prepare_offload(vmxnet3_softc_t *dp, mblk_t *mp) { int ret = 0; - uint32_t start, stuff, value, flags; + uint32_t start, stuff, value, flags, lsoflags, mss; ol->om = VMXNET3_OM_NONE; ol->hlen = 0; ol->msscof = 0; hcksum_retrieve(mp, NULL, NULL, &start, &stuff, NULL, &value, &flags); + + mac_lso_get(mp, &mss, &lsoflags); + if (lsoflags & HW_LSO) { + flags |= HW_LSO; + } + Sincerely, Michael Tsymbalyuk |