|
楼主 |
发表于 2024-6-13 19:56:41
|
显示全部楼层
我详细提一下我的看法,就比如 chipfancier目前 使用的 jms583+英韧主控来说。
jms583在linux上是有多个修正,uas功能问题需要兼容之类。说明这个桥接芯多个型号确实有点问题。 比如这里 https://github.com/torvalds/linu ... /unusual_uas.h#L117
然后ssd主控的话,这个不好说,我的感觉是,gc真有点问题,我trim的时候,竟然是阻塞的,我不知道主控上实现的是哪种级别的DATA MANAGEMENT https://read.seas.harvard.edu/cs161/2019/pdf/ata-atapi-8.pdf
如果我需要在discard的时候阻塞,感觉像是uas不支持NCQ队列一样,那么我得回到 传统的usb bot模式,这样的话,小文件随机乱序io的性能就影响非常大了,这就是我说的为什么不适合WTG的原因,主要是影响性能。
另外 如果有关于英韧这个主控更多功能,比如可以像很多 nvme ssd那些主控一样可以查看使用率(不是总写入量,而是当前有数据的block百分比)那就更好了。
比如这里的 Namespace 1 Utilization
```
Total NVM Capacity: 250,059,350,016 [250 GB]
Unallocated NVM Capacity: 0
Controller ID: 4
Number of Namespaces: 1
Namespace 1 Size/Capacity: 250,059,350,016 [250 GB]
Namespace 1 Utilization: 25,877,532,672 [25.8 GB]
Namespace 1 Formatted LBA Size: 512
```
另外,我不知道是jms583桥的原因,还是 英韧主控的原因,当我使用 uas协议的时候,均被错误的识别成 4kn 物理扇区。我记得别的ASM,跟RTL的桥是没有这个问题的。
```
fdisk -l /dev/sdb
Disk /dev/sdb: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: CHIPFANCIER
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 61BAA494-C504-2546-9FCB-36428FDD4A48
Device Start End Sectors Size Type
/dev/sdb1 2048 264191 262144 128M EFI System
/dev/sdb2 264192 998508543 998244352 476G Linux root (x86-64)
```
该错误识别物理扇区的问题,在windows下同样存在,我在windows 下用 diskgenius 工具查看同样是最小io是4k而不是512b。 |
|