kern/187668: commit references a PR

dfilter service dfilter at FreeBSD.ORG
Wed Apr 16 18:40:03 UTC 2014


The following reply was made to PR kern/187668; it has been noted by GNATS.

From: dfilter at FreeBSD.ORG (dfilter service)
To: bug-followup at FreeBSD.org
Cc:  
Subject: Re: kern/187668: commit references a PR
Date: Wed, 16 Apr 2014 18:37:50 +0000 (UTC)

 Author: mav
 Date: Wed Apr 16 18:37:46 2014
 New Revision: 264550
 URL: http://svnweb.freebsd.org/changeset/base/264550
 
 Log:
   Fix VIRTUAL and PROF interval timers for short intervals, broken at r247903.
   
   Due to the way those timers are implemented, we can't handle very short
   intervals.  In addition to that mentioned patch caused math overflows
   for short intervals.  To avoid that round those intervals to 1 tick.
   
   PR:		kern/187668
   MFC after:	1 week
 
 Modified:
   head/sys/kern/kern_time.c
 
 Modified: head/sys/kern/kern_time.c
 ==============================================================================
 --- head/sys/kern/kern_time.c	Wed Apr 16 18:23:36 2014	(r264549)
 +++ head/sys/kern/kern_time.c	Wed Apr 16 18:37:46 2014	(r264550)
 @@ -774,6 +774,14 @@ kern_setitimer(struct thread *td, u_int 
  				timevalsub(&oitv->it_value, &ctv);
  		}
  	} else {
 +		if (aitv->it_interval.tv_sec == 0 &&
 +		    aitv->it_interval.tv_usec != 0 &&
 +		    aitv->it_interval.tv_usec < tick)
 +			aitv->it_interval.tv_usec = tick;
 +		if (aitv->it_value.tv_sec == 0 &&
 +		    aitv->it_value.tv_usec != 0 &&
 +		    aitv->it_value.tv_usec < tick)
 +			aitv->it_value.tv_usec = tick;
  		PROC_SLOCK(p);
  		*oitv = p->p_stats->p_timer[which];
  		p->p_stats->p_timer[which] = *aitv;
 _______________________________________________
 svn-src-all at freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe at freebsd.org"
 


More information about the freebsd-bugs mailing list