tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/sys/arch/sparc64/sparc64




On Mar 25, 2008, at 9:42 AM, Martin Husemann wrote:


Module Name:    src
Committed By:   martin
Date:           Tue Mar 25 16:42:07 UTC 2008

Modified Files:
        src/sys/arch/sparc64/sparc64: syscall.c

Log Message:
Count the number of syscalls per cpu, to avoid cache trashing around
uvmexp.syscalls.
I wonder if we should apply the same treatment to uvmexp. {traps,intr,faults}

We actually need a generic facility for per-cpu counters.
And a way to collect them for all cpus when asked for.

And it needs to be more lightweight than evcnt.
considering how cache wasteful evcnt is...

I'm thinking ev_count should be an indirect reference so that the
counters for an object can be grouped together in the same cache line.

Maybe even a uint64_t *cpu_counters in cpu_data. then evcnt cold allocate
a slow in it for each counter.  IP could alloc N counters for ipstats.

uint64_t *ipstats = &curcpu()->ci_data.cpu_counters [ipstats.ips_ctroffset];

or something along these lines.


Home | Main Index | Thread Index | Old Index