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
F161700805: D57918.id180843.diff
Mon, Jul 6, 2:00 AM
Unknown Object (File)
Sat, Jul 4, 9:23 PM
Unknown Object (File)
Fri, Jul 3, 7:50 AM
Unknown Object (File)
Thu, Jul 2, 9:35 PM
Unknown Object (File)
Thu, Jul 2, 11:44 AM
Unknown Object (File)
Thu, Jul 2, 11:44 AM
Unknown Object (File)
Thu, Jul 2, 11:44 AM
Unknown Object (File)
Thu, Jul 2, 11:44 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