Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 24 Aug 2009 21:22:04 +0530
From:      Prashant Vaibhav <pvaibhav@freebsd.org>
To:        soc-status@freebsd.org
Subject:   callout api final status report
Message-ID:  <66b068eb0908240852j50434a1aka3f0a9a54afb87ef@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
Hi All,

At the end of GSoC, I've achieved 2 of the objectives, while the 3rd and the
auxiliary objectives could not be achieved.

In summary:

1. Callout subsystem was redesigned to remove the 'wheel' data structure,
and was replaced with a binary heap. This should be more efficient specially
when rearming existing callouts. Initial testing (outside of kernel) shows
good average O(1) performance for random insertions. The queues (min and max
heap) is generic and can be used by other subsystems within the kernel.

2. A new callout API was written which consolidates many of the functions of
the existing API, in a hardware-independent manner. It is currently
implemented as a wrapper over existing API, both of which co-exist in the
kernel. A demo of its usage can be found in the iwi driver source code,
which was updated to use the new API.

3. To actually make the new API fully hardware independent, kobj is used to
define an interface for hardware timers. Timer hardware will register
themselves with the callout API and one of them can be chosen as the current
timing/callout provider. This part is still in its early stages.

More detailed information can be found at the blog post on
http://freebsd.mercurysquad.com/

Work on the project is expected to continue until all the original goals are
achieved.

Best,
Prashant Vaibhav



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?66b068eb0908240852j50434a1aka3f0a9a54afb87ef>