update
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
# repo22 compressed mapping shape manual test report
|
||||
|
||||
- Date: 2026-08-08 UTC
|
||||
- Source baseline: `b1f9e7c0ef5ffb9c4aab38e4047534ad2071af6c`
|
||||
- Remote baseline before testing: `xdm/main` at the same commit
|
||||
- FreeBSD guest: 15.0-RELEASE-p8 amd64, QEMU TCG
|
||||
- Image tool: erofs-utils 1.8.6
|
||||
- Module SHA256: `4b3459a02da29642cb8e61f58e34ff5266e668e86256937c91b8af7e0e31fdcb`
|
||||
- Scope: manual image generation, layout inspection, and the completed compact-index kernel reads; no CI or test wrapper was added
|
||||
|
||||
## Status definitions
|
||||
|
||||
| Status | Meaning |
|
||||
|---|---|
|
||||
| PASS | The stated mkfs/layout or kernel operation was actually run and matched its deterministic expectation |
|
||||
| KERNEL-FAIL | A real image reached the FreeBSD kernel path and failed |
|
||||
| MKFS-UNAVAILABLE | erofs-utils 1.8.6 cannot generate the required format directly |
|
||||
| TEST-DOC | The existing Markdown command or assertion does not deterministically test the stated feature |
|
||||
| NOT RUN | The fixture was generated, but kernel execution stopped on user request and no feature pass is claimed |
|
||||
|
||||
## Generated fixture matrix
|
||||
|
||||
All images were regenerated under `/work/build/repo22-shape-manual-20260808T1407Z` with fixed timestamps, root ownership, disabled xattrs, and a cleared UUID. Images, sources, VM state, and module build products were not staged.
|
||||
|
||||
| Shape | mkfs/layout status | Evidence | Kernel status |
|
||||
|---|---|---|---|
|
||||
| Compact indexes | PASS | default `-zlz4 -C4096`; `/shape.dat` is Layout 3 with two compressed extents | PASS |
|
||||
| Legacy full indexes | PASS | `-Elegacy-compress`; `/shape.dat` is Layout 1 with two compressed extents | NOT RUN |
|
||||
| 64 KiB big pcluster | PASS | `-C65536`; superblock reports `compr_cfgs big_pcluster`; Layout 3 has one 1 MiB logical extent backed by 8192 bytes | NOT RUN |
|
||||
| Inline ztailpacking | PASS | `-Eztailpacking`; superblock reports `ztailpacking`; `/inline.dat` has on-disk size 0 and physical bytes `1352..1787` inside the metadata block | NOT RUN |
|
||||
| Fragments / packed inode | PASS | `-Eall-fragments`; superblock reports packed NID 42 plus `fragments dedupe`; `/fragment.dat` has on-disk size 0 | NOT RUN |
|
||||
| Partial reference | PASS | `-Ededupe`; mkfs reports `Dedupe 409572 compressed data (delta 315374)` and `/b.dat` reuses the physical extent at `8192..12288` | NOT RUN |
|
||||
| Extent metadata format | MKFS-UNAVAILABLE | erofs-utils v1.8.6 has no extent-map advise/structure or mkfs option for the newer extent metadata format; `--max-extent-bytes` only limits decompressed extent size | NOT RUN |
|
||||
|
||||
Host-side `fsck.erofs --extract` succeeded for the initially generated compact, full, big-pcluster, ztailpacking-option, and all-fragments images. This is fixture validation only, not a FreeBSD kernel feature pass.
|
||||
|
||||
## Completed FreeBSD compact-index verification
|
||||
|
||||
The compact image used a deterministic 1 MiB file. `dump.erofs` reported:
|
||||
|
||||
```text
|
||||
Layout: 3
|
||||
Ext 0: logical 0..639004, physical 4096..8192, physical length 4096
|
||||
Ext 1: logical 639004..1048576, physical 8192..12288, physical length 4096
|
||||
```
|
||||
|
||||
Guest operations completed as follows:
|
||||
|
||||
```text
|
||||
kldload_rc=0
|
||||
md_attach_rc=0
|
||||
mount_rc=0
|
||||
stat_size=1048576
|
||||
full_sha256=370eb0a8df86868c4842ca535ed64670f0277ea2ed47a703f089bbb13ee4ac52
|
||||
expected_full_sha256=370eb0a8df86868c4842ca535ed64670f0277ea2ed47a703f089bbb13ee4ac52
|
||||
cross_extent_offset=638972
|
||||
cross_extent_length=128
|
||||
cross_extent_sha256=941b6e3cb9a7384428d93ca248eb9630782538e04caba30dbfbe31baacca8f60
|
||||
expected_cross_extent_sha256=941b6e3cb9a7384428d93ca248eb9630782538e04caba30dbfbe31baacca8f60
|
||||
```
|
||||
|
||||
Result: compact full-file integrity and a read crossing the logical boundary immediately before the second compressed extent both pass.
|
||||
|
||||
## First failure and dmesg
|
||||
|
||||
No KERNEL-FAIL occurred in this batch. The first incomplete command was:
|
||||
|
||||
```sh
|
||||
dd if=/mnt/repo22-shape/shape.dat bs=1 skip=777777 count=8192 | sha256 -q
|
||||
```
|
||||
|
||||
It was operator-terminated when the user requested immediate convergence. Byte-sized `dd` caused repeated page reads under QEMU TCG and was an inefficient manual command; it did not return a kernel error and is not classified as KERNEL-FAIL.
|
||||
|
||||
The guest was responsive after termination, and the mount and md device were cleaned up. The dmesg tail contained only successful mapping diagnostics such as:
|
||||
|
||||
```text
|
||||
erofs zread: nid=39 la=1044480 mapla=639004 llen=409572 pa=8192 plen=4096 flags=1 alg=0
|
||||
erofs zread: nid=39 la=0 mapla=0 llen=639004 pa=4096 plen=4096 flags=1 alg=0
|
||||
```
|
||||
|
||||
There was no new `EINTEGRITY`, decompression error, panic, trap, or hang message. The volume of unconditional `erofs zread` diagnostics should be reviewed separately as a style/logging issue.
|
||||
|
||||
## TC disposition
|
||||
|
||||
| TC area | Status | Result |
|
||||
|---|---|---|
|
||||
| TC084 compact LZ4 basic | PASS | Complete SHA256 and cross-extent boundary read match the source |
|
||||
| TC088 pcluster configuration | TEST-DOC | Previous monotonic ratio/performance assertions were invalid; commands and pass criteria were corrected |
|
||||
| TC090 64 KiB pcluster | TEST-DOC | Previous pipeline read from files redirected away from the pipe; deterministic cross-boundary command was corrected; kernel execution remains NOT RUN |
|
||||
| TC091 ztailpacking | TEST-DOC | Enabling the option alone did not tail-pack the first 1 MiB target; the TC now requires `dump.erofs` proof of an inline extent; kernel execution remains NOT RUN |
|
||||
| TC098 fragments | TEST-DOC | Previous TC incorrectly described fragments as an external device; it now tests the same-image packed inode; kernel execution remains NOT RUN |
|
||||
| TC115 unsupported algorithm | MKFS-UNAVAILABLE | mkfs.erofs 1.8.6 only emits its supported algorithm IDs; a checksum-aware ABI patch fixture is required |
|
||||
| TC116 truncated compressed data | TEST-DOC | Blind `truncate -s -4096` was nondeterministic; the TC now truncates inside a located target extent; kernel execution remains NOT RUN |
|
||||
|
||||
TC085-TC087, TC089, TC092-TC101 other than TC098 were read for dependencies but were not executed in this converged batch. Multi-device and chunk tests are independent follow-up work and are not implied by the packed-inode fragment fixture.
|
||||
|
||||
## Conclusion
|
||||
|
||||
The completed kernel evidence establishes compact-index LZ4 full-read and compressed-extent-boundary correctness on the tested FreeBSD 15 guest. Legacy full indexes, big pclusters, inline ztailpacking, fragments, and partial references are confirmed as real erofs-utils 1.8.6 fixtures but remain explicitly NOT RUN in the FreeBSD kernel after the stop instruction. No kernel failure was observed.
|
||||
Reference in New Issue
Block a user