LinearTapeFileSystem / LinearTapeFileSystem/ltfs
silent data corruption on ARM64?
@madjesc is already working on this.
Since May 27, 2026.
- Dominant language
- C
- Stars
- 352
- Forks
- 110
- Avg merge
- 2h 50m
- Merged PRs (30d)
- 2
Description
**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
```
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.