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
This commit is contained in:
parent
57a4f20b8d
commit
d10a1df8d7
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=264550
@ -774,6 +774,14 @@ kern_setitimer(struct thread *td, u_int which, struct itimerval *aitv,
|
||||
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;
|
||||
|
Loading…
Reference in New Issue
Block a user