Hi, Greg
On 2024/5/22 20:23, Greg KH wrote:
On Wed, May 22, 2024 at 11:43:46AM +0000, Xingui Yang wrote:
Currently, no exception information is output when devtmpfs create node
failed, so add log info for it.
Why? Who is going to do something with this?
We execute the lsscsi command after the disk is connected, we
occasionally find that some disks do not have dev nodes and these disks
cannot be used.
However, there is no abnormal log output during disk scanning. We
analyze that it may be caused by the failure of devtmpfs create dev
node, so the log is added here.
The lscsi command query results and kernel logs as follows:
[root@localhost]# lsscsi
[9:0:4:0] disk ATA ST10000NM0086-2A SN05 -
kernel: [586669.541218] hisi_sas_v3_hw 0000:b4:04.0: phyup: phy0
link_rate=10(sata)
kernel: [586669.541341] sas: phy-9:0 added to port-9:0, phy_mask:0x1
(5000000000000900)
kernel: [586669.541511] sas: DOING DISCOVERY on port 0, pid:2330731
kernel: [586669.541518] hisi_sas_v3_hw 0000:b4:04.0: dev[4:5] found
kernel: [586669.630816] sas: Enter sas_scsi_recover_host busy: 0 failed: 0
kernel: [586669.665960] hisi_sas_v3_hw 0000:b4:04.0: phydown: phy0
phy_state=0xe
kernel: [586669.665964] hisi_sas_v3_hw 0000:b4:04.0: ignore flutter phy0
down
kernel: [586669.863360] hisi_sas_v3_hw 0000:b4:04.0: phyup: phy0
link_rate=10(sata)
kernel: [586670.024482] ata19.00: ATA-10: ST10000NM0086-2AA101, SN05,
max UDMA/133
kernel: [586670.024487] ata19.00: 19532873728 sectors, multi 16: LBA48
NCQ (depth 32), AA
kernel: [586670.027471] ata19.00: configured for UDMA/133
kernel: [586670.027490] sas: --- Exit sas_scsi_recover_host: busy: 0
failed: 0 tries: 1
kernel: [586670.037541] sas: ata19: end_device-9:0:
model:ST10000NM0086-2AA101 serial: ZA2B3PR2
kernel: [586670.100856] scsi 9:0:4:0: Direct-Access ATA
ST10000NM0086-2A SN05 PQ: 0 ANSI: 5
kernel: [586670.101114] sd 9:0:4:0: [sdk] 19532873728 512-byte logical
blocks: (10.0 TB/9.10 TiB)
kernel: [586670.101116] sd 9:0:4:0: [sdk] 4096-byte physical blocks
kernel: [586670.101125] sd 9:0:4:0: [sdk] Write Protect is off
kernel: [586670.101137] sd 9:0:4:0: [sdk] Write cache: enabled, read
cache: enabled, doesn't support DPO or FUA
kernel: [586670.101620] sd 9:0:4:0: Attached scsi generic sg10 type 0
kernel: [586670.101714] sas: DONE DISCOVERY on port 0, pid:2330731, result:0
kernel: [586670.101731] sas: sas_form_port: phy0 belongs to port0
already(1)!
kernel: [586670.152512] sd 9:0:4:0: [sdk] Attached SCSI disk
Signed-off-by: Xingui Yang <yangxingui@xxxxxxxxxx>
---
drivers/base/core.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/base/core.c b/drivers/base/core.c
index 5f4e03336e68..32a41e0472b2 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -3691,7 +3691,10 @@ int device_add(struct device *dev)
if (error)
goto SysEntryError;
- devtmpfs_create_node(dev);
+ error = devtmpfs_create_node(dev);
+ if (error)
+ pr_info("devtmpfs create node for %s failed: %d\n",
+ dev_name(dev), error);
Why is an error message pr_info()?
Do you recommend using pr_err()?
And again, why is this needed? If this needs to be checked, why are you
now checking it but ignoring the error?
What would this help with?
As above, we want to get the error info when the dev node fails to be
created. We currently haven't figured out how to handle this exception
well. But judging from the problems we are currently encountering, some
may be because the corresponding dev node already exists, causing the
creation to fail, but the node information is incorrect and the device
cannot be used. as follows:
[root@localhost]# ll /dev/sdk
-rw-------. 1 root root 5368709120 Jul 8 09:51 /dev/sdk
Do you have any suggestions?
Thanks,
Xingui