History log of /src/common/lib/libc/gmon/mcount.c |
Revision | | Date | Author | Comments |
1.18 |
| 23-Feb-2024 |
christos | fix static unused issue until lint understands attributes better.
|
1.17 |
| 30-Aug-2021 |
christos | remove lint exclusion
|
1.16 |
| 14-Aug-2021 |
ryo | Improved the performance of kernel profiling on MULTIPROCESSOR, and possible 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.
|
1.15 |
| 14-Aug-2021 |
ryo | don't include "opt_multiprocessor.h" inside an ifdef to work "make depend" properly.
|
1.14 |
| 27-Aug-2019 |
kamil | Enhance the support of LLVM sanitizers
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.
|
1.13 |
| 28-Feb-2016 |
christos | branches: 1.13.16; 1.13.18; fix infinite recursion through thr_getspecific
|
1.12 |
| 11-Jan-2016 |
christos | Put back the rump-disabling of mcount for librump. Otherwise the world breaks because the mcount assembly code is written to call __mcount via the PLT.
|
1.11 |
| 10-Jan-2016 |
ryo | __mcount_lock is moved to MI from MD. because it is needed for all MULTIPROCESSOR arch, but it is exists only in i386 and amd64.
ok christos@, on tech-kern@
|
1.10 |
| 20-Mar-2012 |
matt | Remove __P usage. Convert to C89 prototypes.
|
1.9 |
| 17-Mar-2012 |
martin | shut up lint
|
1.8 |
| 05-Jan-2009 |
pooka | branches: 1.8.8; Temporarily define MCOUNT as a dummy for _RUMPKERNEL to allow build to proceed - the MD macros use processor instructions unavailable to userspace and should/could be provided as interfaces.
|
1.7 |
| 27-Oct-2006 |
uwe | branches: 1.7.2; Simplify the __attribute__ ifdef mess now that __used does the right thing for older gccs.
|
1.6 |
| 26-Oct-2006 |
uwe | Do the used/unused dance under #ifdef KERNEL too. Prevents mcount 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).
|
1.5 |
| 08-Jan-2006 |
christos | always compile in the userland portion. XXX: We might want to change this to __no_instrument_function__ like the kernel does.
|
1.4 |
| 21-Dec-2005 |
christos | conditionally build this on GPROF again.
|
1.3 |
| 21-Dec-2005 |
christos | make this compile again.
|
1.2 |
| 21-Dec-2005 |
christos | Build also when GPROF is not defined.
|
1.1 |
| 20-Dec-2005 |
christos | Merge libkern + libc common files. As requested by core.
|
1.7.2.2 |
| 27-Oct-2006 |
uwe | Simplify the __attribute__ ifdef mess now that __used does the right thing for older gccs.
|
1.7.2.1 |
| 27-Oct-2006 |
uwe | file mcount.c was added on branch newlock2 on 2006-10-27 22:14:14 +0000
|
1.8.8.1 |
| 17-Apr-2012 |
yamt | sync with head
|
1.13.18.1 |
| 01-Sep-2019 |
martin | Pull up following revision(s) (requested by kamil in ticket #126):
external/bsd/compiler_rt/lib/clang/lib/netbsd/ubsan_minimal-m64/Makefile: revision 1.3 external/bsd/compiler_rt/lib/clang/lib/netbsd/msan_cxx-m64/Makefile: revision 1.3 external/gpl2/lvm2/lvm2tools.mk: revision 1.5 common/lib/libc/gmon/mcount.c: revision 1.14 Makefile: revision 1.331 share/mk/Makefile: revision 1.51 external/bsd/fetch/lib/Makefile: revision 1.12 external/bsd/compiler_rt/lib/clang/lib/netbsd/asan_cxx-m64/Makefile: revision 1.3 tests/lib/libc/net/Makefile: revision 1.12 external/bsd/compiler_rt/lib/clang/lib/netbsd/ubsan_standalone_cxx-m64/Makefile: revision 1.3 external/bsd/compiler_rt/lib/clang/lib/netbsd/msan-m64/Makefile: revision 1.3 distrib/sets/lists/base/mi: revision 1.1213 share/mk/bsd.lib.mk: revision 1.380 external/bsd/compiler_rt/lib/clang/lib/netbsd/ubsan_standalone-m64/Makefile: revision 1.3 external/bsd/compiler_rt/lib/clang/lib/netbsd/asan-m64/Makefile: revision 1.3 share/mk/bsd.sanitizer.mk: revision 1.1 share/mk/bsd.prog.mk: revision 1.323 external/bsd/compiler_rt/lib/clang/lib/netbsd/tsan-m64/Makefile: revision 1.3 external/bsd/compiler_rt/lib/clang/lib/netbsd/tsan_cxx-m64/Makefile: revision 1.3 lib/libc/gen/sysctlgetmibinfo.c: revision 1.14
Enhance the support of LLVM sanitizers
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.
|
1.13.16.3 |
| 21-Apr-2020 |
martin | Ooops, restore accidently removed files from merge mishap
|
1.13.16.2 |
| 21-Apr-2020 |
martin | Sync with HEAD
|
1.13.16.1 |
| 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|