IP Library Granted Patent US 9,329,912
Granted Patent B2
US 9,329,912 · App. 13/549,342 · Granted May 3, 2016

Core-affine processing on symmetric multiprocessing systems

Inventors: Rekesh John (Livermore, CA); Srinivasa R. Addepalli (San Jose, CA)
Assignee: FREESCALE SEMICONDUCTOR, INC.
G06F9/544G06F9/54
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,329,912
App. No.
13/549,342
Granted
May 3, 2016
Kind
B2
Abstract

Embodiments of a symmetric multi-processing (SMP) system can provide full affinity of a connection to a core processor when desired, even when ingress packet distribution, protocol processing layer and applications may autonomously process packets on different cores of the SMP system. In an illustrative embodiment, the SMP system can include a server application that is configured to create a plurality of tasks and bind the plurality of tasks to a plurality of core processors. One or more of the plurality of tasks are configured to create a corresponding listening endpoint socket, bind and listen on a protocol address that is common to the plurality of tasks.

Claims (51)

1. A symmetric multi-processing (SMP) system comprising:

a server application configured to create a plurality of tasks and bind the plurality of tasks to a plurality of core processors, the plurality of tasks configured to create a corresponding listening endpoint socket, and bind and listen on a protocol address common to the plurality of tasks; and

a protocol processor configured to respond to an ingress Transmission Control Protocol (TCP) connection on a predetermined core processor of the plurality of core processors by performing look-up of core-local information to locate a listening endpoint socket corresponding to a task local to the predetermined core processor with a core-preference for handling the TCP connection using the listening endpoint socket,

when the listening endpoint is located, establishing the TCP connection on the located listening endpoint socket, applying the TCP connection to the task local and bound to the predetermined core processor, and marking the TCP connection as no-lock required, and

when the listening endpoint is not located, passing the TCP connection to any available task of a matching socket with semantics preserved.

2. The SMP system according to claim 1 wherein:

the plurality of tasks are configured to generate an indication to a stack on the plurality of endpoint sockets respective to the plurality of tasks, the indication specifying that a listened-to endpoint socket accepts endpoint connections arriving on a same core processor.

3. The SMP system according to claim 2 wherein:

the server application is configured wherein the indication is recorded by a Transmission Control Protocol/Internet Protocol (TCP/IP) stack comprising marking an endpoint socket respective to a task of the plurality of tasks indicative of a local core preference, the TCP/IP stack storing core-identifier information within the endpoint socket and storing the endpoint socket in a core-local data structure specific to the respective core processor.

4. The SMP system according to claim 1 wherein:

the located TCP connection applies subsequent packets arriving on the located TCP connection on the predetermined core processor to the task local and bound to the predetermined core processor and processed lock-free.

5. The SMP system according to claim 1 , wherein:

the protocol processor is further configured to respond to arrival of a plurality of packets of an incoming Transmission Control Protocol (TCP) connection on a predetermined core processor of the plurality of core processors by interrogating sockets information to locate an endpoint socket corresponding to a task local to the predetermined core processor with a core preference for handling the TCP connection using the listening endpoint socket.

6. The SMP system according to claim 5 further comprising:

a Transmission Control Protocol/Internet Protocol (TCP/IP) stack configured to interrogate sockets information to find a matching socket with an indicated local core preference and establish a connection on the predetermined core processor and pass the established connection to an application task that executes on the predetermined core processor, the established connection being marked as lockless.

7. The SMP system according to claim 5 wherein:

the protocol processor is configured wherein connection establishment and passing of the established connection to a locally-bound server process are attained without sharing data structures across core processors and without cross-core data sharing and locks.

8. The SMP system according to claim 5 wherein:

the protocol processor is configured in absence of a task local to the predetermined core processor with an indicated core preference to select any task that is waiting for the TCP connection by locating a matching endpoint socket on another core processor or an endpoint socket that does not have the core-preference indicated on the endpoint socket.

9. The SMP system according to claim 5 further comprising:

a classifier configured to send initial and subsequent incoming packets for the TCP/IP connection to the predetermined core processor wherein a task on the predetermined core processor holds the TCP/IP connection and the subsequent packets are processed on the predetermined core processor without cross-core communications, the TCP/IP connection identified for lockless processing by a protocol stack by marking of a lockless attribute.

10. The SMP system according to claim 1 wherein:

