Offline Packet Processing for CPU Power Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current packet processing methods, such as polling and interrupt modes, face inefficiencies in CPU resource utilization and power consumption, especially in high-throughput scenarios with diverse traffic classes, leading to increased power consumption in data centers and networks.

Innovation Solution

Implementing an offline packet processing framework that allows applications to passively check for data in pre-defined buffers without interrupts or polling, using a 'Do-Not-Disturb' mechanism to save CPU power by processing packets asynchronously and opportunistically, with the Network Interface Controller (NIC) writing packets to specific memory locations based on 5-tuple socket information.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If polling mode is used for packet processing, then CPU is ready to process packets instantaneously and throughput is improved, but CPU cycle resources are wasted when no packets are arriving

Engineering Contradiction:
Improvepacket processing throughputVSAvoidCPU power consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The NIC pre-processes packets by copying them to application buffers before the application needs to process them. This preliminary action allows the application to sleep without blocking packet processing, resolving the contradiction between immediate processing readiness and CPU power consumption.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Application buffers act as an intermediary between the NIC and application processing logic. The NIC writes packets to these buffers and can proceed independently, while the application wakes only when buffers need processing, eliminating the need for continuous polling.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Use of energy by moving object

If interrupt mode is used for packet processing, then CPU wake-ups are reduced and power consumption is lowered, but context switch overhead increases and throughput decreases

Engineering Contradiction:
ImproveCPU power consumptionVSAvoidpacket processing throughput
Core Design Contradiction:
Use of energy by moving objectVSProductivity

Solution Approach 1:

The NIC performs preliminary packet copying to application buffers before the application is ready to process them. This eliminates the need for interrupts to wake the application, as packets are already prepared in buffers when the application wakes from sleep state.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The application proactively manages its own wake-up timing based on buffer availability and processing needs, rather than being passively woken by interrupts. This self-service approach reduces unnecessary context switches while maintaining processing throughput.

Inventive Principle:
Principle #25Self-service

3Adaptability or versatility

If traditional polling or interrupt approaches are used for diverse traffic classes, then packet processing can be handled, but power consumption increases in high-throughput scenarios

Engineering Contradiction:
Improvetraffic class handling capabilityVSAvoidCPU power consumption
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

Solution Approach 1:

The system segments packet processing by traffic class, allowing different processing modes for different classes. Critical traffic can use immediate processing while less critical traffic uses offline processing, enabling power savings without sacrificing essential service quality.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically adjusts processing mode based on traffic conditions and class requirements. The NIC can switch between interrupt-driven and offline processing modes depending on the traffic pattern, optimizing power consumption while maintaining adaptability to diverse traffic classes.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11956156B2Dynamic offline end-to-end packet processing based on traffic class
Publication Date: 2024.04.09 INTEL CORP
  • US11956156B2 patent drawing
  • US11956156B2 patent drawing
  • US11956156B2 patent drawing

AI summary

Methods and apparatus for dynamic offline end-to-end packet processing based on traffic class. An end-to-end connection is set up between an application on a client including a processor and host memory and an application on a remote server. An offline packet buffer is allocated in host memory. While the processor and/or a core on with the client application is executed is in a sleep state, the client is operated in an interrupt-less and polling-less mode as applied to a predetermined traffic class. Under the mode, a Network Interface Controller (NIC) at the client receives network traffic from the remote server and determines whether the network traffic is associated with the predetermined traffic class. When it is, the NIC writes packet data extracted from the network traffic to an offline packet buffer. Descriptors are generated and provided to the NIC to inform the NIC of the location and size of the offline packet buffer.