IP Library Granted Patent US 10,932,202
Granted Patent B2
US 10,932,202 · App. 16/442,094 · Granted Feb 23, 2021

Technologies for dynamic multi-core network packet processing distribution

Inventors: Jasvinder Singh (Shannon, IE); Harry van Haaren (Limerick, IE); Reshma Pattan (Tuam, IE); Radu Nicolau (Limerick, IE)
Assignee: Intel Corporation
H04W52/241G06F9/544G06F13/28H04B17/336H04L1/0003H04L1/0031H04L49/9021H04W24/10H04W52/367H04W52/42H04W72/0446H04W72/0473H04B7/0413H04L1/0026
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 10,932,202
App. No.
16/442,094
Granted
Feb 23, 2021
Kind
B2
Abstract

Technologies for dynamic multi-core packet processing distribution include a compute device having a distributor core, a direct memory access (DMA) engine, and multiple worker cores. The distributor core writes work data to a distribution buffer. The work data is associated with a packet processing operation. The distributor core may perform a work distribution operation to generate the work data. The work data may be written to a private cache of the distributor core. The distributor core programs the DMA engine to copy the work data from the distribution buffer to a shadow buffer. The DMA engine may copy the work data from one cache line of a shared cache to another cache line of the shared cache. The worker cores access the work data in the shadow buffer. The worker cores may perform the packet processing operation with the work data. Other embodiments are described and claimed.

Claims (46)

1. A compute device for network packet processing, the compute device comprising:

a distributor thread to (i) write, by a first processor core of the compute device, work data to a distribution buffer, wherein the work data is associated with a packet processing operation; and (ii) program, by the first processor core, a direct memory access engine of the compute device to copy the work data from the distribution buffer to a shadow buffer in response to a write of the work data; and

a first worker thread to access, by a second processor core of the compute device, the work data in the shadow buffer in response to the program of the direct memory access engine;

wherein the direct memory access engine is to copy the work data from the distribution buffer to the shadow buffer in response to the programming of the direct memory access engine, and wherein to copy the work data from the distribution buffer to the shadow buffer comprises to copy the work data from a first cache line of a shared cache to a second cache line of the shared cache, wherein the shared cache is shared by the first processor core and the second processor core; and

wherein to access the work data in the shadow buffer further comprises to access the work data in response to copying of the work data.

2. The compute device of claim 1 , wherein the first worker thread is further to perform, by the second processor core, the packet processing operation in response to an access of the work data.

3. The compute device of claim 1 , wherein:

the distributor thread is further to receive network packet data via a host fabric interface; and

to write the work data to the distribution buffer comprises to write the work data based on the network packet data in response to receipt of the network packet data.

4. The compute device of claim 1 , wherein:

the distributor thread is further to perform, by the first processor core of the compute device, a work distribution operation to generate the work data, wherein the work data is indicative of the second processor core; and

to write the work data comprises to write the work data in response to performance of the work distribution operation.

5. The compute device of claim 1 , further comprising a second worker thread to access, by a third processor core of the compute device, the work data in the shadow buffer in response to the program of the direct memory access engine.

6. The compute device of claim 1 , wherein:

to write the work data to the distribution buffer comprises to write a first cache line of a first private cache of the first processor core;

to copy the work data from the distribution buffer to the shadow buffer further comprises to transfer the work data from the first cache line of the first private cache to the first cache line of the shared cache, wherein the shared cache comprises a last-level cache; and

to access the work data in the shadow buffer comprises to transfer the work data from the second cache line of the shared cache to a second cache line of a private cache of the second processor core.

7. The compute device of claim 6 , wherein to write the work data to the first cache line comprises to perform a read-for-ownership operation on the first cache line.

8. The compute device of claim 1 , wherein to program the direct memory access engine comprises to perform a memory-mapped I/O write operation.

9. The compute device of claim 8 , wherein to program the direct memory access engine further comprises to write a descriptor to memory, wherein the descriptor is indicative of the distribution buffer and the shadow buffer.

10. A method for network packet processing, the method comprising:

