Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
soc:2010:cooldavid:journal:week2 [2010/06/02 11:42]
cooldavid
soc:2010:cooldavid:journal:week2 [2010/06/04 05:47] (current)
cooldavid
Line 38: Line 38:
                     (unsigned long)iob->​data,​ mapping, len);                     (unsigned long)iob->​data,​ mapping, len);
 </​code>​ </​code>​
-    * This will behave poorly when memory runs out.  Better is to have a refill routine that runs after the poll(), and always attempts to refill up to a specified level. <code C>+    * This will behave poorly when memory runs out. Better is to have a refill routine that runs after the poll(), and always attempts to refill up to a specified level. <code C>
     rxdesc += idx;     rxdesc += idx;
     if (jme_make_new_rx_buf(rxring->​bufinf + idx)) {     if (jme_make_new_rx_buf(rxring->​bufinf + idx)) {
Line 46: Line 46:
 </​code>​ </​code>​
  
-==== TCP / memory ​topic ====+  * From me: 
 +    * The refill function did not work correctly. Because of the error packet was reused instead of making a hole. [[http://​bbs.cooldavid.org/​git/?​p=gpxe.git;a=commitdiff;​h=aa105ed1c6d99588dceeec3ead4e434b40b59644|This patch fixed it]] 
 + 
 +==== Trace memory ​related codes ====
   * Current heap size is fixed at 128K.   * Current heap size is fixed at 128K.
-  * Although it only uses 128K, all-drivers image already overlapped with heap address. 
   * Trying to figure out a way to obtain more memory, and report it to OS.   * Trying to figure out a way to obtain more memory, and report it to OS.
   * See if it is possiable to know how much heap size we can use out of code and stack.   * See if it is possiable to know how much heap size we can use out of code and stack.
  
-Before start the discussion, I'm going to trace how the gPXE boot/relocate/fill segment ​infoAnd try to understand how Michael Brown removes the even megabyte ​limit.+=== Schedule for memory and TCP modifications === 
 +  - Trace how the gPXE bootrelocate, and fill segment ​informations. 
 +  - Try to understand how Michael Brown removes the even magabyte ​limit. 
 +  - Start a discussion on the list about how to reasonably extend gPXE's usable memory. 
 +  - Patch gPXE to support large(Several MB perhaps) heap memory. 
 +  - Design/​discuss a TCP receive window advertisement algorithm. 
 +  - Patch gPXE with ''​**TCP receive queue**'',​ ''​**SACK Support**'',​ and ''​**Window scale**''​. 
 +  - Do some benchmark against different window size, and different network environment. 
 +  - Post the result and discuss it on the gpxe mailling-list. 
 + 
 +=== Some notes after trace === 
 +  * [[soc:​2010:​cooldavid:​notes:​gpxememlayout|gPXE memory layout]] 
 +  * Good articals for understanding Gate-A20 
 +    - [[http://​en.wikipedia.org/​wiki/​A20_line|WIKIPEDIA - A20 line]] 
 +    - [[http://​www.win.tue.nl/​~aeb/​linux/​kbd/​A20.html|A20 - a pain from the past]]
  
 +=== Expand heap ===
 +  * [[soc:​2010:​cooldavid:​notes:​expandheap|Expand gPXE heap]]

Navigation

* [[:start|Home]] * [[:about|About our Project]] * [[:download|Download]] * [[:screenshots|Screenshots]] * Documentation * [[:howtos|HowTo Guides]] * [[:appnotes|Application Notes]] * [[:faq:|FAQs]] * [[:doc|General Doc]] * [[:talks|Videos, Talks, and Papers]] * [[:hardwareissues|Hardware Issues]] * [[:mailinglists|Mailing lists]] * [[http://support.etherboot.org/|Bugtracker]] * [[:contributing|Contributing]] * [[:editing_permission|Wiki Edit Permission]] * [[:wiki:syntax|Wiki Syntax]] * [[:contact|Contact]] * [[:relatedlinks|Related Links]] * [[:commerciallinks|Commercial Links]] * [[:acknowledgements|Acknowledgements]] * [[:logos|Logo Art]]

QR Code
QR Code soc:2010:cooldavid:journal:week2 (generated for current page)