Page MenuHomeFreeBSD

ena: Put taskqueues into correct domain if !RSS
Needs ReviewPublic

Authored by cperciva on Sat, Jun 27, 11:47 PM.
Tags
None
Referenced Files
F160975031: D57918.diff
Mon, Jun 29, 1:16 PM
F160956232: D57918.diff
Mon, Jun 29, 9:59 AM
Unknown Object (File)
Sun, Jun 28, 12:19 AM
Subscribers

Details

Summary

When compiled with 'options RSS', the ena driver created taskqueues
using taskqeueue_start_threads_cpuset passing a mask value of NULL,
in both ena_setup_tx_resources (for the enqueue path) and
ena_create_io_queues (for the completion-processing path).

In the default configuration, on most EC2 instances, this results in
taskqueues running in the right NUMA domain, but only by accident.

Set (struct ena_que)->domain and use that to inform the choice of CPU
sets. On a c8gn.48xlarge EC2 instance this doubles throughput on a
32-TCP-stream benchmark.

MFC after: 7 days
Sponsored by: Amazon

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 74344
Build 71227: arc lint + arc unit