Re: Proposed 6.2 em RELEASE patch

2006-11-13 Thread Michael DeMan

Hi All,

Unfortunately our company hasn't had the resources to help FreeBSD  
much over the years, but I do want to say thank you to the folks who  
are helping sort out this issue with the em driver.


That Intel gigabit interface is very, very common on server hardware  
nowadays and it means a lot to us to make sure it (and FreeBSD 6.2 in  
general) are stable.


- mike

Michael F. DeMan
Director of Technology
OpenAccess Network Services
Bellingham, WA 98225
[EMAIL PROTECTED]
360-647-0785
--- If your question is support related, please contact  
[EMAIL PROTECTED] directly for faster assistance ---



On Nov 13, 2006, at 3:15 PM, Мирослав Славков wrote:

Hey. I've got one new machine for testing for 1-2 days... here's  
some output..


With the latest drivers (cvsup'ed from yesterday)

Send box: 2x Intel Xeon 5110 (1.6GHz), SuperMicro X7-DBE, Intel Pro/ 
1000 MT Server Adapter


CPU: Intel(R) Xeon(R) CPU5110  @ 1.60GHz (1600.01-MHz  
686-class CPU)

  Origin = "GenuineIntel"  Id = 0x6f6  Stepping = 6
   
Features=0xbfebfbffGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE 
>
   
Features2=0x4e33d,CX16,,, 
>

  AMD Features=0x2010
  AMD Features2=0x1
  Cores per package: 2
real memory  = 1073086464 (1023 MB)
avail memory = 1040961536 (992 MB)
ACPI APIC Table: 
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs


Recv box: AMD Sempron 3800+, (Some nVidia chipset.. maybe 4), Intel  
Pro/1000 PT Desktop Adapter


system load is around 2
EM_INTR_FAST is defined (if not defined load is higher..5-6)

[EMAIL PROTECTED] ~]# iperf -c 172.16.133.2 -t 999

Client connecting to 172.16.133.2, TCP port 5001
TCP window size:   129 KByte (default)

[  3] local 172.16.133.1 port 58425 connected with 172.16.133.2  
port 5001

^C[  3]  0.0-48.1 sec  4.87 GBytes869 Mbits/sec


[EMAIL PROTECTED] ~]# ifstat -b
   em0 em2
 Kbps in  Kbps out   Kbps in  Kbps out
46117.87  885607.5 12.76  1.45
45892.97  879815.3 22.61  1.07
ifstat: warning: rollover for interface em0, reinitialising.
0.00  0.00581.95  1.07
46436.31  890665.0700.36  2.27
46062.60  884031.1794.26  1.07
46576.76  893408.4846.86  1.07
47117.81  903658.6859.40  1.07
46141.71  885471.3867.05  1.07
45926.92  881372.1363.41  1.07
46003.51  883432.4 35.64  1.07
46052.45  884164.9 28.41  1.07
45863.03  880448.1 12.66  1.07
46152.73  885549.1 33.71  1.07
46737.09  896811.9 39.02  1.07
46188.92  885847.3 58.92  1.07
45770.39  878602.0 19.24  1.07
46743.62  896967.0 34.72  1.07
46412.27  890970.9 34.65  1.07
46322.73  888747.3 26.61  1.07
46002.64  882522.8 23.69  1.07
46450.56  891662.8 26.91  1.07
45991.55  882605.9 37.92  1.07
46067.28  883815.5 34.82  1.07
46120.28  885357.6 33.79  1.07
46133.17  885316.5 21.56  1.07
46700.43  895554.6 10.12  1.49
45476.68  873874.2 15.78  1.07
45791.88  878655.9 15.99  1.07
46344.84  889292.8  7.72  1.07
46577.31  893572.1 10.49  1.07
46065.09  884277.6  8.77  1.07
46566.97  892898.4  6.07  1.07
46232.46  886846.8 13.02  1.07
46165.29  886647.9  7.47  1.07
46080.80  884256.7 14.54  1.07
46757.57  896977.8 14.59  1.07
46182.78  885594.3 10.30  1.07
46103.81  885661.0 13.95  1.07
46469.89  891511.3 13.85  1.07
46470.86  891611.1 11.42  1.07
___
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "[EMAIL PROTECTED]"



___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Proposed 6.2 em RELEASE patch

2006-11-13 Thread Scott Long

Mike Tancsa wrote:

At 12:50 PM 11/13/2006, Ivan Voras wrote:

Mike Tancsa wrote:
> At 12:15 AM 11/13/2006, Scott Long wrote:
>
>> Is this with EM_INTR_FAST enabled also?
>
> Yes.  Havent done the stock case yet, but will do so later today.

Do you have a comparison with Linux under the same circumstances?


I had a disk with 64bit already installed. I will try with 32bit 
tomorrow.  I can also try FreeBSD AMD64 on the box to see how it does.


ifstat gives a bit of an odd output, but its the same sort of pattern 
where adding a second stream in the same direction, slows down the first 
one.  On the box R2

...


The box is totally responsive throughout with no packet loss on the 
management interface However, it seems quite a bit slower than 
FreeBSD when its tweaked with ADAPTIVE_GIANT removed... But again, this 
is 64bit so not quite apples to apples yet.  Also, I need to check the 
default driver config to see if their NAPI or whatever its called is 
enabled.  More tests to come.


---Mike


More excellent data, thanks.  I have some changes on the drawing board
that should significantly improve forwarding and bridging in the em
driver.  Do you have a limit on how much more time you can spend on
these tests?  It might be a week or more before I have anything that can
be tested.

Scott
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Proposed 6.2 em RELEASE patch

2006-11-13 Thread Мирослав Славков
Hey. I've got one new machine for testing for 1-2 days... here's some output..

With the latest drivers (cvsup'ed from yesterday)

Send box: 2x Intel Xeon 5110 (1.6GHz), SuperMicro X7-DBE, Intel Pro/1000 MT 
Server Adapter

CPU: Intel(R) Xeon(R) CPU5110  @ 1.60GHz (1600.01-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x6f6  Stepping = 6
  
Features=0xbfebfbff
  Features2=0x4e33d,CX16,,,>
  AMD Features=0x2010
  AMD Features2=0x1
  Cores per package: 2
real memory  = 1073086464 (1023 MB)
avail memory = 1040961536 (992 MB)
ACPI APIC Table: 
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs


Recv box: AMD Sempron 3800+, (Some nVidia chipset.. maybe 4), Intel Pro/1000 PT 
Desktop Adapter

system load is around 2
EM_INTR_FAST is defined (if not defined load is higher..5-6)

[EMAIL PROTECTED] ~]# iperf -c 172.16.133.2 -t 999

Client connecting to 172.16.133.2, TCP port 5001
TCP window size:   129 KByte (default)

[  3] local 172.16.133.1 port 58425 connected with 172.16.133.2 port 5001
^C[  3]  0.0-48.1 sec  4.87 GBytes869 Mbits/sec


[EMAIL PROTECTED] ~]# ifstat -b
   em0 em2
 Kbps in  Kbps out   Kbps in  Kbps out
46117.87  885607.5 12.76  1.45
45892.97  879815.3 22.61  1.07
ifstat: warning: rollover for interface em0, reinitialising.
0.00  0.00581.95  1.07
46436.31  890665.0700.36  2.27
46062.60  884031.1794.26  1.07
46576.76  893408.4846.86  1.07
47117.81  903658.6859.40  1.07
46141.71  885471.3867.05  1.07
45926.92  881372.1363.41  1.07
46003.51  883432.4 35.64  1.07
46052.45  884164.9 28.41  1.07
45863.03  880448.1 12.66  1.07
46152.73  885549.1 33.71  1.07
46737.09  896811.9 39.02  1.07
46188.92  885847.3 58.92  1.07
45770.39  878602.0 19.24  1.07
46743.62  896967.0 34.72  1.07
46412.27  890970.9 34.65  1.07
46322.73  888747.3 26.61  1.07
46002.64  882522.8 23.69  1.07
46450.56  891662.8 26.91  1.07
45991.55  882605.9 37.92  1.07
46067.28  883815.5 34.82  1.07
46120.28  885357.6 33.79  1.07
46133.17  885316.5 21.56  1.07
46700.43  895554.6 10.12  1.49
45476.68  873874.2 15.78  1.07
45791.88  878655.9 15.99  1.07
46344.84  889292.8  7.72  1.07
46577.31  893572.1 10.49  1.07
46065.09  884277.6  8.77  1.07
46566.97  892898.4  6.07  1.07
46232.46  886846.8 13.02  1.07
46165.29  886647.9  7.47  1.07
46080.80  884256.7 14.54  1.07
46757.57  896977.8 14.59  1.07
46182.78  885594.3 10.30  1.07
46103.81  885661.0 13.95  1.07
46469.89  891511.3 13.85  1.07
46470.86  891611.1 11.42  1.07
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Proposed 6.2 em RELEASE patch

2006-11-13 Thread Mike Tancsa

At 12:50 PM 11/13/2006, Ivan Voras wrote:

Mike Tancsa wrote:
> At 12:15 AM 11/13/2006, Scott Long wrote:
>
>> Is this with EM_INTR_FAST enabled also?
>
> Yes.  Havent done the stock case yet, but will do so later today.

Do you have a comparison with Linux under the same circumstances?


I had a disk with 64bit already installed. I will try with 32bit 
tomorrow.  I can also try FreeBSD AMD64 on the box to see how it does.


ifstat gives a bit of an odd output, but its the same sort of pattern 
where adding a second stream in the same direction, slows down the 
first one.  On the box R2


