diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2013-03-08 00:43:41 -0500 |
---|---|---|
committer | Bjoern Brandenburg <bbb@mpi-sws.org> | 2013-08-07 03:47:07 -0400 |
commit | bcaacec1ca714224807728a63eccb37e3d685cd6 (patch) | |
tree | 4c4fb3e05af0d9ad03428414cd8c2bb97105435a /litmus/Makefile | |
parent | 3bd7e43d778163e9e1b696fdb5030b7717aba236 (diff) |
uncachedev: mmap memory that is not cached by CPUs2013.1archived-2013.1
This patch creates a new character device, uncachedev.
Pages of RAM allocated by this device are not cached by
CPUs.
Uses for such pages:
1) Determining *very* pessimistic emperical worst-
case execution times.
2) Compare against performance with caches (quantify
the avg. case benefit).
3) Deterministic memory accesses (access cannot cause a
cache eviction.)
4) Theoretically, increased performance can be achieved
by storing infrequently accessed data in uncache pages.
uncachedev allocates pages with the pgprot_noncached() page
attribute for user applications. Since pages allocated by
uncachedev are not locked in memory by default, applications
with any access level may mmap pages with uncachedev.
Limitations:
1) Uncache pages must be MAP_PRIVATE.
2) Remapping not supported.
Usage (user level):
int size = NR_PAGES*PAGE_SIZE;
int fd = open("/dev/litmus/uncache", O_RDWR);
char *data = mmap(NULL, size, PROT_READ | PROT_WRITE,
MAP_PRIVATE, fd, 0);
<...do stuff...>
munmap(data, size);
Diffstat (limited to 'litmus/Makefile')
-rw-r--r-- | litmus/Makefile | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/litmus/Makefile b/litmus/Makefile index d26ca7076b62..2bddc94a399f 100644 --- a/litmus/Makefile +++ b/litmus/Makefile | |||
@@ -18,6 +18,7 @@ obj-y = sched_plugin.o litmus.o \ | |||
18 | bheap.o \ | 18 | bheap.o \ |
19 | binheap.o \ | 19 | binheap.o \ |
20 | ctrldev.o \ | 20 | ctrldev.o \ |
21 | uncachedev.o \ | ||
21 | sched_gsn_edf.o \ | 22 | sched_gsn_edf.o \ |
22 | sched_psn_edf.o \ | 23 | sched_psn_edf.o \ |
23 | sched_pfp.o | 24 | sched_pfp.o |