IP Library Granted Patent US 9,063,771
Granted Patent B2
US 9,063,771 · App. 14/151,642 · Granted Jun 23, 2015

User-level re-initialization instruction interception

Inventors: Steven Leslie Pope (Costa Mesa, CA); David James Riddoch (Fenstanton, GB); Greg Law (Cambridge, GB)
Assignee: Solarflare Communications, Inc.
G06F9/461G06F9/4843G06F9/526G06F21/57H04L45/00H04L45/02H04L45/54G06F9/545
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,063,771
App. No.
14/151,642
Granted
Jun 23, 2015
Kind
B2
Abstract

A data processing system comprising an operating system for supporting processes, such that the process are associated with one or more resources and the operating system being arranged to police the accessing by processes of resources so as to inhibit a process from accessing resources with which it is not associated. Part of this system is an interface for interfacing between each process and the operating system and a memory for storing state information for at least one process. The interface may be arranged to analyze instructions from the processes to the operating system, and upon detecting an instruction to re-initialize a process cause state information corresponding to that pre-existing state information to be stored in the memory as state information for the re-initialized process and to be associated with the resource.

Claims (33)

1. A data processing system comprising:

an operating system for supporting processes, each process being associated with one or more resources each identifiable by a file descriptor, the operating system being arranged to police the accessing by processes of resources so as to inhibit a process from accessing resources with which it is not associated, and being responsive to instructions of a certain type to reinitialize a process;

a user-level library for interfacing between each process and the operating system; and a memory shared between the operating system and the user-level library for storing state information for at least one process, the state information being associated with a resource;

wherein the user-level library is arranged to analyze instructions from the processes to the operating system, and is arranged to, on detecting an instruction to re-initialize a process associated with a resource that is managed by the user-level library, check whether it has a record of there having been an instruction to reinitialize the process, and cause state information equivalent to the pre-existing state information associated with said resource to be stored in the memory as state information for the re-initialized process and to be associated with the resource.

2. A data processing system as claimed in claim 1 , wherein the said instructions include exec( ) instructions.

3. A data processing system as claimed in claim 1 , wherein the user-level library is arranged to, when two or more resources are associated with the process, cause the said state information corresponding to the said pre-existing state information to be associated with the resource in response to an attempt to access the resource.

4. A data processing system as claimed in claim 1 , wherein the operating system is responsive to instructions of another type to duplicate a process.

5. A data processing system as claimed in claim 4 , wherein the said instructions of another type include fork( ) instructions.

6. A data processing system as claimed in claim 1 , wherein the resource with which the state information is associated is a memory area storing data for transmission and/or reception by the data processing system.

7. A data processing system as claimed in claim 6 , wherein the state information is one or more of: data transmission information, reception state information, information defining a virtual hardware interface, TCP windows, information defining unacknowledged buffers and information defining timeout values.

8. A data processing system as claimed in claim 1 , wherein the system is arranged to be capable of using the state information to form a memory mapping onto the resource.

9. A data processing system as claimed in claim 1 , wherein the operating system has a table indicating which state information is associated with which resource.

10. A data processing system as claimed in claim 1 , wherein the user-level library is arranged to, on detecting an instruction to re-initialize a process so as to be associated with a resource that is associated with pre-existing state information, store a record of that instruction and then pass the instruction to the operating system.

11. A data processing system as claimed in claim 10 , wherein the operating system is arranged to call the user-level library to configure state information for a re-initialized process, and the user-level library is arranged to, on being called to configure state information for a process to check whether it has a record of there having been an instruction to re-initialize that process so as to be associated with a resource that is associated with pre-existing state information; and if so, cause state information corresponding to that pre-existing state information to be stored in the memory as state information for the process and to be associated with the resource, and otherwise generate fresh state information for the process.

12. A data processing system as claimed in claim 1 , wherein the right of a process to access a resource is enabled by allocating a file descriptor associated with the resource to the process.

13. A data processing system as claimed in claim 1 , wherein a resource can be identifiable by multiple file descriptors.

14. A data processing system as claimed in claim 13 , wherein the operating system is arranged to, in response to instructions to re-initialize a process and allocate a new file descriptor to that process, preferentially allocate a new resource to that process, identifiable by the new file descriptor.

15. A non-transitory computer readable medium including a user-level library for use by a data processing system comprising an operating system for supporting processes, each process being associated with one or more resources each identifiable by a file descriptor, the operating system being arranged to police the accessing by processes of resources so as to inhibit a process from accessing resources with which it is not associated, and being responsive to instructions of a certain type to re-initialize a process and a memory shared between the operating system and the user-level library for storing state information for at least one process, the state information being associated with a resource;

wherein the user-level library is for interfacing between each process and the operating system; and is arranged to analyze instructions from the processes to the operating system, the user-level library being arranged to, on detecting an instruction to re-initialize a process associated with a resource that is managed by the user-level library, check whether it has a record of there having been an instruction to reinitialize the process, and cause state information equivalent to that pre-existing state information associated with said resource to be stored in the memory as state information for the re-initialized process and to be associated with the resource.

