Skip to content

silent data corruption on ARM64? #591

@shaofeng66

Description

@shaofeng66

Describe the bug
writing file using command dd with variable bs paramters, all commands report success, but the md5 checksum verify fail for those written with bs > 512K.

the file:

# pwd
/mismatch
ls -lh 0-1M.dat
-rw-r--r-- 1 root root 1.0M May 27 11:07 0-1M.dat
# md5sum 0-1M.dat 
d547eae310098883cbdac2e6355218e4  0-1M.dat

dd with 256k,512k,1m,4m bs parameter:

# dd if=0-1M.dat of=/mnt/GB3669L8/checksum-mismatch/0-1M.dat.bs256K bs=256K
4+0 records in
4+0 records out
1048576 bytes (1.0 MB, 1.0 MiB) copied, 21.7534 s, 48.2 kB/s
# dd if=0-1M.dat of=/mnt/GB3669L8/checksum-mismatch/0-1M.dat.bs512K bs=512K
2+0 records in
2+0 records out
1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.00469052 s, 224 MB/s
# dd if=0-1M.dat of=/mnt/GB3669L8/checksum-mismatch/0-1M.dat.bs1M bs=1M
1+0 records in
1+0 records out
1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.00227947 s, 460 MB/s
# dd if=0-1M.dat of=/mnt/GB3669L8/checksum-mismatch/0-1M.dat.bs4M bs=4M
0+1 records in
0+1 records out
1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.00223605 s, 469 MB/s

md5

# md5sum 0-1M.dat /mnt/GB3669L8/checksum-mismatch/0-1M.dat.bs*
d547eae310098883cbdac2e6355218e4  0-1M.dat
b227c070d2eeffd07825f10e89925a09  /mnt/GB3669L8/checksum-mismatch/0-1M.dat.bs1M
d547eae310098883cbdac2e6355218e4  /mnt/GB3669L8/checksum-mismatch/0-1M.dat.bs256K
b227c070d2eeffd07825f10e89925a09  /mnt/GB3669L8/checksum-mismatch/0-1M.dat.bs4M
d547eae310098883cbdac2e6355218e4  /mnt/GB3669L8/checksum-mismatch/0-1M.dat.bs512K

# ltfs -V
LTFS version 2.4.5.1 (Prelim).
LTFS Format Specification version 2.4.0.

# ps -ef | grep ltfs
root       16519       1  0 13:20 ?        00:00:00 ltfs -o devname=/dev/sg3 /mnt/GB3669L8 -o sync_type=time@60 -o trace

# uname -r
4.19.90-89.25.v2401.ky10.aarch64

# getconf PAGESIZE
65536

# lscpu
Architecture:            aarch64
  CPU op-mode(s):        32-bit, 64-bit
  Byte Order:            Little Endian
CPU(s):                  64
  On-line CPU(s) list:   0-63
Vendor ID:               ARM
  BIOS Vendor ID:        Hisilicon
  Model name:            Cortex-A72
    BIOS Model name:     Hi1616
    Model:               2
    Thread(s) per core:  1
    Core(s) per cluster: 16
    Socket(s):           2
    Cluster(s):          4
    Stepping:            r0p2
    BogoMIPS:            100.00
    Flags:               fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
NUMA:                    
  NUMA node(s):          4
  NUMA node0 CPU(s):     0-15
  NUMA node1 CPU(s):     16-31
  NUMA node2 CPU(s):     32-47
  NUMA node3 CPU(s):     48-63
Vulnerabilities:         
  Gather data sampling:  Not affected
  Itlb multihit:         Not affected
  L1tf:                  Not affected
  Mds:                   Not affected
  Meltdown:              Not affected
  Mmio stale data:       Not affected
  Retbleed:              Not affected
  Spec store bypass:     Vulnerable
  Spectre v1:            Mitigation; __user pointer sanitization
  Spectre v2:            Vulnerable
  Srbds:                 Not affected
  Tsx async abort:       Not affected



Metadata

Metadata

Assignees

Labels

Type

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions