3d6e30119brefactor: rename lru_lock to ftable_lock for greater clarity, and update comments to reflect this
Themis Demetriades
2024-12-06 15:31:27 +00:00
4104d2c852
fix: always add to frame owners when installing existing shared page.Gleb Koval2024-12-06 15:23:41 +00:00
9ffcde6089fix: implement ptable_lock for synchronising the SPT structure for insertions/accesses
vm/merged/themis-fix
Themis Demetriades
2024-12-06 14:12:28 +00:00
d389c15828fix: acquire lru_lock before pinning frames to avoid race condition with eviction
EDiasAlberto
2024-12-06 13:20:43 +00:00
8ac34063d7fix: disable 'shareable' flag to probe race conditions
Themis Demetriades
2024-12-06 10:56:38 +00:00
fc088a19acMerge remote-tracking branch 'origin/vm/frame-pinning' into vm/virtual-memory/frame-synch/saleh
sBubshait
2024-12-05 23:48:52 +00:00
a34bbbed08Update frame: When evicting an mmapped file page, write it back to the file if it is dirty
vm/mmap-write-back-on-eviction
sBubshait
2024-12-05 22:53:48 +00:00
6da855fe47Implement validation of pointers and strings in syscalls with pinning and unpinning to protect against eviction
vm/frame-pinning
sBubshait
2024-12-05 21:12:31 +00:00
4dd6b6e928
fix: do not leak when inserting the same page twice, just updateGleb Koval2024-12-05 19:38:27 +00:00
7860f3863ffix: add check to mmap to ensure file isn't mapped over stack segment (ed1223)
Themis Demetriades
2024-12-05 17:11:02 +00:00
d03e253046feat: implement synchronisation to protecting access to PTEs of SPTs during eviction
Themis Demetriades
2024-12-05 16:51:15 +00:00
5cf79b5389fix: add check to mmap to ensure file isn't mapped over stack segment
EDiasAlberto
2024-12-05 16:05:08 +00:00
675e28c3f2
refactor: make shared files table privateGleb Koval2024-12-05 15:55:09 +00:00
7c8b0fa99a
fix: free frames instead of pages on pagedir_destroyGleb Koval2024-12-05 15:54:55 +00:00
7f2e50a7d1
fix: free non-shared pages that are in swap + utility functions for frame owners.Gleb Koval2024-12-05 15:20:20 +00:00
71d91994c1
feat: allow frames to have multiple owner threads.Gleb Koval2024-12-05 14:44:59 +00:00
e779e8ac7cfix: modify stack growth to use frame allocation to allow for page swapping
EDiasAlberto
2024-12-05 04:39:50 +00:00
16db01d3d8Refactor: Check if page is in a swap in fetch_page instead of the page fault handler
sBubshait
2024-12-05 03:17:18 +00:00
c12cd95093Fix issues with merging, duplicate references and definition of VM
sBubshait
2024-12-05 02:27:48 +00:00
f13fd435cdMerge remote-tracking branch 'origin/vm/page-swap-synch' into vm/virtual-memory/saleh
sBubshait
2024-12-05 02:21:53 +00:00
598189fddb
Merge branch 'vm/page-swap-synch' into vm/shared-read-only-executablesGleb Koval2024-12-05 02:12:12 +00:00
ac31fb1e1efeat: set accessed bit to allocated frames in page_load and get_usr_kpage
vm/page-swap-synch
EDiasAlberto
2024-12-05 01:41:23 +00:00
1a8eb1bbe5Merge branch 'vm/memory-mapped-files' into vm/virtual-memory/saleh
sBubshait
2024-12-05 01:24:50 +00:00
52ec8fe779Fix Bug: Grow stack if necessary in case of a page fault in the kernel context
sBubshait
2024-12-05 01:15:46 +00:00
f171a05108Merge branch 'vm/stack-growth/saleh' into vm/virtual-memory/saleh
sBubshait
2024-12-05 00:51:03 +00:00
f06c91cf0dci: include linear page tests in VM test pipeline
Demetriades, Themis
2024-12-05 00:29:49 +00:00
5265fed288Refactor stack growth to be helper functions in exception for easier merging
vm/stack-growth/saleh
sBubshait
2024-12-05 00:27:40 +00:00
19d5b02341fix: remove use of USERPROG compiler flag specific code when the flag is disabled
Themis Demetriades
2024-12-04 23:48:51 +00:00
0288e13206fix: don't discriminate between user and kernel page fault contexts for stack growth, lazy loading, and swapping
Themis Demetriades
2024-12-04 23:46:31 +00:00
60faf995eafix: lazy load executable files of user processes even when accessed in a kernel context
Themis Demetriades
2024-12-04 22:21:31 +00:00
61f6374006Update gitlab CI to only run the tests associated with this feature (mmapped-files).
vm/memory-mapped-files
sBubshait
2024-12-04 22:06:09 +00:00
4efc9c8e3e
feat: add sanity checks to update branch of page_insertGleb Koval2024-12-04 22:04:27 +00:00
26a2d40325Implement implicitly unmapping all mmapped files when a process exits. Refactor to reduce duplication
sBubshait
2024-12-04 22:00:59 +00:00
806d6bc19eRefactor: Move destroying mmap data into process_exit instead of thread
sBubshait
2024-12-04 21:59:38 +00:00
723055f485fix: only use lazy loading if VM flag is enabled
Themis Demetriades
2024-12-04 21:33:21 +00:00
1e236a5c47Merge branch 'vm/lazy-loading' into vm/page-swap-synch
Themis Demetriades
2024-12-04 19:11:37 +00:00
ecbb4e74a5Implement the unmap system call, writing back to the file if a page is dirty before removing from SPT
sBubshait
2024-12-04 19:07:28 +00:00
02b79d1934Update mmap to add temporarily page_set_swap until swap is implemented
sBubshait
2024-12-04 18:13:07 +00:00
857cae3578Update mmap to add a get helper function to find a mmap entry from its mapping
sBubshait
2024-12-04 18:08:05 +00:00
941e1e067aUpdate SPT page entry to change type from EXECUTABLE to PAGE_FILE to capture mmaps in addition to executables
sBubshait
2024-12-04 17:51:30 +00:00
ad6e4b4059Implement syscall_mmap to validate and then map all file data into a user address in memory
sBubshait
2024-12-04 17:42:53 +00:00
72fa0c1bbbFix Bug: Initialise the mmap table for the newly created thread rather than the current thread
sBubshait
2024-12-04 17:41:14 +00:00
4bf6914cfafeat: incorporate lazy-loading data & helpers into supplemental page table
Themis Demetriades
2024-12-04 16:45:31 +00:00
fb73d694bffix: frame allocation now invalidates the victim process page directory, not the caller's
Themis Demetriades
2024-12-04 16:41:13 +00:00
67f16cb2a6Update syscall.c to allow mmap and unmap system calls through helper handler functions for each
sBubshait
2024-12-04 15:31:53 +00:00
6b0f708d8fUpdate mmap to add an insert helper function to allocate and add new mmap entries to the hash table
sBubshait
2024-12-04 15:26:00 +00:00
6e838aa06aFix Bug in thread.c: Only initialise and destroy mmap files table if VM is defined
sBubshait
2024-12-04 15:24:11 +00:00
a2f46f3b72Add a mmap destroy function to cleanup all mmap hash table entries upon thread exit
sBubshait
2024-12-04 15:14:02 +00:00
1ce09a49a1Add helper functions to initialise the memory-mapped files table and counter
sBubshait
2024-12-04 15:08:43 +00:00
1b73e415d7fix: invalidate PTEs of evicted pages before eviction occurs to prevent modificationof pages mid-eviction
vm/page-swap
Themis Demetriades
2024-12-04 15:02:49 +00:00
b3042b5aa6Update thread structure to add mmap files table and a counter for mappings of the thread
sBubshait
2024-12-04 14:56:52 +00:00
85aabd86cdUpdate gitlab ci file to include mmap tests in the automated testing pipeline
sBubshait
2024-12-04 14:55:28 +00:00
acc768e177Add mmap module in vm defining mmap_entry structure and some helper functions
sBubshait
2024-12-04 13:00:16 +00:00
c0ff53beff
feat: proper cleanup for shared pagesGleb Koval2024-12-04 12:27:39 +00:00
f2aba977b4
fix: extract supplemental and shared_files initialisationGleb Koval2024-12-04 11:17:46 +00:00