Перечислить и использовать твердотельный накопитель PCIe в Linux без выключения

Добрый день,

В настоящее время я работаю над проектом, в котором твердотельные накопители PCIe постоянно заменяются и тестируются с помощью программ тестирования, таких как VDBench и Iometer. Проблема, с которой я сталкиваюсь прямо сейчас, которая существует только на стороне Linux (он отлично работает в Windows), заключается в том, что если диски не были включены при начальной загрузке, они никогда не отображаются в GParted или Disks. Вот что я сделал:

Холодная загрузка, твердотельный накопитель PCIe Add-in-card отключен. Затем он включается через проходную карту, которая логически контролируется, чтобы убедиться, что питание и короткое замыкание не являются проблемой.

Я включаю устройство, затем запускаю:

sudo sh -c "echo 1 > /sys/bus/pci/rescan"

Выполнение

lspci -tv

Устройство отображается без проблем в дереве. Однако, когда я проверяю раздел «Диски», его там нет.

Я пробовал кучу разных команд, но ни одна из них мне не помогла. я пытался

partprobe

Который ничего не сделал. а также:

sudo sh -c "echo 1 > /sys/bus/pci/devices/0000:82:00.0/remove"

Последующее повторное сканирование:

sudo sh -c "echo 1 > /sys/bus/pci/rescan"

Так же как:

sudo sh -c "echo 1 > /sys/bus/pci/devices/0000:82:00.0/enable"

Еще ничего. Также побежал:

dmesg

Что показывает, среди прочего:

[   68.128778] pci 0000:82:00.0: [8086:0953] type 00 class 0x010802
[   68.128797] pci 0000:82:00.0: reg 0x10: [mem 0x00000000-0x00003fff 64bit]
[   68.128820] pci 0000:82:00.0: reg 0x30: [mem 0x00000000-0x0000ffff pref]
[   68.133398] pci 0000:84:00.0: [1c58:0003] type 00 class 0x010802
..............................

[   68.141751] nvme 0000:82:00.0: enabling device (0100 -> 0102)
..............................

Я вижу много сбоев в dmesg для других адресов, таких как:

[ 1264.718446] pcieport 0000:03:04.0: BAR 14: no space for [mem size     0x00400000]
[ 1264.718448] pcieport 0000:03:04.0: BAR 14: failed to assign [mem size 0x00400000]
[ 1264.718451] pcieport 0000:03:04.0: BAR 13: no space for [io  size 0x1000]
[ 1264.718453] pcieport 0000:03:04.0: BAR 13: failed to assign [io  size 0x1000]

Хотя у меня есть ощущение, что это не связано с тем, что я делаю, хотя я был бы рад, если бы кто-то доказал, что я не прав.

Итак, после всех этих попыток кто-нибудь знает, есть ли способ (или возможно ли вообще) отсканировать этот PCIe Add-in NVMe SSD и использовать его без перезагрузки? Я также просмотрел некоторые потоки для других жестких дисков, которые ссылаются на повторное сканирование для дисков на основе sata, но это НЕ так, поэтому ссылки на это тоже не помогут.

Заранее спасибо.


person Trever Wagenhals    schedule 15.03.2016    source источник


Ответы (1)


Я попытался сделать это, чтобы сэкономить время, которое используется при перезагрузке. Драйвер устройства PCI в то время был хитрым в лучшем случае в отношении успешного повторного сканирования и получения всех своих уток подряд. Устройство представляло собой FPGA, представляющее проприетарное интерфейсное устройство для драйвера устройства, который я разрабатывал. Это было с ядром 2.6.30 — что-то пробовали примерно в марте 2014 года. Моим (нестандартным, но приемлемым) решением было перезагрузить систему.

person wallyk    schedule 15.03.2016
comment
Перезагрузка сейчас не проблема для тестирования, но, в конечном счете, работа, которую я выполняю, заключается в разработке станции, которая в конечном итоге превратится в автоматизированную асинхронную тестовую машину, где убийственная мощность одного из блоков, к которому будет подключено несколько устройств, не будет считаться асинхронным больше. Спасибо за ваш отзыв, хотя - person Trever Wagenhals; 16.03.2016