1 /* Run this as: for i in $(seq 0 5); do prem-test $i & done */
3 #define _GNU_SOURCE /* See feature_test_macros(7) */
11 #ifndef SYS_prem_guard_set
12 #define SYS_prem_guard_set 792
21 long prem_guard_set(enum prem_phase phase,
22 unsigned long memory_budget,
23 unsigned long timeout)
25 return syscall(SYS_prem_guard_set, phase, memory_budget, timeout);
28 int main(int argc, char *argv[])
36 /* Ensure that memory phase starts and ends on the same CPU */
39 if (sched_setaffinity(getpid(), sizeof(set), &set) < 0)
40 err(1, "sched_setaffinity");
41 printf("Pinned to CPU %d\n", cpu);
43 prem_guard_set(PREM_MEMORY, 22, 33);
44 for (int i = 0; i < 100; i++)
45 printf("Memory phase PID %d\n", getpid());
46 prem_guard_set(PREM_COMPATIBLE, 44, 55);