16. A user-level library as claimed in claim 15 further comprising a non-transitory machine-readable storage medium having the user-level library recorded thereon, wherein the user-level library is readable from the non-transitory machine-readable storage medium for use by the data processing system.

17. A method for processing instructions in a data processing system comprising: an operating system for supporting processes, each process being associated with one or more resources each identifiable by a file descriptor, the operating system being arranged to police the accessing by processes of resources so as to inhibit a process from accessing resources with which it is not associated, and being responsive to instructions of a certain type to re-initialize a process; a user-level library for interfacing between each process and the operating system; and a memory shared between the operating system and the user-level library for storing state information for at least one process, the state information being associated with a resource; the method comprising the steps of:

analyzing instructions from the processes to the operating system; and

on detecting an instruction to re-initialize a process associated with a resource that is managed by the user-level library, check whether it has a record of there having been an instruction to reinitialize the process, and causing state information equivalent to that pre-existing state information associated with said resource to be stored in the memory as state information for the re-initialize process and to be associated with the resource.

18. A data processing system comprising:

an operating system for supporting processes, each process being associated with one or more resources each identifiable by a file descriptor, the operating system being arranged to police the accessing by processes of resources so as to inhibit a process from accessing resources with which it is not associated, and being responsive to instructions of a certain type to reinitialize a process;

a user-level library for interfacing between each process and the operating system; and

a memory shared between the operating system and the user-level library for storing state information for at least one process, the state information being associated with a resource and comprising one or more of: information defining a virtual hardware interface, information defining unacknowledged buffers and information defining timeout values;

wherein the user-level library is arranged to analyse instructions from the processes to the operating system, and is arranged to, on detecting an instruction to re-initialize a process associated with a resource that is managed by the user-level library, check whether it has a record of there having been an instruction to reinitialize the process, and cause state information equivalent to the pre-existing state information associated with said resource to be stored in the memory as state information for the re-initialized process and to be associated with the resource.

19. A non-transitory computer readable medium including a user-level library for use by a data processing system comprising an operating system for supporting processes, each process being associated with one or more resources each identifiable by a file descriptor, the operating system being arranged to police the accessing by processes of resources so as to inhibit a process from accessing resources with which it is not associated, and being responsive to instructions of a certain type to re-initialize a process and a memory shared between the operating system and the user-level library for storing state information for at least one process, the state information being associated with a resource and comprising one or more of: information defining a virtual hardware interface, information defining unacknowledged buffers and information defining timeout values;

wherein the user-level library is for interfacing between each process and the operating system; and is arranged to analyze instructions from the processes to the operating system, the user-level library being arranged to, on detecting an instruction to re-initialize a process associated with a resource that is managed by the user-level library, check whether it has a record of there having been an instruction to reinitialize the process, and cause state information equivalent to that pre-existing state information associated with said resource to be stored in the memory as state information for the re-initialized process and to be associated with the resource.

20. A method for processing instructions in a data processing system comprising: an operating system for supporting processes, each process being associated with one or more resources each identifiable by a file descriptor, the operating system being arranged to police the accessing by processes of resources so as to inhibit a process from accessing resources with which it is not associated, and being responsive to instructions of a certain type to re-initialize a process; a user-level library for interfacing between each process and the operating system; and a memory shared between the operating system and the user-level library for storing state information for at least one process, the state information being associated with a resource and comprising one or more of: information defining a virtual hardware interface, information defining unacknowledged buffers and information defining timeout values; the method comprising the steps of:

analyzing instructions from the processes to the operating system; and

on detecting an instruction to re-initialize a process associated with a resource that is managed by the user-level library, check whether it has a record of there having been an instruction to reinitialize the process, and causing state information equivalent to that pre-existing state information associated with said resource to be stored in the memory as state information for the re-initialize process and to be associated with the resource.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 25, 2019
From: SOLARFLARE COMMUNICATIONS, INC.
To: XILINX, INC.
Reel/Frame 051108/0209 →
RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jul 31, 2019
From: ALLY BANK
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 049918/0440 →
RELEASE OF SECURITY INTEREST Recorded Jun 15, 2017
From: PACIFIC WESTERN BANK
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 042820/0890 →
SECURITY INTEREST Recorded Mar 7, 2017
From: SOLARFLARE COMMUNICATIONS, INC.
To: ALLY BANK
Reel/Frame 041902/0527 →
SECURITY INTEREST Recorded Apr 6, 2016
From: SOLARFLARE COMMUNICATIONS, INC.
To: PACIFIC WESTERN BANK
Reel/Frame 038363/0589 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2014
From: POPE, STEVEN LESLIE; LAW, GREG; RIDDOCH, DAVID JAMES
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 032883/0153 →
Priority Claims (5)
GB 0504987.9 · Mar 10, 2005 · national
GB 0505297.2 · Mar 15, 2005 · national
GB 0505299.8 · Mar 15, 2005 · national
GB 0505300.4 · Mar 15, 2005 · national
GB 0506403.5 · Mar 30, 2005 · national
Continuity (3)
Continuation 11900377 · Sep 10, 2007
Continuation PCTGB2006000852 · Mar 10, 2006
Related Publication 20140130060A1 · May 8, 2014