[EMAIL PROTECTED] ifstat-1.1]# ifstat -b
   eth0eth1eth3eth4
 Kbps in  Kbps out   Kbps in  Kbps out   Kbps in  Kbps out   Kbps in  Kbps out
0.00  0.00  0.00  0.00  0.00  0.00  4.89  3.74
0.00  0.00  0.00  0.00  0.00  0.00  0.50  1.45
0.00  0.00  0.00  0.00  0.00  0.00  1.00  1.45
160965.0  0.00  0.00  0.00  0.00  0.00  0.83  1.95
0.00  0.00  0.00  272056.4  0.00  0.00  1.00  1.45
393994.2  0.00  0.00  0.00  0.00  0.00  5.47  1.45
0.00  0.00  0.00  393543.7  0.00  0.00  4.25  1.45
392911.0  0.00  0.00  0.00  0.00  0.00  2.50  1.45
0.00  0.00  0.50  392756.4  0.00  0.00  1.25  1.45
392626.7  0.00  0.00  0.00  0.00  0.00  1.75  1.45
0.00  0.00  0.00  393233.9  0.00  0.00  6.44  1.45
424068.1  0.00  0.00  0.00  0.00  0.00  1.74 
1.45**

0.00  0.00  0.00  460503.1  0.00  0.00  2.72  1.45
509218.1  0.00  0.00  0.00  0.00  0.00  0.99  1.45
0.00  0.00  0.00  507800.4  0.00  0.00  0.50  1.45
502649.5  0.00  0.00  0.00  0.00  0.00  1.00  1.45
0.00  0.00  0.50  507537.1  0.00  0.00  0.50  1.46
519717.9  0.00  0.00  0.00  0.00  0.00  1.00  1.45
0.00  0.00  0.00  525973.4  0.00  0.00  0.50  1.46
520609.0  0.00  0.00  0.00  0.00  0.00  1.00  1.45
0.00  0.00  0.00  517888.6  0.00  0.00  0.50  1.45
525957.3  0.00  0.00  0.00  0.00  0.00  1.00  1.46
0.00  0.00  0.00  524119.9  0.00  0.00  0.50  1.45
522671.1  0.00  0.00  0.00  0.00  0.00  0.99  1.44
0.00  0.00  0.00  494008.7  0.00  0.00  0.50  1.45
390666.3  0.00  0.00  0.00  0.00  0.00  1.00  1.45
0.00  0.00  0.00  273779.6  0.00  0.00  0.50  1.45
0.00  0.00  0.00  0.00  0.00  0.00  1.00  1.45
0.00  0.00  0.00  0.00  0.00  0.00  0.50  1.45

[EMAIL PROTECTED] ifstat-1.1]#


I added the second stream, going in the same direction at **

On one of the targets running netreceive you can see the impact.

[tyan-1u]# ifstat -b
   rl0 bge0
 Kbps in  Kbps out   Kbps in  Kbps out
0.94  1.42  182716.2  0.00
0.47  1.05  182299.5  0.00
0.94  1.05  182493.4  0.33
0.94  2.09  182588.7  0.00
0.94  1.05  181959.8  0.00
0.47  1.05  104949.7  0.00
0.94  1.05  95674.27  0.00
0.47  1.05  95930.79  0.00
0.94  1.05  98329.93  0.00
0.94  1.05  97940.21  0.00
0.94  1.05  100636.9  0.00
0.47  1.05  99879.34  0.00
^C
[tyan-1u]#


When the packets are bi-directional, the impact is not as great in 
LINUX as it is on FreeBSD


[EMAIL PROTECTED] ifstat-1.1]# ifstat -b
   eth0eth1eth3eth4
 Kbps in  Kbps out   Kbps in  Kbps out   Kbps in  Kbps out   Kbps in  Kbps out
0.00  0.00  0.00  0.00  0.00  0.00  3.65 10.81
0.00  0.00  0.00  0.00  0.00  0.00  0.50  1.45
0.00  0.00  0.00  0.00  0.00  0.00  0.83  1.95
0.00  0.00  0.00  0.00  0.00  0.00  1.50  8.03
0.00  0.00  0.00  0.00  0.00  0.00  0.50  1.45
0.00  0.00  0.00  0.00  0.00  0.00  1.00  1.45
0.00  230009.2  0.00  0.00  0.00  0.00  2.83 51.22
0.00  0.00  334969.3  0.00  0.00  0.00  1.00  1.45
0.00  369184.5  0.00  0.00  0.00  0.00  0.50  1.45
0.00  0.00  369294.2  0.00  0.00  0.00  3.33 51.10
0.00  367348.7  0.00  0.00  0.00  0.00  0.50  1.45
0.00  0.00  3

Re: Proposed 6.2 em RELEASE patch

2006-11-13 Thread Scott Long

Mike Tancsa wrote:

At 12:15 AM 11/13/2006, Scott Long wrote:



Is this with EM_INTR_FAST enabled also?



Without it, the 2 streams are definitely lossy on the management interface


---Mike




Ok, and would you be able to test the polling options as well?

Scott

___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Proposed 6.2 em RELEASE patch

2006-11-13 Thread Mike Tancsa

At 12:15 AM 11/13/2006, Scott Long wrote:



Is this with EM_INTR_FAST enabled also?


Without it, the 2 streams are definitely lossy on the management interface


---Mike


___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Proposed 6.2 em RELEASE patch

2006-11-13 Thread Ivan Voras
Mike Tancsa wrote:
> At 12:15 AM 11/13/2006, Scott Long wrote:
> 
>> Is this with EM_INTR_FAST enabled also?
> 
> Yes.  Havent done the stock case yet, but will do so later today.

Do you have a comparison with Linux under the same circumstances?

___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Proposed 6.2 em RELEASE patch

2006-11-13 Thread Mike Tancsa

At 12:15 AM 11/13/2006, Scott Long wrote:


Is this with EM_INTR_FAST enabled also?



Yes.  Havent done the stock case yet, but will do so later today.

---Mike

___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Proposed 6.2 em RELEASE patch

2006-11-12 Thread Scott Long

Mike Tancsa wrote:

At 11:05 PM 11/12/2006, Scott Long wrote:

Mike Tancsa wrote:
However, if I turn on fastforwarding, its back to the old behavior 
with it locking up.  This was with the stock driver. I will try the 
same test with

#define EM_FAST_INTR 1
as well as taking out the nfs option from the kernel driver.  
Anything else to tune with ?

---Mike


Would you mind going so far as to adding NO_ADAPTIVE_MUTEXES?  This is


Wow, it totally survives 2 streams (2 in one direction or 2 in opposite 
directions)... AND it almost can survive a 3rd! It does seem to be 
dropping packets on em1 when I add in a second stream blasting in the 
same direction, but its survives.  You can see at ** I add in the second 
stream, and the outbound on em1 drops, even though more packets are 
going through.  I stop the second stream then add a stream going in the 
other direction.  Oddly enough, with a UP kernel it cant do 2 streams, 
just the one.  I thought the extra locking on SMP would make it worse ?  
In this case it seems no.




Is this with EM_INTR_FAST enabled also?

Scott
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Proposed 6.2 em RELEASE patch

2006-11-12 Thread Mike Tancsa

At 11:05 PM 11/12/2006, Scott Long wrote:

Mike Tancsa wrote:
However, if I turn on fastforwarding, its back to the old behavior 
with it locking up.  This was with the stock driver. I will try the 
same test with

#define EM_FAST_INTR 1
as well as taking out the nfs option from the kernel 
driver.  Anything else to tune with ?

---Mike


Would you mind going so far as to adding NO_ADAPTIVE_MUTEXES?  This is


Wow, it totally survives 2 streams (2 in one direction or 2 in 
opposite directions)... AND it almost can survive a 3rd! It does seem 
to be dropping packets on em1 when I add in a second stream blasting 
in the same direction, but its survives.  You can see at ** I add in 
the second stream, and the outbound on em1 drops, even though more 
packets are going through.  I stop the second stream then add a 
stream going in the other direction.  Oddly enough, with a UP kernel 
it cant do 2 streams, just the one.  I thought the extra locking on 
SMP would make it worse ?  In this case it seems no.



   em0 em1 bge1
 Kbps in  Kbps out   Kbps in  Kbps out   Kbps in  Kbps out
0.00  0.00  0.00  0.00  0.47  1.17
0.00  0.00  0.00  0.00  0.47  1.17
0.00  0.00  0.00  0.00  0.94  1.17
184837.3  0.00  0.00  184634.5  0.47  1.17
416856.2  0.00  0.00  416232.3  0.94  1.17
414080.2  0.00  0.00  413829.7  0.47  1.17
415656.3  0.00  0.00  415449.1  1.40  1.17
413015.0  0.00  0.00  412519.6  0.94  1.17
415094.8  0.00  0.00  414795.6  1.87  1.17
415548.6  0.00  0.00  415323.7  0.47  1.17
416629.6  0.00  0.00  416046.7  1.40  1.17
417032.5  0.00  0.00  416854.1  0.47  1.17
416606.9  0.00  0.00  416217.9  0.94  1.17
591084.4  0.00  0.00  307308.9  0.47  1.17**
692232.6  0.00  0.00  248915.3  1.41  2.34
692837.6  0.00  0.00  248765.0  0.47  1.17
690216.7  0.00  0.00  245400.2  1.26  1.59
697517.9  0.00  0.00  245689.7  0.94  2.34
697039.0  0.00  0.00  245553.8  1.40  3.09
697424.1  0.00  0.00  244360.9  0.47  1.17
692166.5  0.00  0.00  245316.4  0.94  1.17
697102.3  0.00  0.00  244969.0  0.47  1.17
560005.0  0.00  0.00  329704.8  0.94  3.09
405189.2  0.00  0.00  404969.8  0.94  1.17
417511.0  0.00  0.00  416902.5  0.47  1.17
415029.0  0.00  0.00  414745.3  0.94  1.17
411610.7  15798.46  49760.74  347870.8  0.94  1.17
417520.1  55251.77  174393.0  187379.1  1.40  2.34
414477.5  56203.05  174188.7  185302.4  0.47  1.17
   em0 em1 bge1
 Kbps in  Kbps out   Kbps in  Kbps out   Kbps in  Kbps out
