arch/mips/mm/c-octeon.c
Source file repositories/reference/linux-study-clean/arch/mips/mm/c-octeon.c
File Facts
- System
- Linux kernel
- Corpus path
arch/mips/mm/c-octeon.c- Extension
.c- Size
- 8942 bytes
- Lines
- 356
- Domain
- Architecture Layer
- Bucket
- arch/mips
- Inferred role
- Architecture Layer: exported/initcall integration point
- Status
- integration implementation candidate
Why This File Exists
CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.
- CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.
- Exports symbols or registers init work; inspect boot/module ordering and who consumes the exported contract.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/export.hlinux/kernel.hlinux/sched.hlinux/smp.hlinux/mm.hlinux/bitops.hlinux/cpu.hlinux/io.hasm/bcache.hasm/bootinfo.hasm/cacheops.hasm/cpu-features.hasm/cpu-type.hasm/page.hasm/r4kcache.hasm/traps.hasm/mmu_context.hasm/octeon/octeon.h
Detected Declarations
function octeon_flush_data_cache_pagefunction local_octeon_flush_icache_rangefunction octeon_flush_icache_all_coresfunction octeon_flush_icache_allfunction octeon_flush_cache_mmfunction octeon_flush_cache_rangefunction octeon_flush_cache_pagefunction octeon_flush_kernel_vmap_rangefunction probe_octeonfunction octeon_cache_error_setupfunction octeon_cache_initfunction register_co_cache_error_notifierfunction unregister_co_cache_error_notifierfunction co_cache_error_call_notifiersfunction cache_parity_error_octeon_recoverablefunction cache_parity_error_octeon_non_recoverableexport cache_err_dcacheexport register_co_cache_error_notifierexport unregister_co_cache_error_notifier
Annotated Snippet
if (val) {
dcache_err = cache_err_dcache[coreid];
cache_err_dcache[coreid] = 0;
} else {
dcache_err = read_octeon_c0_dcacheerr();
}
pr_err("Core%lu: Cache error exception:\n", coreid);
pr_err("cp0_errorepc == %lx\n", read_c0_errorepc());
if (icache_err & 1) {
pr_err("CacheErr (Icache) == %llx\n",
(unsigned long long)icache_err);
write_octeon_c0_icacheerr(0);
}
if (dcache_err & 1) {
pr_err("CacheErr (Dcache) == %llx\n",
(unsigned long long)dcache_err);
}
}
}
/*
* Called when the exception is recoverable
*/
asmlinkage void cache_parity_error_octeon_recoverable(void)
{
co_cache_error_call_notifiers(0);
}
/*
* Called when the exception is not recoverable
*/
asmlinkage void cache_parity_error_octeon_non_recoverable(void)
{
co_cache_error_call_notifiers(1);
panic("Can't handle cache error: nested exception");
}
Annotation
- Immediate include surface: `linux/export.h`, `linux/kernel.h`, `linux/sched.h`, `linux/smp.h`, `linux/mm.h`, `linux/bitops.h`, `linux/cpu.h`, `linux/io.h`.
- Detected declarations: `function octeon_flush_data_cache_page`, `function local_octeon_flush_icache_range`, `function octeon_flush_icache_all_cores`, `function octeon_flush_icache_all`, `function octeon_flush_cache_mm`, `function octeon_flush_cache_range`, `function octeon_flush_cache_page`, `function octeon_flush_kernel_vmap_range`, `function probe_octeon`, `function octeon_cache_error_setup`.
- Atlas domain: Architecture Layer / arch/mips.
- Implementation status: integration implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.