Home | History | Annotate | Download | only in include
History log of /src/sys/arch/riscv/include/cpu.h
RevisionDateAuthorComments
 1.16  04-Aug-2024  skrll spaces to tabs
 1.15  25-Dec-2023  skrll Count interrupts across harts and their local interrupt controllers
correctly.
 1.14  03-Sep-2023  skrll Fix and enable MULTIPROCESSOR
 1.13  29-Jul-2023  skrll Slight reformatting. NFCI.
 1.12  12-Jun-2023  skrll risc-v: MULTIPROCESSOR support

Add MULTIPROCESSOR support for RISC-V, but leave disabled for the moment
as it's not 100% stable.

Some other improvements to spl and cpu identification / reporting.
 1.11  25-May-2023  skrll Fix CLKF_INTR so that not all time is shown as being spent in interrupts.
 1.10  07-May-2023  skrll RISC-V support that works on QEMU with a single hart.

Thanks for Simon Burge for plic(4).
 1.9  17-Nov-2022  simonb Use better types and struct member names in the clockframe.
Avoid a magic number in CLKF_USERMODE().
 1.8  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.7  01-Dec-2019  ad Fix false sharing problems with cpu_info. Identified with tprof(8).
This was a very nice win in my tests on a 48 CPU box.

- Reorganise cpu_data slightly according to usage.
- Put cpu_onproc into struct cpu_info alongside ci_curlwp (now is ci_onproc).
- On x86, put some items in their own cache lines according to usage, like
the IPI bitmask and ci_want_resched.
 1.6  21-Nov-2019  ad mi_userret(): take care of calling preempt(), set spc_curpriority directly,
and remove MD code that does the same.
 1.5  01-Jun-2019  maxv Misc changes in RISC-V. Start changing the memory layout, too.
 1.4  01-Apr-2015  matt branches: 1.4.16; 1.4.20;
_KMEMUSER only needs struct cpu_info
 1.3  31-Mar-2015  matt Define curcpu() as lwp_getcpu(curlwp) since curlwp is always in the "tp"
(thread pointer) register.
 1.2  28-Mar-2015  matt Beginnings of RISCV kernel support. Note that the pmap support is not yet
committed and probably won't be for awhile. This is mostly preliminary
waiting for the supervisor specification to come out. Lots of missing pieces
but it mostly builds.
 1.1  19-Sep-2014  matt branches: 1.1.2;
New files for Userland support of UCB RISC-V (both 32-bit and 64-bit)
 1.1.2.1  06-Apr-2015  skrll Sync with HEAD
 1.4.20.2  08-Apr-2020  martin Merge changes from current as of 20200406
 1.4.20.1  10-Jun-2019  christos Sync with HEAD
 1.4.16.2  03-Dec-2017  jdolecek update from HEAD
 1.4.16.1  01-Apr-2015  jdolecek file cpu.h was added on branch tls-maxphys on 2017-12-03 11:36:39 +0000

RSS XML Feed