416985.7  55063.17  174285.5  186733.5  0.94  2.34
415291.6  55358.65  174493.7  184466.1  1.41  5.01
409410.6  57657.47  174494.3  186945.9  0.94  1.17
417197.4  55271.79  173405.6  189667.3  0.94  3.09
415310.8  55503.47  174283.4  186058.0  0.94  1.17
417290.4  55983.99  174279.4  185274.7  0.94  4.59
418032.6  55648.61  174424.4  186057.0  0.94  1.17
416777.8  55283.73  174886.1  185034.6  0.47  1.17
414412.4  33989.34  105397.4  276853.1  0.94  1.17
416477.8  0.00  0.00  415984.6  0.47  1.17
416656.7  0.00  0.00  416117.0  0.94  1.17
416527.4  0.00  0.00  416372.2  0.47  1.17
250260.8  0.00  0.00  250029.2  0.94  1.17
0.00  0.00  0.00  0.00  0.47  1.17
0.00  0.00  0.00  0.00  0.94  1.17 


___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Proposed 6.2 em RELEASE patch

2006-11-12 Thread Scott Long

Mike Tancsa wrote:
However, if I turn on fastforwarding, its back to the old behavior with 
it locking up.  This was with the stock driver. I will try the same test 
with


#define EM_FAST_INTR 1

as well as taking out the nfs option from the kernel driver.  Anything 
else to tune with ?


---Mike



Would you mind going so far as to adding NO_ADAPTIVE_MUTEXES?  This is
excellent data, thanks a lot for working on it.

Scott
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Proposed 6.2 em RELEASE patch

2006-11-12 Thread Mike Tancsa

At 08:47 PM 11/12/2006, Scott Long wrote:

2. Try compiling in WITNESS and running the test as before, then break
into the debugger as before.  Run 'show locks'.  I'm not sure how
fruitful this will be, WITNESS might make it unbearably slow.

It was in that kernel already


So you're seeing the livelock under load while also having WITNESS 
enabled?  Have you tried your test without WITNESS?  What about INVARIANTS?


Sorry, by it was in the kernel already, it was from last nights tests 
where you asked me to break into the debugger to see what was going 
on. I figured you would want it in there.  My original tests were all 
without WITNESS and INVARIANTS and they were showing the same 
behaviour (locking up on the management interface) with and without 
WITNESS and INVARIANTS



Removing ADAPTIVE_GIANT seems to be very key in this!  If I remove 
it, the box no longer locks up under a high packet rate! Its still a 
little sluggish on the bge OOB interface, but its not totally locking 
up like before


Running ifstat -b from the management interface, here is the traffic 
pattern first with one blast running and then the second kicks 
in.  The Kbps/s out on em1 drops in half, but the box is still 
responsive and bge1... Certainly responsive enough to see the output of ifstat.




218028.4  0.00  0.00  216389.9  0.47  1.17
218971.2  0.00  0.00  217123.1  0.94  2.34
217754.7  0.00  0.00  215677.2  0.94  1.17
215763.1  0.00  0.00  214578.5  0.47  1.17
217850.3  0.00  0.00  216138.7  1.40  2.34
217668.0  0.00  0.00  215888.3  0.47  1.17
   em0 em1 bge1
 Kbps in  Kbps out   Kbps in  Kbps out   Kbps in  Kbps out
217382.3  0.00  0.00  216293.8  1.26  1.59
218247.9  118916.5  234167.3  124972.1  0.47  2.17
215973.4  220459.9  393350.0  54875.64  1.40  2.34
217697.7  210984.5  398543.3  58165.20  0.94  3.09
217183.6  200424.9  399096.5  61845.74  0.94  1.17
217788.7  221212.9  400129.8  53716.38  0.47  1.17
217040.0  204934.2  396628.7  61247.34  1.40  2.34
217105.9  201295.5  399274.1  61710.76  0.94  3.09
215605.6  225012.4  397533.5  53237.31  0.94  1.17
217933.3  200346.4  395949.3  62734.52  0.47  1.17
216783.7  205114.1  395923.0  61042.17  0.94  1.17
217885.7  88513.41  159056.4  151418.9  0.47  1.17
216927.2  0.00  0.00  215450.4  0.94  1.17
217454.1  0.00  0.00  215466.6  0.47  1.17
216810.6  0.00  0.00  215564.2  1.40  1.17
217608.3  0.00  0.00  216061.8  0.47  1.17
217452.8  0.00  0.00  215627.1  0.94  1.17
217185.0  0.00  0.00  216079.7  0.47  1.17


However, if I turn on fastforwarding, its back to the old behavior 
with it locking up.  This was with the stock driver. I will try the 
same test with


#define EM_FAST_INTR 1

as well as taking out the nfs option from the kernel 
driver.  Anything else to tune with ?


---Mike






Scott


___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Proposed 6.2 em RELEASE patch

2006-11-12 Thread Scott Long

Mike Tancsa wrote:

At 11:41 AM 11/12/2006, Scott Long wrote:

Mike Tancsa wrote:

At 01:42 AM 11/11/2006, Scott Long wrote:
driver.  What will help me is if you can hook up a serial console to

your machine and see if it can be made to drop to the debugger while it
is under load and otherwise unresponsive.  If you can, getting a 
process

dump might help confirm where each CPU is spending its time.


./netblast 192.168.88.218 500 110 1000
I compiled in the various debugging options and on the serial console 
I get a few

Expensive timeout(9) function: 0xc0601e48(0) 0.024135749 s
and the serial console


One CPU seems to be stuck in softclock.  My guess here is that there 
is significant lock contention.  Please try the following:


1. Use addr2line or gdb on the kernel to find out what function is at
0xc0601e48 (the address that was printed above).  This address will
change every time you recompile the kernel, so you'll need to reacquire
it from the console each time.


# addr2line 0xc0601e48 -e kernel.debug -f
nfsrv_timer
/usr/src/sys/nfsserver/nfs_srvsock.c:809
#



Can you try removing NFS from your kernel?


and

# addr2line 0xc0561444 -e kernel.debug -f
sleepq_timeout
/usr/src/sys/kern/subr_sleepqueue.c:724


This is sched_lock contention.



I dont have any nfs activity on the box


2. Try compiling in WITNESS and running the test as before, then break
into the debugger as before.  Run 'show locks'.  I'm not sure how
fruitful this will be, WITNESS might make it unbearably slow.


It was in that kernel already


So you're seeing the livelock under load while also having WITNESS 
enabled?  Have you tried your test without WITNESS?  What about INVARIANTS?


Scott
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Proposed 6.2 em RELEASE patch

2006-11-12 Thread Mike Tancsa

At 11:41 AM 11/12/2006, Scott Long wrote:

Mike Tancsa wrote:

At 01:42 AM 11/11/2006, Scott Long wrote:
driver.  What will help me is if you can hook up a serial console to

your machine and see if it can be made to drop to the debugger while it
is under load and otherwise unresponsive.  If you can, getting a process
dump might help confirm where each CPU is spending its time.


./netblast 192.168.88.218 500 110 1000
I compiled in the various debugging options and on the serial 
console I get a few

Expensive timeout(9) function: 0xc0601e48(0) 0.024135749 s
and the serial console


One CPU seems to be stuck in softclock.  My guess here is that there 
is significant lock contention.  Please try the following:


1. Use addr2line or gdb on the kernel to find out what function is at
0xc0601e48 (the address that was printed above).  This address will
change every time you recompile the kernel, so you'll need to reacquire
it from the console each time.


# addr2line 0xc0601e48 -e kernel.debug -f
nfsrv_timer
/usr/src/sys/nfsserver/nfs_srvsock.c:809
#

and

# addr2line 0xc0561444 -e kernel.debug -f
sleepq_timeout
/usr/src/sys/kern/subr_sleepqueue.c:724

I dont have any nfs activity on the box


2. Try compiling in WITNESS and running the test as before, then break
into the debugger as before.  Run 'show locks'.  I'm not sure how
fruitful this will be, WITNESS might make it unbearably slow.


It was in that kernel already

All it would generally show is

exclusive spin mutex sio r = 0 (0xc07c81c0) locked @ 
/usr/src/sys/dev/sio/sio.c:1390


But I did notice in /var/log/kernel

Nov 12 00:04:09 R2 kernel: exclusive spin mutex sio r = 0 
(0xc07c81c0) locked @ /usr/src/sys/dev/sio/sio.c:1390
Nov 12 00:04:09 R2 kernel: exclusive sleep mutex em1 (network driver) 
r = 0 (0xc64bc9d4) locked @ /usr/src/sys/dev/ em/if_em.c:3569
Nov 12 00:04:09 R2 kernel: exclusive spin mutex sio r = 0 
(0xc07c81c0) locked @ /usr/src/sys/dev/sio/sio.c:1390

Nov 12 19:27:39 R2 kernel: KDB: enter: Line break on console
Nov 12 19:27:39 R2 kernel: exclusive spin mutex sio r = 0 
(0xc07c81c0) locked @ /usr/src/sys/dev/sio/sio.c:1390

