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>