Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 31 Oct 2008 18:01:56 +0800
From:      Sam Xia <xiazhongqi@huawei.com>
To:        'Krassimir Slavchev' <krassi@bulinfo.net>
Cc:        freebsd-performance@freebsd.org
Subject:   RE: 1. thread switching time? (Krassimir Slavchev)
Message-ID:  <000001c93b3f$b5767eb0$2f096f0a@china.huawei.com>
In-Reply-To: <490ACA04.6060203@bulinfo.net>

Next in thread | Previous in thread | Raw E-Mail | Index | Archive | Help
hi Krassimir,

The smallest time quatum moving a thread from sleep queue to ready queue is
equal to one tick(about 1 ms). This is dependent of os scheduling mechanism.
Even the delay of nanosleep is less than 1 ms, actually 1 ms is the smallest
unit. 

I guess you should modify the kernel and add clock intr frequency.

BR, Sam.Xia 

> -----Original Message-----
> From: Krassimir Slavchev [mailto:krassi@bulinfo.net] 
> Sent: Friday, October 31, 2008 5:04 PM
> To: Julian Elischer
> Cc: freebsd-performance@freebsd.org; Sam Xia
> Subject: Re: 1. thread switching time? (Krassimir Slavchev)
> 
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Hello Julian,
> 
> Julian Elischer wrote:
> > Krassimir Slavchev wrote:
> > 
> >>
> >> Also, I am able to set HZ=100000 but the thread switching time is 
> >> still ~1ms.
> > 
> > You must be talking about the time that a thread can run 
> before it is 
> > pushed out by other threads?  I know I've seem many x 
> 10,000 context 
> > switches in some cases, i.e. look at very high interrupt 
> rates etc. so 
> > I guess I'm not sure what you are measuring..
> 
> Okay, I have a thread with:
> 
> while(1) {
> 	clock_gettime(CLOCK_REALTIME, &tv);
> 	nanosleep(&delay, NULL);
> 	clock_gettime(CLOCK_REALTIME, &tv2);
> 	timespecsub(&tv2, &tv);
> }
> 
> If the delay is configured to be 0 < delay < 1ms I always get 
> ~1ms delay.
> Since nanosleep() is a cancellation point this means that the 
> scheduler will switch to another thread.
> If the delay = 0 I get ~1600ns delay.
> 
> Yes. You are right. This is "the time that a thread can run 
> before it is pushed out by other threads".
> 
> Is there a way to decrease this time?
> 
> > 
> > at one time the scheduling quantum was independent of Hz.
> > I am not sure how true that is now..
> > 
> 
> It seems to be independent of HZ.
> 
> 
> Best Regards
> 
> > 
> > _______________________________________________
> > freebsd-performance@freebsd.org mailing list 
> > http://lists.freebsd.org/mailman/listinfo/freebsd-performance
> > To unsubscribe, send any mail to
> > "freebsd-performance-unsubscribe@freebsd.org"
> > 
> 
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.7 (FreeBSD)
> 
> iD8DBQFJCsoDxJBWvpalMpkRAteuAJ9Jd8ICvPSiWB/4eGquUunoclpeXgCgjqyE
> vBXA0vGoRgsQ9eHZ/YwR/lw=
> =AjjC
> -----END PGP SIGNATURE-----
> 




Want to link to this message? Use this URL: <http://docs.FreeBSD.org/cgi/mid.cgi?000001c93b3f$b5767eb0$2f096f0a>