12 Commits

Author SHA1 Message Date
Matheus e25008b80b Merge pull request #36 from jvbronzeado/rewrite
Optimize page fault handling by caching last accessed range
2026-10-08 15:39:12 -03:00
jvbronzeado 185b33e719 mm: added page fault range caching for each mm_space_t
mm: added last_pagefault handling when mm_space_t is unmapped

mm: fixed styling inconsistencies, fixed last pagefault range removal

mm: fix unitialized last_pagefault member in slab data
2026-10-08 15:28:56 -03:00
Matheus 6c65a90a5f mm: properly fork shared file mappings
mm_fork_context() currently maps shared chdev mappings 1:1 when forking
a range. The issue with this approach is that chdev mappings are not
guaranteed to be backed by physical memory, and thus cannot safely be
refcounted. This can lead to issues on devices with more complex buffer
lifetimes.

To allow for internal book-keeping, do not map shared chdev memory on
fork and instead allow it to go through the entire fault-in process
again.
2026-10-06 11:51:01 -03:00
Matheus b9a5ead597 mm: add full page in flag for get physical 2026-09-15 14:45:56 -03:00
Matheus 6e5e9ecdc5 mm: add flags argument to mm_cache_get_page 2026-07-18 15:24:31 -03:00
Matheus ecd16264cb mm: handle work around shared character device mappings on fork 2026-07-08 13:03:19 -03:00
Matheus e18333c0ab mm: separate path for partial page in for page locking 2026-07-08 03:53:19 -03:00
Matheus 1512b2f3c6 mm: properly implement page locking 2026-07-08 01:37:12 -03:00
Matheus af30088c0d mm: properly handle MM_RANGE_FLAGS_REPLACE 2026-07-07 20:20:49 -03:00
Matheus 30cdfbb63c mm: more page pinning work 2026-07-01 21:25:27 -03:00
Matheus bec7abc91a mm: refactor mm.c to use snake_case 2026-07-01 15:13:30 -03:00
Matheus 239c267ed3 mm: rename vmm api to mm 2026-07-01 15:00:46 -03:00