Nov 12 19:28:13 R2 kernel: KDB: enter: Line break on console
Nov 12 19:28:13 R2 kernel: exclusive spin mutex sio r = 0 
(0xc07c81c0) locked @ /usr/src/sys/dev/sio/sio.c:1390

Nov 12 19:31:37 R2 kernel: KDB: enter: Line break on console
Nov 12 19:31:37 R2 kernel: exclusive spin mutex sio r = 0 
(0xc07c81c0) locked @ /usr/src/sys/dev/sio/sio.c:1390

Nov 12 19:34:22 R2 kernel: KDB: enter: Line break on console
Nov 12 19:34:22 R2 kernel: exclusive spin mutex sio r = 0 
(0xc07c81c0) locked @ /usr/src/sys/dev/sio/sio.c:1390






3. Turn on MUTEX_PROFILING according to the text in /sys/conf/NOTES and
the man page by the same name.
4. Remove ADAPTIVE_GIANT from your config and retest.  If that doesn't
show a difference, then try setting NO_ADAPTIVE_MUTEXES.


OK, did this recompiling without WITNESS and INVARIANTS and took out 
ADAPTIVE_GIANT as instructed in the man pages


# sysctl -a | grep mutex
debug.mutex.prof.enable: 1
debug.mutex.prof.acquisitions: 584672946
debug.mutex.prof.records: 450
debug.mutex.prof.maxrecords: 1000
debug.mutex.prof.rejected: 0
debug.mutex.prof.hashsize: 1009
debug.mutex.prof.collisions: 75
debug.mutex.prof.stats:
10 1263 226 500 
/usr/src/sys/kern/sys_pipe.c:1345 (pipe mutex)
 3  682 369 1   13 6908 
/usr/src/sys/vm/vm_fault.c:851 (vm page queue mutex)
10 2256 623 3   23   15 
/usr/src/sys/i386/i386/pmap.c:1891 (vm page queue mutex)
   120  883 401 2   15   26 
/usr/src/sys/vm/vm_fault.c:909 (vm page queue mutex)
25   25   12500 
/usr/src/sys/i386/i386/pmap.c:2572 (vm page queue mutex)
19  169  33 511 
/usr/src/sys/vm/vm_object.c:1801 (vm page queue mutex)
 4   24   9 200 
/usr/src/sys/vm/vm_object.c:646 (vm page queue mutex)
 3   23   8 211 
/usr/src/sys/kern/vfs_bio.c:3384 (vm page queue mutex)
 2   12   6 200 
/usr/src/sys/vm/vm_pageout.c:1511 (vm page queue mutex)
 4  120  44 200 
/usr/src/sys/kern/vfs_bio.c:3315 (vm page queue mutex)
 3  100  44 200 
/usr/src/sys/kern/vfs_bio.c:3120 (vm page queue mutex)
 39   4 200 
/usr/src/sys/kern/vfs_bio.c:3577 (vm page queue mutex)
 11   1 104 
/usr/src/sys/kern/sys_pipe.c:1270 (pipe mutex)
 2   16   8 200 
/usr/src/sys/vm/vm_page.c:1481 (vm page queue mutex)
 28   4 20

Re: Proposed 6.2 em RELEASE patch

2006-11-12 Thread Scott Long

Mike Tancsa wrote:

At 01:42 AM 11/11/2006, Scott Long wrote:
driver.  What will help me is if you can hook up a serial console to

your machine and see if it can be made to drop to the debugger while it
is under load and otherwise unresponsive.  If you can, getting a process
dump might help confirm where each CPU is spending its time.



./netblast 192.168.88.218 500 110 1000

I compiled in the various debugging options and on the serial console I 
get a few


Expensive timeout(9) function: 0xc0601e48(0) 0.024135749 s
and the serial console



One CPU seems to be stuck in softclock.  My guess here is that there is 
significant lock contention.  Please try the following:


1. Use addr2line or gdb on the kernel to find out what function is at
0xc0601e48 (the address that was printed above).  This address will
change every time you recompile the kernel, so you'll need to reacquire
it from the console each time.
2. Try compiling in WITNESS and running the test as before, then break
into the debugger as before.  Run 'show locks'.  I'm not sure how
fruitful this will be, WITNESS might make it unbearably slow.
3. Turn on MUTEX_PROFILING according to the text in /sys/conf/NOTES and
the man page by the same name.
4. Remove ADAPTIVE_GIANT from your config and retest.  If that doesn't
show a difference, then try setting NO_ADAPTIVE_MUTEXES.

Thanks,

Scott
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Proposed 6.2 em RELEASE patch

2006-11-12 Thread Mike Tancsa

At 08:45 AM 11/12/2006, Adrian Chadd wrote:

Should fiddling with the interrupt-coalescing stuff in the em driver
via sysctl be tried?
None of the recent tests in reply to your email indicate any
particular tx/rx threshold settings.



I was using whatever is the default.  What would you like me to test ?

# sysctl -A dev.em
dev.em.0.%desc: Intel(R) PRO/1000 Network Connection Version - 6.2.9
dev.em.0.%driver: em
dev.em.0.%location: slot=0 function=0
dev.em.0.%pnpinfo: vendor=0x8086 device=0x105e subvendor=0x8086 
subdevice=0x115e class=0x02

dev.em.0.%parent: pci6
dev.em.0.debug_info: -1
dev.em.0.stats: -1
dev.em.0.rx_int_delay: 0
dev.em.0.tx_int_delay: 66
dev.em.0.rx_abs_int_delay: 66
dev.em.0.tx_abs_int_delay: 66
dev.em.0.rx_processing_limit: 100
dev.em.1.%desc: Intel(R) PRO/1000 Network Connection Version - 6.2.9
dev.em.1.%driver: em
dev.em.1.%location: slot=0 function=1
dev.em.1.%pnpinfo: vendor=0x8086 device=0x105e subvendor=0x8086 
subdevice=0x115e class=0x02

dev.em.1.%parent: pci6
dev.em.1.debug_info: -1
dev.em.1.stats: -1
dev.em.1.rx_int_delay: 0
dev.em.1.tx_int_delay: 66
dev.em.1.rx_abs_int_delay: 66
dev.em.1.tx_abs_int_delay: 66
dev.em.1.rx_processing_limit: 100




adrian

--
Adrian Chadd - [EMAIL PROTECTED]
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Proposed 6.2 em RELEASE patch

2006-11-12 Thread Adrian Chadd

Should fiddling with the interrupt-coalescing stuff in the em driver
via sysctl be tried?
None of the recent tests in reply to your email indicate any
particular tx/rx threshold settings.



adrian

--
Adrian Chadd - [EMAIL PROTECTED]
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Proposed 6.2 em RELEASE patch

2006-11-11 Thread Mike Tancsa

At 01:42 AM 11/11/2006, Scott Long wrote:
driver.  What will help me is if you can hook up a serial console to

your machine and see if it can be made to drop to the debugger while it
is under load and otherwise unresponsive.  If you can, getting a process
dump might help confirm where each CPU is spending its time.



./netblast 192.168.88.218 500 110 1000

I compiled in the various debugging options and on the serial console 
I get a few


Expensive timeout(9) function: 0xc0601e48(0) 0.024135749 s
and the serial console


telnet> send break
Expensive timeout(9) function: 0xc0561444(0xc63f1d80) 0.072485748 s
KDB: enter: Line break on console
[thread pid 27 tid 100017 ]
Stopped at  kdb_enter+0x2b: nop
db>

db> ps
  pid  ppid  pgrp   uid   state   wmesg wchancmd
 1206  1123  1206 0  R+  ifstat
 1155  1154  1155 0  R+  csh
 1154 1  1154 0  Ss+ wait 0xc6722218 login
 1123  1122  1123 0  S+  pause0xc6722894 csh
 1122  1117  1122  1002  S+  wait 0xc6739430 su
 1117  1116  1117  1002  Ss+ pause0xc6aa024c csh
 1116  1114  1114  1002  R   sshd
 1114  1028  1114 0  Ss  sbwait   0xc6893370 sshd
 1112 1  1112 0  Ss+ ttyin0xc65ba810 getty
  1   0  Ss+ ttyin0xc65bac10 getty
 1110 1  1110 0  Ss+ ttyin0xc65bb010 getty
 1109 1  1109 0  Ss+ ttyin0xc65bc410 getty
 1108 1  1108 0  Ss+ ttyin0xc65b4010 getty
 1107 1  1107 0  Ss+ ttyin0xc65bd010 getty
 1106 1  1106 0  Ss+ ttyin0xc65bcc10 getty
 1105 1  1105 0  Ss+ ttyin0xc65b2010 getty
 1044 1  1044 0  Ss  nanslp   0xc076ecac cron
 1038 1  103825  Ss  pause0xc6ab2aac sendmail
 1034 1  1034 0  Rs  sendmail
 1028 1  1028 0  Ss  select   0xc07bc004 sshd
  898 1   898 0  Ss  bo_wwait 0xc6ac9130 syslogd
  846 1   846 0  Ss  select   0xc07bc004 devd
  445 1   44565  Ss  select   0xc07bc004 dhclient
  425 143 0  S+  select   0xc07bc004 dhclient
  124 1   124 0  Ss  pause0xc6739034 adjkerntz
   42 0 0 0  SL  -0xe8ff9d04 [schedcpu]
   41 0 0 0  SL  sdflush  0xc07c50f4 [softdepflush]
   40 0 0 0  RL  [syncer]
   39 0 0 0  RL  [vnlru]
   38 0 0 0  SL  psleep   0xc07bc56c [bufdaemon]
   37 0 0 0  SL  pgzero   0xc07c6064 [pagezero]
   36 0 0 0  SL  psleep   0xc07c5bb4 [vmdaemon]
   35 0 0 0  SL  psleep   0xc07c5b70 [pagedaemon]
   34 0 0 0  WL  [irq1: atkbd0]
   33 0 0 0  WL  [irq7: ppc0]
   32 0 0 0  WL  [swi0: sio]
   31 0 0 0  RL  [acpi_cooling0]
   30 0 0 0  SL  tzpoll   0xc08cd838 [acpi_thermal]
   29 0 0 0  WL  [irq19: bge1]
   28 0 0 0  WL  [irq16: bge0+]
   27 0 0 0  RL  CPU 1   [irq18: em1]
   26 0 0 0  WL  [irq17: em0]
   25 0 0 0  WL  [irq23: nve0]
   24 0 0 0  WL  [irq22: atapci2]
   23 0 0 0  WL  [irq21: atapci1]
   22 0 0 0  WL  [irq15: ata1]
   21 0 0 0  WL  [irq14: ata0]
   20 0 0 0  WL  [irq9: acpi0]
