mirror of
https://chromium.googlesource.com/crosvm/crosvm
synced 2025-02-06 02:25:23 +00:00
Intel SSD 660P Series NVME block device has an overlapping msix table and msix pba table as the following information shows. ab:00.0 Non-Volatile memory controller: Intel Corporation SSD 660P Series (rev 03) Capabilities: [b0] MSI-X: Enable- Count=22 Masked- Vector table: BAR=0 offset=00002000 PBA: BAR=0 offset=00002100 In curruent add_bar_mmap_msix function, these two table would occupy the same page. So when add_bar_mmap_msix trys to find the msix table corresponding pages for the second time, it fails to find the page and lead to the entire mmaps are cleared and return null mmaps. Thus, there is no real memory region are mmaped and lead to quite low I/O performance for this pass-through NVME disk. BUG=None TEST=Unit test TEST=pass-through the 660P SSD into guest and run FIO read/write test, the throught increases to ~500MBps form ~20MBps. Change-Id: I1571e694b0a1f01a738650b361eaef93554a8c55 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3213315 Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Tested-by: kokoro <noreply+kokoro@google.com> Commit-Queue: Daniel Verkamp <dverkamp@chromium.org> |
||
---|---|---|
.. | ||
src | ||
.build_test_serial | ||
Cargo.toml |