Home
last modified time | relevance | path

Searched refs:napi (Results 1 – 25 of 463) sorted by relevance

12345678910>>...19

/linux/include/trace/events/
H A Dnapi.h3 #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 Dgro_cells.c10 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 Ddev.h240 struct napi_struct *napi; in netdev_set_defer_hard_irqs() local
244 list_for_each_entry(napi, &netdev->napi_list, dev_list) in netdev_set_defer_hard_irqs()
245 napi_set_defer_hard_irqs(napi, defer); in netdev_set_defer_hard_irqs()
286 struct napi_struct *napi; in netdev_set_gro_flush_timeout() local
290 list_for_each_entry(napi, &netdev->napi_list, dev_list) in netdev_set_gro_flush_timeout()
291 napi_set_gro_flush_timeout(napi, timeout); in netdev_set_gro_flush_timeout()
350 void xdp_do_check_flushed(struct napi_struct *napi);
352 static inline void xdp_do_check_flushed(struct napi_struct *napi) { } in xdp_do_check_flushed() argument
356 static inline void napi_assert_will_not_race(const struct napi_struct *napi) in napi_assert_will_not_race() argument
359 if (!napi->poll_list.next) in napi_assert_will_not_race()
[all …]
H A Ddev.c136 #include <trace/events/napi.h>
797 struct napi_struct *napi; in napi_by_id() local
799 hlist_for_each_entry_rcu(napi, &napi_hash[hash], napi_hash_node) in napi_by_id()
800 if (napi->napi_id == napi_id) in napi_by_id()
801 return napi; in napi_by_id()
810 struct napi_struct *napi; in netdev_napi_by_id() local
812 napi = napi_by_id(napi_id); in netdev_napi_by_id()
813 if (!napi) in netdev_napi_by_id()
816 if (WARN_ON_ONCE(!napi->dev)) in netdev_napi_by_id()
818 if (!net_eq(net, dev_net(napi in netdev_napi_by_id()
838 struct napi_struct *napi; netdev_napi_by_id_lock() local
1043 struct napi_struct *napi; dev_get_by_napi_id() local
4926 ____napi_schedule(struct softnet_data * sd,struct napi_struct * napi) ____napi_schedule() argument
6606 process_backlog(struct napi_struct * napi,int quota) process_backlog() argument
6827 __busy_poll_stop(struct napi_struct * napi,bool skip_schedule) __busy_poll_stop() argument
6846 busy_poll_stop(struct napi_struct * napi,void * have_poll_lock,unsigned flags,u16 budget) busy_poll_stop() argument
6902 struct napi_struct *napi; __napi_busy_loop() local
7004 struct napi_struct *napi; napi_suspend_irqs() local
7020 struct napi_struct *napi; napi_resume_irqs() local
7041 __napi_hash_add_with_id(struct napi_struct * napi,unsigned int napi_id) __napi_hash_add_with_id() argument
7051 napi_hash_add_with_id(struct napi_struct * napi,unsigned int napi_id) napi_hash_add_with_id() argument
7062 napi_hash_add(struct napi_struct * napi) napi_hash_add() argument
7085 napi_hash_del(struct napi_struct * napi) napi_hash_del() argument
7098 struct napi_struct *napi; napi_watchdog() local
7114 napi_stop_kthread(struct napi_struct * napi) napi_stop_kthread() argument
7152 napi_set_threaded_state(struct napi_struct * napi,enum netdev_napi_threaded threaded_mode) napi_set_threaded_state() argument
7162 napi_set_threaded(struct napi_struct * napi,enum netdev_napi_threaded threaded) napi_set_threaded() argument
7197 struct napi_struct *napi; netif_set_threaded() local
7256 netif_queue_set_napi(struct net_device * dev,unsigned int queue_index,enum netdev_queue_type type,struct napi_struct * napi) netif_queue_set_napi() argument
7284 struct napi_struct *napi = netif_napi_irq_notify() local
7307 struct napi_struct *napi = netif_napi_affinity_release() local
7380 netif_napi_set_irq_locked(struct napi_struct * napi,int irq) netif_napi_set_irq_locked() argument
7474 netif_napi_dev_list_add(struct net_device * dev,struct napi_struct * napi) netif_napi_dev_list_add() argument
7506 napi_get_frags_check(struct napi_struct * napi) napi_get_frags_check() argument
7518 netif_napi_add_weight_locked(struct net_device * dev,struct napi_struct * napi,int (* poll)(struct napi_struct *,int),int weight) netif_napi_add_weight_locked() argument
7648 __netif_napi_del_locked(struct napi_struct * napi) __netif_napi_del_locked() argument
7770 napi_thread_wait(struct napi_struct * napi) napi_thread_wait() argument
7794 napi_threaded_poll_loop(struct napi_struct * napi,unsigned long * busy_poll_last_qs) napi_threaded_poll_loop() argument
7848 struct napi_struct *napi = data; napi_threaded_poll() local
12715 struct napi_struct *napi = list_first_entry(&oldsd->poll_list, dev_cpu_dead() local
13171 struct napi_struct *napi = &sd->backlog; backlog_napi_should_run() local
13186 struct napi_struct *napi = &sd->backlog; backlog_napi_setup() local
[all...]
H A Dgro.c640 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 Dnetpoll.c142 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 Digc_xdp.c32 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 Dnapi.c267 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/net/ethernet/aquantia/atlantic/
H A Daq_vec.c21 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/infiniband/hw/hfi1/
H A Dipoib_rx.c22 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/synopsys/
H A Ddwc-xlgmac-net.c290 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/drivers/net/ethernet/google/gve/
H A Dgve_utils.c67 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()
123 netif_napi_del_locked(&block->napi); in gve_remove_napi()
H A Dgve_rx.c449 static struct sk_buff *gve_rx_add_frags(struct napi_struct *napi, in gve_rx_add_frags() argument
459 skb = napi_get_frags(napi); in gve_rx_add_frags()
468 skb = napi_alloc_skb(napi, 0); in gve_rx_add_frags()
519 struct napi_struct *napi, in gve_rx_raw_addressing() argument
523 struct sk_buff *skb = gve_rx_add_frags(napi, page_info, packet_buffer_size, len, ctx); in gve_rx_raw_addressing()
539 u16 len, struct napi_struct *napi) in gve_rx_copy_to_pool() argument
580 skb = gve_rx_add_frags(napi, &alloc_page_info, in gve_rx_copy_to_pool()
596 skb = gve_rx_add_frags(napi, copy_page_info, in gve_rx_copy_to_pool()
625 u16 len, struct napi_struct *napi, in gve_rx_qpl() argument
637 skb = gve_rx_add_frags(napi, page_info, page_info->buf_size, in gve_rx_qpl()
[all …]
/linux/drivers/net/netdevsim/
H A Dnetdev.c48 idx = rq->napi.index; in nsim_start_peer_tx_queue()
415 struct net_device *dev = rq->napi.dev; in nsim_rcv()
446 napi_gro_receive(&rq->napi, skb); in nsim_rcv()
453 static int nsim_poll(struct napi_struct *napi, int budget) in nsim_poll() argument
455 struct nsim_rq *rq = container_of(napi, struct nsim_rq, napi); in nsim_poll()
460 napi_complete_done(napi, done); in nsim_poll()
465 static int nsim_create_page_pool(struct page_pool **p, struct napi_struct *napi) in nsim_create_page_pool() argument
471 .dev = &napi->dev->dev, in nsim_create_page_pool()
472 .napi = napi, in nsim_create_page_pool()
474 .netdev = napi->dev, in nsim_create_page_pool()
[all …]
/linux/tools/testing/selftests/drivers/net/
H A Dnapi_threaded.py5 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/wireless/ath/ath12k/wifi7/
H A Ddp.c23 struct napi_struct *napi = &irq_grp->napi; in ath12k_wifi7_dp_service_srng() local
37 work_done = ath12k_wifi7_dp_rx_process_err(dp, napi, budget); in ath12k_wifi7_dp_service_srng()
45 work_done = ath12k_wifi7_dp_rx_process_wbm_err(dp, napi, budget); in ath12k_wifi7_dp_service_srng()
55 work_done = ath12k_wifi7_dp_rx_process(dp, i, napi, budget); in ath12k_wifi7_dp_service_srng()
70 ath12k_wifi7_dp_mon_process_ring(dp, id, napi, in ath12k_wifi7_dp_service_srng()
91 ath12k_wifi7_dp_mon_process_ring(dp, id, napi, in ath12k_wifi7_dp_service_srng()
114 napi, budget, in ath12k_wifi7_dp_service_srng()
/linux/drivers/net/ethernet/huawei/hinic3/
H A Dhinic3_irq.c31 static int hinic3_poll(struct napi_struct *napi, int budget) in hinic3_poll() argument
34 container_of(napi, struct hinic3_irq_cfg, napi); in hinic3_poll()
52 if (likely(napi_complete_done(napi, work_done))) { in hinic3_poll()
65 netif_napi_add(nic_dev->netdev, &irq_cfg->napi, hinic3_poll); in qp_add_napi()
66 napi_enable(&irq_cfg->napi); in qp_add_napi()
71 napi_disable(&irq_cfg->napi); in qp_del_napi()
72 netif_napi_del(&irq_cfg->napi); in qp_del_napi()
86 napi_schedule(&irq_cfg->napi); in qp_irq()
235 NETDEV_QUEUE_TYPE_RX, &irq_cfg->napi); in hinic3_qps_irq_init()
237 NETDEV_QUEUE_TYPE_TX, &irq_cfg->napi); in hinic3_qps_irq_init()
/linux/drivers/net/wan/
H A Dlapbether.c59 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/ethernet/qlogic/qlcnic/
H A Dqlcnic_io.c959 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/can/dev/
H A Drx-offload.c42 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/intel/libeth/
H A Dxsk.c208 void libeth_xsk_init_wakeup(call_single_data_t *csd, struct napi_struct *napi) in libeth_xsk_init_wakeup() argument
210 INIT_CSD(csd, libeth_xsk_napi_sched, napi); in libeth_xsk_init_wakeup()
225 struct napi_struct *napi = csd->info; in libeth_xsk_wakeup() local
227 if (napi_if_scheduled_mark_missed(napi) || in libeth_xsk_wakeup()
228 unlikely(!napi_schedule_prep(napi))) in libeth_xsk_wakeup()
237 __napi_schedule(napi); in libeth_xsk_wakeup()
/linux/drivers/net/ethernet/meta/fbnic/
H A Dfbnic_txrx.c606 txq = txring_txq(nv->napi.dev, ring); in fbnic_clean_twq0()
698 netdev_err(nv->napi.dev, in fbnic_clean_tsq()
710 fbn = netdev_priv(nv->napi.dev); in fbnic_clean_tsq()
1021 netdev_err_once(nv->napi.dev, in fbnic_add_rx_frag()
1150 struct fbnic_net *fbn = netdev_priv(nv->napi.dev); in fbnic_run_xdp()
1170 bpf_warn_invalid_xdp_action(nv->napi.dev, xdp_prog, act); in fbnic_run_xdp()
1173 trace_xdp_exception(nv->napi.dev, xdp_prog, act); in fbnic_run_xdp()
1198 fbn = netdev_priv(nv->napi.dev); in fbnic_rx_tstamp()
1211 struct net_device *netdev = nv->napi.dev; in fbnic_populate_skb_fields()
1289 napi_gro_receive(&nv->napi, skb); in fbnic_clean_rcq()
[all …]
/linux/drivers/net/ethernet/broadcom/
H A Dbcm4908_enet.c68 struct napi_struct napi; member
443 napi_schedule(&ring->napi); in bcm4908_enet_irq_handler()
483 napi_enable(&tx_ring->napi); in bcm4908_enet_open()
489 napi_enable(&rx_ring->napi); in bcm4908_enet_open()
506 napi_disable(&rx_ring->napi); in bcm4908_enet_stop()
507 napi_disable(&tx_ring->napi); in bcm4908_enet_stop()
534 napi_schedule(&enet->tx_ring.napi); in bcm4908_enet_start_xmit()
581 static int bcm4908_enet_poll_rx(struct napi_struct *napi, int weight) in bcm4908_enet_poll_rx() argument
583 struct bcm4908_enet_dma_ring *rx_ring = container_of(napi, struct bcm4908_enet_dma_ring, napi); in bcm4908_enet_poll_rx()
641 napi_complete_done(napi, handled); in bcm4908_enet_poll_rx()
[all …]
/linux/drivers/staging/octeon/
H A Dethernet-rx.c37 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/wwan/t7xx/
H A Dt7xx_netdev.c68 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()

12345678910>>...19