Lines Matching refs:tq

206 				      struct rxrpc_txqueue *tq,  in rxrpc_add_data_rtt_sample()  argument
209 ktime_t xmit_ts = ktime_add_us(tq->xmit_ts_base, tq->segment_xmit_ts[ix]); in rxrpc_add_data_rtt_sample()
214 __clear_bit(ix, &tq->rtt_samples); /* Prevent repeat RTT sample */ in rxrpc_add_data_rtt_sample()
223 struct rxrpc_txqueue *tq = call->tx_queue; in rxrpc_rotate_tx_window() local
230 trace_rxrpc_tq(call, tq, seq, rxrpc_tq_rotate); in rxrpc_rotate_tx_window()
244 call->tx_queue = tq->next; in rxrpc_rotate_tx_window()
245 trace_rxrpc_tq(call, tq, seq, rxrpc_tq_rotate_and_free); in rxrpc_rotate_tx_window()
246 kfree(tq); in rxrpc_rotate_tx_window()
247 tq = call->tx_queue; in rxrpc_rotate_tx_window()
253 _debug("tq=%x seq=%x i=%d f=%x", tq->qbase, seq, ix, tq->bufs[ix]->flags); in rxrpc_rotate_tx_window()
254 if (tq->bufs[ix]->flags & RXRPC_LAST_PACKET) { in rxrpc_rotate_tx_window()
259 if (summary->acked_serial == tq->segment_serial[ix] && in rxrpc_rotate_tx_window()
260 test_bit(ix, &tq->rtt_samples)) in rxrpc_rotate_tx_window()
261 rxrpc_add_data_rtt_sample(call, summary, tq, ix); in rxrpc_rotate_tx_window()
263 if (ix == tq->nr_reported_acks) { in rxrpc_rotate_tx_window()
265 tq->nr_reported_acks++; in rxrpc_rotate_tx_window()
266 rxrpc_input_rack_one(call, summary, tq, ix); in rxrpc_rotate_tx_window()
270 __set_bit(ix, &tq->segment_acked); in rxrpc_rotate_tx_window()
271 trace_rxrpc_rotate(call, tq, summary, seq, rxrpc_rotate_trace_hack); in rxrpc_rotate_tx_window()
272 } else if (test_bit(ix, &tq->segment_acked)) { in rxrpc_rotate_tx_window()
275 trace_rxrpc_rotate(call, tq, summary, seq, rxrpc_rotate_trace_sack); in rxrpc_rotate_tx_window()
279 rxrpc_input_rack_one(call, summary, tq, ix); in rxrpc_rotate_tx_window()
283 __set_bit(ix, &tq->segment_acked); in rxrpc_rotate_tx_window()
284 trace_rxrpc_rotate(call, tq, summary, seq, rxrpc_rotate_trace_snak); in rxrpc_rotate_tx_window()
288 if (__test_and_clear_bit(ix, &tq->segment_lost)) in rxrpc_rotate_tx_window()
290 if (__test_and_clear_bit(ix, &tq->segment_retransmitted)) in rxrpc_rotate_tx_window()
292 __clear_bit(ix, &tq->ever_retransmitted); in rxrpc_rotate_tx_window()
294 rxrpc_put_txbuf(tq->bufs[ix], rxrpc_txbuf_put_rotated); in rxrpc_rotate_tx_window()
295 tq->bufs[ix] = NULL; in rxrpc_rotate_tx_window()
307 prefetch(tq->next); in rxrpc_rotate_tx_window()
308 if (tq != call->tx_qtail) { in rxrpc_rotate_tx_window()
310 call->tx_queue = tq->next; in rxrpc_rotate_tx_window()
311 trace_rxrpc_tq(call, tq, seq, rxrpc_tq_rotate_and_free); in rxrpc_rotate_tx_window()
312 kfree(tq); in rxrpc_rotate_tx_window()
313 tq = call->tx_queue; in rxrpc_rotate_tx_window()
315 trace_rxrpc_tq(call, tq, seq, rxrpc_tq_rotate_and_keep); in rxrpc_rotate_tx_window()
316 tq = NULL; in rxrpc_rotate_tx_window()
328 if (tq) { in rxrpc_rotate_tx_window()
329 trace_rxrpc_tq(call, tq, seq, rxrpc_tq_rotate_and_free); in rxrpc_rotate_tx_window()
330 kfree(tq); in rxrpc_rotate_tx_window()
859 struct rxrpc_txqueue *tq) in rxrpc_input_soft_rtt() argument
862 if (summary->acked_serial == tq->segment_serial[ix]) in rxrpc_input_soft_rtt()
863 return rxrpc_add_data_rtt_sample(call, summary, tq, ix); in rxrpc_input_soft_rtt()
871 struct rxrpc_txqueue *tq, in rxrpc_input_soft_ack_tq() argument
881 if (tq->nr_reported_acks > 0) in rxrpc_input_soft_ack_tq()
882 old_reported = ~0UL >> (RXRPC_NR_TXQUEUE - tq->nr_reported_acks); in rxrpc_input_soft_ack_tq()
885 tq->qbase, tq->segment_acked, tq->nr_reported_acks, in rxrpc_input_soft_ack_tq()
888 _debug("[%x]", tq->qbase); in rxrpc_input_soft_ack_tq()
889 _debug("tq %16lx %u", tq->segment_acked, tq->nr_reported_acks); in rxrpc_input_soft_ack_tq()
893 flipped = (tq->segment_acked ^ extracted_acks) & old_reported; in rxrpc_input_soft_ack_tq()
895 n_to_a = ~tq->segment_acked & flipped; /* Old NAK -> ACK */ in rxrpc_input_soft_ack_tq()
896 a_to_n = tq->segment_acked & flipped; /* Old ACK -> NAK */ in rxrpc_input_soft_ack_tq()
909 new = nr_reported - tq->nr_reported_acks; in rxrpc_input_soft_ack_tq()
926 tq->nr_reported_acks = nr_reported; in rxrpc_input_soft_ack_tq()
927 tq->segment_acked = extracted_acks; in rxrpc_input_soft_ack_tq()
928 trace_rxrpc_apply_acks(call, tq); in rxrpc_input_soft_ack_tq()
938 rxrpc_input_soft_rtt(call, summary, tq); in rxrpc_input_soft_ack_tq()
942 rxrpc_input_rack(call, summary, tq, new_acks); in rxrpc_input_soft_ack_tq()
945 rxrpc_seq_in_txq(tq, call->tlp_seq) && in rxrpc_input_soft_ack_tq()
946 test_bit(call->tlp_seq - tq->qbase, &new_acks)) in rxrpc_input_soft_ack_tq()
964 struct rxrpc_txqueue *tq = call->tx_queue; in rxrpc_input_soft_acks() local
971 _enter("%x,%x,%u", tq->qbase, seq, sp->ack.nr_acks); in rxrpc_input_soft_acks()
973 while (after(seq, tq->qbase + RXRPC_NR_TXQUEUE - 1)) in rxrpc_input_soft_acks()
974 tq = tq->next; in rxrpc_input_soft_acks()
990 rxrpc_input_soft_ack_tq(call, summary, tq, extracted, RXRPC_NR_TXQUEUE, in rxrpc_input_soft_acks()
994 tq = tq->next; in rxrpc_input_soft_acks()
995 prefetch(tq); in rxrpc_input_soft_acks()
1003 rxrpc_input_soft_ack_tq(call, summary, tq, extracted, nr_reported, in rxrpc_input_soft_acks()