• Emil Tantilov's avatar
    ixgbe: improve EEPROM read/write operations · 68c7005d
    Emil Tantilov authored
    Introduce buffered read/writes which greatly improves performance on
    parts with large EEPROMs.
    
    Previously reading/writing a word requires taking/releasing of synchronization
    semaphores which adds 10ms to each operation. The optimization is to
    read/write in buffers, but make sure the semaphore is not held for >500ms
    according to the datasheet.
    
    Since we can't read the EEPROM page size ixgbe_detect_eeprom_page_size() is
    used to discover the EEPROM size when needed and keeps the result in
    word_page_size for the rest of the run time.
    
    Use buffered reads for ethtool -e.
    Signed-off-by: default avatarEmil Tantilov <emil.s.tantilov@intel.com>
    Tested-by: default avatarEvan Swanson <evan.swanson@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    68c7005d
ixgbe_ethtool.c 75.7 KB