Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 24 Mar 2012 11:26:41 +0100
From:      Andreas Longwitz <longwitz@incore.de>
To:        pyunyh@gmail.com
Cc:        freebsd-net@freebsd.org
Subject:   Re: Intel 82550 Pro/100 Ethernet and Microcode
Message-ID:  <4F6DA161.9040408@incore.de>
In-Reply-To: <20120320041647.GE7518@michelle.cdnetworks.com>
References:  <4F594856.3030303@incore.de> <20120312211907.GC3671@michelle.cdnetworks.com> <4F5E0AF7.30302@incore.de> <20120313202559.GA3360@michelle.cdnetworks.com> <4F66646E.4080603@incore.de> <20120320041647.GE7518@michelle.cdnetworks.com>

next in thread | previous in thread | raw e-mail | index | archive | help
YongHyeon PYUN wrote:

> I didn't ever try NFS on i82550C. If it can't handle fragmented IP
> datagrams, it would also have failed netperf UDP stream test since
> all UDP datagrams are fragmented.

Yes, you are right. The test needs to run more than 10 seconds to see
lost packets. Running
     netperf -H host_with_fxp -t UDP_STREAM -l 30000
gives without loading microcode on the fxp independent of polling:

Socket  Message  Elapsed      Messages
Size    Size     Time         Okay Errors   Throughput
bytes   bytes    secs            #      #   10^6bits/sec

  9216    9216   30001.38   38972627 194368988   95.77
 41600           30001.38   34293209             84.28

With microcode loaded no packets are lost.

>> The test command
>>       netperf -H host_with_fxp -t UDP_STREAM
>> gives nearly always the same output
>>
>> Socket  Message  Elapsed      Messages
>> Size    Size     Time         Okay Errors   Throughput
>> bytes   bytes    secs            #      #   10^6bits/sec
>>
>>   9216    9216   10.00       13069 1515880     96.34
>>  41600           10.00       13069             96.34
>>
>> And this output did not considerably change for the test cases fxp-type
>> i82550C or i82550, microcode loaded or not and polling yes or no.
>>
>> But I can answer your question concerning the CPU Saver funktion on
>> i82550C and its a little suprise (for me). In all my tests without
>> polling I checked the irq's on host_with_fxp using "vmstat -i". The
>> result is that the CPU Saver feature of the microcode does not work on
>> i82250C and it works on i82250. On i82250C the value of
>> dev.fxp.0.bundle_max is irrelevant, the i82250C always needs ca. 91000
>> irq's for the netperf test. The same number of irq's needs the i82250
>> with bundle_max=1, but when I set bundle_max=6 (the default), then the
>> number of irq's for the same test goes down to 91000/7 = 13000.
> 
> Thanks for the detailed information.  This indicates the microcode
> for i82550C does not have bundling feature.

Yes, but the microcode solves the stability problem for UDP streams, and
to load the microcode without side effects I need my "bzero-patch".

> By chance, did you
> ever update your controller firmware to newest one?  I don't
> remember whether I also updated controller firmware for i82550C but
> I used to update several i82559 controllers for PXE.

Thank you for this hint, I didn't know that the firmware in the
cantroller can be updated. All of my i82550C (= rev 0x0d) sit on a
(intel) motherboard of type SCB2S, all of my i82550 (= rev 0x0c) are
external cards. The following information I got with a DOS-Tool called
IBABUILD.exe. This tool supports the Intel boot Agent on the controller.
On the external cards this tool can update the Intel boot Agent software
and I found versions 3.0.03, 4.0.19 and the newest is 4.2.0.3.
But there never was any dependency between the version of the Intel boot
Agent software and microcode. For chips on the motherboard (LOM) the
tool does not show a version, but booting a server with PXE gives 4.0.17
for the version of the Intel boot Agent software. It looks like this
software is only responsible for PXE and nothing else.


Regards

Andreas Longwitz




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4F6DA161.9040408>