<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    <title></title>
  </head>
  <body text="#000000" bgcolor="#ffffff">
    Nice work, Yann!  Thanks for contributing this patch.<br>
    We will apply it to gPXE.<br>
    <br>
    / Marty /<br>
    <br>
    On 3/20/11 8:06 AM, Yann Cézard wrote:
    <blockquote type="cite" cite="mid:4D85EDBA.6060707@free.fr">Hi
      (g/i)pxe developpers,
      <br>
      <br>
      Playing recently with a new toy with an MCP79 chipset (0x10DE,
      0x0AB0) in it and iSCSI, I found that the transfer rate were
      anormaly slow (about 15 seconds to load about 15MB of kernel +
      initrd, on a Gb network) in the (g/i)pxe phase, transfer rate were
      then OK (~50MB/s) after the linux code has taken the control.
      <br>
      After having test with TFTP and HTTP tranfer, I found that the
      problem was the same, so it had to be in the forcedeth driver.
      <br>
      <br>
      Enabling debugging mode show me that the driver didn't stop
      calling
      <br>
      forcedeth_link_status and as a consequence nv_update_linkspeed
      when polling (and each time it just found that there is no link
      change, so it was just a big waste of time).
      <br>
      Same problem with gpxe and ipxe.
      <br>
      <br>
      After having a look at the linux forcedeth driver, I found that
      the (g/i)pxe forcedeth driver code was missing a
      NVREG_MIISTAT_LINKCHANGE register update, which made the poll
      method thinking that a link change as occured every time it was
      called.
      <br>
      Updating this register and testing it in forcedeth_link_status
      just did the trick !
      <br>
      <br>
      Here are some tests that I have done :
      <br>
      ####################################
      <br>
      Embedded scripts used to test perfs :
      <br>
      ===========
      <br>
      #!gpxe
      <br>
      dhcp net0
      <br>
      time imgfetch <a href="http://192.168.1.10/some.iso" class="moz-txt-link-freetext">http://192.168.1.10/some.iso</a>
      <br>
      ===========
      <br>
      or :
      <br>
      ===========
      <br>
      #!ipxe
      <br>
      dhcp net0
      <br>
      time imgfetch <a href="http://192.168.1.10/some.iso" class="moz-txt-link-freetext">http://192.168.1.10/some.iso</a>
      <br>
      ===========
      <br>
      <br>
      The image size (in bytes) is :
      <br>
      434065408 some.iso
      <br>
      <br>
      In every case :
      <br>
      - 1st and 2nd run are done "the classic way"
      <br>
      - 3rd run is done with an unplug/replug of the cable to test
      reconnection
      <br>
      <br>
      <--------  GPXE  ---------->
      <br>
      Test1 : gpxe / no fix
      <br>
      ======================
      <br>
      1st run : 253s / 1.64 MB/s
      <br>
      2nd run : 252s / 1.64 MB/s
      <br>
      3rd run : 260s - reconnection OK
      <br>
      <br>
      Test2 : gpxe / fix
      <br>
      ===================
      <br>
      1st run : 13s / 31.84 MB/s
      <br>
      2nd run : 14s / 29.57 MB/s
      <br>
      3rd run : 18s - reconnection OK
      <br>
      <br>
      <--------  IPXE  ---------->
      <br>
      Test3 : ipxe / no fix
      <br>
      ======================
      <br>
      1st run : 250s / 1.66 MB/s
      <br>
      2nd run : 251s / 1.65 MB/s
      <br>
      3rd run : 257s - reconnection OK
      <br>
      <br>
      Test4 : ipxe / fix
      <br>
      ===================
      <br>
      1st run : 10s / 41.40 MB/s
      <br>
      2nd run : 10s / 41.40 MB/s
      <br>
      3rd run : 17s - reconnection OK
      <br>
      ####################################
      <br>
      <br>
      I am not a network driver hacker, nor a C hacker at all, so
      perhaps the code is not at the better possible place, but you got
      the idea ;)
      <br>
      Looking at how it is done in the linux kernel driver code, I don't
      think that this will break other chipsets support.
      <br>
      <br>
      If you need further tests, just ask.
      <br>
      <br>
      Cheers,
      <br>
      <br>
      Yann
      <br>
      <pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
------------------------------------------------------------------------------
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit
for your organization - today and in the future.
<a href="http://p.sf.net/sfu/internap-sfd2d" class="moz-txt-link-freetext">http://p.sf.net/sfu/internap-sfd2d</a></pre>
      <pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
Etherboot-developers mailing list
<a href="mailto:Etherboot-developers@lists.sourceforge.net" class="moz-txt-link-abbreviated">Etherboot-developers@lists.sourceforge.net</a>
<a href="https://lists.sourceforge.net/lists/listinfo/etherboot-developers" class="moz-txt-link-freetext">https://lists.sourceforge.net/lists/listinfo/etherboot-developers</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>