blob: e8aeaaffcf35fc4c8ea4bf9bdf6760dd1026bf9d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
The bhyve kernel module and its associated userland consumers have been updated
to the latest upstream FreeBSD sources as of:
commit 37e8a0e0058c226e6bd0ed5c3a07ee15b1146122
Author: mav <mav@FreeBSD.org>
Date: Mon Sep 23 17:53:47 2019 +0000
Make nvme(4) driver some more NUMA aware.
- For each queue pair precalculate CPU and domain it is bound to.
If queue pairs are not per-CPU, then use the domain of the device.
- Allocate most of queue pair memory from the domain it is bound to.
- Bind callouts to the same CPUs as queue pair to avoid migrations.
- Do not assign queue pairs to each SMT thread. It just wasted
resources and increased lock congestions.
- Remove fixed multiplier of CPUs per queue pair, spread them even.
This allows to use more queue pairs in some hardware configurations.
- If queue pair serves multiple CPUs, bind different NVMe devices to
different CPUs.
MFC after: 1 month
Sponsored by: iXsystems, Inc.
Which corresponds to SVN revision: 352630
NOTE:
This sync ignores commit c8edafdabc27533d9c51eddc2896e772c16d965c.
There are big changes to the virtio net devices that we haven't synced up yet
because SmartOS relies heavily on viona instead.
|