Hi Madhavan
I reviewed the implementation today and it looks good to me. I'd like to
run it through a test machine as well, but here are my comments:
.around callout.c:500
ct->ct_heap_num--;
if (ct->ct_heap_num > 0) {
ct->ct_heap[0] = ct->ct_heap[ct->ct_heap_num];
callout_downheap(ct);
Why do you swap the root and downheap the new one?
Couldn't you just look at the right and left leaves and decide who's the
next up?
.around callout.c:1000
I suggest adding a comment prior to callout_hrestime_one(), something like
/*
* Move exprired callouts to expired lists, reprogramming the cyclic of
the root (if it exists)
*/
.the design doc doesn't mention that each CPU will alocate two taskq
threads per CPU, and it also doesn't say anything about the new members
for kthread_t and cyc_id_t. The doc is already very well written, but
I'd like to see it mention all new members.
Rafael