Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Physical memory allocator improvement #26

Open
4 of 6 tasks
vercas opened this issue Sep 18, 2016 · 4 comments
Open
4 of 6 tasks

Physical memory allocator improvement #26

vercas opened this issue Sep 18, 2016 · 4 comments
Assignees

Comments

@vercas
Copy link
Owner

vercas commented Sep 18, 2016

It is vital that Beelzebub begins to use 2-MiB pages where possible.
These have their own TLBs in L1 and share entries with 4-KiB pages in L2.
Therefore, using 2-MiB pages allows threads and cores to handle significantly larger working sets, which is handy for both the kernel and especially userland.

This requires support from the PMM, which needs to provide aligned pages.

Thus, the following must be implemented:

Plans

  • Simplify and abstract away interface of the PMM; no need for consumers to know every little detail.
    • Expose simplified PMM to kernel modules.
  • Change physical allocation space to work with 2-MiB frames.
    • Serve 4-KiB frames from within 2-MiB frames. Management structures for the 4-KiB frames should be within the 2-MiB frame.
    • Use frame dangling at the end of the allocation space, if any.
    • Use frame at the start of the allocation space, if any.
@vercas
Copy link
Owner Author

vercas commented Sep 22, 2016

This design does not allow lock-free allocation, so the related task was removed from the issue.
It does, however, allow a finer level of locking than the previous design.

Also, working on all features at once. Much easier this way. Will take a while.

@vercas
Copy link
Owner Author

vercas commented Sep 26, 2016

Rowhammer-proofing is a book-keeping nightmare, and fails when shared memory is involved.
Will not implement.

@vercas
Copy link
Owner Author

vercas commented Oct 13, 2016

Reference counting is not fully implemented yet.

@vercas
Copy link
Owner Author

vercas commented Oct 17, 2016

Reference counting is fully implemented.
God help me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant