Re: [PATCH 3/5] lockstat: core infrastructure

From: Ingo Molnar
Date: Fri Jun 01 2007 - 14:32:22 EST



* Daniel Walker <dwalker@xxxxxxxxxx> wrote:

> > So, having two interfaces, one fast and one accurate is the right
> > answer IMHO.
>
> In the case of lockstat you have two cases fast and functional, and
> non-functional .. Right now your patch has no slow and functional
> state.

let me explain it to you:

1) there is absolutely no problem here to begin with. If a rare
architecture is lazy enough to not bother implementing a finegrained
sched_clock() then it certainly does not care about the granularity of
lockstat fields either. If it does, it can improve scheduling and get
more finegrained lockstat by implementing a proper sched_clock()
function - all for the same price! ;-)

2) the 'solution' you suggested for this non-problem is _far worse_ than
the granularity non-problem, on the _majority_ of server systems today!
Think about it! Your suggestion would make lockstat _totally unusable_.
Not "slow and functional" like you claim but "dead-slow and unusable".

in light of all this it is puzzling to me how you can still call Peter's
code "non-functional" with a straight face. I have just tried lockstat
with jiffies granular sched_clock() and it was still fully functional.
So if you want to report some bug then please do it in a proper form.

> As I said before there is no reason why and architectures should be
> forced to implement sched_clock() .. Is there some specific reason why
> you think it should be mandatory?

Easy: it's not mandatory, but it's certainly "nice" even today, even
without lockstat. It will get you:

- better scheduling
- better printk timestamps
- higher-quality blktrace timestamps

With lockstat, append "more finegrained lockstat output" to that list of
benefits too. That's why every sane server architecture has a
sched_clock() implementation - go check the kernel source. Now i wouldnt
mind to clean the API up and call it get_stat_clock() or whatever - but
that was not your suggestion at all - your suggestion was flawed: to
implement sched_clock() via the GTOD clocksource.

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