| Age | Commit message (Collapse) | Author |
|
|
|
to get profiling data for each CPU.
In the current implementation, locks are acquired at the entrance of the mcount
internal function, so the higher the number of cores, the more lock conflict
occurs, making profiling performance in a MULTIPROCESSOR environment unusable
and slow. Profiling buffers has been changed to be reserved for each CPU,
improving profiling performance in MP by several to several dozen times.
- Eliminated cpu_simple_lock in mcount internal function, using per-CPU buffers.
- Add ci_gmon member to struct cpu_info of each MP arch.
- Add kern.profiling.percpu node in sysctl tree.
- Add new -c <cpuid> option to kgmon(8) to specify the cpuid, like openbsd.
For compatibility, if the -c option is not specified, the entire system can be
operated as before, and the -p option will get the total profiling data for
all CPUs.
|
|
properly.
|
|
Define _REENTRANT for MKSANITIZER build. This is needed for at least stdio
code. This caused new build issued with duplicated symbols in few places
and rump kernel code picking different code paths borrowed from libc.
Handle all this in one go.
Add bsd.sanitizer.mk to share common code used by programs and libraries.
Switch from realall to beforeinstall target in .syms files. This is more
reliable in MKSANITIZER.
|
|
|
|
breaks because the mcount assembly code is written to call __mcount via
the PLT.
|
|
because it is needed for all MULTIPROCESSOR arch, but it is exists only in i386 and amd64.
ok christos@, on tech-kern@
|
|
Convert to C89 prototypes.
|
|
|
|
to proceed - the MD macros use processor instructions unavailable
to userspace and should/could be provided as interfaces.
|
|
thing for older gccs.
|
|
from being optimized away when compiling sh3 kernels with profiling
enabled (gcc doesn't see that __mcount, which is written in asm,
refers to it).
|
|
to __no_instrument_function__ like the kernel does.
|
|
|
|
|
|
|
|
|