lkml.org 
[lkml]   [2007]   [Aug]   [1]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateWed, 1 Aug 2007 15:19:08 +0200 (CEST)
FromRoman Zippel <>
SubjectRe: CFS review
Hi,

On Wed, 1 Aug 2007, Ingo Molnar wrote:

> Please also send me the output of this script:
> 
>   http://people.redhat.com/mingo/cfs-scheduler/tools/cfs-debug-info.sh

Send privately.

> Could you also please send the source code for the "l.c" and "lt.c" apps
> you used for your testing so i can have a look. Thanks!

l.c is a simple busy loop (well, with the option to start many of them).
This is lt.c, what it does is to run a bit less than a jiffie, so it 
needs a low resolution clock to trigger the problem:

#include <stdio.h>
#include <signal.h>
#include <time.h>
#include <sys/time.h>

#define NSEC 1000000000
#define USEC 1000000
#define PERIOD	(NSEC/1000)

int i;

void worker(int sig)
{
	struct timeval tv;
	long long t0, t;
	gettimeofday(&tv, 0);
	//printf("%u,%lu\n", i, tv.tv_usec);
	t0 = (long long)tv.tv_sec * 1000000 + tv.tv_usec + PERIOD / 1000 - 50;
	do {
		gettimeofday(&tv, 0);
		t = (long long)tv.tv_sec * 1000000 + tv.tv_usec;
	} while (t < t0);
}
int main(int ac, char **av)
{
	int cnt;
	timer_t timer;
	struct itimerspec its;
	struct sigaction sa;
	cnt = i = atoi(av[1]);

	sa.sa_handler = worker;
	sa.sa_flags = 0;
	sigemptyset(&sa.sa_mask);

	sigaction(SIGALRM, &sa, 0);

	clock_gettime(CLOCK_MONOTONIC, &its.it_value);
	its.it_interval.tv_sec = 0;
	its.it_interval.tv_nsec = PERIOD * cnt;

	while (--i > 0 && fork() > 0)
		;
	its.it_value.tv_nsec += i * PERIOD;
	if (its.it_value.tv_nsec > NSEC) {
		its.it_value.tv_sec++;
		its.it_value.tv_nsec -= NSEC;
	}
	timer_create(CLOCK_MONOTONIC, 0, &timer);
	timer_settime(timer, TIMER_ABSTIME, &its, 0);

	printf("%u,%lu\n", i, its.it_interval.tv_nsec);

	while (1) 
		pause();
	return 0;
}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2007-08-01 15:23    [from the cache]
©2003-2008