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:andreif:journal:week3 [2010/06/10 10:51]
andreif
soc:2010:andreif:journal:week3 [2010/06/13 14:54]
mdc Add days of week
Line 1: Line 1:
-===== Week 3 [ 7 Jun 2010 - 13 Jun 2010 ] =====+===== Week 3 [ Mon 7 Jun 2010 - Sun 13 Jun 2010 ] =====
  
-==== Day 1 [ 7 Jun 2010 ] ====+==== Day 1 [ Mon 7 Jun 2010 ] ====
  
 Git commit: [[http://​git.etherboot.org/?​p=people/​andreif/​gpxe.git;​a=commit;​h=52f6bbd8471893361f264d3749b3f8c78df224b2|52f6bbd8471893361f264d3749b3f8c78df224b2]] Git commit: [[http://​git.etherboot.org/?​p=people/​andreif/​gpxe.git;​a=commit;​h=52f6bbd8471893361f264d3749b3f8c78df224b2|52f6bbd8471893361f264d3749b3f8c78df224b2]]
Line 9: Line 9:
 Once that was done I did one of those things I <​del>​hate</​del>​ enjoy so much: manual labor! My old PC was broken into pieces plus I had to go out and get some SATA cables (it had none) because I want to set up a development environment on it too. Since there was no room for it in my room, I had to move the furniture around a bit so it had somewhere to go. Eventually I managed to turn it on and it now boots into its' old OS. Tomorrow I'll format the disk and set up a new Linux distro. Once that was done I did one of those things I <​del>​hate</​del>​ enjoy so much: manual labor! My old PC was broken into pieces plus I had to go out and get some SATA cables (it had none) because I want to set up a development environment on it too. Since there was no room for it in my room, I had to move the furniture around a bit so it had somewhere to go. Eventually I managed to turn it on and it now boots into its' old OS. Tomorrow I'll format the disk and set up a new Linux distro.
  
-==== Day 2 [ 8 Jun 2010 ] ====+==== Day 2 [ Tue 8 Jun 2010 ] ====
  
 Git commit: [[http://​git.etherboot.org/?​p=people/​andreif/​gpxe.git;​a=commit;​h=1807a8d7b9ca412cb7fa72b457b30cbc33b3069a|1807a8d7b9ca412cb7fa72b457b30cbc33b3069a]] Git commit: [[http://​git.etherboot.org/?​p=people/​andreif/​gpxe.git;​a=commit;​h=1807a8d7b9ca412cb7fa72b457b30cbc33b3069a|1807a8d7b9ca412cb7fa72b457b30cbc33b3069a]]
Line 17: Line 17:
 Finally, the old PC is set up and lspci revealed that the nVidia NIC I have has a CK804 Ethernet Controller, device id 0x0057, which is currently supported by Linux'​s forcedeth driver. On tomorrow'​s list are setting up a driver skeleton for the forcedeth driver and seeking some help on #etherboot regarding pcnet32'​s .irq. Finally, the old PC is set up and lspci revealed that the nVidia NIC I have has a CK804 Ethernet Controller, device id 0x0057, which is currently supported by Linux'​s forcedeth driver. On tomorrow'​s list are setting up a driver skeleton for the forcedeth driver and seeking some help on #etherboot regarding pcnet32'​s .irq.
  
-==== Day 3 [ 9 Jun 2010 ] ====+==== Day 3 [ Wed 9 Jun 2010 ] ====
  
 me.away() me.away()
  
-==== Day 4 [ 10 Jun 2010 ] ====+==== Day 4 [ Thu 10 Jun 2010 ] ====
  
 pcnet32 git commit: [[http://​git.etherboot.org/?​p=people/​andreif/​gpxe.git;​a=commit;​h=94c29d96c34aaa97d22664c1f52ba0564d8c2894|94c29d96c34aaa97d22664c1f52ba0564d8c2894]] pcnet32 git commit: [[http://​git.etherboot.org/?​p=people/​andreif/​gpxe.git;​a=commit;​h=94c29d96c34aaa97d22664c1f52ba0564d8c2894|94c29d96c34aaa97d22664c1f52ba0564d8c2894]]
Line 30: Line 30:
  
 Also, I set up a basic skeleton for the new forcedeth driver. By the end of the week I want to contact the Linux driver devs and see if they can give me the documentation they had. Also, I set up a basic skeleton for the new forcedeth driver. By the end of the week I want to contact the Linux driver devs and see if they can give me the documentation they had.
 +
 +==== Day 5 [ Fri 11 Jun 2010 ] ====
 +
 +me.awayAgain()
 +
 +==== Day 6 [ Sat 12 Jun 2010 ] ====
 +
 +Git commit: [[http://​git.etherboot.org/?​p=people/​andreif/​gpxe.git;​a=commit;​h=930c8b5335125c6aaaf4c13863b92bfdf1b57549|930c8b5335125c6aaaf4c13863b92bfdf1b57549]]
 +
 +Today was pretty much about testing. I still did not manage to find out why UNDI works so slow, but I did fix a bug that cleared some interrupt-enabling flags from CSR0 thanks to mdc's observation that I should watch the Linux driver'​s CSR0 accesses.
 +
 +After that, I tested to see the difference between another driver'​s UNDI and normal modes. I tested by setting the ''​ethernet1.virtualDev''​ field in my vms .vmx file to "​e1000"​. The Intel PRO/1000 downloads an 100mb file in 29s in "​normal"​ mode and in 56s under UNDI. That's approximately 2x slower in UNDI. Like I've mentioned before my pcnet32 driver gets the 100mb file in 39-45s in "​normal"​ mode and in ~120s under UNDI.
 +
 +Another thing I noticed today was how much the time it takes to download the file varies. Sometimes my pcnet32 driver would get the image in 26s, other times in 50s or more. I've noticed this behaviour in the e1000 driver too. Not too sure what the cause is.
 +
 +Anyway, I'm determined to post a patch containing the driver tomorrow, even though it still has problems. I don't expect this to be accepted,
 +the purpose is to expose it to more experienced eyes. Finally, I'll shoot an email to some of the forcedeth driver devs tomorrow regarding the docs.
 +
 +==== Day 7 [ Sun 13 Jun 2010 ] ====
 +
 +Git commit: [[http://​git.etherboot.org/?​p=people/​andreif/​gpxe.git;​a=commit;​h=5a3434ce23f524788d5eb9959628cfa1789f687b|5a3434ce23f524788d5eb9959628cfa1789f687b]]
 +
 +Well, today was full of gpxe-esque events :). Meteger managed to trace a bug that was causing pxelinux.0 to fail booting an Ubuntu image. I managed to mix the buffer length and the length of the received message so the iobuf didn't get trimmed to the proper size which I suspect
 +caused some bad data to be received.
 +
 +The weekly meeting went well too, and it is a real pleasure to debug stuff together with other people. I have a lot of work to do on my debugging skills but luckily I have awesome people to learn from.
 +
 +Like I've planned, I sent a patch containing the driver. I usually formatted small, one-commit patches, using ''​git-format-patch''​ so I wasn't sure what to do with the driver since it had multiple commits. Stefanha guided me towards ''​git-send-email''​ and ''​git-rebase''​ which successfully got the patch sent. Unfortunately,​ it isn't properly formatted since the diff between the old driver and the new one makes it hard to read. So the patch sending wasn't what I call a successful attempt, but the things that are learned the hard way are best remembered.
 +
 +I've also sent an email to one of the forcedeth driver devs to see if he can part with the documentation. Regardless, I'll start working on the driver since I feel that I have gained a sufficient amount of insight into driver writing to understand the forcedeth driver only from its source code. Tomorrow I'll start working on .probe.
 +

QR Code
QR Code soc:2010:andreif:journal:week3 (generated for current page)