Skip to content
This repository has been archived by the owner on Nov 24, 2021. It is now read-only.

Set page size to 2MB #67

Open
stlankes opened this issue Apr 15, 2017 · 8 comments
Open

Set page size to 2MB #67

stlankes opened this issue Apr 15, 2017 · 8 comments

Comments

@stlankes
Copy link
Contributor

To reduce the TLB misses, we should per default use a page size of 2MB. Currently, only the code and bss segment use a page size of 2MB.

@jbreitbart
Copy link
Contributor

Any chance this will be configurable via cmake / compiler switch? L2 TLB was unified with Haswell (1024 entries for 4K/2MB pages, 8 way associative), but L1 TLB is still 128 entries for 4K pages, 8 way associative / 8 per thread for 2 MB pages. I am wondering if one can see a difference on some workloads.

If you are looking into automatic stuff like this based on the hardware see Processor Identification CPUID Instruction Note.pdf

@yash982000
Copy link
Contributor

@stlankes Is this issue open to working on?

@meetakbari
Copy link

Hello @stlankes ! Right now I am working on this project as my University course project and I am keen to solve this issue and do the enhancement if possible. Can you please guide me by throwing some light on this problem?

Thank you in advance!

@stlankes
Copy link
Contributor Author

stlankes commented Dec 2, 2020

Do you want to develop this feature on the C version? The Rust version is more active and easier to support.

@yash982000
Copy link
Contributor

@stlankes Is it possible to first develop on C and then on Rust?
We have no issues with the rust version but just the issue is we don't know rust language. So, will that be an issue?
If not, we can try to develop it on rust and later see for the relevant changes in C.

@meetakbari
Copy link

FYI. @stlankes me and @yash982000 are in same team.

@jounathaen
Copy link
Member

AFAIK the Rust version already uses LargePages. Besides that, I think that porting code from C to Rust is only applicable in limited cases, as the languages simply work a bit different. @meet-akbari you can of course try to tackle the issue, but keep in mind that this is not an easy issue, it requires a lot of testing for correctness, and the impact will be little, as Hermitcore is not developed active anymore.

If you need some resources to get some technical background:

@meetakbari
Copy link

Okay! Thank you @jounathaen for your guidance and suggestion. As you have said it is not an easy issue, but still we will try it out by going through the resources you have given and some of by ourselves.

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

No branches or pull requests

5 participants