Re: Generic battery interface

From: Shem Multinymous
Date: Sun Jul 30 2006 - 06:12:18 EST


On 7/30/06, Pavel Machek <pavel@xxxxxxx> wrote:
OTOH some applications just want more frequent polling than
others. Shem's "first update after N msec" solution looks most
flexible here.

Actually my solution was "any update but no sooner than N msecs". So
you might be getting a readout that's N-1 msecs old, which was
meanwhile cached by the driver. If you care about that, you need to
use interleave those polls with msleep()s; see my recent detailed
post. You'll still doing at most one msleep() per fetched readout,
regardless of how frequently the driver provides them.

Alternatively, we can add an extra parameter to that new
syscall/ioctl: "block until the time is T+N and you have a refresh
that was received from the hardware at time T+M, whichever is later"
(where T is the current time and N>M).

That's semantically equivalent to an msleep(M) followed by the
original delayed_update(N-M), but will save one timer interrupt per
iteration in some cases (e.g., an event-based hardware data source).

Shem
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/