Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Last revision Both sides next revision
soc:2010:andreif:journal:week8 [2010/07/16 11:41]
andreif
soc:2010:andreif:journal:week8 [2010/07/17 14:01]
andreif
Line 62: Line 62:
  
 Anyway, now the driver works under UNDI and I've also sent an RFC patch to the mailing list. I hope that sometime in the beginning of the next week, after receiving feedback, I can get a proper patch up. Anyway, now the driver works under UNDI and I've also sent an RFC patch to the mailing list. I hope that sometime in the beginning of the next week, after receiving feedback, I can get a proper patch up.
 +
 +==== Day 6 [ Sat 17 Jul 2010 ] ====
 +
 +Git commits:
 +  - [[http://​git.etherboot.org/?​p=people/​andreif/​gpxe.git;​a=commit;​h=f375adb4608c684c019b424c10f671d02dc91bc1|f375adb4608c684c019b424c10f671d02dc91bc1]]
 +  - [[http://​git.etherboot.org/?​p=people/​andreif/​gpxe.git;​a=commit;​h=e9b555e95177fe3b63d896bec6c543344da4ee10|e9b555e95177fe3b63d896bec6c543344da4ee10]]
 +
 +Busy day today.
 +
 +I started by setting up rom-o-matic for the new driver. Unfortunately,​ the server I have access to did not have syslinux installed. I proceeded to compile syslinux from sources, only to find out that I need nasm. I could not reach the server admin so Stefan set one up for me. Thanks Stefan!
 +
 +After that, I've cleaned up the code further, removed some code that was never reached, along with some unused variables. I started digging into how I might solve link state, and got a look at the phantom driver. I implemented a similar solution in mine. Stefan suggested that another approach would be to use currticks() so I check link state related to time, not to the number of times .poll gets called. He mentioned that it might be slower since currticks does switch to real mode. For consistency with the other driver, and because of the possibility that it might be slower, I remained to my original solution. I will try to use currticks too, just to see the exact timing.
 +
 +The next issue was the reversed MAC address issue. Stefan said that since we are in promiscuous mode anyway, we can stop writing the correct MAC address back in the NIC's registers. The problem with this approach is that there might be frames that could reach the upper layers and cause trouble. I implemented some simple filtering code in the driver that checks if the destination MAC address is a local address and that is consistent with the NIC's MAC address. Broadcast and multicast frames are thus still accepted. We only reject unicast addresses that are not for the NIC. Contrary to my expectations,​ the added code did not influence the driver'​s download times. After _both_ (link state + MAC) of the updates I now get: 12/​12/​12/​12/​13 seconds when fetching 5 100mb images. This is ~ 1s worse than the previous 12/​11/​11/​11/​11 but the MAC correctness and link state totally make up for the lost time.
 +
 +Since we now don't have to write the correct MAC address to the NIC's registers, some code has been removed and we don't have to remember the original MAC address either. This, along with the elimination of a few other variables, resulted in a smaller private structure.
 +
 +All in all, this was a good day :)
 +
 +Tomorrow I'll send a new email on the mailing list, including the rom-o-matic info and the updated driver.

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:andreif:journal:week8 (generated for current page)