block/kyber-iosched.c
Source file repositories/reference/linux-study-clean/block/kyber-iosched.c
File Facts
- System
- Linux kernel
- Corpus path
block/kyber-iosched.c- Extension
.c- Size
- 28171 bytes
- Lines
- 1037
- Domain
- Representative Device Path
- Bucket
- PCIe NVMe Storage Path
- Inferred role
- Representative Device Path: exported/initcall integration point
- Status
- integration implementation candidate
Why This File Exists
Part of the selected hardware vertical slice: PCI discovery, driver binding, NVMe queues, block requests, DMA, interrupts, and completion.
- Part of the selected hardware vertical slice: PCI discovery, driver binding, NVMe queues, block requests, DMA, interrupts, and completion.
- Exports symbols or registers init work; inspect boot/module ordering and who consumes the exported contract.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Allocates kernel memory; connect allocation flags and lifetime to context constraints.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/kernel.hlinux/blkdev.hlinux/module.hlinux/sbitmap.htrace/events/block.helevator.hblk.hblk-mq.hblk-mq-debugfs.hblk-mq-sched.htrace/events/kyber.h
Detected Declarations
struct kyber_cpu_latencystruct kyber_ctx_queuestruct kyber_queue_datastruct kyber_hctx_datastruct flush_kcq_datafunction kyber_sched_domainfunction flush_latency_bucketsfunction calculate_percentilefunction time_is_after_jiffiesfunction kyber_resize_domainfunction kyber_timer_fnfunction kyber_depth_updatedfunction kyber_init_schedfunction kyber_exit_schedfunction kyber_free_sched_datafunction kyber_ctx_queue_initfunction kyber_init_hctxfunction kyber_exit_hctxfunction rq_get_domain_tokenfunction rq_set_domain_tokenfunction rq_clear_domain_tokenfunction kyber_limit_depthfunction kyber_bio_mergefunction kyber_prepare_requestfunction kyber_insert_requestsfunction list_for_each_entry_safefunction kyber_finish_requestfunction add_latency_samplefunction kyber_completed_requestfunction flush_busy_kcqfunction kyber_flush_busy_kcqsfunction kyber_domain_wakefunction kyber_get_domain_tokenfunction list_del_initfunction kyber_dispatch_cur_domainfunction kyber_has_workfunction kyber_cur_domain_showfunction kyber_batching_showfunction kyber_initfunction kyber_exitmodule init kyber_init
Annotated Snippet
module_init(kyber_init);
module_exit(kyber_exit);
MODULE_AUTHOR("Omar Sandoval");
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Kyber I/O scheduler");
Annotation
- Immediate include surface: `linux/kernel.h`, `linux/blkdev.h`, `linux/module.h`, `linux/sbitmap.h`, `trace/events/block.h`, `elevator.h`, `blk.h`, `blk-mq.h`.
- Detected declarations: `struct kyber_cpu_latency`, `struct kyber_ctx_queue`, `struct kyber_queue_data`, `struct kyber_hctx_data`, `struct flush_kcq_data`, `function kyber_sched_domain`, `function flush_latency_buckets`, `function calculate_percentile`, `function time_is_after_jiffies`, `function kyber_resize_domain`.
- Atlas domain: Representative Device Path / PCIe NVMe Storage Path.
- Implementation status: integration implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
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.