On Thu, Jun 15, 2006 at 12:49:54AM +0200, Martin Peschke wrote:
> Andi Kleen wrote:
> >Greg KH <[email protected]> writes:
> >>>+ * exploiters don't update several statistics of the same entity in one
> >>>go.
> >>>+ */
> >>>+static inline void statistic_add(struct statistic *stat, int i,
> >>>+ s64 value, u64 incr)
> >>>+{
> >>>+ unsigned long flags;
> >>>+ local_irq_save(flags);
> >>>+ if (stat[i].state == STATISTIC_STATE_ON)
> >>>+ stat[i].add(&stat[i], smp_processor_id(), value, incr);
> >
> >
> >Indirect call in statistics hotpath? You know how slow this is
> >on IA64 and even on other architectures it tends to disrupt
> >the pipeline.
>
> Okay, let's try to improve it then. The options here are:
>
> a) Replace the indirect function call by a switch statement which directly
> calls the add function of the data processing mode chosen by user.
> (e.g. simple counter, histogram, utilisation indicator etc.).
>
> No loss in functionality, slightly uglier code, acceptable
> performance(?).
> This would be my choice.
Probably best. Just don't make it an inline function :)
thanks,
greg k-h
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]