Changing p_swtime and td_slptime to ticks
Julian Elischer
julian at elischer.org
Mon Sep 17 22:48:52 PDT 2007
Jeff Roberson wrote:
> Enclosed is a patch that fixes swapping with ULE. ULE has never
> properly set p_swtime and td_slptime which are used by the
> swapout/swapin code to select the appropriate thread to swap.
I have not looked at in the depth required, but 2 points that I was unable
to check to my satisfaction before I got called away for work....
1/ the source of the ticks is a monotonically increasing count that never
goes backwards or changes?
2/ nothing that used to be accounted in seconds becomes accounted for in ticks?
>
> In 4BSD these two variables are increment once per-second as schedcpu()
> iterates over all threads. ULE does not have a once per-second loop
> iterating over all threads. So I have changed p_swtime to p_swtick and
> td_slptime to td_slptick. These record the value of 'ticks' when the
> thread slept or was last swapped in or out.
>
> For backwards compatibility I leave the values in kinfo_proc with the
> legacy meaning by subtracting from ticks and dividing by hz. I perform
> a similar transformation in the swapout code to convert to seconds.
> This change does make it possible to use sub-second granular decisions
> in the swap code, however I'm not sure if that's really necessary.
>
> So that I did not disturb the 4BSD mechanism I kept the original
> td_slptime in the td_sched area. It should be possible to use
> td_slptick directly but especially this close to release I did not want
> to change 4BSD.
>
> Feedback and testing welcome.
>
> Thanks,
> Jeff
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> freebsd-arch at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-arch
> To unsubscribe, send any mail to "freebsd-arch-unsubscribe at freebsd.org"
More information about the freebsd-arch
mailing list