IP Library Granted Patent US 8,402,170
Granted Patent B2
US 8,402,170 · App. 13/206,297 · Granted Mar 19, 2013

Servicing daemon for live debugging of storage systems

Inventor: Michael David Harris (Durham, NC)
Assignee: Net App, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,402,170
App. No.
13/206,297
Granted
Mar 19, 2013
Kind
B2
Abstract

A servicing daemon is described herein for providing servicing of a running computer system (such as a filer). The servicing daemon resides and executes on the operating system of the filer and communicates across a network with a debugger that resides and executes on a remote administering computer. A debugging session is performed that complies with a protocol relating to the remote accessing of files. The debugging session provides live servicing of an application executing on the filer without requiring an actual corefile (having copied filer memory data) to be created. Rather, the servicing daemon creates a simulated corefile header that is sent to the debugger, receives requests from the debugger, and maps addresses specified in the requests to filer memory addresses. The servicing daemon then reads and retrieves data directly from filer memory at the determined filer memory addresses and sends the data to the debugger for analysis.

Claims (43)

1. A system for providing a debugging session for servicing an application executing on a local computer, the system comprising:

the local computer comprising:

a local memory comprising a plurality of memory segments configured for storing data, each memory segment comprising a memory location range; and

a servicing component configured for providing the debugging session with a remote computer by:

determining at least one memory segment comprising data relevant for the debugging session and at least one memory segment comprising data not relevant for the debugging session;

producing a corefile comprising a mapping table that maps between memory locations and dummy locations, the mapping table comprising at least one memory range descriptor (MRD), each MRD being associated with a memory segment and comprising a memory location range of the associated memory segment and a corresponding dummy location range, the mapping table comprising an MRD for the at least one memory segment comprising data relevant for the debugging session and not comprising an MRD for the at least one memory segment comprising data not relevant for the debugging session, wherein the corefile does not comprise data copied from the local memory;

sending the corefile to the remote computer;

receiving a read request from the remote computer connected with the local computer through a network, the read request comprising a dummy location;

mapping the dummy location to a memory location using the corefile; and

in response to the read request comprising the dummy location, retrieving data directly from the local memory at the mapped memory location and sending the data retrieved from the mapped memory location to the remote computer.

2. The system of claim 1 , wherein the application executing on the local computer comprises an operating system of the local computer.

3. The system of claim 1 , the debugging session complying with a remote access protocol and providing live servicing of the application.

4. The system of claim 1 , wherein the debugging session is performed without stopping other operations of the local computer.

5. The system of claim 1 , wherein data relevant for the debugging session is used for debugging the application.

6. The system of claim 1 , wherein the corefile further comprises corefile metadata that describes the corefile, the corefile metadata comprising a data size of the corefile if data relevant for the debugging session from the local memory is copied to the corefile.

7. A method for providing a debugging session for servicing an application executing on a local computer, the method comprising:

storing data to a local memory of the local computer, the local memory comprising a plurality of memory segments configured for storing data, each memory segment comprising a memory location range;

providing the debugging session with a remote computer by:

determining at least one memory segment comprising data relevant for the debugging session and at least one memory segment comprising data not relevant for the debugging session;

producing a corefile comprising a mapping table that maps between memory locations and dummy locations, the mapping table comprising at least one memory range descriptor (MRD), each MRD being associated with a memory segment and comprising a memory location range of the associated memory segment and a corresponding dummy location range, the mapping table comprising an MRD for the at least one memory segment comprising data relevant for the debugging session and not comprising an MRD for the at least one memory segment comprising data not relevant for the debugging session, wherein the corefile does not comprise data copied from the local memory;

sending the corefile to the remote computer;

receiving a read request from the remote computer connected with the local computer through a network, the read request comprising a dummy location;

mapping the dummy location to a memory location using the corefile; and

in response to the read request comprising the dummy location, retrieving data directly from the local memory at the mapped memory location and sending the data retrieved from the mapped local memory location to the remote computer.

8. The method of claim 7 , wherein the application executing on the local computer comprises an operating system of the local computer.

9. The method of claim 7 , the debugging session complying with a remote access protocol and providing live servicing of the application.

10. The method of claim 7 , wherein the debugging session is performed without stopping other operations of the local computer.

11. The method of claim 7 , wherein data relevant for the debugging session is used for debugging the application.

12. The method of claim 7 , wherein the corefile further comprises corefile metadata that describes the corefile, the corefile metadata comprising a data size of the corefile if data relevant for the debugging session from the local memory is copied to the corefile.

13. A non-transitory computer readable medium having instructions stored thereon when executed by a processor, provide a debugging session for servicing an application executing on a local computer, the non-transitory computer readable medium comprising instructions for:

storing data to a local memory of the local computer, the local memory comprising a plurality of memory segments configured for storing data, each memory segment comprising a memory location range;

providing the debugging session with a remote computer by:

determining at least one memory segment comprising data relevant for the debugging session and at least one memory segment comprising data not relevant for the debugging session;

producing a corefile comprising a mapping table that maps between memory locations and dummy locations, the mapping table comprising at least one memory range descriptor (MRD), each MRD being associated with a memory segment and comprising a memory location range of the associated memory segment and a corresponding dummy location range, the mapping table comprising an MRD for the at least one memory segment comprising data relevant for the debugging session and not comprising an MRD for the at least one memory segment comprising data not relevant for the debugging session, wherein the corefile does not comprise data copied from the local memory;

sending the corefile to the remote computer;

receiving a read request from the remote computer connected with the local computer through a network, the read request comprising a dummy location;

mapping the dummy location to a memory location using the corefile; and

in response to the read request comprising the dummy location, retrieving data directly from the local memory at the mapped memory location and sending the data retrieved from the mapped memory location to the remote computer.

14. The non-transitory computer readable medium of claim 13 , wherein the application executing on the local computer comprises an operating system of the local computer.

15. The non-transitory computer readable medium of claim 13 , the debugging session complying with a remote access protocol and providing live servicing of the application.

16. The non-transitory computer readable medium of claim 13 , wherein the debugging session is performed without stopping other operations of the local computer.

17. The non-transitory computer readable medium of claim 13 , wherein data relevant for the debugging session is used for debugging the application.

18. The non-transitory computer readable medium of claim 13 , wherein the corefile further comprises corefile metadata that describes the corefile, the corefile metadata comprising a data size of the corefile if data relevant for the debugging session from the local memory is copied to the corefile.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2011
From: HARRIS, MICHAEL
To: NETWORK APPLIANCE, INC.
Reel/Frame 026723/0214 →
CHANGE OF NAME Recorded Aug 9, 2011
From: NETWORK APPLIANCE, INC.
To: NETAPP, INC.
Reel/Frame 026723/0257 →
Continuity (2)
Continuation 11710351 · Feb 22, 2007
Related Publication 20110295821A1 · Dec 1, 2011