Demetriades, Themis
|
8220b931a9
|
Merge branch 'vm/virtual-memory/frame-synch/saleh' into 'vm/virtual-memory/themis-synch'
Merge frame pinning to themis-synch
See merge request lab2425_autumn/pintos_22!60
|
2024-12-06 00:21:02 +00:00 |
|
sBubshait
|
1efa1fef9a
|
Merge frame pinning into themis-synch
|
2024-12-05 23:56:25 +00:00 |
|
sBubshait
|
fc088a19ac
|
Merge remote-tracking branch 'origin/vm/frame-pinning' into vm/virtual-memory/frame-synch/saleh
# Conflicts:
# src/userprog/syscall.c
|
2024-12-05 23:48:52 +00:00 |
|
Themis Demetriades
|
2811ea0eb3
|
fix: SPT never removes entries until process termination or special case
|
2024-12-05 22:05:02 +00:00 |
|
sBubshait
|
6da855fe47
|
Implement validation of pointers and strings in syscalls with pinning and unpinning to protect against eviction
|
2024-12-05 21:12:31 +00:00 |
|
sBubshait
|
e03273756d
|
Update frame table to add a pinned flag and protect those from being evicted
|
2024-12-05 17:52:01 +00:00 |
|
Themis Demetriades
|
7860f3863f
|
fix: add check to mmap to ensure file isn't mapped over stack segment (ed1223)
|
2024-12-05 17:11:02 +00:00 |
|
Themis Demetriades
|
d03e253046
|
feat: implement synchronisation to protecting access to PTEs of SPTs during eviction
|
2024-12-05 16:51:15 +00:00 |
|
EDiasAlberto
|
5cf79b5389
|
fix: add check to mmap to ensure file isn't mapped over stack segment
|
2024-12-05 16:05:08 +00:00 |
|
EDiasAlberto
|
e779e8ac7c
|
fix: modify stack growth to use frame allocation to allow for page swapping
|
2024-12-05 04:39:50 +00:00 |
|
sBubshait
|
16db01d3d8
|
Refactor: Check if page is in a swap in fetch_page instead of the page fault handler
|
2024-12-05 03:17:18 +00:00 |
|
sBubshait
|
c12cd95093
|
Fix issues with merging, duplicate references and definition of VM
|
2024-12-05 02:27:48 +00:00 |
|
sBubshait
|
f13fd435cd
|
Merge remote-tracking branch 'origin/vm/page-swap-synch' into vm/virtual-memory/saleh
# Conflicts:
# .gitlab-ci.yml
# src/Makefile.build
# src/threads/thread.c
# src/userprog/exception.c
# src/userprog/process.c
# src/vm/frame.c
# src/vm/page.c
# src/vm/page.h
# src/vm/stackgrowth.c
# src/vm/stackgrowth.h
|
2024-12-05 02:21:53 +00:00 |
|
EDiasAlberto
|
ac31fb1e1e
|
feat: set accessed bit to allocated frames in page_load and get_usr_kpage
|
2024-12-05 01:41:23 +00:00 |
|
sBubshait
|
1a8eb1bbe5
|
Merge branch 'vm/memory-mapped-files' into vm/virtual-memory/saleh
|
2024-12-05 01:24:50 +00:00 |
|
sBubshait
|
52ec8fe779
|
Fix Bug: Grow stack if necessary in case of a page fault in the kernel context
|
2024-12-05 01:15:46 +00:00 |
|
sBubshait
|
f171a05108
|
Merge branch 'vm/stack-growth/saleh' into vm/virtual-memory/saleh
# Conflicts:
# src/userprog/exception.c
# src/userprog/process.c
# src/userprog/syscall.c
# src/vm/frame.c
# src/vm/page.c
# src/vm/page.h
|
2024-12-05 00:51:03 +00:00 |
|
Demetriades, Themis
|
f06c91cf0d
|
ci: include linear page tests in VM test pipeline
|
2024-12-05 00:29:49 +00:00 |
|
sBubshait
|
5265fed288
|
Refactor stack growth to be helper functions in exception for easier merging
|
2024-12-05 00:27:40 +00:00 |
|
Themis Demetriades
|
19d5b02341
|
fix: remove use of USERPROG compiler flag specific code when the flag is disabled
|
2024-12-04 23:48:51 +00:00 |
|
Themis Demetriades
|
0288e13206
|
fix: don't discriminate between user and kernel page fault contexts for stack growth, lazy loading, and swapping
|
2024-12-04 23:46:31 +00:00 |
|
Themis Demetriades
|
60faf995ea
|
fix: lazy load executable files of user processes even when accessed in a kernel context
|
2024-12-04 22:21:31 +00:00 |
|
sBubshait
|
61f6374006
|
Update gitlab CI to only run the tests associated with this feature (mmapped-files).
|
2024-12-04 22:06:09 +00:00 |
|
sBubshait
|
26a2d40325
|
Implement implicitly unmapping all mmapped files when a process exits. Refactor to reduce duplication
|
2024-12-04 22:00:59 +00:00 |
|
sBubshait
|
806d6bc19e
|
Refactor: Move destroying mmap data into process_exit instead of thread
|
2024-12-04 21:59:38 +00:00 |
|
Themis Demetriades
|
723055f485
|
fix: only use lazy loading if VM flag is enabled
|
2024-12-04 21:33:21 +00:00 |
|
Themis Demetriades
|
1e236a5c47
|
Merge branch 'vm/lazy-loading' into vm/page-swap-synch
|
2024-12-04 19:11:37 +00:00 |
|
sBubshait
|
ecbb4e74a5
|
Implement the unmap system call, writing back to the file if a page is dirty before removing from SPT
|
2024-12-04 19:07:28 +00:00 |
|
sBubshait
|
02b79d1934
|
Update mmap to add temporarily page_set_swap until swap is implemented
|
2024-12-04 18:13:07 +00:00 |
|
sBubshait
|
857cae3578
|
Update mmap to add a get helper function to find a mmap entry from its mapping
|
2024-12-04 18:08:05 +00:00 |
|
sBubshait
|
941e1e067a
|
Update SPT page entry to change type from EXECUTABLE to PAGE_FILE to capture mmaps in addition to executables
|
2024-12-04 17:51:30 +00:00 |
|
sBubshait
|
ad6e4b4059
|
Implement syscall_mmap to validate and then map all file data into a user address in memory
|
2024-12-04 17:42:53 +00:00 |
|
sBubshait
|
72fa0c1bbb
|
Fix Bug: Initialise the mmap table for the newly created thread rather than the current thread
|
2024-12-04 17:41:14 +00:00 |
|
Themis Demetriades
|
4bf6914cfa
|
feat: incorporate lazy-loading data & helpers into supplemental page table
|
2024-12-04 16:45:36 +00:00 |
|
Themis Demetriades
|
fb73d694bf
|
fix: frame allocation now invalidates the victim process page directory, not the caller's
|
2024-12-04 16:41:13 +00:00 |
|
sBubshait
|
67f16cb2a6
|
Update syscall.c to allow mmap and unmap system calls through helper handler functions for each
|
2024-12-04 15:31:53 +00:00 |
|
sBubshait
|
6b0f708d8f
|
Update mmap to add an insert helper function to allocate and add new mmap entries to the hash table
|
2024-12-04 15:26:00 +00:00 |
|
sBubshait
|
6e838aa06a
|
Fix Bug in thread.c: Only initialise and destroy mmap files table if VM is defined
|
2024-12-04 15:24:11 +00:00 |
|
sBubshait
|
a2f46f3b72
|
Add a mmap destroy function to cleanup all mmap hash table entries upon thread exit
|
2024-12-04 15:14:02 +00:00 |
|
sBubshait
|
1ce09a49a1
|
Add helper functions to initialise the memory-mapped files table and counter
|
2024-12-04 15:08:43 +00:00 |
|
Themis Demetriades
|
1b73e415d7
|
fix: invalidate PTEs of evicted pages before eviction occurs to prevent modificationof pages mid-eviction
|
2024-12-04 15:02:49 +00:00 |
|
sBubshait
|
b3042b5aa6
|
Update thread structure to add mmap files table and a counter for mappings of the thread
|
2024-12-04 14:56:52 +00:00 |
|
sBubshait
|
85aabd86cd
|
Update gitlab ci file to include mmap tests in the automated testing pipeline
|
2024-12-04 14:55:28 +00:00 |
|
sBubshait
|
acc768e177
|
Add mmap module in vm defining mmap_entry structure and some helper functions
|
2024-12-04 13:01:01 +00:00 |
|
Themis Demetriades
|
47a7dfae04
|
refactor: add comments describing each type of page fault dealt by the page fault handler
|
2024-12-03 21:47:59 +00:00 |
|
EDiasAlberto
|
9a3c8a1c38
|
fix: grow stack upon page fault in kernel context to support syscall stack growth
|
2024-12-03 20:56:10 +00:00 |
|
Themis Demetriades
|
08eafcf7ef
|
feat: implement page swapping
|
2024-12-03 16:53:47 +00:00 |
|
Themis Demetriades
|
df7d847978
|
fix: remove stack fault checks for page faults outside user non-present addresses
|
2024-12-02 21:07:17 +00:00 |
|
Demetriades, Themis
|
fbcd3c9f19
|
ci: include dynamic stack growth tests in VM test pipeline
|
2024-12-02 20:57:05 +00:00 |
|
Themis Demetriades
|
6190d1bee6
|
fix: disable dynamic stack growth when VM flag is disabled
|
2024-12-02 20:44:54 +00:00 |
|