IP Library Granted Patent US 9,552,225
Granted Patent B2
US 9,552,225 · App. 14/321,201 · Granted Jan 24, 2017

Data processing system with data transmit capability

Inventors: Steven Leslie Pope (Costa Mesa, CA); David James Riddoch (Fenstanton, GB); Greg Law (Cambridge, GB)
Assignee: Solarflare Communications, Inc.
G06F9/4881G06F9/468G06F9/544G06F9/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,552,225
App. No.
14/321,201
Granted
Jan 24, 2017
Kind
B2
Abstract

A data processing system with data transmit capability 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 (46)

1. A method performed in a computer system for controlling processing of an instruction in user mode or kernel mode, the method comprising:

receiving a first instruction including an indication of a socket;

determining an ownership of the socket;

based on the determined ownership of the socket, storing in a data structure an indication of the ownership of the socket, wherein the socket is owned by an entity from a list, said list comprising a kernel of the computer system and a user-level entity of the computer system;

in response to receiving a subsequent instruction including an indication of the socket:

using the data structure to identify ownership of the socket for the subsequent instruction;

passing the subsequent instruction to an operating system of the computer system for processing at the kernel if the data structure indicates ownership by the kernel for that socket; and

passing the subsequent instruction to the user-level entity for processing at the user-level entity if the data structure indicates ownership by the user-level entity for that socket.

2. A method as claimed in claim 1 , performed by a socket library in the computer system.

3. A method as claimed in claim 2 , wherein the socket library contains a TCP/IP stack.

4. A method as claimed in claim 2 wherein the data structure is stored at the socket library.

5. A method as claimed in claim 1 , wherein the indication of ownership is an ownership from the list comprising A, B and C, where:

A indicates ownership by the kernel of the operating system in the computer system;

B indicates ownership by another owner; and

C indicates unknown ownership.

6. A method as claimed in claim 5 , further comprising:

receiving an indication that the ownership of the socket may have changed; and

changing an entry in the data structure to indicate the ownership of the socket as C.

7. A method as claimed in claim 1 , wherein the first instruction is a system call.

8. A method as claimed in claim 1 , wherein the socket is identified by a descriptor, and wherein the descriptor is a file descriptor.

9. A method as claimed in claim 1 , further comprising:

accessing the data structure to determine the ownership of the socket; and

routing the subsequent instruction based on the determined ownership of the socket.

10. The method of claim 9 wherein routing the subsequent instruction further comprises:

in accordance with the determined ownership of the socket, determining a route; and

transmitting the subsequent instruction in accordance with the determined route.

11. The method of claim 1 wherein the computer system is arranged to perform protocol processing and transmit data via an interface on the basis of instructions in accordance with a route.

12. A method as claimed in claim 1 , wherein the step determining the ownership of the socket occurs in response to determining that the ownership of the socket is unknown.

13. A method as claimed in claim 1 , wherein the step of determining the ownership of the socket occurs in response to a change in the value of a counter.

14. A method as claimed in claim 1 , wherein the first instruction further includes a network address, and the step of determining an ownership of the is socket is carried out in dependence upon the network address.

15. A non-transitory computer readable medium carrying a program for controlling a computer system to process an instruction in user mode or kernel mode, the program being configured to execute on one or more processors of the computer system to perform the steps of:

receiving a first instruction including an indication of a socket;

determining an ownership of the socket;

based on the determined ownership of the socket, storing in a data structure an indication of the ownership of the socket, wherein the socket is owned by an entity from a list, said list comprising a kernel of the computer system and a user level entity of the computer system;

in response to receiving a subsequent instruction including an indication of the socket:

using the data structure to identify ownership of the socket for the subsequent instruction;

passing the subsequent to an operating system of the computer system for processing at the kernel if the data structure indicates ownership by the kernel for that socket; and

passing the subsequent to the user-level entity for processing at the user-level entity if the data structure indicates ownership by the user-level entity for that socket.

16. A computer system comprising one or more processors configured to process instructions in user mode or kernel mode, the one or more processors being configured to execute instructions to perform the steps of:

receiving a first instruction including an indication of a socket;

determining an ownership of the socket;

based on the determined ownership of the socket, storing in a data structure an indication of the ownership of the socket, wherein the socket is owned by an entity from a list, said list comprising a kernel of the computer system and a user level entity of the computer system;

in response to receiving a subsequent instruction including an indication of the socket:

using the data structure to identify ownership of the socket for the subsequent instruction;

passing the subsequent to an operating system of the computer system for processing at the kernel if the data structure indicates ownership by the kernel for that socket; and

passing the subsequent to the user-level entity for processing at the user-level entity if the data structure indicates ownership by the user-level entity for that socket.

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 Nov 25, 2014
From: POPE, STEVEN LESLIE; RIDDOCH, DAVID JAMES; LAW, GREG
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 034262/0236 →
Priority Claims (1)
GB 0505300.4 · Mar 15, 2005 · national
Continuity (4)
Continuation 11982148 · Oct 31, 2007
Division 11900377 · Sep 10, 2007
Continuation PCTGB2006000852 · Mar 10, 2006
Related Publication 20140317630A1 · Oct 23, 2014