Hello,
I am currently trying to use Docks for NVMe SSDs to make it possible to hotplug or hotswap them. We would like the TX2 to process and record huge amounts of data which makes swapping the SSDs necessary.
When I boot the System ( Jetson TX2 Development Kit, L4T 32.3.1 ) without the NVMe attached and then attach it nothing is found. Re-enumerating the PCIe bus ( echo 1 > /sys/bus/pci/rescan
) does not work and neither does setting the Linux bootargs pcie_aspm=off
and pci=pcie_bus_perf
Linux bootargs pcie_aspm=off
and pci=pcie_bus_perf
.
lspci -vvv
ls /sys/class/nvme/
When booting with the NVMe attached it is mountable but if I remove and reattach it it is visible again via lspci but the /dev/nvme device is gone and there is nothing under /sys/class/nvme/ so I think the nvme driver was not loaded again. Re-enumerating did again not work as did setting the recommended bootargs.
Before Hotswap:
user@tx2:~$ sudo lspci -v
00:01.0 PCI bridge: NVIDIA Corporation Device 10e5 (rev a1) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 381
Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
Memory behind bridge: 40100000-401fffff
Capabilities: [40] Subsystem: NVIDIA Corporation Device 0000
Capabilities: [48] Power Management version 3
Capabilities: [50] MSI: Enable- Count=1/2 Maskable- 64bit+
Capabilities: [60] HyperTransport: MSI Mapping Enable- Fixed-
Capabilities: [80] Express Root Port (Slot+), MSI 00
Capabilities: [100] Advanced Error Reporting
Kernel driver in use: pcieport
01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981 (prog-if 02 [NVM Express])
Subsystem: Samsung Electronics Co Ltd Device a801
Flags: bus master, fast devsel, latency 0, IRQ 381
Memory at 40100000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [70] Express Endpoint, MSI 00
Capabilities: [b0] MSI-X: Enable+ Count=33 Masked-
Capabilities: [100] Advanced Error Reporting
Capabilities: [148] Device Serial Number 00-00-00-00-00-00-00-00
Capabilities: [158] Power Budgeting <?>
Capabilities: [168] #19
Capabilities: [188] Latency Tolerance Reporting
Capabilities: [190] L1 PM Substates
Kernel driver in use: nvme
After Hotswap:
user@tx2:~$ sudo lspci -v
00:01.0 PCI bridge: NVIDIA Corporation Device 10e5 (rev a1) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 381
Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
Memory behind bridge: 40100000-401fffff
Capabilities: [40] Subsystem: NVIDIA Corporation Device 0000
Capabilities: [48] Power Management version 3
Capabilities: [50] MSI: Enable- Count=1/2 Maskable- 64bit+
Capabilities: [60] HyperTransport: MSI Mapping Enable- Fixed-
Capabilities: [80] Express Root Port (Slot+), MSI 00
Capabilities: [100] Advanced Error Reporting
Kernel driver in use: pcieport
01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981 (prog-if 02 [NVM Express])
Subsystem: Samsung Electronics Co Ltd Device a801
Flags: fast devsel, IRQ 381
Memory at 40100000 (64-bit, non-prefetchable) [disabled] [size=16K]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [70] Express Endpoint, MSI 00
Capabilities: [b0] MSI-X: Enable- Count=33 Masked-
Capabilities: [100] Advanced Error Reporting
Capabilities: [148] Device Serial Number 00-00-00-00-00-00-00-00
Capabilities: [158] Power Budgeting <?>
Capabilities: [168] #19
Capabilities: [188] Latency Tolerance Reporting
Capabilities: [190] L1 PM Substates
Does anybody have any experience with hotplugging NVMe SSDs. Can I somehow force the nvme driver to probe again?
Thanks
Johannes