NVMe performance 4x slower than expected
Tobias Oberstein
tobias.oberstein at gmail.com
Wed Apr 1 22:24:50 UTC 2015
Am 01.04.2015 um 23:23 schrieb Konstantin Belousov:
> On Wed, Apr 01, 2015 at 10:52:18PM +0200, Tobias Oberstein wrote:
>>> > FreeBSD 11 Current with patches (DMAR and ZFS patches, otherwise the box
>>> > doesn't boot at all .. because of 3TB RAM and the amount of periphery).
>>>
>>> Do you still have WITNESS and INVARIANTS turned on in your kernel
>>> config? They're turned on by default for Current, but they do have
>>> some performance impact. To turn them off, just build a
>>> GENERIC-NODEBUG kernel .
>>
>> WITNESS is off, INVARIANTS is still on.
> INVARIANTS are costly.
ah, ok. will rebuild without this option.
> I have the following patch for a long time, it allowed to increase pps
> in iperf and similar tests when DMAR is enabled. In your case it could
> reduce the rate of the DMAR interrupts.
You mean these lines from vmstat?
irq257: dmar0:qi 22312 0
irq259: dmar1:qi 22652 0
irq261: dmar2:qi 261874194 6911
irq263: dmar3:qi 124939 3
So these dmar2 interrupts come from DMAR region 2 which is used by nvd7?
From dmesg:
dmar0: <DMA remap> iomem 0xc7ffc000-0xc7ffcfff on acpi0
dmar1: <DMA remap> iomem 0xe3ffc000-0xe3ffcfff on acpi0
dmar2: <DMA remap> iomem 0xfbffc000-0xfbffcfff on acpi0
dmar3: <DMA remap> iomem 0xabffc000-0xabffcfff on acpi0
mpr0: dmar3 pci0:4:0:0 rid 400 domain 4 mgaw 48 agaw 48 re-mapped
mpr1: dmar2 pci0:195:0:0 rid c300 domain 2 mgaw 48 agaw 48 re-mapped
nvme0: dmar0 pci0:65:0:0 rid 4100 domain 0 mgaw 48 agaw 48 re-mapped
nvme1: dmar0 pci0:67:0:0 rid 4300 domain 1 mgaw 48 agaw 48 re-mapped
nvme2: dmar0 pci0:69:0:0 rid 4500 domain 2 mgaw 48 agaw 48 re-mapped
nvme3: dmar1 pci0:129:0:0 rid 8100 domain 0 mgaw 48 agaw 48 re-mapped
nvme4: dmar1 pci0:131:0:0 rid 8300 domain 1 mgaw 48 agaw 48 re-mapped
nvme5: dmar1 pci0:132:0:0 rid 8400 domain 2 mgaw 48 agaw 48 re-mapped
nvme6: dmar2 pci0:193:0:0 rid c100 domain 0 mgaw 48 agaw 48 re-mapped
nvme7: dmar2 pci0:194:0:0 rid c200 domain 1 mgaw 48 agaw 48 re-mapped
unknown: dmar3 pci0:0:29:0 rid e8 domain 0 mgaw 48 agaw 48 re-mapped
unknown: dmar3 pci0:0:26:0 rid d0 domain 1 mgaw 48 agaw 48 re-mapped
ix0: dmar3 pci0:1:0:0 rid 100 domain 2 mgaw 48 agaw 48 re-mapped
ix1: dmar3 pci0:1:0:1 rid 101 domain 3 mgaw 48 agaw 48 re-mapped
ix0: Using MSIX interrupts with 49 vectors
ix1: Using MSIX interrupts with 49 vectors
--
So the LSI HBAs, Intel NICs and NVMe are all using DMAR, but only the
NICs use MSI-X?
But 2 * 49 = 98, and that is smaller than the 191 which Jim mentions.
And what are those "unknown" devices on dmar3?
Actually, I don't really know what I am talking about here .. just puzzled.
/Tobias
More information about the freebsd-hackers
mailing list