IP Library Granted Patent US 8,327,187
Granted Patent B1
US 8,327,187 · App. 12/885,978 · Granted Dec 4, 2012

Low-overhead operating systems

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,327,187
App. No.
12/885,978
Granted
Dec 4, 2012
Kind
B1
Abstract

Managing processes in a computing system comprising one or more cores includes receiving a request for a first process on a first core to execute with at least one predetermined task of an operating system disabled on the first core. In response to the request, the operating system determines whether one or more potential errors in execution of one or more processes other than the first process executing on the first core would be caused by disabling the predetermined task on the first core. The operating system grants the request or rejects the request in response to determining whether one or more potential errors in execution of one or more processes other than the first process executing on the first core would be caused by disabling the predetermined task on the first core.

Claims (68)

1. A method for managing processes in a computing system comprising one or more cores, the method comprising:

receiving a request for a first process on a first core to execute with at least one predetermined task of an operating system disabled on the first core;

in response to the request, determining, by the operating system whether one or more potential errors in execution of one or more processes other than the first process executing on the first core would be caused by disabling the predetermined task on the first core; and

granting the request or rejecting the request in response to determining whether one or more potential errors in execution of one or more processes other than the first process executing on the first core would be caused by disabling the predetermined task on the first core.

2. The method of claim 1 , further comprising isolating the first core from the other cores while the first process is executing if the request is granted.

3. The method of claim 1 , wherein the predetermined task comprises regularly scheduled interrupts sent to a processor of the first core by the operating system.

4. The method of claim 3 , wherein the regularly scheduled interrupts are based on a tinier.

5. The method of claim 1 , wherein the predetermined task comprises sending interrupts to a processor of the first core to perform a predetermined function at the first core.

6. The method of claim 5 , wherein the predetermined function comprises flushing a cache in the first core.

7. The method of claim 6 , wherein the cache comprises a translation lookaside buffer storing translated addresses of data stored in memory coupled to the computing system.

8. The method of claim 6 , wherein the cache comprises a data cache storing pages of data stored in memory coupled to the computing system.

9. The method of claim 8 , wherein the interrupts to the processor of the first core are sent in response to a page stored in the data cache being allocated after having been freed.

10. The method of claim 1 , wherein determining whether one or more potential errors in execution of one or more processes other than the first process executing on the first core would be caused by disabling the predetermined task on the first core comprises:

determining whether any conditions exist that are associated with the one or more potential errors.

11. The method of claim 10 , wherein determining whether any conditions exist that are associated with the one or more potential errors includes determining whether any other processes would be executing concurrently with the first process on the first core.

12. The method of claim 10 , wherein determining whether any conditions exist that are associated with the one or more potential errors includes determining whether the first process is associated with a user-space or a kernel-space, and the request is granted in response to determining that the first process would not be executing concurrently with any other processes on the first core and that the first process is associated with a user-space and not a kernel-space.

13. The method of claim 1 , further comprising, in response to granting the request, disabling the predetermined task of the operating system on the first core.

14. The method of claim 13 , wherein disabling the predetermined task of the operating system on the first core comprises writing a predetermined value in a resister in the first core.

15. The method of claim 13 , further comprising, after the first core finishes executing the first process, enabling the predetermined task of the operating system on the first core.

16. The method of claim 15 , further comprising storing a request to perform the predetermined task received while the predetermined task is disabled, and performing the predetermined task after enabling the predetermined task of the operating system on the first core.

17. The method of claim 16 , wherein the predetermined task comprises sending an interrupt to a processor of the first core to flush a cache in the first core.

18. The method of claim 15 , wherein the first core finishes executing the first process in response to an event that is handled by a second process executing on the first core.

19. The method of claim 1 , wherein the request comprises a value of a parameter accessible to the operating system.

20. The method of claim 19 , wherein the parameter comprises a command-line parameter of a program executing on the computing system, or a parameter whose value is programmed into a program executing on the computing system or programmed into a script used to initiate execution of a program executing on the computing system.

21. A computer program product tangibly embodied on a computer-readable storage device, the computer program product for managing processes in a computing system comprising one or more cores, the computer program including instructions for causing the computing system to:

receive a request for a first process on a first core to execute with at least one predetermined task of an operating system disabled on the first core;

in response to the request, determine, by the operating system whether one or more potential errors in execution of one or more processes other than the first process executing on the first core would be caused by disabling the predetermined task on the first core; and

grant the request or reject the request in response to determining whether one or more potential errors in execution of one or more processes other than the first process executing on the first core would be caused by disabling the predetermined task on the first core.

22. The computer program product of claim 21 , wherein the computer program further comprises instructions to isolate the first core from the other cores while the first process is executing if the request is granted.

23. The computer program product of claim 22 , wherein the predetermined task comprises sending interrupts to a processor of the first core to perform a predetermined function at the first core.

24. The computer program product of claim 23 , wherein the predetermined function comprises flushing a cache in the first core.

25. The computer program product of claim 24 , wherein the cache comprises a translation lookaside buffer storing translated addresses of data stored in memory coupled to the computing system.

26. The computer program product of claim 21 , wherein the predetermined task comprises regularly scheduled interrupts sent to a processor of the first core by the operating system.