the protocol processor is further configured to process egress packets passing from a server to a client and ingress packets passing from the client to the server without cross-core data sharing and locks wherein egress packets originating from the server are bound to a predetermined core processor of the plurality of core processors at which ingress packets of a Transmission Control Protocol (TCP) connection also arrive, and the ingress packets and the egress packets are processed on the same predetermined core processor.

11. The SMP system according to claim 10 wherein:

the protocol processor uses a lockless attribute marked on the TCP connection to specify that locks are not required when processing the TCP connection.

12. A symmetric multi-processing (SMP) system comprising:

a protocol processor configured to

respond to an ingress Transmission Control Protocol (TCP) connection on a predetermined core processor of a plurality of core processors by

performing look-up of core-local information to locate a listening endpoint socket corresponding to a task local to the predetermined core processor with a core-preference for handling the TCP connection using the listening endpoint socket,

when the listening endpoint is located, establishing the TCP connection on the located listening endpoint socket, applying the TCP connection to the task local and bound to the predetermined core processor, and marking the TCP connection as no-lock required, and

when the listening endpoint is not located, passing the TCP connection to any available task of a matching socket with semantics preserved; and

respond to arrival of a plurality of packets of the TCP connection on the predetermined core processor by interrogating sockets information to locate an endpoint socket corresponding to the task local to the predetermined core processor.

13. The SMP system according to claim 12 further comprising:

a Transmission Control Protocol/Internet Protocol (TCP/IP) stack configured to interrogate sockets information to find a matching socket with an indicated local core preference and establish a connection on the predetermined core processor and pass the established connection to an application task that executes on the predetermined core processor, the established connection being marked as lockless.

14. The SMP system according to claim 12 wherein:

the protocol processor is configured wherein connection establishment and passing of the established connection to a locally-bound server process are attained without sharing data structures across core processors and without cross-core data sharing and locks.

15. The SMP system according to claim 12 wherein:

the protocol processor is configured in absence of a task local to the predetermined core processor with an indicated core preference to select any task that is waiting for the TCP connection by locating a matching endpoint socket on another core processor or an endpoint socket that does not have core-preference indicated on the endpoint socket.

16. The SMP system according to claim 12 further comprising:

a classifier configured to send initial and subsequent incoming packets for the TCP/IP connection to the predetermined core processor wherein a task on the predetermined core processor holds the TCP/IP connection and the subsequent packets are processed on the predetermined core processor without cross-core communications, the TCP/IP connection identified for lockless processing by a protocol stack by marking of a lockless attribute.

17. A method for symmetric multi-processing (SMP) comprising:

creating a plurality of tasks;

binding the plurality of tasks to a plurality of core processors;

creating a listening endpoint socket corresponding to the plurality of tasks;

binding and listening on a protocol address common to the plurality of tasks; and

responding to an ingress Transmission Control Protocol (TCP) connection on a predetermined core processor of the plurality of core processors by

performing look-up of core-local information to locate a listening endpoint socket corresponding to a task local to the predetermined core processor with a core-preference for handling the TCP connection using the listening endpoint socket,

if the listening endpoint is located, establishing the TCP connection on the located listening endpoint socket, applying the TCP connection to the task local and bound to the predetermined core processor, and marking the TCP connection as no-lock required, and

if the listening endpoint is not located, passing the TCP connection to any available task of a matching socket with semantics preserved.

18. The method according to claim 17 further comprising:

responding to arrival of a plurality of packets of the TCP connection on the predetermined core processor of the plurality of core processors by interrogating sockets information to locate an endpoint socket corresponding to the task local to the predetermined core processor with an indicated core preference.

Assignments (22)
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 →
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 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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040652 FRAME: 0241. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Jan 5, 2017
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 041260/0850 →
MERGER Recorded Nov 8, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 040652/0241 →
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 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
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/0652 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0614 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0633 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →
SECURITY AGREEMENT Recorded Jun 18, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030633/0424 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Apr 20, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030256/0471 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Apr 20, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030256/0625 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Apr 20, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030256/0544 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2012
From: JOHN, REKESH; ADDEPALLI, SRINIVASA R.
To: FREESCALE SEMICONDCUTOR, INC., AUSTIN, TEXAS
Reel/Frame 028549/0424 →
Continuity (1)
Related Publication 20140019982A1 · Jan 16, 2014