On 10/31/2011 12:51 PM, Emil Muratov wrote:
On 31.10.2011 12:13, Hooman Fazaeli wrote:



Thanks for looking into this. I'd be happy to test any patch thrown my way, but keep in mind my issue is only tickled when MSI-X is enabled. My interfaces aren't bouncing, though it might be possible some unique path in the MSI-X code is causing a throughput hang akin to connectivity loss?

Jack is the delta your speaking to the 7.2.4 code? I did manage to get the code from Intel compiled with a couple minutes of work, but haven't loaded it up yet as I didn't see anything that caught my untrained eye in the diffs. I'll wait until its ported over and would be happy to test if needed.

Conveniently enough I just received another report from my test boxes with a pretty stock loader.conf. I had forgotten to remove the advanced options from the interfaces after I cycled them to pick up the fc_setting=0. Fixed that up just meow.

hw.em.fc_setting="0"
cc_cubic_load="YES"



Jason

Attached is a patch for if_em.c. It flushes interface queue when it is full
and link is not active. Please note that when this happens, drops are increasing
on interface and this will trigger your scripts as before. You need to change
a little the scripts as follows:

              check interface TX status
              if (interface TX seems hung) {
                        sleep 5
                        check interface TX status
                        if (interface TX seems hung) {
                             reset the interface.
                        }
                }

For MULTIQUEUE, it just disables the check for link status (which is not good).
so pls. test in non-MULTIQUEUE mode.

The patch also contains some minor fixups to compile on 7 plus
a fix from r1.69 which addressed RX hang problem (the fix was
later removed in r1.70). I included it for Emil to give it a
try.

Pls. let me know if you have any problems with patch.




Hi! Thanks for the update. But I can't make it, there is an error in build 
process. Can you kindly take a look at it?


-emil@ion-/usr/src/sys/dev/e1000
--(0)> sudo patch < /home/emil/patches/if_em/if_em.c.patch
Password:
Hmm...  Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|--- if_em.c.orig       2011-10-31 11:43:35.000000000 +0330
|+++ if_em.c    2011-10-31 11:43:35.000000000 +0330
--------------------------
Patching file if_em.c using Plan A...
Hunk #1 succeeded at 85.
Hunk #2 succeeded at 101.
Hunk #3 succeeded at 382 (offset -29 lines).
Hunk #4 succeeded at 400 (offset -29 lines).
Hunk #5 succeeded at 857 (offset -29 lines).
Hunk #6 succeeded at 960 (offset -29 lines).
Hunk #7 succeeded at 1420 (offset -29 lines).
Hunk #8 succeeded at 1436 (offset -29 lines).
Hunk #9 succeeded at 1466 (offset -29 lines).
Hunk #10 succeeded at 2230 (offset -29 lines).
Hunk #11 succeeded at 2338 (offset -29 lines).
Hunk #12 succeeded at 2350 (offset -29 lines).
Hunk #13 succeeded at 3799 (offset -29 lines).
Hunk #14 succeeded at 5164 with fuzz 2 (offset -29 lines).
Hunk #15 succeeded at 5616 (offset -4 lines).
done

-emil@ion-/usr/src/sys/dev/e1000
--(0)> sudo patch < /home/emil/patches/if_em/if_em.h.patch
Hmm...  Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|--- if_em.h.orig       2011-10-31 11:43:34.000000000 +0330
|+++ if_em.h    2011-10-31 11:43:35.000000000 +0330
--------------------------
Patching file if_em.h using Plan A...
Hunk #1 succeeded at 438.
done


#root@ion-/usr/src/sys/modules/em
#-(0)> make
Warning: Object directory not changed from original /usr/src/sys/modules/em
awk -f @/tools/makeobjops.awk @/kern/device_if.m -h
awk -f @/tools/makeobjops.awk @/kern/bus_if.m -h
awk -f @/tools/makeobjops.awk @/dev/pci/pci_if.m -h
:> opt_inet.h
cc -O2 -pipe -march=nocona -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -I/usr/src/sys/modules/em/../../dev/e1000 -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mfpmath=387 -mno-sse -mno-sse2 -mno-sse3 -mno-mmx -mno-3dnow -msoft-float -fno-asynchronous-unwind-tables - ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing- prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -c /usr/src/sys/modules/em/../../dev/e1000/if _em.c
/usr/src/sys/modules/em/../../dev/e1000/if_em.c:387: error: 
'sysctl__hw_em_children' undeclared here (not in a function)
*** Error code 1

Stop in /usr/src/sys/modules/em.




Please sync your sys/dev/e1000 with HEAD and try again:

setenv CVSROOT :pserver:anon...@anoncvs.freebsd.org:/home/ncvs
cvs login
password: <enter anonymous>
cd /usr/src
cvs co -rHEAD sys/dev/e1000





_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to