[WORKSHEET BASE]
- [case1_relative_worksheet.md](https://github.com/raikrahul/what-happens-when-open-is-called/blob/main/kernel/user/stage3/case1/worksheets/case1_relative_worksheet.md)
- [case6_symlink_loop_worksheet.md](https://github.com/raikrahul/what-happens-when-open-is-called/blob/main/kernel/user/stage3/case1/worksheets/case6_symlink_loop_worksheet.md)
- [case7_symlink_fast_worksheet.md](https://github.com/raikrahul/what-happens-when-open-is-called/blob/main/kernel/user/stage3/case1/worksheets/case7_symlink_fast_worksheet.md)
- [dcache_loop_analysis_worksheet.md](https://github.com/raikrahul/what-happens-when-open-is-called/blob/main/kernel/user/stage3/case1/worksheets/dcache_loop_analysis_worksheet.md)
- [demo_at_fdcwd_worksheet.md](https://github.com/raikrahul/what-happens-when-open-is-called/blob/main/kernel/user/stage3/case1/worksheets/demo_at_fdcwd_worksheet.md)
- [demo_dup_names_worksheet.md](https://github.com/raikrahul/what-happens-when-open-is-called/blob/main/kernel/user/stage3/case1/worksheets/demo_dup_names_worksheet.md)
- [demo_o_path_dir_worksheet.md](https://github.com/raikrahul/what-happens-when-open-is-called/blob/main/kernel/user/stage3/case1/worksheets/demo_o_path_dir_worksheet.md)
- [demo_o_path_worksheet.md](https://github.com/raikrahul/what-happens-when-open-is-called/blob/main/kernel/user/stage3/case1/worksheets/demo_o_path_worksheet.md)

[WORKSHEET AXIOM]
- [case1_relative_worksheet_axiom.md](https://github.com/raikrahul/what-happens-when-open-is-called/blob/main/kernel/user/stage3/case1/worksheets/case1_relative_worksheet_axiom.md)
- [case6_symlink_loop_worksheet_axiom.md](https://github.com/raikrahul/what-happens-when-open-is-called/blob/main/kernel/user/stage3/case1/worksheets/case6_symlink_loop_worksheet_axiom.md)
- [case7_symlink_fast_worksheet_axiom.md](https://github.com/raikrahul/what-happens-when-open-is-called/blob/main/kernel/user/stage3/case1/worksheets/case7_symlink_fast_worksheet_axiom.md)
- [dcache_loop_analysis_worksheet_axiom.md](https://github.com/raikrahul/what-happens-when-open-is-called/blob/main/kernel/user/stage3/case1/worksheets/dcache_loop_analysis_worksheet_axiom.md)
- [demo_at_fdcwd_worksheet_axiom.md](https://github.com/raikrahul/what-happens-when-open-is-called/blob/main/kernel/user/stage3/case1/worksheets/demo_at_fdcwd_worksheet_axiom.md)
- [demo_dup_names_worksheet_axiom.md](https://github.com/raikrahul/what-happens-when-open-is-called/blob/main/kernel/user/stage3/case1/worksheets/demo_dup_names_worksheet_axiom.md)
- [demo_o_path_dir_worksheet_axiom.md](https://github.com/raikrahul/what-happens-when-open-is-called/blob/main/kernel/user/stage3/case1/worksheets/demo_o_path_dir_worksheet_axiom.md)
- [demo_o_path_worksheet_axiom.md](https://github.com/raikrahul/what-happens-when-open-is-called/blob/main/kernel/user/stage3/case1/worksheets/demo_o_path_worksheet_axiom.md)

[WORKSHEET AXIOM HARD]
- [case1_relative_worksheet_axiom_hard.md](https://github.com/raikrahul/what-happens-when-open-is-called/blob/main/kernel/user/stage3/case1/worksheets/case1_relative_worksheet_axiom_hard.md)
- [case6_symlink_loop_worksheet_axiom_hard.md](https://github.com/raikrahul/what-happens-when-open-is-called/blob/main/kernel/user/stage3/case1/worksheets/case6_symlink_loop_worksheet_axiom_hard.md)
- [case7_symlink_fast_worksheet_axiom_hard.md](https://github.com/raikrahul/what-happens-when-open-is-called/blob/main/kernel/user/stage3/case1/worksheets/case7_symlink_fast_worksheet_axiom_hard.md)
- [dcache_loop_analysis_worksheet_axiom_hard.md](https://github.com/raikrahul/what-happens-when-open-is-called/blob/main/kernel/user/stage3/case1/worksheets/dcache_loop_analysis_worksheet_axiom_hard.md)
- [demo_at_fdcwd_worksheet_axiom_hard.md](https://github.com/raikrahul/what-happens-when-open-is-called/blob/main/kernel/user/stage3/case1/worksheets/demo_at_fdcwd_worksheet_axiom_hard.md)
- [demo_dup_names_worksheet_axiom_hard.md](https://github.com/raikrahul/what-happens-when-open-is-called/blob/main/kernel/user/stage3/case1/worksheets/demo_dup_names_worksheet_axiom_hard.md)
- [demo_o_path_dir_worksheet_axiom_hard.md](https://github.com/raikrahul/what-happens-when-open-is-called/blob/main/kernel/user/stage3/case1/worksheets/demo_o_path_dir_worksheet_axiom_hard.md)
- [demo_o_path_worksheet_axiom_hard.md](https://github.com/raikrahul/what-happens-when-open-is-called/blob/main/kernel/user/stage3/case1/worksheets/demo_o_path_worksheet_axiom_hard.md)

[REQUIRED HAND TASKS]
1. Verify entry/ret pair counts.
2. Verify pointer class counts.
3. Record contradiction lines and expected fixes.
4. Cross-compare with one adjacent case.

<!-- AUTO-EMBED START -->
[AUTO] case=case1

[USERDIR] kernel/user/stage3/case1

================================================================================
[EMBED] case1_relative_worksheet.md
[SOURCE] kernel/user/stage3/case1/worksheets/case1_relative_worksheet.md
================================================================================
# Worksheet: case1_relative

- Generated: `2026-02-15T01:16:11`
- Userspace: `kernel/user/stage3/case1/case1_relative/case1_relative.c`
- Driver: `kernel/drivers/stage3/case1/trace_case1_relative/trace_case1_relative.c`
- Module: `trace_case1_relative`
- Binary: `kernel/user/stage3/case1/case1_relative/case1_relative.out`
- Status: `pass_probe_hits`

## Probe Totals
- `do_filp_open.entry`: 9
- `do_filp_open.ret`: 9
- `__d_alloc.entry`: 0
- `__d_alloc.ret`: 0
- `ERR_PTR(-ENOENT)` returns: 6
- non-error pointer returns: 3

## Full Function Trace Steps (Pseudo-Debugger Style)
- #1. call=`do_filp_open.entry` source_line=`dmesg:2` raw=`[53073.614222] [trace_case1_relative] do_filp_open.entry pid=262617 comm=case1_relative. dfd=4294967196 pathname=ffff898e8d700000 op=ffffcc97025cbe24`
- #2. call=`do_filp_open.ret` source_line=`dmesg:3` raw=`[53073.614245] [trace_case1_relative] do_filp_open.ret pid=262617 comm=case1_relative. ret=fffffffffffffffe`
- #3. call=`do_filp_open.entry` source_line=`dmesg:4` raw=`[53073.614259] [trace_case1_relative] do_filp_open.entry pid=262617 comm=case1_relative. dfd=4294967196 pathname=ffff898e8d700000 op=ffffcc97025cbc54`
- #4. call=`do_filp_open.ret` source_line=`dmesg:5` raw=`[53073.614270] [trace_case1_relative] do_filp_open.ret pid=262617 comm=case1_relative. ret=fffffffffffffffe`
- #5. call=`do_filp_open.entry` source_line=`dmesg:6` raw=`[53073.614282] [trace_case1_relative] do_filp_open.entry pid=262617 comm=case1_relative. dfd=4294967196 pathname=ffff898e8d700000 op=ffffcc97025cbb14`
- #6. call=`do_filp_open.ret` source_line=`dmesg:7` raw=`[53073.614293] [trace_case1_relative] do_filp_open.ret pid=262617 comm=case1_relative. ret=fffffffffffffffe`
- #7. call=`do_filp_open.entry` source_line=`dmesg:8` raw=`[53073.614307] [trace_case1_relative] do_filp_open.entry pid=262617 comm=case1_relative. dfd=4294967196 pathname=ffff898e8d700000 op=ffffcc97025cbc04`
- #8. call=`do_filp_open.ret` source_line=`dmesg:9` raw=`[53073.614315] [trace_case1_relative] do_filp_open.ret pid=262617 comm=case1_relative. ret=fffffffffffffffe`
- #9. call=`do_filp_open.entry` source_line=`dmesg:10` raw=`[53073.614322] [trace_case1_relative] do_filp_open.entry pid=262617 comm=case1_relative. dfd=4294967196 pathname=ffff898e8d700000 op=ffffcc97025cbd14`
- #10. call=`do_filp_open.ret` source_line=`dmesg:11` raw=`[53073.614329] [trace_case1_relative] do_filp_open.ret pid=262617 comm=case1_relative. ret=fffffffffffffffe`
- #11. call=`do_filp_open.entry` source_line=`dmesg:12` raw=`[53073.614336] [trace_case1_relative] do_filp_open.entry pid=262617 comm=case1_relative. dfd=4294967196 pathname=ffff898e8d700000 op=ffffcc97025cbda4`
- #12. call=`do_filp_open.ret` source_line=`dmesg:13` raw=`[53073.614343] [trace_case1_relative] do_filp_open.ret pid=262617 comm=case1_relative. ret=fffffffffffffffe`
- #13. call=`do_filp_open.entry` source_line=`dmesg:14` raw=`[53073.614351] [trace_case1_relative] do_filp_open.entry pid=262617 comm=case1_relative. dfd=4294967196 pathname=ffff898e8d700000 op=ffffcc97025cbba4`
- #14. call=`do_filp_open.ret` source_line=`dmesg:15` raw=`[53073.614361] [trace_case1_relative] do_filp_open.ret pid=262617 comm=case1_relative. ret=ffff898e8397e300`
- #15. call=`do_filp_open.entry` source_line=`dmesg:16` raw=`[53073.614400] [trace_case1_relative] do_filp_open.entry pid=262617 comm=case1_relative. dfd=4294967196 pathname=ffff898e8d700000 op=ffffcc97025cbaf4`
- #16. call=`do_filp_open.ret` source_line=`dmesg:17` raw=`[53073.614410] [trace_case1_relative] do_filp_open.ret pid=262617 comm=case1_relative. ret=ffff898e8397ec00`
- #17. call=`do_filp_open.entry` source_line=`dmesg:18` raw=`[53073.614773] [trace_case1_relative] do_filp_open.entry pid=262617 comm=case1_relative. dfd=4294967196 pathname=ffff898e8d700000 op=ffffcc97025cbab4`
- #18. call=`do_filp_open.ret` source_line=`dmesg:19` raw=`[53073.614786] [trace_case1_relative] do_filp_open.ret pid=262617 comm=case1_relative. ret=ffff898e8397e300`

## Per-Probe Pair Checks
- Pair A: `do_filp_open.entry` -> `do_filp_open.ret`
- Count A entry=9 ret=9
- Pair B: `__d_alloc.entry` -> `__d_alloc.ret`
- Count B entry=0 ret=0

## Raw Artifacts
- report: `kernel/user/stage3/case1/reports/case1_relative_trace_report.md`
- dmesg: `kernel/user/stage3/case1/reports/case1_relative_dmesg.txt`

================================================================================
[EMBED] demo_at_fdcwd_worksheet.md
[SOURCE] kernel/user/stage3/case1/worksheets/demo_at_fdcwd_worksheet.md
================================================================================
# Worksheet: demo_at_fdcwd

- Generated: `2026-02-15T01:16:11`
- Userspace: `kernel/user/stage3/case1/demo_at_fdcwd/demo_at_fdcwd.c`
- Driver: `kernel/drivers/stage3/case1/trace_demo_at_fdcwd/trace_demo_at_fdcwd.c`
- Module: `trace_demo_at_fdcwd`
- Binary: `kernel/user/stage3/case1/demo_at_fdcwd/demo_at_fdcwd.out`
- Status: `pass_probe_hits`

## Probe Totals
- `do_filp_open.entry`: 11
- `do_filp_open.ret`: 11
- `__d_alloc.entry`: 0
- `__d_alloc.ret`: 0
- `ERR_PTR(-ENOENT)` returns: 6
- non-error pointer returns: 5

## Full Function Trace Steps (Pseudo-Debugger Style)
- #1. call=`do_filp_open.entry` source_line=`dmesg:2` raw=`[53078.062813] [trace_demo_at_fdcwd] do_filp_open.entry pid=263648 comm=demo_at_fdcwd.o dfd=4294967196 pathname=ffff898e8d77d000 op=ffffcc9701d8fb14`
- #2. call=`do_filp_open.ret` source_line=`dmesg:3` raw=`[53078.062834] [trace_demo_at_fdcwd] do_filp_open.ret pid=263648 comm=demo_at_fdcwd.o ret=fffffffffffffffe`
- #3. call=`do_filp_open.entry` source_line=`dmesg:4` raw=`[53078.062848] [trace_demo_at_fdcwd] do_filp_open.entry pid=263648 comm=demo_at_fdcwd.o dfd=4294967196 pathname=ffff898e8d77d000 op=ffffcc9701d8fb94`
- #4. call=`do_filp_open.ret` source_line=`dmesg:5` raw=`[53078.062859] [trace_demo_at_fdcwd] do_filp_open.ret pid=263648 comm=demo_at_fdcwd.o ret=fffffffffffffffe`
- #5. call=`do_filp_open.entry` source_line=`dmesg:6` raw=`[53078.062871] [trace_demo_at_fdcwd] do_filp_open.entry pid=263648 comm=demo_at_fdcwd.o dfd=4294967196 pathname=ffff898e8d77d000 op=ffffcc9701d8fad4`
- #6. call=`do_filp_open.ret` source_line=`dmesg:7` raw=`[53078.062882] [trace_demo_at_fdcwd] do_filp_open.ret pid=263648 comm=demo_at_fdcwd.o ret=fffffffffffffffe`
- #7. call=`do_filp_open.entry` source_line=`dmesg:8` raw=`[53078.062896] [trace_demo_at_fdcwd] do_filp_open.entry pid=263648 comm=demo_at_fdcwd.o dfd=4294967196 pathname=ffff898e8d77d000 op=ffffcc9701d8fae4`
- #8. call=`do_filp_open.ret` source_line=`dmesg:9` raw=`[53078.062904] [trace_demo_at_fdcwd] do_filp_open.ret pid=263648 comm=demo_at_fdcwd.o ret=fffffffffffffffe`
- #9. call=`do_filp_open.entry` source_line=`dmesg:10` raw=`[53078.062911] [trace_demo_at_fdcwd] do_filp_open.entry pid=263648 comm=demo_at_fdcwd.o dfd=4294967196 pathname=ffff898e8d77d000 op=ffffcc9701d8fde4`
- #10. call=`do_filp_open.ret` source_line=`dmesg:11` raw=`[53078.062918] [trace_demo_at_fdcwd] do_filp_open.ret pid=263648 comm=demo_at_fdcwd.o ret=fffffffffffffffe`
- #11. call=`do_filp_open.entry` source_line=`dmesg:12` raw=`[53078.062925] [trace_demo_at_fdcwd] do_filp_open.entry pid=263648 comm=demo_at_fdcwd.o dfd=4294967196 pathname=ffff898e8d77d000 op=ffffcc9701d8fc24`
- #12. call=`do_filp_open.ret` source_line=`dmesg:13` raw=`[53078.062932] [trace_demo_at_fdcwd] do_filp_open.ret pid=263648 comm=demo_at_fdcwd.o ret=fffffffffffffffe`
- #13. call=`do_filp_open.entry` source_line=`dmesg:14` raw=`[53078.062940] [trace_demo_at_fdcwd] do_filp_open.entry pid=263648 comm=demo_at_fdcwd.o dfd=4294967196 pathname=ffff898e8d77d000 op=ffffcc9701d8fd74`
- #14. call=`do_filp_open.ret` source_line=`dmesg:15` raw=`[53078.062950] [trace_demo_at_fdcwd] do_filp_open.ret pid=263648 comm=demo_at_fdcwd.o ret=ffff898e98b3d180`
- #15. call=`do_filp_open.entry` source_line=`dmesg:16` raw=`[53078.062987] [trace_demo_at_fdcwd] do_filp_open.entry pid=263648 comm=demo_at_fdcwd.o dfd=4294967196 pathname=ffff898e8d77d000 op=ffffcc9701d8fb94`
- #16. call=`do_filp_open.ret` source_line=`dmesg:17` raw=`[53078.062998] [trace_demo_at_fdcwd] do_filp_open.ret pid=263648 comm=demo_at_fdcwd.o ret=ffff898e98b3d300`
- #17. call=`do_filp_open.entry` source_line=`dmesg:18` raw=`[53078.063387] [trace_demo_at_fdcwd] do_filp_open.entry pid=263648 comm=demo_at_fdcwd.o dfd=4294967196 pathname=ffff898e8d77d000 op=ffffcc9701d8fdc4`
- #18. call=`do_filp_open.ret` source_line=`dmesg:19` raw=`[53078.063474] [trace_demo_at_fdcwd] do_filp_open.ret pid=263648 comm=demo_at_fdcwd.o ret=ffff898e98b3d180`
- #19. call=`do_filp_open.entry` source_line=`dmesg:20` raw=`[53078.063490] [trace_demo_at_fdcwd] do_filp_open.entry pid=263648 comm=demo_at_fdcwd.o dfd=4294967196 pathname=ffff898e8d77d000 op=ffffcc9701d8fac4`
- #20. call=`do_filp_open.ret` source_line=`dmesg:21` raw=`[53078.063533] [trace_demo_at_fdcwd] do_filp_open.ret pid=263648 comm=demo_at_fdcwd.o ret=ffff898e98b3d240`
- #21. call=`do_filp_open.entry` source_line=`dmesg:22` raw=`[53078.063541] [trace_demo_at_fdcwd] do_filp_open.entry pid=263648 comm=demo_at_fdcwd.o dfd=4294967196 pathname=ffff898e8d77d000 op=ffffcc9701d8faf4`
- #22. call=`do_filp_open.ret` source_line=`dmesg:23` raw=`[53078.063629] [trace_demo_at_fdcwd] do_filp_open.ret pid=263648 comm=demo_at_fdcwd.o ret=ffff898e98b3d9c0`

## Per-Probe Pair Checks
- Pair A: `do_filp_open.entry` -> `do_filp_open.ret`
- Count A entry=11 ret=11
- Pair B: `__d_alloc.entry` -> `__d_alloc.ret`
- Count B entry=0 ret=0

## Raw Artifacts
- report: `kernel/user/stage3/case1/reports/demo_at_fdcwd_trace_report.md`
- dmesg: `kernel/user/stage3/case1/reports/demo_at_fdcwd_dmesg.txt`

================================================================================
[EMBED] demo_o_path_worksheet.md
[SOURCE] kernel/user/stage3/case1/worksheets/demo_o_path_worksheet.md
================================================================================
# Worksheet: demo_o_path

- Generated: `2026-02-15T01:16:11`
- Userspace: `kernel/user/stage3/case1/demo_o_path/demo_o_path.c`
- Driver: `kernel/drivers/stage3/case1/trace_demo_o_path/trace_demo_o_path.c`
- Module: `trace_demo_o_path`
- Binary: `kernel/user/stage3/case1/demo_o_path/demo_o_path.out`
- Status: `pass_probe_hits`

## Probe Totals
- `do_filp_open.entry`: 10
- `do_filp_open.ret`: 10
- `__d_alloc.entry`: 0
- `__d_alloc.ret`: 0
- `ERR_PTR(-ENOENT)` returns: 6
- non-error pointer returns: 4

## Full Function Trace Steps (Pseudo-Debugger Style)
- #1. call=`do_filp_open.entry` source_line=`dmesg:2` raw=`[53080.161836] [trace_demo_o_path] do_filp_open.entry pid=264166 comm=demo_o_path.out dfd=4294967196 pathname=ffff898e8f374000 op=ffffcc9700e3fb04`
- #2. call=`do_filp_open.ret` source_line=`dmesg:3` raw=`[53080.161863] [trace_demo_o_path] do_filp_open.ret pid=264166 comm=demo_o_path.out ret=fffffffffffffffe`
- #3. call=`do_filp_open.entry` source_line=`dmesg:4` raw=`[53080.161881] [trace_demo_o_path] do_filp_open.entry pid=264166 comm=demo_o_path.out dfd=4294967196 pathname=ffff898e8f374000 op=ffffcc9700e3fd64`
- #4. call=`do_filp_open.ret` source_line=`dmesg:5` raw=`[53080.161895] [trace_demo_o_path] do_filp_open.ret pid=264166 comm=demo_o_path.out ret=fffffffffffffffe`
- #5. call=`do_filp_open.entry` source_line=`dmesg:6` raw=`[53080.161910] [trace_demo_o_path] do_filp_open.entry pid=264166 comm=demo_o_path.out dfd=4294967196 pathname=ffff898e8f374000 op=ffffcc9700e3fe44`
- #6. call=`do_filp_open.ret` source_line=`dmesg:7` raw=`[53080.161924] [trace_demo_o_path] do_filp_open.ret pid=264166 comm=demo_o_path.out ret=fffffffffffffffe`
- #7. call=`do_filp_open.entry` source_line=`dmesg:8` raw=`[53080.161942] [trace_demo_o_path] do_filp_open.entry pid=264166 comm=demo_o_path.out dfd=4294967196 pathname=ffff898e8f374000 op=ffffcc9700e3fab4`
- #8. call=`do_filp_open.ret` source_line=`dmesg:9` raw=`[53080.161952] [trace_demo_o_path] do_filp_open.ret pid=264166 comm=demo_o_path.out ret=fffffffffffffffe`
- #9. call=`do_filp_open.entry` source_line=`dmesg:10` raw=`[53080.161961] [trace_demo_o_path] do_filp_open.entry pid=264166 comm=demo_o_path.out dfd=4294967196 pathname=ffff898e8f374000 op=ffffcc9700e3fdc4`
- #10. call=`do_filp_open.ret` source_line=`dmesg:11` raw=`[53080.161970] [trace_demo_o_path] do_filp_open.ret pid=264166 comm=demo_o_path.out ret=fffffffffffffffe`
- #11. call=`do_filp_open.entry` source_line=`dmesg:12` raw=`[53080.161978] [trace_demo_o_path] do_filp_open.entry pid=264166 comm=demo_o_path.out dfd=4294967196 pathname=ffff898e8f374000 op=ffffcc9700e3fc44`
- #12. call=`do_filp_open.ret` source_line=`dmesg:13` raw=`[53080.161988] [trace_demo_o_path] do_filp_open.ret pid=264166 comm=demo_o_path.out ret=fffffffffffffffe`
- #13. call=`do_filp_open.entry` source_line=`dmesg:14` raw=`[53080.161997] [trace_demo_o_path] do_filp_open.entry pid=264166 comm=demo_o_path.out dfd=4294967196 pathname=ffff898e8f374000 op=ffffcc9700e3fe04`
- #14. call=`do_filp_open.ret` source_line=`dmesg:15` raw=`[53080.162010] [trace_demo_o_path] do_filp_open.ret pid=264166 comm=demo_o_path.out ret=ffff898eb77dcb40`
- #15. call=`do_filp_open.entry` source_line=`dmesg:16` raw=`[53080.162058] [trace_demo_o_path] do_filp_open.entry pid=264166 comm=demo_o_path.out dfd=4294967196 pathname=ffff898e8f374000 op=ffffcc9700e3fbc4`
- #16. call=`do_filp_open.ret` source_line=`dmesg:17` raw=`[53080.162071] [trace_demo_o_path] do_filp_open.ret pid=264166 comm=demo_o_path.out ret=ffff898f56ea4540`
- #17. call=`do_filp_open.entry` source_line=`dmesg:18` raw=`[53080.162599] [trace_demo_o_path] do_filp_open.entry pid=264166 comm=demo_o_path.out dfd=4294967196 pathname=ffff898e8f374000 op=ffffcc9700e3fc34`
- #18. call=`do_filp_open.ret` source_line=`dmesg:19` raw=`[53080.162703] [trace_demo_o_path] do_filp_open.ret pid=264166 comm=demo_o_path.out ret=ffff898eb77dcb40`
- #19. call=`do_filp_open.entry` source_line=`dmesg:20` raw=`[53080.162719] [trace_demo_o_path] do_filp_open.entry pid=264166 comm=demo_o_path.out dfd=4294967196 pathname=ffff898e8f374000 op=ffffcc9700e3fcf4`
- #20. call=`do_filp_open.ret` source_line=`dmesg:21` raw=`[53080.162730] [trace_demo_o_path] do_filp_open.ret pid=264166 comm=demo_o_path.out ret=ffff898eb77dcb40`

## Per-Probe Pair Checks
- Pair A: `do_filp_open.entry` -> `do_filp_open.ret`
- Count A entry=10 ret=10
- Pair B: `__d_alloc.entry` -> `__d_alloc.ret`
- Count B entry=0 ret=0

## Raw Artifacts
- report: `kernel/user/stage3/case1/reports/demo_o_path_trace_report.md`
- dmesg: `kernel/user/stage3/case1/reports/demo_o_path_dmesg.txt`

================================================================================
[EMBED] demo_o_path_dir_worksheet.md
[SOURCE] kernel/user/stage3/case1/worksheets/demo_o_path_dir_worksheet.md
================================================================================
# Worksheet: demo_o_path_dir

- Generated: `2026-02-15T01:16:11`
- Userspace: `kernel/user/stage3/case1/demo_o_path/demo_o_path_dir.c`
- Driver: `kernel/drivers/stage3/case1/trace_demo_o_path_dir/trace_demo_o_path_dir.c`
- Module: `trace_demo_o_path_dir`
- Binary: `kernel/user/stage3/case1/demo_o_path/demo_o_path_dir.out`
- Status: `pass_probe_hits`

## Probe Totals
- `do_filp_open.entry`: 11
- `do_filp_open.ret`: 11
- `__d_alloc.entry`: 1
- `__d_alloc.ret`: 1
- `ERR_PTR(-ENOENT)` returns: 6
- non-error pointer returns: 5

## Full Function Trace Steps (Pseudo-Debugger Style)
- #1. call=`do_filp_open.entry` source_line=`dmesg:2` raw=`[53081.179539] [trace_demo_o_path_dir] do_filp_open.entry pid=264427 comm=demo_o_path_dir dfd=4294967196 pathname=ffff898e8d77d000 op=ffffcc970256fc74`
- #2. call=`do_filp_open.ret` source_line=`dmesg:3` raw=`[53081.179560] [trace_demo_o_path_dir] do_filp_open.ret pid=264427 comm=demo_o_path_dir ret=fffffffffffffffe`
- #3. call=`do_filp_open.entry` source_line=`dmesg:4` raw=`[53081.179574] [trace_demo_o_path_dir] do_filp_open.entry pid=264427 comm=demo_o_path_dir dfd=4294967196 pathname=ffff898e8d77d000 op=ffffcc970256fb74`
- #4. call=`do_filp_open.ret` source_line=`dmesg:5` raw=`[53081.179585] [trace_demo_o_path_dir] do_filp_open.ret pid=264427 comm=demo_o_path_dir ret=fffffffffffffffe`
- #5. call=`do_filp_open.entry` source_line=`dmesg:6` raw=`[53081.179597] [trace_demo_o_path_dir] do_filp_open.entry pid=264427 comm=demo_o_path_dir dfd=4294967196 pathname=ffff898e8d77d000 op=ffffcc970256fab4`
- #6. call=`do_filp_open.ret` source_line=`dmesg:7` raw=`[53081.179609] [trace_demo_o_path_dir] do_filp_open.ret pid=264427 comm=demo_o_path_dir ret=fffffffffffffffe`
- #7. call=`do_filp_open.entry` source_line=`dmesg:8` raw=`[53081.179624] [trace_demo_o_path_dir] do_filp_open.entry pid=264427 comm=demo_o_path_dir dfd=4294967196 pathname=ffff898e8d77d000 op=ffffcc970256fcc4`
- #8. call=`do_filp_open.ret` source_line=`dmesg:9` raw=`[53081.179632] [trace_demo_o_path_dir] do_filp_open.ret pid=264427 comm=demo_o_path_dir ret=fffffffffffffffe`
- #9. call=`do_filp_open.entry` source_line=`dmesg:10` raw=`[53081.179638] [trace_demo_o_path_dir] do_filp_open.entry pid=264427 comm=demo_o_path_dir dfd=4294967196 pathname=ffff898e8d77d000 op=ffffcc970256faf4`
- #10. call=`do_filp_open.ret` source_line=`dmesg:11` raw=`[53081.179646] [trace_demo_o_path_dir] do_filp_open.ret pid=264427 comm=demo_o_path_dir ret=fffffffffffffffe`
- #11. call=`do_filp_open.entry` source_line=`dmesg:12` raw=`[53081.179653] [trace_demo_o_path_dir] do_filp_open.entry pid=264427 comm=demo_o_path_dir dfd=4294967196 pathname=ffff898e8d77d000 op=ffffcc970256fcb4`
- #12. call=`do_filp_open.ret` source_line=`dmesg:13` raw=`[53081.179660] [trace_demo_o_path_dir] do_filp_open.ret pid=264427 comm=demo_o_path_dir ret=fffffffffffffffe`
- #13. call=`do_filp_open.entry` source_line=`dmesg:14` raw=`[53081.179667] [trace_demo_o_path_dir] do_filp_open.entry pid=264427 comm=demo_o_path_dir dfd=4294967196 pathname=ffff898e8d77d000 op=ffffcc970256faa4`
- #14. call=`do_filp_open.ret` source_line=`dmesg:15` raw=`[53081.179677] [trace_demo_o_path_dir] do_filp_open.ret pid=264427 comm=demo_o_path_dir ret=ffff898fd33a19c0`
- #15. call=`do_filp_open.entry` source_line=`dmesg:16` raw=`[53081.179711] [trace_demo_o_path_dir] do_filp_open.entry pid=264427 comm=demo_o_path_dir dfd=4294967196 pathname=ffff898e8d77d000 op=ffffcc970256fda4`
- #16. call=`do_filp_open.ret` source_line=`dmesg:17` raw=`[53081.179721] [trace_demo_o_path_dir] do_filp_open.ret pid=264427 comm=demo_o_path_dir ret=ffff898fd33a16c0`
- #17. call=`do_filp_open.entry` source_line=`dmesg:18` raw=`[53081.180171] [trace_demo_o_path_dir] do_filp_open.entry pid=264427 comm=demo_o_path_dir dfd=4294967196 pathname=ffff898e8d77d000 op=ffffcc970256fb94`
- #18. call=`__d_alloc.entry` source_line=`dmesg:19` raw=`[53081.180183] [trace_demo_o_path_dir] __d_alloc.entry pid=264427 comm=demo_o_path_dir sb=ffff898e906aa000 name_qstr=ffffcc970256fa60`
- #19. call=`__d_alloc.ret` source_line=`dmesg:20` raw=`[53081.180190] [trace_demo_o_path_dir] __d_alloc.ret pid=264427 comm=demo_o_path_dir dentry=ffff8990110a5e40`
- #20. call=`do_filp_open.ret` source_line=`dmesg:21` raw=`[53081.180222] [trace_demo_o_path_dir] do_filp_open.ret pid=264427 comm=demo_o_path_dir ret=ffff898fd33a19c0`
- #21. call=`do_filp_open.entry` source_line=`dmesg:22` raw=`[53081.180302] [trace_demo_o_path_dir] do_filp_open.entry pid=264427 comm=demo_o_path_dir dfd=4294967196 pathname=ffff898e8d77d000 op=ffffcc970256fe24`
- #22. call=`do_filp_open.ret` source_line=`dmesg:23` raw=`[53081.180313] [trace_demo_o_path_dir] do_filp_open.ret pid=264427 comm=demo_o_path_dir ret=ffff898fd33a19c0`
- #23. call=`do_filp_open.entry` source_line=`dmesg:24` raw=`[53081.180370] [trace_demo_o_path_dir] do_filp_open.entry pid=264427 comm=demo_o_path_dir dfd=3 pathname=ffff898e8d77d000 op=ffffcc970256fca4`
- #24. call=`do_filp_open.ret` source_line=`dmesg:25` raw=`[53081.180384] [trace_demo_o_path_dir] do_filp_open.ret pid=264427 comm=demo_o_path_dir ret=ffff898fd33a1c00`

## Per-Probe Pair Checks
- Pair A: `do_filp_open.entry` -> `do_filp_open.ret`
- Count A entry=11 ret=11
- Pair B: `__d_alloc.entry` -> `__d_alloc.ret`
- Count B entry=1 ret=1

## Raw Artifacts
- report: `kernel/user/stage3/case1/reports/demo_o_path_dir_trace_report.md`
- dmesg: `kernel/user/stage3/case1/reports/demo_o_path_dir_dmesg.txt`
<!-- AUTO-EMBED END -->