#define _GNU_SOURCE #include #include #include /* Usage: ./schedtest */ int miliseconds() { struct timeval tv; gettimeofday(&tv, 0); return tv.tv_usec/1000; } int main(int argc, char *argv[]) { int lives = 1000, time, lasttime, childs, cores, core_to_test; cores = sysconf(_SC_NPROCESSORS_ONLN); childs = cores * 2; if (argc > 1) core_to_test = atoi(argv[1]); else core_to_test = cores-1; while (childs-- && !fork()); while (lives) { time = miliseconds(); if (lasttime != time && sched_getcpu() != core_to_test) lives--; lasttime = time; } return 0; }