Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@joemfb
Copy link
Collaborator

@joemfb joemfb commented May 18, 2023

This PR is a forward-port / rewrite of the demand-paging implementation from v1.14 (see urbit/urbit#6063, urbit/urbit#6126, urbit/urbit#6127, and urbit/urbit#6152). The original scope has been decreased, and the implementation simplified: i/o errors are not retried, the dirty page bitmap is manipulated with much simpler code, page offsets/pointers are calculated with macros, &c. There are additional layers of snapshot validation for updates (controlled at compile time, always on as of this PR); clean pages are compared to disk both before and after update. (This validation should stay on for pre-release testing, and possibly for initial release as well.)

This PR has been tested extensively on live ships; the corruption issues that plagued v1.14 cannot be reproduced.

Fixes #188. Supersedes #277. (Was previously opened as #401, but a typo in the branch name was preventing updates.)

joemfb added 30 commits April 6, 2023 16:34
corrects comments
removes dead code
makes page and offset calculations more consistent
@joemfb joemfb requested a review from a team as a code owner May 18, 2023 19:45
@joemfb joemfb requested a review from philipcmonk May 18, 2023 20:06
Copy link
Collaborator

@philipcmonk philipcmonk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good

@joemfb joemfb merged commit 610c28b into develop May 22, 2023
@joemfb joemfb deleted the jb/demand branch May 22, 2023 15:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Elastic memory growth

2 participants