Click Timers and the OSKit

Eddie Kohler eddietwo at cag.lcs.mit.edu
Thu Jan 27 10:13:27 EST 2000


Hi Leigh, Jay,

> Hi. I've been doing some more work on the OSKit version of Click. I just
> wanted to run something by you folks to see what you think. At present, we
> have made a modest number of changes to Click to allow multiple router
> graphs to be instantiated, where each router graph runs in its own thread
> context. For an individual router graph, both the driver loop and packet
> delivery happen in thread context, and reentrancy is controlled (well,
> prevented) through the use of a mutex and condition variable pair. That is,
> packet delivery cannot happen while the driver loop is operational, and the
> driver loop cannot run while a packet is being delivered.

This is a pretty interesting idea. You should know that we've been pushing
hard on scheduling for a high-performance Click implementation. In
particular, we've moved away from unmodified Linux device drivers. (We are
keeping the option of using unmodified drivers.) Now we are focusing on
polling, since that makes performance much better, and overload behavior
better too (no livelock).

Some other consequences of this plan: The lightweight work list is gone,
replaced with a stride scheduler. Things like the `please_pull' stuff that
you might have noticed in `Queue' are gone. Click now runs in a Linux
kernel thread, yielding control up to Linux occasionally.

I'm not sure how this intersects with your work. There will probably be
problems the first time you try to sync up with this. We can try and work
on such a sync, but it'll be a couple weeks. We are pushing hard on a
SIGCOMM paper now.

I like your Clock idea. That sounds like a good way to go about it.
Alternatively, the "Clock" can just _be_ the Router object, since they
would have a one-to-one relationship. So every Timer would have a Router to
which it is attached. We'll probably "buy back" such a change.

Sorry for the delay in responding. I'm still excited you guys are working
with Click. Keep emailing us at click at pdos -- we _will_ get back to you
eventually! :)

love,
ed



More information about the click mailing list