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

Reply via email to