Edward Amsden
3acf8e74c1
serf: ensure locals are preserved and top frame flipped after PMA save
2023-12-15 10:00:38 -06:00
barter-simsum
02b1ae3dd2
pma: btest.c changes
2023-12-15 06:36:53 -05:00
barter-simsum
66aaa255f7
pma: fix freelist node size calculation in _mlist_insert
2023-12-15 06:36:30 -05:00
barter-simsum
031e583c3c
pma: fix DPRINTF in bt_malloc
2023-12-15 05:38:35 -05:00
barter-simsum
965865da13
pma: mmap freespace ahead of first node partition
2023-12-15 03:24:42 -05:00
barter-simsum
40a04ec8ab
pma: _bt_printnode print to stderr
2023-12-15 01:19:28 -05:00
Edward Amsden
a37cf3e779
pma: when persisting hamt check if buffer already in PMA
2023-12-15 00:15:40 -06:00
barter-simsum
ff204263ff
pma: misc fixes
...
- primarily fixes a bug in _mlist_insert and _pending_flist_insert
- also updates some tests
- disables node data printing on _bt_insertdat with DEBUG_PRINTNODE macro
2023-12-15 00:50:26 -05:00
Edward Amsden
bdccac7ff2
pma: fixup of global static PMA
2023-12-14 22:17:25 -06:00
Edward Amsden
8fb0953247
pma: dirty in unifying equality
...
This changes the PMA to be a static global instead of a threaded-through handle.
We use a OnceLock to enforce one-time-only opening of the PMA. There is
no public PMA type any more, just a collection of module-level methods
which act through the global reference.
This is consistent with the assumptions of the underlying C code, that
there will be only one PMA open in a process, and avoids the need to
thread the PMA to unifying equality calls.
2023-12-14 21:42:31 -06:00
Edward Amsden
caeea6ec2d
unifying equality: move to own module
2023-12-14 18:08:55 -06:00
barter-simsum
a509c2fabe
pma: even more msync/mprotect changes
2023-12-14 16:40:42 -05:00
barter-simsum
a8b3619e9f
pma: more msync/mprotect abort
2023-12-14 16:35:33 -05:00
Edward Amsden
fa30180b68
pma: noun and hamt persist fixes
2023-12-14 15:31:06 -06:00
barter-simsum
92c1a23b7d
pma: abort on failed msync/mprotect
2023-12-14 16:30:29 -05:00
Edward Amsden
adfc9ddb10
pma: fix assert in save_to_pma
2023-12-14 14:28:27 -06:00
Sigilante
854e4bd544
Recomment debugging printfs
2023-12-14 09:39:49 -06:00
Edward Amsden
bfdb1b9eb7
pma: fix and simplify copy_to_buffer for Noun
2023-12-14 00:56:39 -06:00
Edward Amsden
5598442304
pma: fix save_to_pma buffer size assertions
2023-12-14 00:45:09 -06:00
Edward Amsden
59180a704b
Merge branch 'revert-177-revert-175-eamsden/gc-top-frame' into eamsden/integrate-pma-tmp-fix-gc
2023-12-13 22:39:11 -06:00
barter-simsum
92bb42683d
pma: fix c test3
2023-12-13 21:36:34 -05:00
Edward Amsden
be4a6552e1
Merge remote-tracking branch 'origin/status' into revert-177-revert-175-eamsden/gc-top-frame
2023-12-13 20:33:33 -06:00
barter-simsum
20693a32ce
pma: tests
2023-12-13 21:32:45 -05:00
Edward Amsden
05b0609b5b
2stackz: comment explaining null checks in is_in_frame
2023-12-13 20:32:01 -06:00
Edward Amsden
f8615b5a4e
2stackz: lint
2023-12-13 19:53:33 -06:00
Edward Amsden
a98524bfd7
2stackz: format
2023-12-13 19:48:34 -06:00
Edward Amsden
046c435fa7
2stackz: fix is_in_frame check for top frame
2023-12-13 19:46:59 -06:00
Edward Amsden
b841fe2f63
hot: fix preserve instance
2023-12-13 19:46:39 -06:00
Alex Shelkovnykov
3d98ab2684
Merge pull request #179 from urbit/as/comments
...
docs: add comments explaining invariants / algorithms
2023-12-13 18:42:03 -06:00
Alex Shelkovnykov
51e8986327
docs: cargo fmt
2023-12-13 21:19:40 -03:00
barter-simsum
3786277230
pma: remove mkdir call from bt_state_open
2023-12-13 18:25:35 -05:00
Sigilante
3207660eac
serf: placate linter
2023-12-13 14:33:04 -06:00
Sigilante
cd92209131
serf: placate linter
2023-12-13 14:31:34 -06:00
Sigilante
a715c961c5
serf: placate linter
2023-12-13 14:30:10 -06:00
Sigilante
b1eaf8e853
serf: placate linter
2023-12-13 14:20:38 -06:00
Sigilante
8438fe8e5d
serf: removal of snapshotting
2023-12-13 14:14:59 -06:00
Alex Shelkovnykov
235d8c54f1
docs: add comments explaining invariants / algorithms
2023-12-13 12:11:56 -03:00
barter-simsum
c4b1888020
pma: update mprotect calls to use BT_PROT_* macros
2023-12-13 07:52:36 -05:00
barter-simsum
e630016584
pma: mmap changes appear to be working
2023-12-13 07:45:44 -05:00
barter-simsum
88fdfe0755
pma: misc bug fixes
...
currently debugging an "invalid argument" error in the mmap call in bt_free
2023-12-13 07:17:05 -05:00
barter-simsum
7dfc32681a
pma: more mmap changes. WIP
2023-12-12 22:34:26 -05:00
Matthew LeVan
38c1b3cef3
Revert "Revert "2stackz: gc top frame by flipping polarity""
2023-12-12 21:04:10 -05:00
Matthew LeVan
5bfc83673c
Revert "2stackz: gc top frame by flipping polarity"
2023-12-12 20:48:55 -05:00
barter-simsum
13b5f6bee6
pma: set protection of leaf data when syncing
2023-12-12 20:34:12 -05:00
barter-simsum
e96d7ecb4c
pma: mmap and mprotect revisions wip
2023-12-12 18:23:37 -05:00
Edward Amsden
9271deb3d6
pma: set -DDEBUG for default profile
2023-12-11 23:16:32 -06:00
Edward Amsden
94d92e4a3e
pma: add a missing ftruncate and mmap call, and lots of notes
2023-12-11 23:15:53 -06:00
Edward Amsden
bbaa758c95
hamt: fix persist instance
2023-12-11 23:15:18 -06:00
Edward Amsden
548dc3f3c4
hamt: when preserving, actually write outermost stem pointer back to mutable self
2023-12-11 19:06:57 -06:00
Edward Amsden
ede9918c03
pma: some quick fixes
2023-12-11 18:34:06 -06:00
Edward Amsden
fd1af932c6
2stackz: fix wrong-end previous allocation pointer in flip_top_frame()
2023-12-11 15:56:05 -06:00
Edward Amsden
7e110aa6c5
2stackz: assert is_west after reset
...
Co-authored-by: Jonathan Paprocki <51337059+drbeefsupreme@users.noreply.github.com>
2023-12-11 15:56:05 -06:00
Edward Amsden
1ee7ce5c32
2stackz: clarify doc comment on NockStack::reset
...
Co-authored-by: Jonathan Paprocki <51337059+drbeefsupreme@users.noreply.github.com>
2023-12-11 15:56:05 -06:00
Edward Amsden
002aba5f5b
2stackz: fix wrong-end previous allocation pointer in flip_top_frame()
2023-12-11 14:46:05 -06:00
Edward Amsden
c40fdc1ad4
2stackz: assert is_west after reset
...
Co-authored-by: Jonathan Paprocki <51337059+drbeefsupreme@users.noreply.github.com>
2023-12-11 14:18:34 -06:00
Edward Amsden
859b89f85c
2stackz: clarify doc comment on NockStack::reset
...
Co-authored-by: Jonathan Paprocki <51337059+drbeefsupreme@users.noreply.github.com>
2023-12-11 14:16:17 -06:00
Edward Amsden
fc3be96f00
serf: no need to GC stack in event-update as it happens at end of event loop
2023-12-11 09:11:16 -06:00
Edward Amsden
f7e6cc2770
serf: format
2023-12-11 08:59:38 -06:00
Edward Amsden
e3d4f57979
pma: fully integrate top-stack GC
2023-12-11 08:59:15 -06:00
Edward Amsden
5d2e937f5c
Merge branch 'eamsden/gc-top-frame' into eamsden/integrate-pma-merge-tmp
2023-12-11 08:53:30 -06:00
Edward Amsden
7d0def5178
Merge branch 'status' into eamsden/integrate-pma-merge-tmp
2023-12-11 08:52:48 -06:00
Edward Amsden
74fa5127ff
2stackz: gc top frame by flipping polarity
2023-12-10 21:33:03 -06:00
Edward Amsden
baebb515e2
hamt: doc comments and cleanup
2023-12-09 11:46:47 -06:00
Edward Amsden
95e05b2dad
pma: reorganization and doc comments
2023-12-09 11:32:48 -06:00
Edward Amsden
48817bb694
hamt: remove unused struct StemTraversalEntry
2023-12-09 11:18:42 -06:00
Edward Amsden
ef5954b3b1
serf: format
2023-12-08 23:16:50 -06:00
Edward Amsden
28d9032acd
serf: comments about where to put warm and hot states
2023-12-08 23:16:17 -06:00
Edward Amsden
7a81e40829
pma: move most snapshot loading definition and logic into serf
2023-12-08 19:50:30 -06:00
Matthew LeVan
0590fd6f54
use convention
2023-12-08 20:31:16 -05:00
Matthew LeVan
34fd4651c6
preserve cache, cold, warm in with_stack_frame
2023-12-08 20:31:10 -05:00
barter-simsum
82cd52acb8
pma: _bt_delco: don't trim subtrees in leaves
2023-12-08 19:51:44 -05:00
barter-simsum
17d74aed49
pma: fix deletion coalescing first pass. update malloc tests
2023-12-08 19:40:37 -05:00
barter-simsum
10ed711da5
pma: fix _bt_delco hiidx iteration
2023-12-08 19:27:34 -05:00
barter-simsum
81f58631e1
pma: fix _pending_nlist_insert and _mlist_insert
2023-12-08 18:58:24 -05:00
barter-simsum
e7bc9f34ac
pma: malloc test update
...
debugging mlist coalescing and deletion coalescing issues
2023-12-08 18:40:15 -05:00
barter-simsum
d75aed7bd2
pma: various bug fixes
...
- initialize root to page offset beyond first node stripe (not zero). Is this
improper? We initialize the mlist at the first va in the root. Maybe that part
should handle the node stripes instead? Don't know if it actually matters.
- fix insert tests
- fix state->meta_pages initialization
- other minor fixes
2023-12-08 18:15:31 -05:00
barter-simsum
d1139abf9c
pma: fix bt_sync segfault
2023-12-08 17:41:18 -05:00
Edward Amsden
d7236aed41
interpreter: add with_stack_frame method to context
2023-12-08 12:44:55 -06:00
Edward Amsden
529d8786cd
stack: pass stack to with_frame closure
2023-12-08 12:28:04 -06:00
Edward Amsden
52a25a4516
2stackz: make with_frame preserve result and add preserve instances for Result and errors
2023-12-08 12:23:38 -06:00
barter-simsum
3eb0b3a5d5
pma: implement bt_state_close to a sufficient degree
2023-12-07 18:40:27 -05:00
Edward Amsden
654fd8bf0a
Merge branch 'status' into eamsden/add-bacon
2023-12-07 09:48:51 -06:00
Edward Amsden
b082af0859
PMA: throw unimplemented when trying to open on windows
2023-12-07 09:41:16 -06:00
Alex Shelkovnykov
3407f0202c
jets: clean up comments
2023-12-07 12:21:02 -03:00
Alex Shelkovnykov
2f86f30b8a
jets: move useful function into jet utils
2023-12-07 12:18:40 -03:00
Edward Amsden
03ad01d23d
pma: fix up last rust todos
2023-12-07 01:36:53 -06:00
Edward Amsden
863afcd7ef
pma: format
2023-12-07 01:34:47 -06:00
Edward Amsden
70e0f6abd5
pma: re-initialize hot state after stack reset
2023-12-07 01:28:21 -06:00
Edward Amsden
d321a13da8
pma: Preserve instance for Cold
2023-12-07 01:28:07 -06:00
Edward Amsden
bd31c02baa
pma: Persist instance for NounList
2023-12-07 01:19:27 -06:00
Edward Amsden
295da34cf8
pma: preserve instance for BatteriesList
2023-12-07 01:07:26 -06:00
Edward Amsden
06da6c6757
pma: persist instance for Batteries
2023-12-07 00:10:19 -06:00
Edward Amsden
6cce3cc2ed
devshell: add bacon (better cargo-watch)
2023-12-06 23:09:53 -06:00
Edward Amsden
6d7a8a1283
devshell: add bacon
2023-12-06 23:08:53 -06:00
Edward Amsden
07c541e87e
pma: fix warning in build script
2023-12-06 23:08:53 -06:00
Edward Amsden
76fa10e1ea
pma: persist instance for Hamt
2023-12-06 23:08:53 -06:00
barter-simsum
e4695f641c
pma: misc bug fixes in _bt_state_load
2023-12-06 18:23:33 -05:00
barter-simsum
f07bc63e01
pma: test restructuring
2023-12-06 18:17:51 -05:00
Matthew LeVan
030218df9f
cargo: clippy lint
2023-12-06 16:50:41 -05:00
Matthew LeVan
79819b7795
cargo: format
2023-12-06 16:46:37 -05:00
Matthew LeVan
b7cb624b85
Merge branch 'status' into msl/parse-jets
2023-12-06 16:45:22 -05:00
Matthew LeVan
b99355b23a
jets: fix jet_here
mismatch
2023-12-06 16:34:02 -05:00
Matthew LeVan
8dabcf2395
jets: fixed jet_here
2023-12-06 16:12:28 -05:00
Sigilante
e9dbb2fd08
Add unit tests for easy.
2023-12-06 13:46:29 -06:00
barter-simsum
1cdb55ce7f
pma: _bt_state_restore_maps2
2023-12-06 14:05:54 -05:00
Matthew LeVan
6deb05348e
Merge branch 'status' into msl/parse-jets
2023-12-06 11:19:42 -05:00
Edward Amsden
a09010bca5
jets: fix lint on hot state constant
2023-12-06 08:37:46 -06:00
Edward Amsden
4b4eb012be
jets: format
2023-12-06 08:34:12 -06:00
Edward Amsden
d5fc700129
jets: a bit of external developer friendliness for hot state
2023-12-06 08:33:34 -06:00
Edward Amsden
93e7ca016f
serf: accept hot state as parameter
2023-12-06 08:33:30 -06:00
Edward Amsden
473263eabb
Merge pull request #159 from urbit/eamsden/minimal-main
...
main: just be a serf, panic if not a serf
2023-12-06 08:30:38 -06:00
Edward Amsden
f2e9aa1e94
main: format
2023-12-06 08:24:13 -06:00
Edward Amsden
b9a0b37789
Merge pull request #161 from urbit/msl/upgrade-urcrypt-1
...
build: support latest `urcrypt`
2023-12-06 08:18:25 -06:00
Alex Shelkovnykov
d07ffe5bdb
Merge branch 'status' into eamsden/context-restore
2023-12-06 07:40:17 -06:00
Alex Shelkovnykov
1d777a60dd
serf: bump NockStack size to 4GB
2023-12-06 10:31:29 -03:00
Edward Amsden
1f68d65bb8
hamt: allocate outermost stem on NockStack
2023-12-05 23:32:39 -06:00
Philip Quirk
e7d76a3818
reset cache before work_swap
2023-12-05 21:18:02 -06:00
barter-simsum
87320843de
pma: remove old node freelist implm and refactor _bt_state_load
2023-12-05 21:39:21 -05:00
barter-simsum
2b6f5fdc26
pma: abort if mmap calls return MAP_FAILED
2023-12-05 21:21:26 -05:00
barter-simsum
df591e419f
pma: increment meta.txnid on sync
2023-12-05 21:19:03 -05:00
barter-simsum
b957bb6c5b
pma: misc fixes
2023-12-05 19:29:56 -05:00
barter-simsum
a820222566
pma: remove .meta_fd from BT_state
2023-12-05 19:29:35 -05:00
barter-simsum
984b7dcdfb
pma: fix mmap call in _bt_data_cow
2023-12-05 17:25:09 -05:00
Alex Shelkovnykov
aa002b47ee
jets: remove unnecessary helper struct
2023-12-05 16:23:55 -03:00
Alex Shelkovnykov
adbd8a3603
jets: consolidate virtualization logic
2023-12-05 16:17:38 -03:00
Matthew LeVan
4451a342c4
build: support latest urcrypt
2023-12-05 10:54:18 -05:00
Edward Amsden
35301c6e12
pma: copy nouns in
2023-12-04 22:55:32 -06:00
Alex Shelkovnykov
ff08e07b3f
jets: touch up previous commit
2023-12-05 00:56:12 -03:00
Edward Amsden
1c88d390e3
pma: space_needed for Noun
2023-12-04 20:50:07 -06:00
barter-simsum
d1ee3f673d
pma: misc
...
cleans up code. clearing comments and unnecessary struct members
also fixed lowidx calculation bug in deletion coalescing routines
2023-12-04 20:13:33 -05:00
barter-simsum
bbe034e382
pma: _mlist_insert
2023-12-04 19:50:20 -05:00
Edward Amsden
712f90e62c
main: just be a serf, panic if not a serf
2023-12-04 18:29:15 -06:00
Edward Amsden
1395d4b885
pma: remove previous PMA code
2023-12-04 18:18:29 -06:00
Edward Amsden
7112890b96
pma: take snapshots from serf
2023-12-04 18:07:51 -06:00
Edward Amsden
267a1a3cd5
pma: skeleton of integration into ares
2023-12-04 16:24:48 -06:00
Edward Amsden
ebb5a4063d
snapshot: strip out old snapshotting code to make way for PMA
2023-12-04 16:24:48 -06:00
barter-simsum
7935f531ff
pma: call pending freelist merge routines in bt_sync
2023-12-04 17:11:54 -05:00
barter-simsum
5beb2da584
pma: rewrite _pending_nlist_merge
2023-12-04 17:07:48 -05:00
barter-simsum
bbc1c88120
pma: amend _pending_flist_merge
2023-12-04 17:07:38 -05:00
barter-simsum
9708b47eca
pma: _pending_flist_merge one line change
2023-12-04 16:31:49 -05:00
barter-simsum
520f8133ab
pma: _pending_flist_merge
...
did I do this right? need to review. additionally, need to rewrite
_pendling_nlist_merge
2023-12-04 16:26:51 -05:00
barter-simsum
89eb301914
pma: some pending_flist operations. still need merge
2023-12-04 15:28:25 -05:00
Edward Amsden
1c80366066
virtualization: properly restore cold/warm states, cache, and scry stack when catching an error
2023-12-04 13:02:35 -06:00
barter-simsum
6a41cc156c
pma: amend _bt_data_cow
2023-12-04 13:47:33 -05:00
barter-simsum
db5ee1e371
pma: fix ADDR2OFF and OFF2ADDR. amend all sites that improperly handle vaof_t
...
this should be closely inspected. additionally fixed _bt_data_cow implementation
and a few other misc things
2023-12-04 13:36:50 -05:00
barter-simsum
14f82b45a8
pma: bt_inbounds
2023-12-04 12:37:53 -05:00
barter-simsum
3c0d34dd11
pma: modifications to bt_dirty and _bt_data_cow
2023-12-02 08:02:14 -05:00
barter-simsum
d7ffdc47de
pma: bt_dirty partial implm
2023-12-01 23:17:38 -05:00
barter-simsum
dc760add87
pma: amend bt_next_alloc impl
2023-12-01 16:37:18 -05:00
barter-simsum
2aae3d046b
pma: implement bt_next_alloc
2023-12-01 16:30:14 -05:00