file_sector_source: restore read-side DONTNEED + SEQUENTIAL (the actual fix)
Empirical: isolated NFS read 70 MB/s + write 93 MB/s on the rip1 setup right now, but mux throughput pinned at 2.7 MB/s on 0.21.5. NOT environmental — code regression. Root cause: Phase 1 silently dropped the read-side posix_fadvise(POSIX_FADV_DONTNEED) eviction that the pre-Phase-1 (0.20.7) hot path had. Without it, an 85 GB streaming ISO read pins the entire file in the kernel page cache, starving concurrent MKV writeback. 0.21.2 then also dropped the POSIX_FADV_SEQUENTIAL hint on the same theory, compounding the regression. Restored both, per-OS split: - linux: posix_fadvise(SEQUENTIAL) at open + posix_fadvise(DONTNEED) on consumed 32 MiB windows - macos: F_RDADVISE hint at open (kept); drop_window no-op (macOS unified buffer cache less prone to the pin pathology) - windows / other: both no-op stubs Target mux speed restored to 20+ MB/s (per concurrent-NFS math: 70/2 read × 0.73 MKV/ISO ratio ≈ 25 MB/s achievable).
This commit is contained in:
@@ -17,3 +17,8 @@ pub(super) fn hint_sequential(_file: &File, _len_bytes: u64) {
|
||||
"FileSectorSource hint_sequential: windows stub (TODO: FILE_FLAG_SEQUENTIAL_SCAN at open)"
|
||||
);
|
||||
}
|
||||
|
||||
/// Windows page-cache eviction is not exposed via a posix_fadvise
|
||||
/// equivalent. The kernel does its own working-set management. No-op
|
||||
/// for now.
|
||||
pub(super) fn drop_window(_file: &File, _start: u64, _len: u64) {}
|
||||
|
||||
Reference in New Issue
Block a user