Repository navigation
perf(memory): write tracked direct memory through backing views - #1309
Conversation
f6fc0df to
349781d
Compare
|
Rebased on Measured upstream
The 1 MiB case uses 76% less time. Faults per 2,304 writes fell from 2,304 / 36,864 / 589,824 to zero for the three sizes. Both builds check the output bytes. For 4/8/16-byte completion stores, medians were 49.860/49.247/40.664 → 40.406/39.346/42.053 µs. All ranges overlap, so this does not establish a small-store speedup; the 16-byte median regressed. The label fixture invokes the same access-check and store sequence as each revision's completion callback. Faults fell from 2,304 to zero in each case. Shared-write, write-tracking, and graphics tests pass. Shared writes also pass with watching disabled. Completion storage and ordering pass with core and sync validation on RX 6600 RADV and llvmpipe. Contribution checks pass. No title frame time or Windows result is claimed. AI-assisted. |
|
Tested on Windows, since the description says it wasn't: Windows 10 (19045), RTX 3060 Laptop (driver 616.92), MinGW-w64 GCC 15.2.0, Release. I tested
|
|
|
Retain host backing views for emulator writes and completion labels. Validate full spans, preserve write versions and GPU ordering, and keep the fallback for other mappings. Test remaps, aliases, access checks, partial failures, tracking, view lifetime, and completion ordering. Written with AI assistance.
349781d to
0e32f36
Compare
|
Rebased onto current
Rebuilt the AgcDriver, libc and libkernel targets; Note: #1152 also changes |
|
Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.
|
…rites perf(memory): write tracked direct memory through backing views
What
Write tracked Linux direct memory through a retained backing view. Keep access checks, write versions, and GPU ordering. Use the same path for completion labels.
The writer validates the full range before it changes any bytes. Unsupported mappings use the existing copy path.
Related: #1152 reduces GPU import count; this change reduces CPU write faults. Both change
PhysicalBackingand need integration. #637 changes Windows tracking.Tested
Fedora 44, Release build:
Isolated comparison: upstream
e9846679versus the same revision plus this PR. Six pinned processes per variant in ABBA order. A 1 MiB write took 285.954 → 68.110 µs (76% less time); process medians ranged from 274.610–365.925 µs before and 64.895–79.676 µs after. Write faults fell from 589,824 to zero over 2,304 measured writes. Smaller writes and labels had overlapping timing ranges. This is a component result, not title frame time. Windows was not tested.Checklist
main; related PRs and integration needs are described above.