writing, by a first processor core of a compute device, work data to a distribution buffer, wherein the work data is associated with a packet processing operation;

programming, by the first processor core, a direct memory access engine of the compute device to copy the work data from the distribution buffer to a shadow buffer in response to writing the work data;

copying, by the direct memory access engine, the work data from the distribution buffer to the shadow buffer in response to programming the direct memory access engine, wherein copying the work data from the distribution buffer to the shadow buffer comprises copying the work data from a first cache line of a shared cache to a second cache line of the shared cache, wherein the shared cache is shared by the first processor core and a second processor core; and

accessing, by the second processor core of the compute device, the work data in the shadow buffer in response to programming the direct memory access engine and in response to copying the work data.

11. The method of claim 10 , further comprising:

performing, by the first processor core, a work distribution operation to generate the work data, wherein the work data is indicative of the second processor core and writing the work data comprises writing the work data in response to performing the work distribution operation.

12. The method of claim 10 , further comprising accessing, by a third processor core of the compute device, the work data in the shadow buffer in response to programming the direct memory access engine.

13. The method of claim 10 , wherein:

writing the work data to the distribution buffer comprises writing a first cache line of a first private cache of the first processor core;

copying the work data from the distribution buffer to the shadow buffer further comprises transferring the work data from the first cache line of the first private cache to the first cache line of the shared cache, wherein the shared cache comprises a last-level cache; and

accessing the work data in the shadow buffer comprises transferring the work data from the second cache line of the shared cache to a second cache line of a private cache of the second processor core.

14. The method of claim 10 , wherein programming the direct memory access engine comprises performing a memory-mapped I/O write operation.

15. One or more computer-readable storage media comprising a plurality of instructions stored thereon that, in response to being executed, cause a compute device to:

write, by a first processor core of the compute device, work data to a distribution buffer, wherein the work data is associated with a packet processing operation;

program, by the first processor core, a direct memory access engine of the compute device to copy the work data from the distribution buffer to a shadow buffer in response to writing the work data;

copy, by the direct memory access engine, the work data from the distribution buffer to the shadow buffer in response to programming the direct memory access engine, wherein to copy the work data from the distribution buffer to the shadow buffer comprises to copy the work data from a first cache line of a shared cache to a second cache line of the shared cache, wherein the shared cache is shared by the first processor core and a second processor core; and

access, by the second processor core of the compute device, the work data in the shadow buffer in response to programming the direct memory access engine and in response to copying the work data.

16. The one or more computer-readable storage media of claim 15 , further comprising a plurality of instructions stored thereon that, in response to being executed, cause the compute device to:

perform, by the first processor core, a work distribution operation to generate the work data, wherein the work data is indicative of the second processor core and to write the work data comprises to write the work data in response to performing the work distribution operation.

17. The one or more computer-readable storage media of claim 15 , further comprising a plurality of instructions stored thereon that, in response to being executed, cause the compute device to access, by a third processor core of the compute device, the work data in the shadow buffer in response to programming the direct memory access engine.

18. The one or more computer-readable storage media of claim 15 , wherein:

to write the work data to the distribution buffer comprises to write a first cache line of a first private cache of the first processor core;

to copy the work data from the distribution buffer to the shadow buffer further comprises to transfer the work data from the first cache line of the first private cache to the first cache line of the shared cache, wherein the shared cache comprises a last-level cache; and

to access the work data in the shadow buffer comprises to transfer the work data from the second cache line of the shared cache to a second cache line of a private cache of the second processor core.

19. The one or more computer-readable storage media of claim 15 , wherein to program the direct memory access engine comprises to perform a memory-mapped I/O write operation.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 17, 2019
From: SINGH, JASVINDER; VAN HAAREN, HARRY; PATTAN, RESHMA; NICOLAU, RADU
To: INTEL CORPORATION
Reel/Frame 049482/0932 →
Continuity (2)
Provisional Application 62685318 · Jun 15, 2018
Related Publication 20190294570A1 · Sep 26, 2019
Cited By (1)
US 12,670,416