| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
an interrupt handler.
|
| |
|
|
|
|
|
|
|
| |
intr_barrier(9).
With this change, the barrier should finally work properly with
cnmac(4) interrupts that have been assigned to secondary cores.
|
|
|
|
| |
header <machine/intr.h> can eventually stop including it on octeon.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The value of `ncpusfound' no longer reflects the number of cores that
will be utilized by the kernel; it can be larger if secondary cores
have not been enabled by the firmware. This can lead to incorrect
assignment of work queue interrupts, making certain cnmac(4) ports
unable to receive packets. This is a regression introduced in r1.108 of
octeon/machdep.c.
Correct the problem by using `ncpus' for the balancing. All secondary
cores have been attached and the value is final by the time work queue
interrupt handlers are set up.
Network issue reported by krw@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Suggested by kettenis@
|
| |
|
|
|
|
|
| |
the interrupt processing of each work group to one of the available
CPUs. This enables some parallelism in the early stages of packet Rx.
|
|
|
|
| |
needed by upcoming work.
|
| |
|
|
|
|
|
| |
to compact the data indexing. This additionally improves the cache
locality of the data.
|
| |
|
| |
|
|
This makes possible to add drivers for other interrupt controllers
on the platform.
The glue layer has been derived from arm64/armv7.
|