Re: Stolen and degraded time and schedulers



john stultz wrote:
My gut reaction would be to avoid using clocksources for now. While
there is some thought going into how to expand clocksources for other
uses (Daniel is working on this, for example), the design for
clocksources has been very focused on its utility to timekeeping, so I'm
hesitant to try complicate the clocksources in order to multiplex
functionality until what is really needed is well understood.


Yes, you could imagine adding it as a clocksource variant, by allowing a
clocksource to set a particular timebase:

enum clocksource_timebase {
CLOCK_TIMEBASE_REALTIME,
CLOCK_TIMEBASE_CPU_WORK,
...
};

struct clocksource {
enum clocksource_timebase timebase;
...
}

Most of the existing clocksource infrastructure would only operate on
CLOCK_TIMEBASE_REALTIME clocksources, so I'm not sure how much overlap
there would be here. In the case of dealing with cpufreq, there's a
certain appeal to manipulating the shift/mult parameters to reflect the
fractional speed of a cpu as it changes.

I suspect the best approach would be see how the sched_clock interface
can be reworked/used for what you want, as it's design goals map closest
to the work-unit properties you list above.


sched_clock would definitely be the interface which exposes all this
stuff to the rest of the kernel. After all, its basically a very simple
interface, though the backend implementation details may not be.

We currently have a sched_clock interface in paravirt_ops to deal with
the hypervisor aspect. It only occurred to me this morning that cpufreq
presents exactly the same problem to the rest of the kernel, and so
there's room for a more general solution.

J
-
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/



Relevant Pages

  • Re: [RFC] What are the goals for the architecture of an in-kernel IR system?
    ... and design the perfect in-kernel system. ... redesign in parallel with existing LIRC. ... Because lircd is the only userspace application that uses the LIRC kernel ... interface, we never had any problems changing the interface when needed. ...
    (Linux-Kernel)
  • Re: POSIX standard for Driver development
    ... up-front design (which is difficult when you don't know what the design ... The Solaris DDI/DDK interface has ... kernel modules means that there is the possibility of modifying the API ... to opinions held by my employer, Sun Microsystems. ...
    (comp.unix.programmer)
  • Re: [PATCH 01/10] -mm: clocksource: increase initcall priority
    ... Since it's likely that this interface would get used during bootup ... usable early in the boot process, currently not all the clocksources are ... disqualifying actions will occur before we install it. ...
    (Linux-Kernel)