Selective I/O prioritization by system process/thread
Systems, methods, and apparatus to identify and prioritize application processes in one or more subsystems. Some embodiments identifying applications and processes associated with each application executing on a system, apply one or more priority rules to the identified applications and processes to generate priority information, and transmit the priority information to a subsystem. The subsystem then matches received requests with the priority information and services the processes according to the priority information.
1. A method comprising:
identifying applications and processes associated with each identified application executing on a system by calling an operating system routine;
applying one or more priority rules to the identified applications and processes to generate priority information, at least one of the one or more priority rules including an administrator defined priority rule;
transmitting the priority information to a subsystem device driver; and
executing the subsystem device driver to:
store, within a memory accessible by the subsystem, the priority information in a table;
match subsystem processes with a priority in the table, the subsystem processes being processes of the identified processes; and
schedule subsystem process servicing according to the matching.
2. The method of claim 1 , wherein the priority information includes information designating certain processes of the identified processes as high priority processes.
3. The method of claim 1 , wherein the one or more priority rules include a rule, the applying of which, causes identified processes associated with a foreground application to be designated as high priority processes.
4. The method of claim 1 , wherein the one or more priority rules include a rule, the applying of which, causes processes associated with an application of a certain type to be designated as high priority processes.
5. A non-transitory machine-readable medium, with instructions thereon which when processed, result in a machine:
identifying applications and processes associated with each identified application executing on a system by calling an operating system routine;
applying one or more priority rules to the identified applications and processes to generate priority information, at least one of the one or more priority rules including an administrator defined priority rule;
transmitting the priority information to a subsystem driver; and
executing instructions of the subsystem device driver to:
store, within a memory accessible by the subsystem, the priority information in a table;
match subsystem processes with a priority in the table, the subsystem processes being processes of the identified processes; and
schedule subsystem process servicing according to the matching.
6. The non-transitory machine-readable medium of claim 5 , wherein the priority information includes information designating certain processes of the identified processes as high priority processes.
7. The non-transitory machine-readable medium of claim 5 , wherein the one or more priority rules include a rule, the applying of which, causes identified processes associated with a foreground application to be designated as high priority processes.
8. The non-transitory machine-readable medium of claim 5 , wherein the one or more priority rules include a rule, the applying of which, causes processes associated with an application of a certain type to be designated as high priority processes.
9. A system comprising:
a processor;
a memory device;
a subsystem device;
a bus operatively coupling the processor to the subsystem device;
instructions held in the memory device and executable by the processor to:
identify applications and processes associated with each identified application executing on a system by calling an operating system routine;
apply one or more priority rules to the identified applications and processes to generate priority information, at least one of the one or more priority rules including an administrator defined priority rule; and
transmit the priority information to the subsystem device; and
a subsystem device driver including instructions held in the memory and executable by the processor to:
store the priority information in a table accessible by the subsystem device;
match subsystem device processes with a priority in the table, wherein the subsystem device processes are processes of the identified processes; and
schedule subsystem device process servicing according to the matching.
10. The system of claim 9 , wherein the priority information includes information designating certain processes of the identified processes as high priority processes.
11. The system of claim 9 , wherein the one or more priority rules include a rule, the applying of which, causes identified processes associated with a foreground application to be designated as high priority processes.
12. The system of claim 9 , wherein the one or more priority rules include a rule, the applying of which, causes processes associated with an application of a certain type to be designated as high priority processes.