ENFORCING CENTRAL PROCESSING UNIT QUALITY OF SERVICE GUARANTEES WHEN SERVICING ACCELERATOR REQUESTS
First Claim
1. A system comprising:
- a first processor comprising circuitry configured to execute a plurality of threads of an operating system kernel; and
a second processor coupled to the first processor, wherein the second processor comprises circuitry configured to execute an application and send system service requests to the first processor for servicing;
wherein the first processor is configured to;
monitor a number of cycles that threads executing on the first processor have spent servicing system service requests over a previous time interval; and
dynamically adjust an amount of delay that is added to servicing of a given system service request based on the number of cycles.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems, apparatuses, and methods for enforcing processor quality of service guarantees when servicing system service requests (SSRs) are disclosed. A system includes a first processor executing an operating system and a second processor executing an application which generates SSRs for the first processor to service. The first processor monitors the number of cycles spent servicing SSRs over a previous time interval, and if this number of cycles is above a threshold, the first processor starts delaying the servicing of subsequent SSRs. In one implementation, if the previous delay was non-zero, the first processor increases the delay used in the servicing of subsequent SSRs. If the number of cycles is less than or equal to the threshold, then the first processor services SSRs without delay. As the delay is increased, the second processor begins to stall and its SSR generation rate falls, reducing the load on the first processor.
-
Citations
20 Claims
-
1. A system comprising:
-
a first processor comprising circuitry configured to execute a plurality of threads of an operating system kernel; and a second processor coupled to the first processor, wherein the second processor comprises circuitry configured to execute an application and send system service requests to the first processor for servicing; wherein the first processor is configured to; monitor a number of cycles that threads executing on the first processor have spent servicing system service requests over a previous time interval; and dynamically adjust an amount of delay that is added to servicing of a given system service request based on the number of cycles. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method comprising:
-
monitoring, by a first processor, a number of cycles that threads executing on the first processor have spent servicing system service requests generated by a second processor over a previous time interval; and dynamically adjusting an amount of delay that is added to servicing of a given system service request based on the number of cycles that threads of the first processor have spent servicing system service requests over the previous time interval. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. An apparatus comprising:
-
a memory; one or more execution units coupled to the memory; wherein the apparatus is configured to; monitor a number of cycles that threads executing on the one or more execution units have spent servicing system service requests over a previous time interval; and dynamically adjust an amount of delay that is added to servicing of a given system service request based on the number of cycles. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification