#
ae38162b |
| 11-Dec-2022 |
visa <visa@openbsd.org> |
Use evcount_percpu() with platform interrupt counters on octeon.
|
#
85caa4b9 |
| 22-Aug-2022 |
cheloha <cheloha@openbsd.org> |
mips64, octeon, loonson: trigger deferred clock interrupts from splx(9)
As with powerpc, powerpc64, and riscv64, on mips64 platforms we need to isolate the clock interrupt schedule from the MD clock
mips64, octeon, loonson: trigger deferred clock interrupts from splx(9)
As with powerpc, powerpc64, and riscv64, on mips64 platforms we need to isolate the clock interrupt schedule from the MD clock interrupt code. To do this, we need to stop deferring clock interrupt work until the next tick and instead defer the work until we logically unmask the clock interrupt from splx(9).
Add a boolean (ci_clock_deferred) to the cpu_info struct to note whether we need to trigger the clock interrupt by hand, and then do so from splx(9) by calling md_triggerclock().
Currently md_triggerclock is only ever set to cp0_trigger_int5(). The routine takes great care to ensure that INT5 has fired or will fire before returning.
There are some loongson machines that use glxclk instead of CP0. They can be switched to use CP0 later.
With input and advice from visa@ and miod@.
Compiled and extensively tested by visa@ and miod@ on various octeon and loongson machines. No issues seen on octeon machines. miod@ saw some odd things on loongsoon, but suggests that all issues are probably unrelated to this patch.
Link: https://marc.info/?l=openbsd-tech&m=165929192702632&w=2
ok visa@, miod@
show more ...
|
#
5e9543b6 |
| 01-Sep-2019 |
visa <visa@openbsd.org> |
Make it clearer where message "spurious interrupt" comes from.
|
#
864b814f |
| 04-Aug-2019 |
visa <visa@openbsd.org> |
Ensure that a posted write completes when re-enabling interrupts or sending an IPI.
|
#
7abddf2d |
| 17-Mar-2019 |
visa <visa@openbsd.org> |
Remember to detach the event counter when disestablishing an interrupt handler.
|
#
0dd6b0da |
| 17-Mar-2019 |
visa <visa@openbsd.org> |
Let each interrupt controller driver choose how to implement intr_barrier(9).
With this change, the barrier should finally work properly with cnmac(4) interrupts that have been assigned to secondary
Let each interrupt controller driver choose how to implement intr_barrier(9).
With this change, the barrier should finally work properly with cnmac(4) interrupts that have been assigned to secondary cores.
show more ...
|
#
2821cfa0 |
| 16-Mar-2019 |
visa <visa@openbsd.org> |
Fix incorrect flag.
|
#
095618eb |
| 16-Mar-2019 |
visa <visa@openbsd.org> |
Include header <sys/evcount.h> where event counters are used, so that header <machine/intr.h> can eventually stop including it on octeon.
|
#
cb5217fb |
| 24-Feb-2018 |
visa <visa@openbsd.org> |
Declare ci_ipl volatile to prevent the compiler from optimizing or reordering accesses to the variable. Assume that the assembler preserves the correct sequence of instructions, which allows the remo
Declare ci_ipl volatile to prevent the compiler from optimizing or reordering accesses to the variable. Assume that the assembler preserves the correct sequence of instructions, which allows the removal of the explicit noreorder/reorder toggles from the C code.
With ci_ipl being volatile, drop mips_sync() calls that follow the accesses of the variable. The sync is redundant as a compiler barrier. In addition, the MIPS64 CPU designs should not need the sync for pipeline or write buffer control. According to miod@, the use of the instruction is a carryover from code targeting early MIPS designs that lack tight integration with the cache and write buffer.
Discussed with and testing help from miod@. Tested on CN5020, CN6120, CN7130, CN7360, Loongson 2F and 3A1000, R4400, R8000, R10000 and R16000.
show more ...
|
#
f8189779 |
| 23-Jan-2018 |
visa <visa@openbsd.org> |
Always lock the kernel lock with non-MP-safe interrupt handlers.
Suggested by kettenis@
|
#
76163558 |
| 27-Dec-2017 |
visa <visa@openbsd.org> |
Make octeon_intr_establish() assume edge triggering with CIU3. This makes the API usable with edge triggered interrupt sources.
|
#
629d9e02 |
| 27-Dec-2017 |
visa <visa@openbsd.org> |
Ensure interrupt delivery is disabled when setting interrupt delivery entry.
|
#
0e285dc5 |
| 09-Aug-2017 |
visa <visa@openbsd.org> |
Clear any pending (edge-triggered) interrupts at setup to avoid spurious interrupts with newly established handlers.
|
#
2e3f4418 |
| 30-Jul-2017 |
visa <visa@openbsd.org> |
Add a driver for CIU3. Not quite finished yet, but good enough for now.
|