Skip to content

silent data corruption on ARM64? #591

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



Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions