IP Library Granted Patent US 9,058,206
Granted Patent B2
US 9,058,206 · App. 12/994,021 · Granted Jun 16, 2015

System, method and program product for determining execution flow of the scheduler in response to setting a scheduler control variable by the debugger or by a processing entity

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 9,058,206
App. No.
12/994,021
Granted
Jun 16, 2015
Kind
B2
Abstract

A system, computer program and a method for debugging a system, the method includes: controlling, by a debugger, an execution flow of a processing entity; setting, by the debugger or the processing entity, a value of a scheduler control variable accessible by the scheduler; wherein the debugger is prevented from directly controlling an execution flow of a scheduler; and determining, by the scheduler, an execution flow of the scheduler in response to a value of the scheduler control variable.

Claims (41)

1. A method for debugging a system, the method comprises:

checking if a scheduler status variable indicates a scheduler is in a normal mode, such that the scheduler status variable indicates that the scheduler, in the normal mode, executes at least one scheduling iteration;

updating, during each of a plurality of scheduling iterations in the normal mode, a queue starvation watermark value of each of a plurality of task data structures that is not eligible to move to a running tasks queue, until a first queue starvation watermark value of a first task data structure of the plurality of the task data structures reaches a queue starvation watermark threshold;

generating a task starvation indication if during an additional number of additional scheduling iterations, the first task data structure is still prevented from being moved to the running tasks queue, wherein the additional number is responsive to a task starvation watermark;

freezing sorted tasks queues that do not store the first task data structure or otherwise ignoring the task data structures stored in other sorted tasks queues during the additional number of the scheduling iterations;

controlling, by a debugger, a processing entity execution flow of a processing entity;

setting, by the debugger or the processing entity, a value of a scheduler control variable accessible by the scheduler, wherein the debugger can set the value of the scheduler control variable and the processing entity can set the value of the scheduler control variable; and

determining, by the scheduler, the scheduler execution flow of the scheduler in response to the setting the value of the scheduler control variable;

checking if the scheduler status variable indicates the scheduler is not in the normal mode; and

performing, by the debugger, a debugging operation in response to the scheduler status variable indicating that the scheduler is not in the normal mode.

2. The method according to claim 1 comprising setting, by the scheduler, a value of the scheduler status variable.

3. The method according to claim 1 comprising checking, by the scheduler, the value of the scheduler control variable before each of the at least one scheduling iteration.

4. The method according to claim 1 wherein the controlling, by the debugger, the processing entity execution flow of the processing entity comprises controlling the processing entity execution flow of multiple processing entities by the debugger, wherein the multiple processing entities comprise the processing entity.

5. The method according to claim 1 comprising stopping the processing entity execution flow of multiple processing entities by utilizing Joint Test Access Group (JTAG) interfaces of the multiple processing entities, wherein the multiple processing entities comprise the processing entity.

6. The method according to claim 1 comprising requesting, by the debugger, the processing entity to control an other processing entities execution flow of other processing entities.

7. The method according to claim 1 wherein the processing entity is a core and wherein the scheduler is a multiple-purpose entity that is disabled from performing a non-scheduler task during the scheduling of a processing entity task.

8. A system having debugging capabilities, the system comprises:

a processing entity;

a debugger that is adapted to control a processing entity execution flow of the processing entity;

a scheduler;

wherein either one of the debugger or the processing entity is adapted to check if a scheduler status variable indicates that the scheduler is in a normal mode, such that the scheduler status variable indicates that the scheduler, in the normal mode, executes at least one scheduling iteration, to update a value of a scheduler control variable accessible by the scheduler, to check if a scheduler status variable indicates that the scheduler is not in the normal mode, and to perform a debugging operation, wherein the debugger can update the value of the scheduler control variable and the processing entity can update the value of the scheduler control variable; and

wherein the scheduler is adapted to determine the scheduler execution flow of the scheduler in response to the value of the scheduler control variable, wherein the system is further adapted to update, during each of a plurality of scheduling iterations, a queue starvation watermark value of each of a plurality of task data structures that is not eligible to move to a running tasks queue, until a first queue starvation watermark value of a first task data structure of the plurality of the task data structures reaches a queue starvation watermark threshold, to generate a task starvation indication if during an additional number of additional scheduling iterations, the first task data structure is still prevented from being moved to the running tasks queue, wherein the additional number is responsive to a task starvation watermark, and to freeze sorted tasks queues that do not store the first task data structure or otherwise ignoring the task data structures stored in other sorted tasks queues during the additional number of the scheduling iterations.

9. The system according to claim 8 wherein the scheduler is adapted to set a value of the scheduler status variable.

10. The system according to claim 8 wherein the scheduler is adapted to check the value of the scheduler control variable before each of the at least one scheduling iteration.

11. The system according to claim 8 wherein the debugger is adapted to control the processing entity execution flow of multiple processing entities, wherein the multiple processing entities comprise the processing entity.

12. The system according to claim 8 wherein the debugger is adapted to stop the processing entity execution flow of multiple processing entities by utilizing JTAG interfaces of the multiple processing entities, wherein the multiple processing entities comprise the processing entity.

13. The system according to claim 8 wherein the debugger is adapted to request, the processing entity to control an other processing entities execution flow of other processing entities.

14. The system according to claim 8 wherein the processing entity is a core and wherein the scheduler is multiple-purpose entity that is disabled from performing a non-scheduler task during the scheduling of a processing entity task.

15. A computer program product that comprises a non-transitory computer readable medium that stores instructions that when executed perform the steps comprising:

checking if a scheduler status variable indicates a scheduler is in a normal mode, such that the scheduler status variable indicates that the scheduler, in the normal mode, executes at least one scheduling iteration;

updating, during each of a plurality of scheduling iterations in the normal mode, a queue starvation watermark value of each of a plurality of task data structures that is not eligible to move to a running tasks queue, until a first queue starvation watermark value of a first task data structure of the plurality of the task data structures reaches a queue starvation watermark threshold;

generating a task starvation indication if during an additional number of additional scheduling iterations, the first task data structure is still prevented from being moved to the running tasks queue, wherein the additional number is responsive to a task starvation watermark;

freezing sorted tasks queues that do not store the first task data structure or otherwise ignoring the task data structures stored in other sorted tasks queues during the additional number of the scheduling iterations;

controlling, by a debugger, a processing entity execution flow of a processing entity;

setting, by the debugger or the processing entity, a value of a scheduler control variable accessible by the scheduler, wherein the debugger can set the value of the scheduler control variable and the processing entity can set the value of the scheduler control variable; and

determining, by the scheduler, the scheduler execution flow of the scheduler in response to the setting the value of the scheduler control variable;

checking if the scheduler status variable indicates the scheduler is not in the normal mode; and

performing a debugging operation.

16. The computer program product according to claim 15 comprising instructions, that when executed perform setting, by the scheduler, a value of the scheduler status variable.

17. The computer program product according to claim 15 comprising instructions, that when executed perform checking, by the scheduler, the value of the scheduler control variable before each of the at least one scheduling iteration.

18. The computer program product according to claim 15 comprising instructions, that when executed perform controlling the processing entity execution flow of multiple processing entities by the debugger, wherein the multiple processing entities comprise the processing entity.

Assignments (26)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 037486 FRAME 0517. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Dec 10, 2019
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 053547/0421 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0387 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051030/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051145/0184 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050745/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT THE APPLICATION NO. FROM 13,883,290 TO 13,833,290 PREVIOUSLY RECORDED ON REEL 041703 FRAME 0536. ASSIGNOR(S) HEREBY CONFIRMS THE THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS.. Recorded Feb 20, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SHENZHEN XINGUODU TECHNOLOGY CO., LTD.
Reel/Frame 048734/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040632 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Sep 21, 2017
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 044209/0047 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042762/0145 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042985/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENTS 8108266 AND 8062324 AND REPLACE THEM WITH 6108266 AND 8060324 PREVIOUSLY RECORDED ON REEL 037518 FRAME 0292. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Feb 1, 2017
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 041703/0536 →
CHANGE OF NAME Recorded Nov 8, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 040632/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Jul 14, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039361/0212 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
SECURITY AGREEMENT SUPPLEMENT Recorded Mar 7, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 038017/0058 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 13, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037518/0292 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 12, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037486/0517 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0285 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0387 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0334 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →