IP Library › Granted Patent US 8,539,453
Granted Patent B2
US 8,539,453 · App. 12/827,662 · Granted Sep 17, 2013

Autonomic I/O tracing and performance tuning

Inventors: Diane G. Flemming (Pflugerville, TX); Greg R. Mewhinney (Austin, TX); Brian C. Twichell (Austin, TX); David B. Whitworth (Austin, TX)
Assignee: International Business Machines Corporation
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,539,453
App. No.
12/827,662
Granted
Sep 17, 2013
Kind
B2
Abstract

In an embodiment, a kernel performs autonomic input/output tracing and performance tuning. A first table is provided in a device driver framework and a second table in a kernel of a computer. An input/output device monitoring tool is provided in the device driver framework. A plurality of instructions in the kernel compares each value in the first table with each value in the second table. Responsive to a match of a value in the first table and a value in the second table, the kernel automatically runs a command line to perform a system trace, a component trace, or a tuning task. The first table is populated with a plurality of values calculated from a plurality of data in a plurality of device memories and in the controller memory and the second table is populated in accordance with a second plurality of inputs to the command line interface.

Claims (59)

1. A computer system for performing autonomic input/output tracing and performance tuning by a kernel of an operating system, the computer system comprising:

a computer having at least one processor, at least one operating system, at least one device driver framework, and at least one kernel in the operating system;

a plurality of devices connected to the computer and managed by the kernel through the device driver framework, wherein each of the plurality of devices has a device memory and the plurality of devices includes a hard drive having a portion of storage allocated to a controller memory;

an input/output device monitoring tool in the device driver framework;

a first table in the device driver framework and a second table in the kernel;

a plurality of instructions in the kernel to compare each value in the first table with each value in the second table, and responsive to a match of a first value in the first table and a second value in the second table, automatically, by the kernel, running a command line to perform a system trace, a component trace, or a tuning task;

wherein the first table is populated with a first plurality of inputs calculated from a plurality of data in a plurality of device memories and in the controller memory and the second table is populated in accordance with a second plurality of inputs to the command line interface specifying a plurality of trigger values.

2. The computer system of claim 1 , wherein the plurality of trigger values includes a response time of a logical disk.

3. The computer system of claim 1 , wherein the plurality of trigger values includes a percentage of a buffer that is free or a percentage of the buffer that has been free for a pre-selected interval of time.

4. The computer system of claim 1 , wherein the plurality of trigger values includes a percentage of the computer readable memory occupied by a number of file pages.

5. The computer system of claim 1 , wherein the command line interface receives an input specifying at least one of the following:

whether tuning or tracing is performed when a corresponding trigger value is detected;

a configuration specifying a size of a trace buffer to use for a tracing;

a configuration specifying during the tracing, which trace hooks to collect, if not all;

a configuration specifying whether when tuning, to apply immediately, persistently across reboots, or both;

a separate flag to disable the command line; and

when tracing, a number of intermittent traces to collect, and when tracing intermittently, the time between the traces.

6. The computer system of claim 1 , wherein the command line creates an in-memory table for storing a number of values for a data representing when the command line was called, a number of traces taken, a data and a time a last trace was completed, or an entry for each trigger that spawned a tuning event.

7. A method for performing autonomic input/output tracing and performance tuning by a kernel of an operating system of a computer having at least one processor, at least one device driver framework, and at least one kernel in the operating system and connected to a plurality of devices connected to the computer and managed by the kernel through the device driver framework, each of the plurality of devices having a device memory and the plurality of devices including a hard drive having a portion of storage allocated to a controller memory, the method comprising:

providing a first table in the device driver framework and a second table in the kernel;

providing an input/output device monitoring tool in the device driver framework;

providing a plurality of instructions in the kernel to compare each value in the first table with each value in the second table, and responsive to a match of a first value in the first table and a second value in the second table, automatically, by the kernel, running a command line to perform a system trace, a component trace, or a tuning task; and

populating the first table with a first plurality of inputs calculated from a plurality of data in a plurality of device memories and in the controller memory and the second table is populated in accordance with a second plurality of inputs to the command line interface specifying a plurality of trigger values.

8. The method of claim 7 further comprising:

providing the command line interface for configuration; and

responsive to providing the command line interface, specifying whether tuning or tracing is performed when a corresponding trigger value is detected.

9. The method of claim 7 further comprising:

responsive to providing the command line interface, specifying a size of a trace buffer to use for a tracing.

10. The method of claim 7 further comprising:

responsive to providing the command line interface, specifying during tracing which of a plurality of trace hooks to collect or specifying that during tracing all of the plurality of trace are collected.

11. The method of claim 7 further comprising:

responsive to providing the command line interface specifying whether when tuning, to apply immediately, persistently across reboots, or both;

specifying a separate flag to disable the command line;

specifying, when tracing, a number of intermittent traces to collect, and when tracing intermittently, the time between the traces; and

wherein each of the specifying steps is performed using the command line interface.

12. The method of claim 7 further comprising:

creating a table in the device driver framework; an

storing in the in-memory table, a number of values for a data representing when the command line was called, a number of traces taken, a data and a time a last trace was completed, or an entry for each trigger that spawned a tuning event.

13. A computer program product for providing a command line interface for a kernel of an operating system, the computer program product, comprising:

a computer readable storage;

first program instructions for displaying the command line interface for configuring a command line of a kernel of the operating system;

second program instructions for configuring, using the command line interface, a first trigger value comprising a response time of a logical disk;

third program instructions for configuring, using the command line interface, a second trigger value comprising a percentage of a buffer that is free or a percentage of the buffer that has been free for a pre-selected interval of time; and

fourth program instructions for configuring, using the command line interface, a third trigger value comprising a percentage of the computer readable memory occupied by a number of file pages;

wherein the first, second, third, and fourth program instructions are stored on the computer readable storage.

14. The computer program product of claim 13 further comprising:

fifth program instructions for configuring, using the command line interface, the operation to be a system trace, a component trace, a monitoring by an input/output device monitoring tool, or a tuning task;

sixth program instructions for configuring, using the command line interface, a size of a trace buffer to use for a tracing;

seventh program instructions for configuring, using the command line interface, one or more trace hooks to collect during tracing; and

eighth program instructions for configuring, using the command line interface, whether tuning is to be applied immediately upon detection of the trigger value, to be applied persistently across reboots upon detection of the trigger value, and to be applied both immediately and persistently across reboots;

wherein the fifth, sixth, seventh, and eighth program instructions are stored on the computer readable storage.

15. The computer program product of claim 14 further comprising:

ninth program instructions for configuring, using the command line interface, a flag to disable the command line; and

tenth program instructions for configuring, using the command line interface, a number of intermittent traces to collect during tracing, and, when tracing intermittently, a time between each trace;

wherein the ninth and tenth program instructions are stored on the computer readable storage.

16. The computer program product of claim 15 further comprising:

eleventh program instructions for creating a table in the kernel; and

twelfth program instructions for storing in the table, a number of values for a data representing a time when the command line was called, a number of traces taken, a time a last trace was completed, or an entry for each trigger that spawned a tuning event;

wherein the eleventh and twelfth program instructions are stored on the computer readable storage.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 7, 2010
From: FLEMMING, DIANE G.; MEWHINNEY, GREG R.; TWICHELL, BRIAN C.; WHITWORTH, DAVID B.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 024646/0839 →
Continuity (1)
Related Publication 20120005580A1 · Jan 5, 2012