9 0 0 0  SL  -0xc645f080 [kqueue taskq]
   19 0 0 0  WL  [swi2: cambio]
8 0 0 0  SL  -0xc645f280 [acpi_task_2]
7 0 0 0  SL  -0xc645f280 [acpi_task_1]
6 0 0 0  SL  -0xc645f280 [acpi_task_0]
   18 0 0 0  WL  [swi5: +]
5 0 0 0  SL  -0xc645f400 [thread taskq]
   17 0 0 0  WL  [swi6: Giant taskq]
   16 0 0 0  WL  [swi6: task queue]
   15 0 0 0  RL  [yarrow]
4 0 0 0  RL  [g_down]
3 0 0 0  RL  [g_up]
2 0 0 0  RL  [g_event]
   14 0 0 0  WL  [swi3: vm]
   13 0 0 0  RL  CPU 0   [swi4: clock sio]
   12 0 0 0  WL  [swi1: net]
   11 0 0 0  RL  [idle: cpu0]
   10 0 0 0  RL  [idle: cpu1]
1 0 1

Re: Proposed 6.2 em RELEASE patch

2006-11-11 Thread Mike Tancsa

At 01:42 AM 11/11/2006, Scott Long wrote:


surprised by your results.  I'm still a bit unclear on the exact
topology of your setup, so if could explain it some more in private
email, I'd appreciate it.


Hi,
I made a quick diagram of the test setup that should make it 
more clear


http://www.tancsa.com/blast.jpg

Basically 5 boxes (plus my workstation for out of band access), the 
main one being tested is the box marked R2 which has a 2 port PCIe em 
NIC (Pro 1000PT) in the motherboard's 4X slot.  I have 2 test boxes 
as UDP senders and 2 test boxes as UDP receivers, and all the packets 
flow through the 2 interfaces of R2.  With one stream of packets 
being blasted across, the box is dropping some packets even on its 
OOB management interface. With 2, its totally unresponsive.  Only 
with polling am I able to continue to work on the box via the OOB 
interface while one and even 2 streams of UDP packets are blasting 
across.  However, in polling mode some amount of packets are being 
dropped and I guess I need to better understand how many.  My goal in 
all this is to have a firewall / router that can withstand a high pps 
workload that will still be reachable OOB when under attack or even 
under high workload.


To measure how many packets are dropped I was looking at making a 
modified netreceive to count the packets it gets so I can test to see 
if polling mode will be adequate for my needs.


Lets say the max pps the box can handle is X, either in polling or 
non polling modes.  As the box approaches X and gets pushed beyond X, 
I guess the ideal situation for my needs would be that it drops some 
packets on the busiest interface so that it can still function and 
service its other needs, be that network, disk, whatever. But my 
question is, is X the same for polling and non polling modes.




For the short term, I don't think that there is anything that can be
magically tweaked that will safely give better results.  I know that
Gleb has some ideas on a fairly simple change for the non-INTR_FAST,
non-POLLING case, but I and several others worry that it's not robust
in the face of real-world network problems.

For the long term, I have a number of ideas for improving both the RX
and TX paths in the driver.  Some of it is specific to the if_em driver,
some involve improvements in the FFWD and PFIL_HOOKS code as well as the
driver.  What will help me is if you can hook up a serial console to
your machine and see if it can be made to drop to the debugger while it
is under load and otherwise unresponsive.  If you can, getting a process
dump might help confirm where each CPU is spending its time.


Yes, I will see what I can do over the weekend. I have some changes 
to babysit again tomorrow night and will see what I can do between cycles.


---Mike 


___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Proposed 6.2 em RELEASE patch

2006-11-10 Thread Clayton Milos


- Original Message - 
From: "Scott Long" <[EMAIL PROTECTED]>

To: "Mike Tancsa" <[EMAIL PROTECTED]>
Cc: "freebsd-net" ; <[EMAIL PROTECTED]>; 
; "Jack Vogel" <[EMAIL PROTECTED]>

Sent: Saturday, November 11, 2006 8:42 AM
Subject: Re: Proposed 6.2 em RELEASE patch



Mike Tancsa wrote:

At 05:00 PM 11/10/2006, Jack Vogel wrote:

On 11/10/06, Mike Tancsa <[EMAIL PROTECTED]> wrote:


Some more tests. I tried again with what was committed to today's
RELENG_6. I am guessing its pretty well the same patch.  Polling is
the only way to avoid livelock at a high pps rate.  Does anyone know
of any simple tools to measure end to end packet loss ? Polling will
end up dropping some packets and I want to be able to compare.  Same
hardware from the previous post.


The commit WAS the last patch I posted. SO, making sure I understood 
you,

you are saying that POLLING is doing better than FAST_INTR, or only
better than the legacy code that went in with my merge?


Hi,
The last set of tests I posted are ONLY with what is in today's 
RELENG_6-- i.e. the latest commit. I did a few variations on the driver--  
first with

#define EM_FAST_INTR 1
in if_em.c

one without

and one with polling in the kernel.

With a decent packet rate passing through, the box will lockup.  Not sure 
if I am just hitting the limits of the PCIe bus, or interrupt moderation 
is not kicking in, or this is a case of "Doctor, it hurts when I send a 
lot of packets through"... "Well, dont do that"


Using polling prevents the lockup, but it will of course drop packets. 
This is for firewalls with a fairly high bandwidth rate, as well as I 
need it to be able to survive a decent DDoS attack.  I am not looking for 
1Mpps, but something more than 100Kpps


---Mike


Hi,

Thanks for all of the data.  I know that a good amount of testing was
done with single stream stress tests, but it's not clear how much was
done with multiple streams prior to your efforts.  So, I'm not terribly
surprised by your results.  I'm still a bit unclear on the exact
topology of your setup, so if could explain it some more in private
email, I'd appreciate it.

For the short term, I don't think that there is anything that can be
magically tweaked that will safely give better results.  I know that
Gleb has some ideas on a fairly simple change for the non-INTR_FAST,
non-POLLING case, but I and several others worry that it's not robust
in the face of real-world network problems.

For the long term, I have a number of ideas for improving both the RX
and TX paths in the driver.  Some of it is specific to the if_em driver,
some involve improvements in the FFWD and PFIL_HOOKS code as well as the
driver.  What will help me is if you can hook up a serial console to
your machine and see if it can be made to drop to the debugger while it
is under load and otherwise unresponsive.  If you can, getting a process
dump might help confirm where each CPU is spending its time.

Scott



I applied Jack's patch to the em driver and all seemed well until xl was 
giving me the same issues.


Thanks Jack on my machine your first patch looks 100%

Since my box does not take too much load and to me a slightly more loaded 
machine is better than an unstable one i re-complied the kernel without SMP 
so I have a dual CPU system with only one of the CPU's working.


I've smacked it with about 50G of data using samba and FTP and it didn't 
blink. I am however using a fxp card for the live IP side but the xl's are 
still in the kernel and getting picked up. I have just not configured them 
with IP's for traffic. I don't think this is the issue tho. I'd say there's 
something to do with the SMP code that is causing these issues.


I have another box with SMP on it. Same kind of setup with a Tyan Tiger 
instead of a Thunder motherboard. 2 Fxp NICs in it. Most of the time it's 
stable but if i throw a lot of traffic at it it locks up too. Next time it 
does I will post the console message, but there is no warnings about 
watchdog timeouts far as I can remember. It's running 5.5-RELEASE-p8 with 
SMP enabled.


-Clay

___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Proposed 6.2 em RELEASE patch

2006-11-10 Thread Scott Long

Mike Tancsa wrote:

At 05:00 PM 11/10/2006, Jack Vogel wrote:

On 11/10/06, Mike Tancsa <[EMAIL PROTECTED]> wrote:


Some more tests. I tried again with what was committed to today's
RELENG_6. I am guessing its pretty well the same patch.  Polling is
the only way to avoid livelock at a high pps rate.  Does anyone know
of any simple tools to measure end to end packet loss ? Polling will
end up dropping some packets and I want to be able to compare.  Same
hardware from the previous post.


The commit WAS the last patch I posted. SO, making sure I understood you,
you are saying that POLLING is doing better than FAST_INTR, or only
better than the legacy code that went in with my merge?


Hi,
The last set of tests I posted are ONLY with what is in today's 
RELENG_6-- i.e. the latest commit. I did a few variations on the 
driver-- first with

#define EM_FAST_INTR 1
in if_em.c

one without

and one with polling in the kernel.

With a decent packet rate passing through, the box will lockup.  Not 
sure if I am just hitting the limits of the PCIe bus, or interrupt 
moderation is not kicking in, or this is a case of "Doctor, it hurts 
when I send a lot of packets through"... "Well, dont do that"


