mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-15 10:17:20 +00:00
Backout previous commit. sched_lock is held, thus interrupts are prevented
here. Submitted by: jhb
This commit is contained in:
parent
0d139b3741
commit
35030da9f8
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=72920
@ -567,27 +567,19 @@ calcru(p, up, sp, ip)
|
||||
|
||||
tu = p->p_runtime;
|
||||
if (p == curproc) {
|
||||
struct timeval old_switchtime;
|
||||
/*
|
||||
* Adjust for the current time slice. This is actually fairly
|
||||
* important since the error here is on the order of a time
|
||||
* quantum, which is much greater than the sampling error.
|
||||
*/
|
||||
do {
|
||||
old_switchtime = PCPU_GET(switchtime);
|
||||
microuptime(&tv);
|
||||
} while (old_switchtime.tv_sec !=
|
||||
PCPU_GET(switchtime.tv_sec) ||
|
||||
old_switchtime.tv_usec !=
|
||||
PCPU_GET(switchtime.tv_usec));
|
||||
if (timevalcmp(&tv, &old_switchtime, <))
|
||||
microuptime(&tv);
|
||||
if (timevalcmp(&tv, PCPU_PTR(switchtime), <))
|
||||
printf("microuptime() went backwards (%ld.%06ld -> %ld.%06ld)\n",
|
||||
old_switchtime.tv_sec,
|
||||
old_switchtime.tv_usec,
|
||||
tv.tv_sec, tv.tv_usec);
|
||||
PCPU_GET(switchtime.tv_sec), PCPU_GET(switchtime.tv_usec),
|
||||
tv.tv_sec, tv.tv_usec);
|
||||
else
|
||||
tu += (tv.tv_usec - old_switchtime.tv_usec) +
|
||||
(tv.tv_sec - old_switchtime.tv_sec) *
|
||||
tu += (tv.tv_usec - PCPU_GET(switchtime.tv_usec)) +
|
||||
(tv.tv_sec - PCPU_GET(switchtime.tv_sec)) *
|
||||
(int64_t)1000000;
|
||||
}
|
||||
ptu = p->p_uu + p->p_su + p->p_iu;
|
||||
|
Loading…
Reference in New Issue
Block a user