Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
soc:2011:meteger:journal:week10 [2011/07/31 06:05] meteger |
soc:2011:meteger:journal:week10 [2011/07/31 06:20] (current) meteger |
||
---|---|---|---|
Line 10: | Line 10: | ||
Again more work on the RX ring handling, which is now implemented in a way I think it should work. I discovered some sort of memory corruption issue that freezes gPXE on all test machines when certain packets are received, and tried to debug this issue. | Again more work on the RX ring handling, which is now implemented in a way I think it should work. I discovered some sort of memory corruption issue that freezes gPXE on all test machines when certain packets are received, and tried to debug this issue. | ||
+ | |||
+ | ====== Day 4 ( July 28 ) ====== | ||
+ | |||
+ | Debugging obscure freeze issue. I found out that the card doesn't freeze if I set the data length field to 0 in the rx descriptor. It freezes if I use the expected value(1536 bytes). It also freezes on packet RX if I don't allocate any io_buffers and leave the DMA addresses to 0, when the length field is 1536. | ||
+ | This happens if I connect the test machine to my development workstation, and do a DHCP request on the _workstation_, so gPXE receives a DHCP request. I did this as a test and gPXE freezes as soon as the packets leave the wire on the workstation. It does neither freeze, nor properly receive packets when connected to a real DHCP server that responds with a DHCP offer through a switch. | ||