Re: [RFC PATCH] super-intel: correctly recognize NVMe device during assemble

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Mariusz,

Sorry I didn't pay attention to the patch you sent to the list and thank
you for letting me know the situation. Please ignore my patch then.

Regards,
Lidong

On 2/5/21 5:17 PM, Tkaczyk, Mariusz wrote:
> Hello,
> Thanks for the patch but we sent similar solution recently, see:
> https://lore.kernel.org/linux-raid/20210115152824.51793-1-
> oleksandr.shchirskyi@xxxxxxxxx/
> For namespaces exposed via nvme-subsystem, autorebuild scenarios won't
> work because /dev/disk/by-path link doesn't exist.
> 
> Our patch fixes mdadm --detail-platform output additionally, this part is
> missed here.
> 
> Mariusz
> 
> On 05.02.2021 08:11, Lidong Zhong wrote:
>> We had a customer report the following error while assembling the raid
>> device, which is created from Intel VMD configuration of RBSU(bios).
>>> sudo /sbin/mdadm -v --incremental --export /dev/nvme0n1 --offroot
>> /dev/disk/by-id/nvme-eui.355634304e2000530025384500000001
>> /dev/disk/by-id/nvme-MZXL5800HBHQ-000H3_S5V4NE0N200053
>> [sudo] password for root:
>> mdadm: /dev/nvme0n1 is not attached to Intel(R) RAID controller.
>> mdadm: No OROM/EFI properties for /dev/nvme0n1
>> mdadm: no RAID superblock on /dev/nvme0n1
>>
>> It's because in function path_attached_to_hba(), the string of disk
>> doesn't match hba and thus it fails to be recognized as a valid device.
>> The following is the debug output with this patch applied.
>> mdadm: hba: /sys/devices/pci0000:c0/0000:c0:00.5/pci10002:00 - disk:
>> /sys/devices/virtual/nvme-subsystem/nvme-subsys0
>> mdadm: NVME:tmp_path:
>> /sys/devices/virtual/nvme-subsystem/nvme-subsys0/nvme0
>> mdadm: NVME:tmp_path:
>> /sys/devices/virtual/nvme-subsystem/nvme-subsys0/nvme0 - real_disk_path:
>> /sys/devices/pci0000:c0/0000:c0:00.5/pci10002:00/10002:00:04.0/10002:03:00.0/nvme/nvme0
>>
>>
>> Signed-off-by: Lidong Zhong <lidong.zhong@xxxxxxxx>
>> Reported-by: David Chang <david.chang@xxxxxxx>
>> ---
>>   platform-intel.c | 11 +++++++++++
>>   1 file changed, 11 insertions(+)
>>
>> diff --git a/platform-intel.c b/platform-intel.c
>> index f1f6d4c..e3c12a3 100644
>> --- a/platform-intel.c
>> +++ b/platform-intel.c
>> @@ -707,6 +707,17 @@ int path_attached_to_hba(const char *disk_path,
>> const char *hba_path)
>>           rc = 1;
>>       else
>>           rc = 0;
>> +    if (0 == rc && strstr(disk_path, "nvme-subsys")) {
>> +        char tmp_path[PATH_MAX], *real_disk_path;
>> +        int len = strlen(disk_path);
>> +        snprintf(tmp_path,"%s/nvme%c",disk_path, disk_path[len-1]);
>> +        real_disk_path = realpath(tmp_path, NULL);
>> +        if (real_disk_path) {
>> +            if (strncmp(real_disk_path, hba_path, strlen(hba_path))
>> == 0)
>> +                rc = 1;
>> +            free(real_disk_path);
>> +        }
>> +    }
>>         return rc;
>>   }
>>
> 





[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux