====== Differences ====== This shows you the differences between two versions of the page.
soc:2010:cooldavid:journal:weekb1 [2010/05/26 09:51] cooldavid created |
soc:2010:cooldavid:journal:weekb1 [2010/05/26 09:57] (current) cooldavid |
||
---|---|---|---|
Line 1: | Line 1: | ||
=== Week -1: Modify JMicron driver, RX offloading === | === Week -1: Modify JMicron driver, RX offloading === | ||
- | === May 2nd to May 8th === | + | === May 2nd to May 12th === |
== Chanloading with undionly image == | == Chanloading with undionly image == | ||
Line 16: | Line 16: | ||
== Implement RX checksum offloading == | == Implement RX checksum offloading == | ||
Testing results can be found in this note: [[soc:2010:cooldavid:notes:benchmark|TCP Window Size and RX Csum Offload Benchmark]] | Testing results can be found in this note: [[soc:2010:cooldavid:notes:benchmark|TCP Window Size and RX Csum Offload Benchmark]] | ||
+ | |||
+ | == Modify JMicron driver according to stefanha suggestions == | ||
+ | - jme_process_receive() isn't using a read memory barrier. | ||
+ | - Allocate/Free Ring buffers on open/close. | ||
+ | - Using jme_free_?x_resources() for allocation fail recover. | ||
+ | - Simply use struct io_buffer, instead of jme_buffer_info. | ||
+ | - There is no need to discard pending TX buffers. | ||
+ | - extra memset in probe. | ||
+ | - Ring size tune, performance test. | ||
+ | |||
+ | Detailed modifications can reference the [[http://git.etherboot.org/?p=people/cooldavid/gpxe.git;a=shortlog;h=refs/heads/jme_driver_bak|jme_driver_bak branch of my git tree]]. |