27. The computer program product of claim 26 , wherein the regularly scheduled interrupts are based on a timer.

28. The computer program product of claim 21 , wherein instructions to determine whether one or more potential errors in execution of one or more processes other than the first process executing on the first core would be caused by disabling the predetermined task on the first core comprises instructions to:

determine whether any conditions exist that are associated with the one or more potential errors.

29. The computer program product of claim 28 , wherein instructions to determine whether any conditions exist that are associated with the one or more potential errors includes instructions to

determine whether any other processes would be executing concurrently with the first process on the first core.

30. The computer program product of claim 28 , wherein instructions to determine whether any conditions exist that are associated with the one or more potential errors includes instructions to

determine whether the first process is associated with a user-space or a kernel-space, and the request is granted in response to determining that the first process would not be executing concurrently with any other processes on the first core and that the first process is associated with a user-space and not a kernel-space.

31. The computer program product of claim 28 , wherein the computer program further comprises instructions to disable the predetermined task of the operating system on the first core, in response to granting the request.

32. The computer program product of claim 31 , wherein the computer program further comprises instructions to

store a request to perform the predetermined task received while the predetermined task is disabled, and

perform the predetermined task after enabling the predetermined task of the operating system on the first core.

33. A computing system, comprising:

one or more cores configured to run an operating system;

a timer accessible to one or more of the cores configured to be enabled and disabled according to information stored in a register; and

processors of one or more of the cores configured to:

receive a request for a first process on a first core to execute with at least one predetermined task of the operating system associated with the timer disabled on the first core;

in response to the request, determine, by the operating system whether one or more potential errors in execution of one or more processes other than the first process executing on the first core would be caused by disabling the predetermined task on the first core; and

grant the request or rejecting the request in response to determining whether one or more potential errors in execution of one or more processes other than the first process executing on the first core would be caused by disabling the predetermined task on the first core.

34. The system of claim 33 , wherein the processors of one or more of the cores are further configured to isolate the first core from the other cores while the first process is executing if the request is granted.

35. The system of claim 33 , wherein the predetermined task comprises regularly scheduled interrupts sent to a processor of the first core by the operating system.

36. The system of claim 35 , wherein the regularly scheduled interrupts are based on a timer.

37. The system of claim 35 , wherein the predetermined task comprises sending interrupts to a processor of the first core to perform a predetermined function at the first core.

38. The system of claim 37 , wherein the predetermined function comprises flushing a cache in the first core.

39. The system of claim 37 , wherein the cache comprises a translation lookaside buffer storing translated addresses of data stored in memory coupled to the computing system.

40. The system of claim 33 , further configured to:

determine whether any conditions exist that are associated with the one or more potential errors.

41. The system of claim 40 , further configured to:

determine whether any other processes would be executing concurrently with the first process on the first core.

42. The system of claim 40 , further configured to:

determine whether the first process is associated with a user-space or a kernel-space, and the request is granted in response to determining that the first process would not be executing concurrently with any other processes on the first core and that the first process is associated with a user-space and not a kernel-space.

43. The system of claim 40 , further configured to:

disable the predetermined task of the operating system on the first core, in response to granting the request.

44. The system of claim 43 , further configured to:

store a request to perform the predetermined task received while the predetermined task is disabled, and

perform the predetermined task after enabling the predetermined task of the operating system on the first core.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 42962/0859 Recorded Jul 13, 2018
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: MELLANOX TECHNOLOGIES, LTD.; MELLANOX TECHNOLOGIES TLV LTD.; MELLANOX TECHNOLOGIES SILICON PHOTONICS INC.
Reel/Frame 046551/0459 →
SECURITY INTEREST Recorded Jun 23, 2017
From: MELLANOX TECHNOLOGIES, LTD.; MELLANOX TECHNOLOGIES TLV LTD.; MELLANOX TECHNOLOGIES SILICON PHOTONICS INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 042962/0859 →
DIVIDEND DECLARATION FROM EZCHIP SEMICONDUCTOR INC. TO THE STOCKHOLDER OF RECORD ON 6/2/2015 (EZCHIP INC., A DELAWARE CORPORATION) Recorded Feb 16, 2017
From: EZCHIP SEMICONDUCTOR INC.
To: EZCHIP, INC.
Reel/Frame 041736/0013 →
PURCHASE AGREEMENT Recorded Feb 16, 2017
From: EZCHIP, INC.
To: EZCHIP SEMICONDUCTOR LTD.
Reel/Frame 041736/0151 →
MERGER Recorded Feb 16, 2017
From: EZCHIP TECHNOLOGIES LTD.
To: EZCHIP SEMICONDUCTOR LTD.
Reel/Frame 041736/0321 →
MERGER Recorded Feb 16, 2017
From: EZCHIP SEMICONDUCTOR LTD.
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 041870/0455 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2017
From: EZCHIP SEMICONDUCTOR LTD.
To: EZCHIP TECHNOLOGIES, LTD.
Reel/Frame 041736/0253 →
MERGER Recorded Feb 16, 2017
From: TILERA CORPORATION
To: EZCHIP SEMICONDUCTOR INC.
Reel/Frame 041735/0792 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 27, 2010
From: METCALF, CHRISTOPHER D.
To: TILERA CORPORATION
Reel/Frame 025207/0535 →