Using polling prevents the lockup, but it will of course drop packets. 
This is for firewalls with a fairly high bandwidth rate, as well as I 
need it to be able to survive a decent DDoS attack.  I am not looking 
for 1Mpps, but something more than 100Kpps


---Mike


Hi,

Thanks for all of the data.  I know that a good amount of testing was
done with single stream stress tests, but it's not clear how much was
done with multiple streams prior to your efforts.  So, I'm not terribly
surprised by your results.  I'm still a bit unclear on the exact
topology of your setup, so if could explain it some more in private
email, I'd appreciate it.

For the short term, I don't think that there is anything that can be
magically tweaked that will safely give better results.  I know that
Gleb has some ideas on a fairly simple change for the non-INTR_FAST,
non-POLLING case, but I and several others worry that it's not robust
in the face of real-world network problems.

For the long term, I have a number of ideas for improving both the RX
and TX paths in the driver.  Some of it is specific to the if_em driver,
some involve improvements in the FFWD and PFIL_HOOKS code as well as the
driver.  What will help me is if you can hook up a serial console to
your machine and see if it can be made to drop to the debugger while it
is under load and otherwise unresponsive.  If you can, getting a process
dump might help confirm where each CPU is spending its time.

Scott
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Proposed 6.2 em RELEASE patch

2006-11-10 Thread Mike Tancsa

At 05:00 PM 11/10/2006, Jack Vogel wrote:

On 11/10/06, Mike Tancsa <[EMAIL PROTECTED]> wrote:


Some more tests. I tried again with what was committed to today's
RELENG_6. I am guessing its pretty well the same patch.  Polling is
the only way to avoid livelock at a high pps rate.  Does anyone know
of any simple tools to measure end to end packet loss ? Polling will
end up dropping some packets and I want to be able to compare.  Same
hardware from the previous post.


The commit WAS the last patch I posted. SO, making sure I understood you,
you are saying that POLLING is doing better than FAST_INTR, or only
better than the legacy code that went in with my merge?


Hi,
The last set of tests I posted are ONLY with what is in today's 
RELENG_6-- i.e. the latest commit. I did a few variations on the 
driver-- first with

#define EM_FAST_INTR 1
in if_em.c

one without

and one with polling in the kernel.

With a decent packet rate passing through, the box will lockup.  Not 
sure if I am just hitting the limits of the PCIe bus, or interrupt 
moderation is not kicking in, or this is a case of "Doctor, it hurts 
when I send a lot of packets through"... "Well, dont do that"


Using polling prevents the lockup, but it will of course drop 
packets. This is for firewalls with a fairly high bandwidth rate, as 
well as I need it to be able to survive a decent DDoS attack.  I am 
not looking for 1Mpps, but something more than 100Kpps


---Mike 


___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Proposed 6.2 em RELEASE patch

2006-11-10 Thread Jack Vogel

On 11/10/06, Mike Tancsa <[EMAIL PROTECTED]> wrote:


Some more tests. I tried again with what was committed to today's
RELENG_6. I am guessing its pretty well the same patch.  Polling is
the only way to avoid livelock at a high pps rate.  Does anyone know
of any simple tools to measure end to end packet loss ? Polling will
end up dropping some packets and I want to be able to compare.  Same
hardware from the previous post.


The commit WAS the last patch I posted. SO, making sure I understood you,
you are saying that POLLING is doing better than FAST_INTR, or only
better than the legacy code that went in with my merge?

Jack
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Proposed 6.2 em RELEASE patch

2006-11-10 Thread Mike Tancsa

At 05:00 PM 11/9/2006, Mike Tancsa wrote:

At 10:51 AM 11/9/2006, Scott Long wrote:

Mike Tancsa wrote:

At 08:19 PM 11/8/2006, Jack Vogel wrote:


BUT, I've added the FAST_INTR changes back into the code, so
if you go into your Makefile and add -DEM_FAST_INTR you will
then get the taskqueue stuff.
It certainly does make a difference performance wise.  I did some 
quick testing with netperf and netrate.  Back to back boxes, using 
an AMD x2 with bge nic and one intel box
CPU: AMD Athlon(tm) 64 X2 Dual Core Processor 3800+ (2009.27-MHz 
686-class CPU)
CPU: Intel(R) Core(TM)2 CPU  6400  @ 2.13GHz (2144.01-MHz 
686-class CPU)
The intel is a  DG965SS with integrated em nic, the AMD a Tyan 
with integrated bge.  Both running SMP kernels with pf built in, no inet6.


Intel box as sender. In this test its with the patch from 
yesterday. The first set with the patch as is, the second test 
with -DEM_FAST_INTR.


Thanks for the tests.  One thing to note is that Gleb reported a higher
rate of dropped packets with INTR_FAST.  He is the only one who has
reported this, so I'd like to find out if there is something unique to
his environment, or if there is a larger problem to be addressed.  There
are ways that we can change the driver to not drop any packets at all
for Gleb, but they expose the system to risk if there is ever an
accidental (or malicious) RX flood on the interface.


With a high rate of packets, I am able to live lock the box.  I 
setup the following


Some more tests. I tried again with what was committed to today's 
RELENG_6. I am guessing its pretty well the same patch.  Polling is 
the only way to avoid livelock at a high pps rate.  Does anyone know 
of any simple tools to measure end to end packet loss ? Polling will 
end up dropping some packets and I want to be able to compare.  Same 
hardware from the previous post.


SMP kernel  fastfwd  pf  ipfw  FAST_INTR   streams  np
 (Mb)
x  x   x  2   livelock
x  x  xx  2 468   livelock
x  x  2 453   lost 
packets, box sluggish
x xx  2   lost 
packets, box sluggish
x 2 468   lost 
packets, box 
sluggish

x  x  2 468   livelock
x  x  x   2 468   livelock
  2 475   livelock
   x  2   livelock

P 2   OK
P x   2   OK
P x   2   OK


The P is for Uniproc, but with Polling enabled (also kern.polling.idle_poll=1)


UP single stream 58Kpps, no polling in kernel
[bsd6-32bit]# ./netblast 192.168.44.1 500 10 10


start: 1163184051.627479975
finish:1163184061.628200458
send calls:5869051
send errors:   0
approx send rate:  586905
approx error rate: 0


with polling

[bsd6-32bit]# ./netblast 192.168.44.1 500 10 10

start: 1163184606.651001121
finish:1163184616.651288588
send calls:5866199
send errors:   1
approx send rate:  586619
approx error rate: 0



With polling and 2 streams at the same time (a lot of pps! and its 
still totally responsive!!)


[r6-32bit]# ./netblast 192.168.88.218 500 10 10

start: 1163184712.103954688
finish:1163184722.104388542
send calls:4528941
send errors:   0
approx send rate:  452894
approx error rate: 0
[r6-32bit]#


[bsd6-32bit]# ./netblast 192.168.44.1 500 10 20

start: 1163184793.172036336
finish:1163184813.173028921
send calls:11550594
send errors:   0
approx send rate:  577529
approx error rate: 0
[bsd6-32bit]#


polling, 2 streams at the same time

[bsd6-32bit]# ./netblast 192.168.44.1 500 10 20

start: 1163185058.477137404
finish:1163185078.478025226
send calls:11679831
send errors:   0
approx send rate:  583991
approx error rate: 0
[bsd6-32bit]# ./netblast 192.168.44.1 500 10 20

start: 1163185167.969551943
finish:1163185187.970435295
send calls:11706825
send errors:   0
approx send rate:  585341
approx error rate: 0
[bsd6-32bit]#



___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Proposed 6.2 em RELEASE patch

2006-11-09 Thread Jack Vogel

Yes, they are incompatible, I suppose there should be something
that makes it impossible to do, but not building should be a clue :)

Jack


On 11/9/06, Mike Tancsa <[EMAIL PROTECTED]> wrote:

At 08:19 PM 11/8/2006, Jack Vogel wrote:

>BUT, I've added the FAST_INTR changes back into the code, so
>if you go into your Makefile and add -DEM_FAST_INTR you will
>then get the taskqueue stuff.

Not sure why you would want FAST_INTR and polling in at the same
time, but I found that the two are mutually exclusive

cd
/usr/obj/usr/src/sys/pioneer;  MAKEOBJDIRPREFIX=/usr/obj
MACHINE_ARCH=i386  MACHINE=i386  CPUTYPE=
GROFF_BIN_PATH=/usr/obj/usr/src/tmp/legacy/usr/bin
GROFF_FONT_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/groff_font
GROFF_TMAC_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/tmac
_SHLIBDIRPREFIX=/usr/obj/usr/src/tmp  INSTALL="sh
/usr/src/tools/install.sh"
PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/usr/games:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/usr/obj/usr/src/tmp/usr/games:/sbin:/bin:/usr/sbin:/usr/bin
make KERNEL=kernel all -DNO_MODULES_OBJ
cc -c -O -pipe  -Wall -Wredundant-decls -Wnested-externs
-Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline
-Wcast-qual  -fformat-extensions -std=c99 -g -nostdinc -I-  -I.
-I/usr/src/sys -I/usr/src/sys/contrib/altq
-I/usr/src/sys/contrib/ipfilter -I/usr/src/sys/contrib/pf
-I/usr/src/sys/dev/ath -I/usr/src/sys/contrib/ngatm
-I/usr/src/sys/dev/twa -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS
-include opt_global.h -fno-common -finline-limit=8000 --param
inline-unit-growth=100 --param
large-function-growth=1000  -mno-align-long-strings
-mpreferred-stack-boundary=2  -mno-mmx -mno-3dnow -mno-sse -mno-sse2
-ffreestanding -Werror  /usr/src/sys/dev/em/if_em.c
/usr/src/sys/dev/em/if_em.c: In function `em_ioctl':
/usr/src/sys/dev/em/if_em.c:931: error: `em_poll' undeclared (first
use in this function)
/usr/src/sys/dev/em/if_em.c:931: error: (Each undeclared identifier
is reported only once
/usr/src/sys/dev/em/if_em.c:931: error: for each function it appears in.)
/usr/src/sys/dev/em/if_em.c: At top level:
/usr/src/sys/dev/em/if_em.c:1164: warning: 'em_poll' defined but not used
*** Error code 1

