Network Adapter Packet Order Preservation During Core Migration
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing network communication systems face challenges in maintaining packet order during core-to-core migration in multi-core processors, leading to reduced system performance due to potential packet reordering, which current load balancing schemes struggle to prevent effectively.
Innovation Solution
A network adapter inserts special markers into descriptor queues to notify the operating system of migration events, ensuring that packets are held on new cores until the old core receives the marker, thus preserving order by synchronizing the processing of network flows across cores.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If network flows are migrated between cores to balance load, then system scalability is improved, but packet processing order is disrupted
Solution Approach 1:
The system performs preliminary actions by having the destination core hold incoming packets in a temporary buffer before the source core finishes processing. This preliminary buffering ensures that when the migration completes, packets are delivered in the correct order without disrupting the load balancing benefits of core migration.
Solution Approach 2:
A migration marker descriptor acts as an intermediary signal between the source and destination cores. This marker is inserted into the descriptor queue to coordinate the migration process, ensuring that the destination core knows when to release held packets and maintain proper ordering while still enabling load distribution across multiple cores.
2Productivity
If load balancing migration is performed frequently, then system performance is improved through better load distribution, but packet reordering occurs more often
Solution Approach 1:
The system uses feedback through migration marker descriptors to coordinate between cores. When migration is needed, the marker is inserted into the descriptor queue, providing feedback to the destination core to hold packets temporarily. This feedback mechanism allows frequent migrations while maintaining packet order, as each migration event is properly coordinated.
Solution Approach 2:
Before completing a migration, the destination core performs preliminary buffering of packets in a temporary buffer. This preliminary action ensures that even with frequent migrations, packets are always held until the migration is complete, preventing reordering delays while allowing aggressive load balancing.
3Reliability
If packets are held on new cores during migration, then packet order is preserved, but processing delay increases
Solution Approach 1:
The system applies partial buffering by holding only the specific packets affected by migration in a temporary buffer, rather than buffering all packets. This partial action minimizes processing delay while still preserving packet order for migrated flows, as only the necessary packets are held during the migration transition.
Solution Approach 2:
The migration marker descriptor serves as an intermediary that coordinates the exact timing of packet release. The marker is inserted at the precise moment migration should occur, allowing the destination core to hold packets only for the necessary duration and release them immediately when appropriate, minimizing delay while ensuring order.
Data Source
AI summary
In one embodiment, the present invention includes a method for receiving a first packet associated with a first network flow in a first descriptor queue associated with a first hardware thread, receiving a marker in the first descriptor queue to indicate migration of the first network flow from the first hardware thread to a second hardware thread, and processing a second packet of the first network flow following the first packet in order in the second hardware thread.


