Direct Cache Access (DCA) for the acceleration of 10GBit Ethernet

From Thomas-Krenn-Wiki
Jump to navigation Jump to search

Direct Cache Access (DCA) enables enables faster reception of network data. This technology was mainly developed for the acceleration of 10 GBit Ethernet by Intel. With DCA, when network data is received, the packet header and descriptor are written directly to the processor cache. So, both are immediately accessible for the Network Stack Process. This saves a few CPU cycles that would otherwise be required to read this data from RAM.[1]

Activation of DCA in the BIOS

The example shows the DCA option in the BIOS of a server with Supermicro X7DBE mainboard:

DCA option in the BIOS of a X7DBE

Description text from a mainboard guide of Supermicro:

Direct Cache Access (Available when supported by the CPU.)
Set to Enable to route inbound network IO traffic directly into processor caches
to reduce memory latency and improve network performance. The options are
Disabled and Enabled.

DCA under Linux

Linux supports DCA from kernel version 2.6.24[2][3].

In /proc/cpuinfo, you can see the Flag, when the CPU supports DCA (independent from the fact, if DCA is activated in the BIOS or not):

testserver:~ # cat /proc/cpuinfo 
[...]
processor       : 7
vendor_id       : GenuineIntel
cpu family      : 6
model           : 23
model name      : Intel(R) Xeon(R) CPU           E5405  @ 2.00GHz
stepping        : 6
cpu MHz         : 2000.066
cache size      : 6144 KB
physical id     : 1
siblings        : 4
core id         : 3
cpu cores       : 4
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi
mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx tm2 cx16 xtpr dca lahf_lm
bogomips        : 4000.41
clflush size    : 64
cache_alignment : 64
address sizes   : 38 bits physical, 48 bits virtual
power management:

testserver:~ # 

Examples

This 10GBit network card supports, for example, DCA:http://www.supermicro.com/products/accessories/addon/AOC-UTG-I2.cfm

References

  1. Server Network I/O Acceleration, Fundamental to the Data Center of the Future (Seite 5, Direct Cache Access)
  2. Kernelnewbies: Linux 2.6.24 DCA: Add Direct Cache Access driver
  3. Linux Kernel Mailing List: I/OAT: Add support for DCA - Direct Cache Access

More information


Author: Werner Fischer

Werner Fischer, working in the Knowledge Transfer team at Thomas-Krenn, completed his studies of Computer and Media Security at FH Hagenberg in Austria. He is a regular speaker at many conferences like LinuxTag, OSMC, OSDC, LinuxCon, and author for various IT magazines. In his spare time he enjoys playing the piano and training for a good result at the annual Linz marathon relay.


Translator: Alina Ranzinger

Alina has been working at Thomas-Krenn.AG since 2024. After her training as multilingual business assistant, she got her job as assistant of the Product Management and is responsible for the translation of texts and for the organisation of the department.


Related articles

Airduct
BMC System Event Log (SEL) Full on Intel Server