Skip to content

Commit a13d460

Browse files
authored
[201911][Arista] Disable ATA NCQ for a few products (#14468)
Why I did it Some products might experience an occasional IO failure in the communication between CPU and SSD. Based on some research it could be attributable to some device not handling ATA NCQ (Native Command Queue). This issue currently affect 4 products: DCS-7170-32C* DCS-7170-64C DCS-7060DX4-32 DCS-7260CX3-64 DCS-7050CX3-32S How I did it This change disable NCQ on the affected drive for a small set of products. How to verify it When the fix is applied, these 2 patterns can be found in the dmesg. ata[0-9]+.00: FORCE: horkage modified (noncq) NCQ (not used) Test results using: fio --direct=1 --rw=randrw --bs=64k --ioengine=libaio --iodepth=64 --runtime=120 --numjobs=4 with NCQ (ata1.00: 61865984 sectors, multi 1: LBA48 NCQ (depth 32), AA) READ: bw=33.9MiB/s (35.6MB/s), 33.9MiB/s-33.9MiB/s (35.6MB/s-35.6MB/s), io=4073MiB (4270MB), run=120078-120078msec WRITE: bw=34.1MiB/s (35.8MB/s), 34.1MiB/s-34.1MiB/s (35.8MB/s-35.8MB/s), io=4100MiB (4300MB), run=120078-120078msec without NCQ (ata1.00: 61865984 sectors, multi 1: LBA48 NCQ (not used)) READ: bw=31.7MiB/s (33.3MB/s), 31.7MiB/s-31.7MiB/s (33.3MB/s-33.3MB/s), io=3808MiB (3993MB), run=120083-120083msec WRITE: bw=31.9MiB/s (33.4MB/s), 31.9MiB/s-31.9MiB/s (33.4MB/s-33.4MB/s), io=3830MiB (4016MB), run=120083-120083msec Which release branch to backport (provide reason below if selected)
1 parent 5db2dc5 commit a13d460

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

files/Aboot/boot0.j2

+3
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,7 @@ platform_specific() {
309309
if [ "$sid" = "Lodoga" ]; then
310310
aboot_machine=arista_7050cx3_32s
311311
flash_size=3700
312+
echo "libata.force=2.00:noncq" >> /tmp/append
312313
fi
313314
if [ "$sid" = "BlackhawkO" ]; then
314315
aboot_machine=arista_7060px4_32
@@ -337,6 +338,8 @@ platform_specific() {
337338
fi
338339
if in_array "$platform" "rook"; then
339340
echo "iommu=on intel_iommu=on" >>/tmp/append
341+
# Currently applies to Alhambra, Blackhawk, Gardena and Mineral
342+
echo "libata.force=1.00:noncq" >>/tmp/append
340343
read_system_eeprom
341344
fi
342345
if in_array "$platform" "crow" "woodpecker" "magpie"; then

0 commit comments

Comments
 (0)