_ctl_poll(9)
πΈ _ctl_poll(9) β kernel API manual, but make it a group chat πΈ
okay so bestie, we're in the 9 section of the kernel API manual today, which is the "kernel internals, don't @ me unless you're writing drivers" section. this page is _ctl_poll and it lives in the mpt3sas family, iykyk. π
β¨ NAME β¨
_ctl_poll β and honestly? that's it. that's the whole description. the dash is there and then nothing, no cap. not me reading a manpage with an empty NAME blurb π the description field is literally blank, so we're all just out here vibing on the function name alone. lowkey iconic of it.
π¦ SYNOPSIS π¦
__poll_t _ctl_poll (struct file *filep , poll_table *wait );
that's the whole signature, transcribed exactly, spaces and all β yes the space before the comma stays, I don't make the rules, I just respect the source π«Ά it takes two pointers and returns a __poll_t, which is the poll-flavoured return type. slay.
π ARGUMENTS π
okay so here's the thing, and I need you to be seated for this one:
filepβ ? ...yeah. that's what the documentation says. a whole question mark. the manpage does not know, or is not telling, whatfilepis for. it's giving mysterious main character energy π΅οΈββοΈ bestie I cannot make up a meaning for it, that would be lying to you, and we don't lie about kernel signatures.waitβ ? same situation, same single question mark. the poll table pointer has entered the chat and refused to introduce itself π
real talk: both argument descriptions are literally just ? in the original. I'm flagging that rather than guessing, because guessing at kernel API behaviour is how you end up crying at 3am. π
π SEE ALSO π
now THIS is the part where the page pops off. the cross-reference list is enormous and every single entry matters, so buckle up, we're going through all of them, no skips, no "etc.", periodt. π
first up, the source file itself and its enum bestie:
Kernel file ./drivers/scsi/mpt3sas/mpt3sas_ctl.c enum block_state(9)
then the _ctl_ core crew:
_ctl_display_some_debug(9)mpt3sas_ctl_done(9)_ctl_check_event_type(9)mpt3sas_ctl_add_to_event_log(9)mpt3sas_ctl_event_callback(9)_ctl_verify_adapter(9)mpt3sas_ctl_pre_reset_handler(9)mpt3sas_ctl_clear_outstanding_ioctls(9)mpt3sas_ctl_reset_done_handler(9)_ctl_fasync(9)_ctl_set_task_mid(9)_ctl_send_mctp_passthru_req(9)_ctl_do_mpt_command(9)_ctl_getiocinfo(9)_ctl_eventquery(9)_ctl_eventenable(9)_ctl_eventreport(9)_ctl_do_reset(9)_ctl_btdh_search_sas_device(9)_ctl_btdh_search_pcie_device(9)_ctl_btdh_search_raid_device(9)_ctl_btdh_mapping(9)
then the diagnostics era of the page, which is a whole saga honestly:
_ctl_diag_capability(9)_ctl_diag_get_bufftype(9)_ctl_diag_register_2(9)mpt3sas_enable_diag_buffer(9)_ctl_diag_register(9)_ctl_diag_unregister(9)_ctl_diag_query(9)mpt3sas_send_diag_release(9)_ctl_diag_release(9)_ctl_diag_read_buffer(9)_ctl_addnl_diag_query(9)_ctl_enable_diag_sbr_reload(9)
the compat + ioctl girlies π
_ctl_compat_mpt_command(9)_ctl_ioctl_main(9)_ctl_get_mpt_mctp_passthru_adapter(9)mpt3sas_get_device_count(9)_ctl_ioctl(9)_ctl_mpt2_ioctl(9)_ctl_ioctl_compat(9)_ctl_mpt2_ioctl_compat(9)
then the _show wall β version info first, and yes there are six of them and yes I'm listing all six π
version_fw_show(9)version_bios_show(9)version_mpi_show(9)version_product_show(9)version_nvdata_persistent_show(9)version_nvdata_default_show(9)
board + performance-ish sysfs friends:
board_name_show(9)board_assembly_show(9)board_tracer_show(9)io_delay_show(9)device_delay_show(9)fw_queue_depth_show(9)host_sas_address_show(9)logging_level_show(9)fwfault_debug_show(9)ioc_reset_count_show(9)reply_queue_count_show(9)BRM_status_show(9)
the host trace buffer trio π§
diag trigger everything β shows and stores, keeping the order exactly as given:
diag_trigger_master_show(9)diag_trigger_master_store(9)diag_trigger_event_show(9)diag_trigger_event_store(9)diag_trigger_scsi_show(9)diag_trigger_scsi_store(9)diag_trigger_mpi_show(9)diag_trigger_mpi_store(9)
and the final stretch:
drv_support_bitmap_show(9)enable_sdev_max_qd_show(9)enable_sdev_max_qd_store(9)sas_address_show(9)sas_device_handle_show(9)sas_ncq_prio_supported_show(9)sas_ncq_prio_enable_show(9)mpt3sas_ctl_init(9)mpt3sas_ctl_release(9)mpt3sas_ctl_exit(9)
like, the way this page has 82 cross-references and a blank NAME description? highkey ate. the linked list is the content, and that's on periodt. π₯
heads up bestie: this page ships you a synopsis and a giant pile ofSEE ALSOand basically zero prose. if you actually need to know what_ctl_polldoes at runtime, go read./drivers/scsi/mpt3sas/mpt3sas_ctl.cβ that's not me being shady, that's literally the top entry in the list. π
and that's the page! πβ¨ππ¦πΈπ π«Ά
cute little sign-off: this gem comes to you from the source dir ./drivers/scsi/mpt3sas, dated October 2026, and it's _ctl_poll(9) from the Kernel API Manual β go drink some water and go read a real function body, mwah ππ§ββοΈ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms