empowering software debugging through architectural
play

Empowering Software Debugging Through Architectural Support for - PowerPoint PPT Presentation

Empowering Software Debugging Through Architectural Support for Program Rollback Radu Teodorescu and Josep Torrellas University of Illinois at Urbana-Champaign http:/ /iacoma.cs.uiuc.edu


  1. ����� ������� Empowering Software Debugging Through Architectural Support for Program Rollback Radu Teodorescu and Josep Torrellas University of Illinois at Urbana-Champaign http:/ /iacoma.cs.uiuc.edu

  2. ������� ����� Motivation • Production software is hard to debug • Need lightweight, continuous monitoring system • We propose: hardware/software approach: • Architectural support for program undo • Monitoring and recovery from bugs in production systems Software Debugging with Architectural Radu Teodorescu - University of Illinois Support for Program Rollback 2

  3. ������� ����� Processor with Safe Speculative program undo support • Rollback/re-play of Software control Hardware control large code sections • Very low overhead Safe Code • Speculation control: Begin Spec Speculative Speculative code • In software: spec Speculative code Speculative Speculative code code Speculative code control instructions Speculative code Speculative code • In hardware: dynamic code End Spec sliding window Safe Code Software Debugging with Architectural Radu Teodorescu - University of Illinois Support for Program Rollback 3

  4. ������� ����� Contributions • We implemented an FPGA-based prototype of a processor with undo support • We show that simple hardware can provide powerful debugging tools • We discuss possible applications to software debugging • Initial assessment using buggy programs Software Debugging with Architectural Radu Teodorescu - University of Illinois Support for Program Rollback 4

  5. ������� ����� Debugging Production Code Original code Instrumented code Dynamic execution num=1; num=1; num=1; ... Replay p=m[a[*x]]+&y; enter_spec(); enter_spec(); ... p=m[a[*x]]+&y; num++; p=m[a[*x]]+&y; p=m[a[*x]]+&y; ... ... ... if(pstate()==REEXEC) if(pstate()==REEXEC) Rollback { if(pstate()==REEXEC) info_collect(); { exit_spec(flag); } info_collect(); } exit_spec(flag); exit_spec(flag); num++; Normal num++; Speculative Re - execute Software Debugging with Architectural Radu Teodorescu - University of Illinois Support for Program Rollback 5

  6. ������� ����� Implementation • Save/restore processor state: checkpointed state • Register checkpointing and CPU restoration • Data cache that buffers speculative data (commit or Data Cache invalidate) • Instructions enable/disable speculation on-the-fly Memory • Limits: cache size, I/O Software Debugging with Architectural Radu Teodorescu - University of Illinois Support for Program Rollback 6

  7. ������� ����� Other uses of program rollback support Software Debugging with Architectural Radu Teodorescu - University of Illinois Support for Program Rollback 7

  8. ������� ����� Code versioning • Binary keeps two versions: Safe Code • conservative - safer Begin Spec • aggressively optimized - potentially buggy CONSERVATIVE AGGRESSIVE code code • Execute aggressive code speculatively Checking Code Safe Code • If test fails, fall back on End Spec conservative version Software Debugging with Architectural Radu Teodorescu - University of Illinois Support for Program Rollback 8

  9. ������� ����� Sandboxing OS drivers • Buggy drivers - main cause of OS crashes Kernel code • Kernel survival in the presence of faulty drivers CLEANUP Driver code BUG! code • Execute driver code speculatively • If crash, re-initialize driver Software Debugging with Architectural Radu Teodorescu - University of Illinois Support for Program Rollback 9

  10. ������� ����� Failure-oblivious computing • Enables applications to execute beyond some errors [Rinard04] • Invalid memory accesses are caught • write: ignore, continue execution • read: manufacture value, continue • After invalid access - speculative execution for a certain duration Software Debugging with Architectural Radu Teodorescu - University of Illinois Support for Program Rollback 10

  11. ������� ����� Evaluation Software Debugging with Architectural Radu Teodorescu - University of Illinois Support for Program Rollback 11

  12. ������� ����� Hardware prototype • LEON2 - SPARC V8 compliant processor • In-order, single issue, 5-stage pipeline • Windowed register file • L1 instruction and data caches • Synthesizable, open source VHDL code • Fully functional, runs Linux embedded Software Debugging with Architectural Radu Teodorescu - University of Illinois Support for Program Rollback 12

  13. ������� ����� System Deployment J T A Processor G Image C O M PCI I/O Terminal Binaries Control App. Software Debugging with Architectural Radu Teodorescu - University of Illinois Support for Program Rollback 13

  14. ������� ����� Evaluation • Applications with known bugs DETECTION WINDOW • Manually instrument the code bug location • Detection window contains: • bug location bug manifestation • bug manifestation • Determine if we can roll back the buggy code section Software Debugging with Architectural Radu Teodorescu - University of Illinois Support for Program Rollback 14

  15. ������� ����� Buggy applications Successful Dynamic Application Bug Description rollback Instructions Input file name longer than 1024 ncompress-4.2.4 Yes 10653 bytes corrupts stack polymorph-0.4.0 Input file name longer than 2048 No 103838 bytes corrupts stack Unexpected loop bounds causes tar-1.13.25 Yes 193 heap object overflow Wrong bounds checking causes man-1.5h1 Yes 54217 static object corruption Input file name longer than 1024 gzip-1.2.4 Yes 17535 bytes overflows a global variable Software Debugging with Architectural Radu Teodorescu - University of Illinois Support for Program Rollback 15

  16. ������� ����� Conclusions • Simple hardware can provide powerful debugging support • We built an FPGA-based prototype of a processor with program undo support • We describe a few possible applications to software debugging Software Debugging with Architectural Radu Teodorescu - University of Illinois Support for Program Rollback 16

  17. ������� ����� Thank you! Discussions and demo Software Debugging with Architectural Radu Teodorescu - University of Illinois Support for Program Rollback 17

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend