fcoe_percpu_clean(9)
π fcoe_percpu_clean β from the Kernel API Manual, section 9, bestie
okay so real talk, this page is about fcoe_percpu_clean, and yes it's a kernel API manual thing (section 9, the fancy driver-internals section, iykyk) β¨
πΈ NAME πΈ
fcoe_percpu_clean β literally clears out all the pending skbs for one local port π§Ήπ
β¨ SYNOPSIS β¨
void fcoe_percpu_clean (struct fc_lport *lport );
like, that's it. that's the whole signature. no return value, no drama, just vibes π
π ARGUMENTS π
lportβ the local port whose skbs are getting cleared out. she's the main character here, everyone else is just supporting cast π«Ά
π¦ DESCRIPTION π¦
okay so first thing first, and this is not optional, bestie: this function must be called with fcoe_create_mutex held to single-thread completion. like, no cap. hold the mutex. fr fr. π
what it does: it flushes the pending skbs by flushing the work item for each CPU. the work item on each possible CPU gets flushed β and here's the why, because it's lowkey important β because we may have used the per-CPU struct of an offline CPU. so yeah. possible CPUs, all of them, not just the online ones. she's thorough like that πβ¨
π SEE ALSO π
kernel file ./drivers/scsi/fcoe/fcoe.c and honestly the whole friend group:
fcoe_interface_setup(9),fcoe_interface_create(9),fcoe_interface_remove(9),fcoe_interface_cleanup(9)fcoe_fip_recv(9),fcoe_fip_vlan_recv(9),fcoe_port_send(9),fcoe_fip_send(9)fcoe_update_src_mac(9),fcoe_get_src_mac(9)fcoe_lport_config(9),fcoe_netdev_config(9),fcoe_shost_config(9)fcoe_fdmi_info(9),fcoe_oem_match(9),fcoe_em_config(9)fcoe_if_destroy(9),fcoe_ddp_setup(9),fcoe_ddp_target(9),fcoe_ddp_done(9)fcoe_if_create(9),fcoe_if_init(9),fcoe_if_exit(9)fcoe_rcv(9),fcoe_alloc_paged_crc_eof(9),fcoe_xmit(9),fcoe_filter_frames(9),fcoe_recv_frame(9),fcoe_receive_work(9)fcoe_dev_setup(9),fcoe_dev_cleanup(9),fcoe_device_notification(9)fcoe_disable(9),fcoe_enable(9),fcoe_ctlr_enabled(9),fcoe_ctlr_mode(9)fcoe_destroy(9),fcoe_destroy_work(9),fcoe_match(9),fcoe_dcb_create(9)_fcoe_create(9),fcoe_create(9),fcoe_ctlr_alloc(9)fcoe_link_ok(9),fcoe_reset(9)fcoe_hostlist_lookup_port(9),fcoe_hostlist_lookup(9),fcoe_hostlist_add(9),fcoe_hostlist_del(9)fcoe_init(9),fcoe_exit(9)fcoe_flogi_resp(9),fcoe_logo_resp(9)fcoe_vport_create(9),fcoe_vport_destroy(9),fcoe_vport_remove(9),fcoe_vport_disable(9),fcoe_set_vport_symbolic_name(9),fcoe_set_port_id(9)
like I said. the whole friend group. every single one made the list ππ
π«Ά reminder: mutex held = good. mutex not held = chaos. don't do chaos.
and that's the tea, bestie π this one's from ./drivers/scsi/fcoe, dated October 2026 β mwah, iconic, no notes πβ¨π
π¦ 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