Stop in /usr/obj/usr/src/sys/pioneer.
*** Error code 1

Stop in /usr/src.
*** Error code 1

Stop in /usr/src.



___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Proposed 6.2 em RELEASE patch

2006-11-09 Thread Mike Tancsa

At 10:51 AM 11/9/2006, Scott Long wrote:

Mike Tancsa wrote:

At 08:19 PM 11/8/2006, Jack Vogel wrote:


BUT, I've added the FAST_INTR changes back into the code, so
if you go into your Makefile and add -DEM_FAST_INTR you will
then get the taskqueue stuff.
It certainly does make a difference performance wise.  I did some 
quick testing with netperf and netrate.  Back to back boxes, using 
an AMD x2 with bge nic and one intel box
CPU: AMD Athlon(tm) 64 X2 Dual Core Processor 3800+ (2009.27-MHz 
686-class CPU)
CPU: Intel(R) Core(TM)2 CPU  6400  @ 2.13GHz (2144.01-MHz 
686-class CPU)
The intel is a  DG965SS with integrated em nic, the AMD a Tyan with 
integrated bge.  Both running SMP kernels with pf built in, no inet6.


Intel box as sender. In this test its with the patch from 
yesterday. The first set with the patch as is, the second test with 
-DEM_FAST_INTR.


Thanks for the tests.  One thing to note is that Gleb reported a higher
rate of dropped packets with INTR_FAST.  He is the only one who has
reported this, so I'd like to find out if there is something unique to
his environment, or if there is a larger problem to be addressed.  There
are ways that we can change the driver to not drop any packets at all
for Gleb, but they expose the system to risk if there is ever an
accidental (or malicious) RX flood on the interface.


With a high rate of packets, I am able to live lock the box.  I setup 
the following



b1a --|
b2a -R1 b1b
  |-b2b


R1 has PCIe dual port em PRO/1000 PT

em0:  port 
0x9000-0x901f mem 0xd702-0xd703,0xd700-0xd701 irq 1

7 at device 0.0 on pci6
em0: Ethernet address: 00:15:17:0b:70:98
em0: [FAST]
em1:  port 
0x9400-0x941f mem 0xd704-0xd705,0xd706-0xd707 irq 1

8 at device 0.1 on pci6
em1: Ethernet address: 00:15:17:0b:70:99
em1: [FAST]

b1a = 192.168.44.1 onboard bge0
b1b = 192.168.88.218 - onboard em 82547EI Gigabit Ethernet Controller

b2a  = 192.168.88.176 single port PCIe em0
b2b =  192.168.44.244 onboard em0 (DG965SS)

R1 has 192.168.44.223 and 192.168.88.223.Routing across R1 with 
b1a blasting b1b and b2a blastin b2b with netrate will lock up R1 
even though the total throughput is only 500Mb.



While on b1a # ./netblast 192.168.88.218 500 10 1000

I see the following on R1 (bge1 is my management interface)

R1 # ifstat -b
   em0 em1 bge1
 Kbps in  Kbps out   Kbps in  Kbps out   Kbps in  Kbps out
273770.1  0.00  0.00  237269.1  1.40  3.51
273509.8  0.00  0.00  237040.2  1.73  2.76
273694.9  0.00  0.00  237202.6  0.94  2.34
274258.6  0.00  0.00  237690.4  1.40  2.34
273623.8  0.00  0.00  237140.7  0.94  2.34

If  I start up the netblast on b2b or on b2a (either direction, 
doesnt matter) R1 locks up. This was with R1 in an SMP config.


Without INTR_FAST, it doesnt work as fast, but R1 does not lock up, 
or at least lock me out of my management interface.


---Mike


___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Proposed 6.2 em RELEASE patch

2006-11-09 Thread Mike Tancsa

At 08:19 PM 11/8/2006, Jack Vogel wrote:


BUT, I've added the FAST_INTR changes back into the code, so
if you go into your Makefile and add -DEM_FAST_INTR you will
then get the taskqueue stuff.


Not sure why you would want FAST_INTR and polling in at the same 
time, but I found that the two are mutually exclusive


cd 
/usr/obj/usr/src/sys/pioneer;  MAKEOBJDIRPREFIX=/usr/obj 
MACHINE_ARCH=i386  MACHINE=i386  CPUTYPE= 
GROFF_BIN_PATH=/usr/obj/usr/src/tmp/legacy/usr/bin 
GROFF_FONT_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/groff_font 
GROFF_TMAC_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/tmac 
_SHLIBDIRPREFIX=/usr/obj/usr/src/tmp  INSTALL="sh 
/usr/src/tools/install.sh" 
PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/usr/games:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/usr/obj/usr/src/tmp/usr/games:/sbin:/bin:/usr/sbin:/usr/bin 
make KERNEL=kernel all -DNO_MODULES_OBJ
cc -c -O -pipe  -Wall -Wredundant-decls -Wnested-externs 
-Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline 
-Wcast-qual  -fformat-extensions -std=c99 -g -nostdinc -I-  -I. 
-I/usr/src/sys -I/usr/src/sys/contrib/altq 
-I/usr/src/sys/contrib/ipfilter -I/usr/src/sys/contrib/pf 
-I/usr/src/sys/dev/ath -I/usr/src/sys/contrib/ngatm 
-I/usr/src/sys/dev/twa -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS 
-include opt_global.h -fno-common -finline-limit=8000 --param 
inline-unit-growth=100 --param 
large-function-growth=1000  -mno-align-long-strings 
-mpreferred-stack-boundary=2  -mno-mmx -mno-3dnow -mno-sse -mno-sse2 
-ffreestanding -Werror  /usr/src/sys/dev/em/if_em.c

/usr/src/sys/dev/em/if_em.c: In function `em_ioctl':
/usr/src/sys/dev/em/if_em.c:931: error: `em_poll' undeclared (first 
use in this function)
/usr/src/sys/dev/em/if_em.c:931: error: (Each undeclared identifier 
is reported only once

/usr/src/sys/dev/em/if_em.c:931: error: for each function it appears in.)
/usr/src/sys/dev/em/if_em.c: At top level:
/usr/src/sys/dev/em/if_em.c:1164: warning: 'em_poll' defined but not used
*** Error code 1

Stop in /usr/obj/usr/src/sys/pioneer.
*** Error code 1

Stop in /usr/src.
*** Error code 1

Stop in /usr/src. 


___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Proposed 6.2 em RELEASE patch

2006-11-09 Thread Scott Long

Mike Tancsa wrote:

At 08:19 PM 11/8/2006, Jack Vogel wrote:


BUT, I've added the FAST_INTR changes back into the code, so
if you go into your Makefile and add -DEM_FAST_INTR you will
then get the taskqueue stuff.


It certainly does make a difference performance wise.  I did some quick 
testing with netperf and netrate.  Back to back boxes, using an AMD x2 
with bge nic and one intel box


CPU: AMD Athlon(tm) 64 X2 Dual Core Processor 3800+ (2009.27-MHz 
686-class CPU)
CPU: Intel(R) Core(TM)2 CPU  6400  @ 2.13GHz (2144.01-MHz 
686-class CPU)


The intel is a  DG965SS with integrated em nic, the AMD a Tyan with 
integrated bge.  Both running SMP kernels with pf built in, no inet6.



Intel box as sender. In this test its with the patch from yesterday. The 
first set with the patch as is, the second test with -DEM_FAST_INTR.




Thanks for the tests.  One thing to note is that Gleb reported a higher
rate of dropped packets with INTR_FAST.  He is the only one who has
reported this, so I'd like to find out if there is something unique to
his environment, or if there is a larger problem to be addressed.  There
are ways that we can change the driver to not drop any packets at all
for Gleb, but they expose the system to risk if there is ever an
accidental (or malicious) RX flood on the interface.

Scott

___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Proposed 6.2 em RELEASE patch

2006-11-09 Thread Mike Tancsa

At 08:19 PM 11/8/2006, Jack Vogel wrote:


BUT, I've added the FAST_INTR changes back into the code, so
if you go into your Makefile and add -DEM_FAST_INTR you will
then get the taskqueue stuff.


It certainly does make a difference performance wise.  I did some 
quick testing with netperf and netrate.  Back to back boxes, using an 
AMD x2 with bge nic and one intel box


CPU: AMD Athlon(tm) 64 X2 Dual Core Processor 3800+ (2009.27-MHz 686-class CPU)
CPU: Intel(R) Core(TM)2 CPU  6400  @ 2.13GHz (2144.01-MHz 
686-class CPU)


The intel is a  DG965SS with integrated em nic, the AMD a Tyan with 
integrated bge.  Both running SMP kernels with pf built in, no inet6.



Intel box as sender. In this test its with the patch from yesterday. 
The first set with the patch as is, the second test with -DEM_FAST_INTR.



TCP STREAM TEST to 192.168.44.1 : +/-2.5% @ 99% conf.
Recv   SendSend
Socket Socket  Message  Elapsed
Size   SizeSize Time Throughput
bytes  bytes   bytessecs.10^6bits/sec

 57344  57344   409662.19 858.16
 57344  57344   409662.19 934.58



