lpfc_sli4_n...andom_select(9)
π lpfc_sli4_new_fcf_random_select(9) β Kernel API Manual π
okay so bestie, this one is from the Kernel API Manual (section 9, the fun one) and it's lowkey iconic: it's the lil function that picks your FCF record for you, like a randomizer but make it kernel π
β¨ NAME β¨
lpfc_sli4_new_fcf_random_select β randomly select an eligible new fcf record π²
πΈ SYNOPSIS πΈ
bool lpfc_sli4_new_fcf_random_select (struct lpfc_hba *phba , uint32_t
fcf_cnt );
like, it returns a bool, takes a struct lpfc_hba * and a uint32_t, and yes the spacing is exactly that, don't come for me π
π¦ ARGUMENTS π¦
phbaβ pointer to lpfc hba data structure. (the main character of the whole hba situation π)fcf_cntβ number of eligible fcf record seen so far. (no cap, that's how many we've clocked π)
π§ DESCRIPTION π§
so here's the vibe: this function makes a running random selection decision on which FCF record to use, stepping through a sequence of fcf_cnt eligible FCF records, each one with equal probability β¨ like a fair draw, no favorites, we love to see it.
to do the integer manunipulation of random numbers with size unit32_t, a 16-bit random number returned from get_random_u16 is taken as the random random number generated π (yes, that's the actual wording, and honestly? slay, it's giving "trust the process")
returns true when the outcome is that the newly read FCF record should be chosen π«Ά otherwise, it returns false when the outcome is that we keep the previously chosen FCF record π
fr fr, it's just a coin-flip-but-make-it-fair between "new one" and "the one we already had" β no drama, just probability π
π₯ SEE ALSO π₯
Kernel file ./drivers/scsi/lpfc/lpfc_hbadisc.c β that's the home base bestie, go read it π
and now the whole friend group, in order, exactly as listed (yes all of them, i'm not skipping a single one, i would never π):
lpfc_check_inactive_vmid_one(9)lpfc_check_inactive_vmid(9)lpfc_check_nlp_post_devloss(9)lpfc_dev_loss_tmo_handler(9)lpfc_sli4_post_dev_loss_tmo_handler(9)lpfc_alloc_fast_evt(9)lpfc_free_fast_evt(9)lpfc_send_fastpath_evt(9)lpfc_sli4_clear_fcf_rr_bmask(9)lpfc_fab_name_match(9)lpfc_sw_name_match(9)lpfc_mac_addr_match(9)__lpfc_update_fcf_record_pri(9)lpfc_copy_fcf_record(9)__lpfc_update_fcf_record(9)lpfc_register_fcf(9)lpfc_match_fcf_conn_list(9)lpfc_check_pending_fcoe_event(9)lpfc_sli4_fcf_rec_mbox_parse(9)lpfc_sli4_log_fcf_record_info(9)lpfc_sli4_fcf_record_match(9)lpfc_sli4_fcf_rr_next_proc(9)lpfc_sli4_fcf_pri_list_del(9)lpfc_sli4_set_fcf_flogi_fail(9)lpfc_sli4_fcf_pri_list_add(9)lpfc_mbx_cmpl_fcf_scan_read_fcf_rec(9)lpfc_mbx_cmpl_fcf_rr_read_fcf_rec(9)lpfc_mbx_cmpl_read_fcf_rec(9)lpfc_init_vfi_cmpl(9)lpfc_issue_init_vfi(9)lpfc_init_vpi_cmpl(9)lpfc_issue_init_vpi(9)lpfc_start_fdiscs(9)lpfc_create_static_vport(9)lpfc_issue_gidpt(9)lpfc_initialize_node(9)lpfc_nlp_logo_unreg(9)lpfc_unreg_hba_rpis(9)lpfc_find_vport_by_vpid(9)lpfc_fcf_inuse(9)lpfc_unregister_vfi_cmpl(9)lpfc_unregister_fcfi_cmpl(9)lpfc_unregister_fcf_prep(9)lpfc_sli4_unregister_fcf(9)lpfc_unregister_fcf_rescan(9)lpfc_unregister_fcf(9)lpfc_unregister_unused_fcf(9)lpfc_read_fcf_conn_tbl(9)lpfc_read_fcoe_param(9)lpfc_get_rec_conf23(9)lpfc_parse_fcoe_conf(9)
and that's the whole page, bestie π«Ά it lives over in ./drivers/scsi/lpfc, dated October 2026, and this lil header/footer combo β lpfc_sli4_n...andom_select(9) β is giving main character energy from top to bottom πβ¨ no notes, periodt π
π¦ 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