IFTASK Hyperthreading

Revision History

Revision Details

Release

First introduced.

21.25

Feature Description

Hyperthreading uses the Parallel Computing technology to enhance the system performance on processing the packets.

How it Works

IFTASK Hyperthreading ensures that the Poll Mode Driver (PMD)/Multichannel Direct Memory Access (MCDMA) and session manager threads don’t coexist on a physical core that is enabled with hyperthreading.

When you enable Hyperthreading, a single core is split into two cores. Hyperthreading ensures that the physical core and its sibling are running the same kind of process, that is, both running either PMD/MCDMA threads or session manager.

The Intel Data Plane Development Kit (DPDK)/IFTASK schedules the PMD and MCDMA threads starting from CPU core number 1 and reserves the core 0 (Master core) for servicing the IFTASK process.

On non-hyperthreaded systems, scheduling PMD and MCDMA threads on any CPU core doesn’t have any impact on cache utilization and overall system performance. But, when hyperthreading is enabled, a core and its sibling are scheduled either with PMD/MCDMA or with session manager, resulting in a better system performance. To achieve this, and to maintain the CPU pair, the core numbers are scheduled from 2, instead of starting from 1. The number of IFTASK cores should always be an even number.

CPU Isolation

To enhance the system performance, the CPU which runs the PMD/MCDMA threads is isolated from the kernel. Once the CPU is isolated, the kernel stops scheduling interrupt or other kernel processes.

Limitations and Restrictions

This feature has the following limitations and restrictions in this release:

  • This feature is currently supported only on VPC-DI chassis, and not qualified yet for Single Instance (VPC-SI) on Control Plane (CP).

  • When you enable or disable "isolcpu", all Service Function (SF) cards are rebooted twice to take effect.

  • When you modify IFTASK core configuration with "isolcpu", SF card is rebooted thrice to take effect.

  • After enabling hyperthreading, and with single Non-Uniform Memory Access (NUMA) node, the number of PMD/MCDMA cores should be an even number.

  • On two NUMA system, the number of PMD/MCDMA cores should be divisible by four, so that the cores are split evenly.

Configuring CPU Isolation

Use the following configuration to enable CPU isolation:

config 
    iftask  
        isolcpu-enable 
        end 

NOTES:

  • iftask isolcpu-enable : Enables CPU isolation for all SF cards on Virtualized Packet Core - Distributed Instance (VPC-DI) chassis.

  • Use the no iftask isolcpu-enable CLI command to disable CPU isolation.