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

create workload to measure tlb flush performance #6

Closed
wants to merge 2 commits into from

Conversation

kemicoco
Copy link
Contributor

These workload are designed to measure the performance of tlb flush.
For tlb flush1 test case, each thread/process maps a separated private file mapping to memory, and
writes to a page before initiating a tlb flush by madvise(MADV_DONTNEED), subsequent access of
this page will result in repopulating the memory contents of the up-to-date of the underlying file.

For tlb flush2 test case, each thread/process has an anonymous private mappings, and writes to a 
page before initiationg a tlb flush by madvise(MADV_DONTNEED), subsequent access
of this page will result in zero-fill-on-demand pages for anonymous private
mapping.

Additionally, they are also tlb flush sensitive workload to verify the
behavior of tlb hardware, the assertion fails immediately once tlb flush
failure. We have double checked it by hacking Linux kernel to skip tlb
flush manually.

 This work is done with Dave Hansen. These are the best Linux workloads that we have that could
detect issues with the TLB either in software, or potentially in hardware.
This could provide validation for the ICX "Split TLB" behavior. 

Kemi Wang added 2 commits February 28, 2018 19:32
This test case is designed to measure the performance of tlb flush. Each
thread/process maps a separated private file mapping to memory, and
writes to a page before initiating a tlb flush by madvise(MADV_DONTNEED),
subsequent access of this page will result in repopulating the memory
contents of the up-to-date of the underlying file.

Additionally, it is also a tlb flush sensitive workload to verify the
behavior of tlb hardware, the assertion fails immediately once tlb flush
failure. We have double checked it by hacking Linux kernel to skip tlb
flush manually.

Suggested-by: Dave Hansen <dave.hansen@intel.com>
Signed-off-by: Kemi Wang <kemi.wang@intel.com>
This test case is designed to measure the performance of tlb flush. Each
thread/process has an anonymous private mappings, and writes to a page
before initiationg a tlb flush by madvise(MADV_DONTNEED), subsequent access
of this page will result in zero-fill-on-demand pages for anonymous private
mapping.

Suggested-by: Dave Hansen <dave.hansen@intel.com>
Signed-off-by: Kemi Wang <kemi.wang@intel.com>
@amitay
Copy link

amitay commented Feb 19, 2019

In tlb_flush1.c, tmpfile should be "/tmp/..." instead of "/tmpfs/...".

@amitay amitay mentioned this pull request Feb 19, 2019
@amitay
Copy link

amitay commented Feb 19, 2019

Pull request #10 includes the fixes for the first patch and additional test for shared mapping.

@antonblanchard
Copy link
Owner

This was resolved in #10, closing.

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.

3 participants