napi_schedule(9)
π napi_schedule(9)
okay so bestie, welcome to another episode of the Kernel API Manual β yes this is the napi_schedule page, the one you keep tabbing to at 2am. let's get into it π
β¨ NAME β¨
napi_schedule β schedule NAPI poll. that's it. that's the whole vibe. π¦
πΈ SYNOPSIS πΈ
bool napi_schedule (struct napi_struct *n );
lowkey the shortest synopsis ever and honestly? slay. π
π ARGUMENTS π
nβ the NAPI context. your fave struct. the main character of this whole function. π
π« DESCRIPTION π«
so what does it actually do. it schedules the NAPI poll routine to be called β but only if it's not already running. that's the whole deal. no cap.
it's giving "hey bestie, are you up? because if not, we need to run the poll routine." and if you're already up? it's not gonna double-book you. nope. π
β RETURN β
it hands back true if we actually schedule a NAPI, and false if not. periodt.
and if you're sitting there like "wait, why not π₯Ί" β go read napi_schedule_prep, it's got the additional reasons on why a NAPI might not get scheduled. iykyk.
π¦ SEE ALSO π¦
all the siblings and cousins, no gatekeeping:
Kernel file ./include/linux/netdevice.h struct gro_node(9), and also:
napi_is_scheduled(9)napi_schedule_irqoff(9)napi_complete_done(9)napi_synchronize(9)napi_if_scheduled_mark_missed(9)enum netdev_priv_flags(9)struct net_device(9)netdev_priv(9)netdev_from_priv(9)netif_napi_add(9)netif_napi_add_config(9)netif_napi_add_tx(9)__netif_napi_del(9)netif_napi_del(9)netif_start_queue(9)netif_wake_queue(9)netif_stop_queue(9)netif_queue_stopped(9)netdev_queue_set_dql_min_limit(9)netdev_txq_bql_enqueue_prefetchw(9)netdev_txq_bql_complete_prefetchw(9)netdev_tx_sent_queue(9)netdev_sent_queue(9)netdev_tx_completed_queue(9)netdev_completed_queue(9)netdev_tx_reset_subqueue(9)netdev_reset_queue(9)netdev_cap_txqueue(9)netif_running(9)netif_start_subqueue(9)netif_stop_subqueue(9)__netif_subqueue_stopped(9)netif_subqueue_stopped(9)netif_wake_subqueue(9)netif_attr_test_mask(9)netif_attr_test_online(9)netif_attrmask_next(9)netif_attrmask_next_and(9)netif_is_multiqueue(9)dev_hold(9)dev_put(9)linkwatch_sync_dev(9)netif_carrier_ok(9)netif_dormant_on(9)netif_dormant_off(9)netif_dormant(9)netif_testing_on(9)netif_testing_off(9)netif_testing(9)netif_oper_up(9)netif_device_present(9)netif_tx_lock(9)__dev_uc_sync(9)__dev_uc_unsync(9)__dev_mc_sync(9)__dev_mc_unsync(9)
like, the whole friend group fr fr π«Ά
reminder bestie: this page lives in ./include/linux and it's dated October 2026. don't @ me when the kernel moves on π
and that's the page!! mwah π this has been napi_schedule(9) from the Kernel API Manual, shipped from ./include/linux, version-dated October 2026 β go forth and schedule responsibly, queen πβ¨π
π¦ 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