TCP STREAM TEST to 192.168.44.1 : +/-2.5% @ 99% conf.
Recv   SendSend
Socket Socket  Message  Elapsed
Size   SizeSize Time Throughput
bytes  bytes   bytessecs.10^6bits/sec

 32768  32768   409662.27 551.46
 32768  32768   409662.26 788.56


TCP REQUEST/RESPONSE TEST to 192.168.44.1 : +/-2.5% @ 99% conf.
Local /Remote
Socket Size   Request  Resp.   Elapsed  Trans.
Send   Recv   Size SizeTime Rate
bytes  Bytes  bytesbytes   secs.per sec

32768  65536  11   62.262999.88
32768  65536
32768  65536  11   62.316165.46
32768  65536



UDP REQUEST/RESPONSE TEST to 192.168.44.1 : +/-2.5% @ 99% conf.
Local /Remote
Socket Size   Request  Resp.   Elapsed  Trans.
Send   Recv   Size SizeTime Rate
bytes  Bytes  bytesbytes   secs.per sec

9216   41600  11   62.303170.25
9216   41600
9216   41600  11   62.346170.81
9216   41600

UDP REQUEST/RESPONSE TEST to 192.168.44.1 : +/-2.5% @ 99% conf.
Local /Remote
Socket Size   Request  Resp.   Elapsed  Trans.
Send   Recv   Size SizeTime Rate
bytes  Bytes  bytesbytes   secs.per sec

9216   41600  516  4   62.282999.17
9216   41600
9216   41600  516  4   62.336031.56
9216   41600


UDP UNIDIRECTIONAL SEND TEST to 192.168.44.1 : +/-2.5% @ 99% conf.
Socket  Message  Elapsed  Messages
SizeSize Time Okay Errors   Throughput
bytes   bytessecs#  #   10^6bits/sec

 327684096   60.00 1743632 24778919 952.25
 41600   60.00 1742801951.79
 327684096   60.00 1743633 24722456 952.25
 41600   60.00 1742828951.81



UDP UNIDIRECTIONAL SEND TEST to 192.168.44.1 : +/-2.5% @ 99% conf.
Socket  Message  Elapsed  Messages
SizeSize Time Okay Errors   Throughput
bytes   bytessecs#  #   10^6bits/sec

 327681024   60.00 6831370 28639884 932.70
 41600   60.00 6828166932.27
 327681024   60.00 6831369 28465662 932.70
 41600   60.00 6828086932.26




Intel box as receiver, bge0/AMD as sender
First set of results using stock em driver from 6.2beta2
second set of results using first patch
3rd set using taskqueue enabled

/usr/local/netperf/netperf -t TCP_STREAM -l 60 -H 192.168.44.244 -i 
10,3 -I 99,5 -- -s 57344 -S 57344 -m 4096


TCP STREAM TEST to 192.168.44.244 : +/-2.5% @ 99% conf.
Recv   SendSend
Socket Socket  Message  Elapsed
Size   SizeSize Time Throughput
bytes  bytes   bytessecs.10^6bits/sec

 57344  57344   409660.00 680.24
 57344  57344   409660.00 680.34
 57344  57344   409660.00 680.54

TCP STREAM TEST to 192.168.44.244 : +/-2.5% @ 99% conf.
Recv   SendSend
Socket Socket  Message  Elapsed
Size   SizeSize Time Throughput
bytes  bytes   bytessecs.10^6bits/sec

 32768  32768   409660.00 496.72
 32768  32768   409660.00 499.87
 32768  32768   409660.00 677.63


TCP REQUEST/RESPONSE TEST to 192.168.44.244 : +/-2.5% @ 99% conf.
Local /Remote
Socket Size   Request  Resp.   Elapsed  Trans.
Send   Recv   Size SizeTime Rate
bytes  Bytes  bytesbytes   secs.per sec

32768  65536  11   60.002999.61
32768  65536
32768  65536  11   60.002999.50
32768  65536
32768  65536  11   60.006163.75
32768  65536


UDP REQUEST/RESPONSE TEST to 192.168.44.244 : +/-2.5% @ 99% conf.
Local /Remote
Socket Size   Request  Resp.   Elapsed  Trans.
Send   Recv   Size SizeTime Rate
bytes  Bytes  bytesbytes   secs.per sec

9216   41600  11   60.003099.52
9216   41600
9216   41600  11   60.003102.97
9216   41600
9216   41600  1  

Re: Proposed 6.2 em RELEASE patch

2006-11-08 Thread Jack Vogel

On 11/8/06, Sam Wun <[EMAIL PROTECTED]> wrote:

Without introduced this new patch, can I still use sysctl to maximise its
performance like FAST_INTR?

S


Not sure if I'm understanding you, but let me try.

You cannot attain the same receive performance without
the patch. When I use SmartBits and blast UDP packets
at TWO fiber PCI-E NICS and set it to 70% utilization of
the line it will just BURY the system, meaning that the
shell on the console will appear wedged. Once you stop the
test it recovers, but during it its totally consumed handling
interrupts. Perhaps with careful tweaking of everything you
can make things better, but if so that goes beyond my
tuning knowledge. Just one NIC will be OK, and if I drop
the utilization down to 45% its ok, but 50 and up and we
go into the tank, as it were :)

If you compile with EM_FAST_INTR then the system
will continue to operate quite well with the same load.

Now, this is one kind of load, and there is still other types
that work just fine without FAST_INTR, and without the
patch you can still use sysctl to adjust tuning parameters
as your needs vary. BUT, I do not believe you can do as
well as you can with FAST_INTR on, this is why I wanted
to get this code back into the driver conditionally before
RELEASE.

Does that answer your question Sam?

Regards,

Jack



On 11/9/06, Jack Vogel < [EMAIL PROTECTED]> wrote:
>
> This patch is an evolution of the last one I sent out. It has
> a couple of minor corrections, like a bad forward decl in
> the header.
>
> The last patch has had quite a bit of testing and all reports
> have been positive.  The only complaint was from Gleb who
> says he needs to keep his beloved infinite for loop in the
> interrupt handler, well I have a better one for you Gleb, keep
> reading.
>
> I have also been doing some extreme stress testing using
> SmartBits, and discovered the driver as it stands is really
> not able to take extreme receive side pounding, Scott
> pointed out that this is why the FAST_INTR work was done :)
>
> There were some people that had stability issues with that
> work, but there were also many that did not. I actually
> merged the FAST code onto my last patch, and ran the
> SB stress and found it really was able to gracefully handle
> that load, way to go Scott :)
>
> I've pondered this situation, and this patch I'm including here
> today is the result. Here's what it does:
>
> If you drop it in place, compile it, and go... you will get the
> code that has been tested for a week, it uses the older
> style interrupts, it has the watchdog and other SMP fixes
> so its been proven.
>
> BUT, I've added the FAST_INTR changes back into the code, so
> if you go into your Makefile and add -DEM_FAST_INTR you will
> then get the taskqueue stuff.
>
> So, Gleb, rather than replace the infinite for loop that no one
> thinks is a good idea, you can just define FAST_INTR again,
> and you should be good to go.
>
> I see this as the best thing for the 6.2 RELEASE, it lets us
> keep moving forward, people that want max performance
> can define EM_FAST_INTR and help us wring out any
> problems, it also will mean that I will have our Intel test
> group start using this code. But for those that just want
> a stable driver the standard compile will still give them that.
>
> The patch I'm including is against BETA3. Let me know of
> your concerns or issues.
>
> Cheers,
>
> Jack
>
>
> ___
> freebsd-net@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "
[EMAIL PROTECTED]"
>
>
>



___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Proposed 6.2 em RELEASE patch

2006-11-08 Thread Sam Wun

Without introduced this new patch, can I still use sysctl to maximise its
performance like FAST_INTR?

S

On 11/9/06, Jack Vogel <[EMAIL PROTECTED]> wrote:


This patch is an evolution of the last one I sent out. It has
a couple of minor corrections, like a bad forward decl in
the header.

The last patch has had quite a bit of testing and all reports
have been positive.  The only complaint was from Gleb who
says he needs to keep his beloved infinite for loop in the
interrupt handler, well I have a better one for you Gleb, keep
reading.

I have also been doing some extreme stress testing using
SmartBits, and discovered the driver as it stands is really
not able to take extreme receive side pounding, Scott
pointed out that this is why the FAST_INTR work was done :)

There were some people that had stability issues with that
work, but there were also many that did not. I actually
merged the FAST code onto my last patch, and ran the
SB stress and found it really was able to gracefully handle
that load, way to go Scott :)

I've pondered this situation, and this patch I'm including here
today is the result. Here's what it does:

If you drop it in place, compile it, and go... you will get the
code that has been tested for a week, it uses the older
style interrupts, it has the watchdog and other SMP fixes
so its been proven.

BUT, I've added the FAST_INTR changes back into the code, so
if you go into your Makefile and add -DEM_FAST_INTR you will
then get the taskqueue stuff.

So, Gleb, rather than replace the infinite for loop that no one
thinks is a good idea, you can just define FAST_INTR again,
and you should be good to go.

I see this as the best thing for the 6.2 RELEASE, it lets us
keep moving forward, people that want max performance
can define EM_FAST_INTR and help us wring out any
problems, it also will mean that I will have our Intel test
group start using this code. But for those that just want
a stable driver the standard compile will still give them that.

The patch I'm including is against BETA3. Let me know of
your concerns or issues.

Cheers,

Jack


___
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "[EMAIL PROTECTED]"




___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"