| /linux/include/trace/events/ |
| H A D | napi.h | 3 #define TRACE_SYSTEM napi 16 TP_PROTO(struct napi_struct *napi, int work, int budget), 18 TP_ARGS(napi, work, budget), 21 __field( struct napi_struct *, napi) 22 __string( dev_name, napi->dev ? napi->dev->name : NO_DEV) 28 __entry->napi = napi; 34 TP_printk("napi poll on napi struc [all...] |
| /linux/net/core/ |
| H A D | gro_cells.c | 10 struct napi_struct napi; member 44 napi_schedule(&cell->napi); in gro_cells_receive() 57 static int gro_cell_poll(struct napi_struct *napi, int budget) in gro_cell_poll() argument 59 struct gro_cell *cell = container_of(napi, struct gro_cell, napi); in gro_cell_poll() 69 napi_gro_receive(napi, skb); in gro_cell_poll() 74 napi_complete_done(napi, work_done); in gro_cell_poll() 92 set_bit(NAPI_STATE_NO_BUSY_POLL, &cell->napi.state); in gro_cells_init() 94 netif_napi_add(dev, &cell->napi, gro_cell_poll); in gro_cells_init() 95 napi_enable(&cell->napi); in gro_cells_init() 125 napi_disable(&cell->napi); in gro_cells_destroy() [all …]
|
| H A D | dev.c | 778 struct napi_struct *napi; in napi_by_id() local 780 hlist_for_each_entry_rcu(napi, &napi_hash[hash], napi_hash_node) in napi_by_id() 781 if (napi->napi_id == napi_id) in napi_by_id() 782 return napi; in napi_by_id() 791 struct napi_struct *napi; in netdev_napi_by_id() local 793 napi = napi_by_id(napi_id); in netdev_napi_by_id() 794 if (!napi) in netdev_napi_by_id() 797 if (WARN_ON_ONCE(!napi->dev)) in netdev_napi_by_id() 799 if (!net_eq(net, dev_net(napi->dev))) in netdev_napi_by_id() 802 return napi; in netdev_napi_by_id() [all …]
|
| H A D | gro.c | 640 static void napi_reuse_skb(struct napi_struct *napi, struct sk_buff *skb) in napi_reuse_skb() argument 652 skb->dev = napi->dev; in napi_reuse_skb() 673 napi->skb = skb; in napi_reuse_skb() 676 struct sk_buff *napi_get_frags(struct napi_struct *napi) in napi_get_frags() argument 678 struct sk_buff *skb = napi->skb; in napi_get_frags() 681 skb = napi_alloc_skb(napi, GRO_MAX_HEAD); in napi_get_frags() 683 napi->skb = skb; in napi_get_frags() 684 skb_mark_napi_id(skb, napi); in napi_get_frags() 691 static gro_result_t napi_frags_finish(struct napi_struct *napi, in napi_frags_finish() argument 701 gro_normal_one(&napi->gro, skb, 1); in napi_frags_finish() [all …]
|
| H A D | netpoll.c | 142 static void poll_one_napi(struct napi_struct *napi) in poll_one_napi() argument 150 if (test_and_set_bit(NAPI_STATE_NPSVC, &napi->state)) in poll_one_napi() 156 work = napi->poll(napi, 0); in poll_one_napi() 157 WARN_ONCE(work, "%pS exceeded budget in poll\n", napi->poll); in poll_one_napi() 158 trace_napi_poll(napi, work, 0); in poll_one_napi() 160 clear_bit(NAPI_STATE_NPSVC, &napi->state); in poll_one_napi() 165 struct napi_struct *napi; in poll_napi() local 168 list_for_each_entry_rcu(napi, &dev->napi_list, dev_list) { in poll_napi() 169 if (cmpxchg(&napi->poll_owner, -1, cpu) == -1) { in poll_napi() 170 poll_one_napi(napi); in poll_napi() [all …]
|
| /linux/drivers/net/ethernet/intel/igc/ |
| H A D | igc_xdp.c | 32 napi_disable(&adapter->rx_ring[i]->q_vector->napi); in igc_xdp_set_prog() 47 napi_enable(&adapter->rx_ring[i]->q_vector->napi); in igc_xdp_set_prog() 62 struct napi_struct *napi; in igc_xdp_enable_pool() local 92 napi = &rx_ring->q_vector->napi; in igc_xdp_enable_pool() 97 napi_disable(napi); in igc_xdp_enable_pool() 104 napi_enable(napi); in igc_xdp_enable_pool() 122 struct napi_struct *napi; in igc_xdp_disable_pool() local 138 napi = &rx_ring->q_vector->napi; in igc_xdp_disable_pool() 143 napi_disable(napi); in igc_xdp_disable_pool() 151 napi_enable(napi); in igc_xdp_disable_pool()
|
| /linux/io_uring/ |
| H A D | napi.c | 267 struct io_uring_napi *napi) in io_napi_register_napi() argument 269 switch (napi->op_param) { in io_napi_register_napi() 278 WRITE_ONCE(ctx->napi_track_mode, napi->op_param); in io_napi_register_napi() 279 WRITE_ONCE(ctx->napi_busy_poll_dt, napi->busy_poll_to * NSEC_PER_USEC); in io_napi_register_napi() 280 WRITE_ONCE(ctx->napi_prefer_busy_poll, !!napi->prefer_busy_poll); in io_napi_register_napi() 298 struct io_uring_napi napi; in io_register_napi() local 302 if (copy_from_user(&napi, arg, sizeof(napi))) in io_register_napi() 304 if (napi.pad[0] || napi.pad[1] || napi.resv) in io_register_napi() 310 switch (napi.opcode) { in io_register_napi() 312 return io_napi_register_napi(ctx, &napi); in io_register_napi() [all …]
|
| /linux/drivers/infiniband/hw/hfi1/ |
| H A D | ipoib_rx.c | 22 static struct sk_buff *prepare_frag_skb(struct napi_struct *napi, int size) in prepare_frag_skb() argument 33 return napi_alloc_skb(napi, size); in prepare_frag_skb() 49 struct napi_struct *napi = &rxq->napi; in hfi1_ipoib_prepare_skb() local 58 skb = napi_alloc_skb(napi, skb_size); in hfi1_ipoib_prepare_skb() 60 skb = prepare_frag_skb(napi, skb_size); in hfi1_ipoib_prepare_skb()
|
| /linux/drivers/net/ethernet/aquantia/atlantic/ |
| H A D | aq_vec.c | 21 struct napi_struct napi; member 28 static int aq_vec_poll(struct napi_struct *napi, int budget) in aq_vec_poll() argument 30 struct aq_vec_s *self = container_of(napi, struct aq_vec_s, napi); in aq_vec_poll() 68 napi, in aq_vec_poll() 93 napi_complete_done(napi, work_done); in aq_vec_poll() 122 netif_napi_add(aq_nic_get_ndev(aq_nic), &self->napi, aq_vec_poll); in aq_vec_alloc() 151 self->napi.napi_id) < 0) { in aq_vec_ring_alloc() 245 napi_enable(&self->napi); in aq_vec_start() 265 napi_disable(&self->napi); in aq_vec_stop() 290 netif_napi_del(&self->napi); in aq_vec_free() [all …]
|
| /linux/drivers/net/ethernet/google/gve/ |
| H A D | gve_utils.c | 67 struct sk_buff *gve_rx_copy_data(struct net_device *dev, struct napi_struct *napi, in gve_rx_copy_data() argument 72 skb = napi_alloc_skb(napi, len); in gve_rx_copy_data() 83 struct sk_buff *gve_rx_copy(struct net_device *dev, struct napi_struct *napi, in gve_rx_copy() argument 89 return gve_rx_copy_data(dev, napi, va, len); in gve_rx_copy() 113 netif_napi_add_locked(priv->dev, &block->napi, gve_poll); in gve_add_napi() 114 netif_napi_set_irq_locked(&block->napi, block->irq); in gve_add_napi() 121 netif_napi_del_locked(&block->napi); in gve_remove_napi()
|
| H A D | gve_rx.c | 450 static struct sk_buff *gve_rx_add_frags(struct napi_struct *napi, in gve_rx_add_frags() argument 460 skb = napi_get_frags(napi); in gve_rx_add_frags() 469 skb = napi_alloc_skb(napi, 0); in gve_rx_add_frags() 520 struct napi_struct *napi, in gve_rx_raw_addressing() argument 524 struct sk_buff *skb = gve_rx_add_frags(napi, page_info, packet_buffer_size, len, ctx); in gve_rx_raw_addressing() 540 u16 len, struct napi_struct *napi) in gve_rx_copy_to_pool() argument 581 skb = gve_rx_add_frags(napi, &alloc_page_info, in gve_rx_copy_to_pool() 597 skb = gve_rx_add_frags(napi, copy_page_info, in gve_rx_copy_to_pool() 626 u16 len, struct napi_struct *napi, in gve_rx_qpl() argument 638 skb = gve_rx_add_frags(napi, page_info, page_info->buf_size, in gve_rx_qpl() [all …]
|
| H A D | gve_rx_dqo.c | 498 static void gve_rx_free_skb(struct napi_struct *napi, struct gve_rx_ring *rx) in gve_rx_free_skb() argument 503 if (rx->ctx.skb_head == napi->skb) in gve_rx_free_skb() 504 napi->skb = NULL; in gve_rx_free_skb() 569 static int gve_rx_append_frags(struct napi_struct *napi, in gve_rx_append_frags() argument 579 skb = napi_alloc_skb(napi, 0); in gve_rx_append_frags() 708 static int gve_rx_xsk_dqo(struct napi_struct *napi, struct gve_rx_ring *rx, in gve_rx_xsk_dqo() argument 737 rx->ctx.skb_head = gve_rx_copy_data(priv->dev, napi, in gve_rx_xsk_dqo() 779 static int gve_rx_dqo(struct napi_struct *napi, struct gve_rx_ring *rx, in gve_rx_dqo() argument 815 return gve_rx_xsk_dqo(napi, rx, compl_desc, buf_state, xprog); in gve_rx_dqo() 832 rx->ctx.skb_head = gve_rx_copy_data(priv->dev, napi, in gve_rx_dqo() [all …]
|
| /linux/drivers/net/ethernet/synopsys/ |
| H A D | dwc-xlgmac-net.c | 290 if (napi_schedule_prep(&pdata->napi)) { in xlgmac_isr() 296 __napi_schedule_irqoff(&pdata->napi); in xlgmac_isr() 350 if (napi_schedule_prep(&channel->napi)) { in xlgmac_dma_isr() 355 __napi_schedule_irqoff(&channel->napi); in xlgmac_dma_isr() 366 struct napi_struct *napi; in xlgmac_tx_timer() local 368 napi = (pdata->per_channel_irq) ? &channel->napi : &pdata->napi; in xlgmac_tx_timer() 370 if (napi_schedule_prep(napi)) { in xlgmac_tx_timer() 379 __napi_schedule(napi); in xlgmac_tx_timer() 422 netif_napi_add(pdata->netdev, &channel->napi, in xlgmac_napi_enable() 425 napi_enable(&channel->napi); in xlgmac_napi_enable() [all …]
|
| /linux/tools/testing/selftests/drivers/net/ |
| H A D | napi_threaded.py | 5 Test napi threaded states. 15 napi = nl.napi_get({'id': napi_id}) 16 ksft_eq(napi['threaded'], 'enabled') 17 ksft_ne(napi.get('pid'), None) 21 napi = nl.napi_get({'id': napi_id}) 22 ksft_eq(napi['threaded'], 'disabled') 23 ksft_eq(napi.get('pid'), None) 56 for napi in napis: 57 ksft_eq(napi['threaded'], 'disabled') 58 ksft_eq(napi [all...] |
| /linux/drivers/net/netdevsim/ |
| H A D | netdev.c | 48 idx = rq->napi.index; in nsim_start_peer_tx_queue() 412 struct net_device *dev = rq->napi.dev; in nsim_rcv() 443 napi_gro_receive(&rq->napi, skb); in nsim_rcv() 450 static int nsim_poll(struct napi_struct *napi, int budget) in nsim_poll() argument 452 struct nsim_rq *rq = container_of(napi, struct nsim_rq, napi); in nsim_poll() 457 napi_complete_done(napi, done); in nsim_poll() 462 static int nsim_create_page_pool(struct page_pool **p, struct napi_struct *napi) in nsim_create_page_pool() argument 468 .dev = &napi->dev->dev, in nsim_create_page_pool() 469 .napi = napi, in nsim_create_page_pool() 471 .netdev = napi->dev, in nsim_create_page_pool() [all …]
|
| /linux/drivers/net/wan/ |
| H A D | lapbether.c | 59 struct napi_struct napi; member 89 static int lapbeth_napi_poll(struct napi_struct *napi, int budget) in lapbeth_napi_poll() argument 91 struct lapbethdev *lapbeth = container_of(napi, struct lapbethdev, in lapbeth_napi_poll() 92 napi); in lapbeth_napi_poll() 104 napi_complete(napi); in lapbeth_napi_poll() 179 napi_schedule(&lapbeth->napi); in lapbeth_data_indication() 278 napi_schedule(&lapbeth->napi); in lapbeth_connected() 296 napi_schedule(&lapbeth->napi); in lapbeth_disconnected() 325 napi_enable(&lapbeth->napi); in lapbeth_open() 329 napi_disable(&lapbeth->napi); in lapbeth_open() [all …]
|
| /linux/drivers/net/can/dev/ |
| H A D | rx-offload.c | 42 static int can_rx_offload_napi_poll(struct napi_struct *napi, int quota) in can_rx_offload_napi_poll() argument 44 struct can_rx_offload *offload = container_of(napi, in can_rx_offload_napi_poll() 46 napi); in can_rx_offload_napi_poll() 66 napi_complete_done(napi, work_done); in can_rx_offload_napi_poll() 70 napi_schedule(&offload->napi); in can_rx_offload_napi_poll() 325 napi_schedule(&offload->napi); in can_rx_offload_irq_finish() 347 napi_schedule(&offload->napi); in can_rx_offload_threaded_irq_finish() 364 netif_napi_add_weight(dev, &offload->napi, can_rx_offload_napi_poll, in can_rx_offload_init_queue() 417 napi_enable(&offload->napi); in can_rx_offload_enable() 423 netif_napi_del(&offload->napi); in can_rx_offload_del()
|
| /linux/drivers/net/ethernet/qlogic/qlcnic/ |
| H A D | qlcnic_io.c | 959 static int qlcnic_poll(struct napi_struct *napi, int budget) in qlcnic_poll() argument 966 sds_ring = container_of(napi, struct qlcnic_host_sds_ring, napi); in qlcnic_poll() 979 napi_complete_done(&sds_ring->napi, work_done); in qlcnic_poll() 989 static int qlcnic_tx_poll(struct napi_struct *napi, int budget) in qlcnic_tx_poll() argument 995 tx_ring = container_of(napi, struct qlcnic_host_tx_ring, napi); in qlcnic_tx_poll() 1000 napi_complete(&tx_ring->napi); in qlcnic_tx_poll() 1011 static int qlcnic_rx_poll(struct napi_struct *napi, int budget) in qlcnic_rx_poll() argument 1017 sds_ring = container_of(napi, struct qlcnic_host_sds_ring, napi); in qlcnic_rx_poll() 1023 napi_complete_done(&sds_ring->napi, work_done); in qlcnic_rx_poll() 1248 napi_gro_receive(&sds_ring->napi, skb); in qlcnic_process_rcv() [all …]
|
| /linux/drivers/net/ethernet/intel/libeth/ |
| H A D | xsk.c | 207 void libeth_xsk_init_wakeup(call_single_data_t *csd, struct napi_struct *napi) in libeth_xsk_init_wakeup() argument 209 INIT_CSD(csd, libeth_xsk_napi_sched, napi); in libeth_xsk_init_wakeup() 224 struct napi_struct *napi = csd->info; in libeth_xsk_wakeup() local 226 if (napi_if_scheduled_mark_missed(napi) || in libeth_xsk_wakeup() 227 unlikely(!napi_schedule_prep(napi))) in libeth_xsk_wakeup() 236 __napi_schedule(napi); in libeth_xsk_wakeup()
|
| /linux/drivers/staging/octeon/ |
| H A D | ethernet-rx.c | 37 struct napi_struct napi; member 412 static int cvm_oct_napi_poll(struct napi_struct *napi, int budget) in cvm_oct_napi_poll() argument 414 struct oct_rx_group *rx_group = container_of(napi, struct oct_rx_group, in cvm_oct_napi_poll() 415 napi); in cvm_oct_napi_poll() 422 napi_complete_done(napi, rx_count); in cvm_oct_napi_poll() 472 netif_napi_add_weight(dev_for_napi, &oct_rx_group[i].napi, in cvm_oct_rx_initialize() 474 napi_enable(&oct_rx_group[i].napi); in cvm_oct_rx_initialize() 481 "Ethernet", &oct_rx_group[i].napi); in cvm_oct_rx_initialize() 518 napi_schedule(&oct_rx_group[i].napi); in cvm_oct_rx_initialize() 540 netif_napi_del(&oct_rx_group[i].napi); in cvm_oct_rx_shutdown()
|
| /linux/drivers/net/wireless/ath/ath11k/ |
| H A D | dp_rx.h | 70 struct napi_struct *napi, int budget); 71 int ath11k_dp_process_rx_err(struct ath11k_base *ab, struct napi_struct *napi, 74 struct napi_struct *napi, 85 struct napi_struct *napi, int budget); 87 struct napi_struct *napi, int budget);
|
| /linux/drivers/net/wwan/t7xx/ |
| H A D | t7xx_netdev.c | 68 napi_enable(ctlb->napi[i]); in t7xx_ccmni_enable_napi() 69 napi_schedule(ctlb->napi[i]); in t7xx_ccmni_enable_napi() 82 napi_synchronize(ctlb->napi[i]); in t7xx_ccmni_disable_napi() 83 napi_disable(ctlb->napi[i]); in t7xx_ccmni_disable_napi() 271 ctlb->napi[i] = &ctlb->hif_ctrl->rxq[i].napi; in t7xx_init_netdev_napi() 272 netif_napi_add_weight(ctlb->dummy_dev, ctlb->napi[i], t7xx_dpmaif_napi_rx_poll, in t7xx_init_netdev_napi() 284 netif_napi_del(ctlb->napi[i]); in t7xx_uninit_netdev_napi() 285 ctlb->napi[i] = NULL; in t7xx_uninit_netdev_napi() 413 struct napi_struct *napi) in t7xx_ccmni_recv_skb() argument 438 napi_gro_receive(napi, skb); in t7xx_ccmni_recv_skb()
|
| /linux/drivers/net/wireless/ath/wil6210/ |
| H A D | netdev.c | 91 static int wil6210_netdev_poll_rx(struct napi_struct *napi, int budget) in wil6210_netdev_poll_rx() argument 93 struct wil6210_priv *wil = container_of(napi, struct wil6210_priv, in wil6210_netdev_poll_rx() 102 napi_complete_done(napi, done); in wil6210_netdev_poll_rx() 112 static int wil6210_netdev_poll_rx_edma(struct napi_struct *napi, int budget) in wil6210_netdev_poll_rx_edma() argument 114 struct wil6210_priv *wil = container_of(napi, struct wil6210_priv, in wil6210_netdev_poll_rx_edma() 123 napi_complete_done(napi, done); in wil6210_netdev_poll_rx_edma() 133 static int wil6210_netdev_poll_tx(struct napi_struct *napi, int budget) in wil6210_netdev_poll_tx() argument 135 struct wil6210_priv *wil = container_of(napi, struct wil6210_priv, in wil6210_netdev_poll_tx() 160 napi_complete(napi); in wil6210_netdev_poll_tx() 170 static int wil6210_netdev_poll_tx_edma(struct napi_struct *napi, int budget) in wil6210_netdev_poll_tx_edma() argument [all …]
|
| /linux/drivers/net/ethernet/sfc/ |
| H A D | ef100_rep.c | 25 static int efx_ef100_rep_poll(struct napi_struct *napi, int weight); 48 netif_napi_add(net_dev, &efv->napi, efx_ef100_rep_poll); in efx_ef100_rep_open() 49 napi_enable(&efv->napi); in efx_ef100_rep_open() 57 napi_disable(&efv->napi); in efx_ef100_rep_close() 58 netif_napi_del(&efv->napi); in efx_ef100_rep_close() 393 static int efx_ef100_rep_poll(struct napi_struct *napi, int weight) in efx_ef100_rep_poll() argument 395 struct efx_rep *efv = container_of(napi, struct efx_rep, napi); in efx_ef100_rep_poll() 416 if (napi_complete_done(napi, spent)) { in efx_ef100_rep_poll() 427 napi_schedule(&efv->napi); in efx_ef100_rep_poll() 480 napi_schedule(&efv->napi); in efx_ef100_rep_rx_packet()
|
| /linux/drivers/net/caif/ |
| H A D | caif_virtio.c | 111 struct napi_struct napi; member 250 static int cfv_rx_poll(struct napi_struct *napi, int quota) in cfv_rx_poll() argument 252 struct cfv_info *cfv = container_of(napi, struct cfv_info, napi); in cfv_rx_poll() 319 napi_complete(napi); in cfv_rx_poll() 321 napi_schedule_prep(napi)) { in cfv_rx_poll() 323 __napi_schedule(napi); in cfv_rx_poll() 331 napi_complete(napi); in cfv_rx_poll() 339 napi_complete(napi); in cfv_rx_poll() 356 napi_schedule(&cfv->napi); in cfv_recv() 446 napi_enable(&cfv->napi); in cfv_netdev_open() [all …]
|