This is an old revision of the document!
====== Stefan Hajnoczi: GDB Remote Debugging ====== ===== Week 6 ===== **Milestones:** * [b44] Tested and clean for mainline review. * [gpxelinux.0] Merge Award BIOS return-to-PXE workaround. ==== Mon Jul 14 ==== Git commit: [[http://git.etherboot.org/?p=people/stefanha/gpxe.git;a=commit;h=86d1342ffbb0dcfc6bb02da81af766f7a0e8f306|[init] Shutdown flags for fine-grained exit behavior]] Time is passing quickly. Today I worked on fine-grained ''shutdown()''. There are two scenarios under which ''shutdown()'' is called: - Booting an image that does not use gPXE interfaces (like BIOS int 13h or PXE). Here everything should be cleaned up and shut down. - Exiting gPXE to return control to firmware (usually to boot the next device if gPXE failed). Here we may wish to leave some resources, like the underlying PXE stack, running. There is currently no way to distinguish these two cases for ''shutdown()''. Therefore, we are not able to clean up or leave resources as appropriate. I have added a flag to ''shutdown()'' to indicate either ''SHUTDOWN_BOOT'' or ''SHUTDOWN_EXIT''. As part of ''undionly.kpxe'', we need to unload the PXE base code if ''shutdown(SHUTDOWN_BOOT)'' is performed. I still need to figure out how to do the unloading and freeing of base memory... ;-) ==== Tue Jul 15 ==== Git commit: * [[http://git.etherboot.org/?p=people/stefanha/gpxe.git;a=commit;h=b370b8791c1b99a143a8b915170fac0b184f35b3|[prefix] kkpxe prefix for keep UNDI, return-to-PXE images]] Sent the ''e820mangler.S'' patch for full clipping into fragments for review today. **Created ''.kkpxe'' image type** for PXE images that keep PXE+UNDI loaded and return to PXE (instead of int 18h). [[http://etherboot.org/share/stefanha/gpxelinux.kkpxe|Here]] is a ''gpxelinux.0'' image built from ''undionly.kkpxe''. ==== Wed Jul 16 ==== **Sent gpxelinux merge patches for review**. I spent some time this week working on fine-grained ''shutdown()'' so that gPXE can free resources appropriately. However, I believe that this work is independent of the gpxelinux merge and our priority is to get gpxelinux merged. Therefore, I have submitted the gpxelinux patches now, without fine-grained ''shutdown()''. Next steps: * [shutdown] Fine-grained shutdown including removing gPXE allocated memory and freeing up PXE+UNDI, if necessary. * [uhmalloc] Kill this patch, use ''malloc'' allocator instead for DMA buffers. * [DMA] DMA pool API so drivers can reserve DMA buffers on ''open()''. * [b44] Cleanup, testing, performance. * [bzImage] Expand the heap size to the full 64K segment when loading a bzImage kernel with version 2.02 or higher. * [GDB] Real-mode remote debugging.