Loading include/trace/events/rxrpc.h +30 −0 Original line number Diff line number Diff line Loading @@ -260,6 +260,36 @@ TRACE_EVENT(rxrpc_rx_ack, __entry->n_acks) ); TRACE_EVENT(rxrpc_tx_ack, TP_PROTO(struct rxrpc_call *call, rxrpc_seq_t first, rxrpc_serial_t serial, u8 reason, u8 n_acks), TP_ARGS(call, first, serial, reason, n_acks), TP_STRUCT__entry( __field(struct rxrpc_call *, call ) __field(rxrpc_seq_t, first ) __field(rxrpc_serial_t, serial ) __field(u8, reason ) __field(u8, n_acks ) ), TP_fast_assign( __entry->call = call; __entry->first = first; __entry->serial = serial; __entry->reason = reason; __entry->n_acks = n_acks; ), TP_printk("c=%p %s f=%08x r=%08x n=%u", __entry->call, rxrpc_acks(__entry->reason), __entry->first, __entry->serial, __entry->n_acks) ); #endif /* _TRACE_RXRPC_H */ /* This part must be outside protection */ Loading net/rxrpc/conn_event.c +3 −0 Original line number Diff line number Diff line Loading @@ -98,6 +98,9 @@ static void rxrpc_conn_retransmit_call(struct rxrpc_connection *conn, pkt.info.rwind = htonl(rxrpc_rx_window_size); pkt.info.jumbo_max = htonl(rxrpc_rx_jumbo_max); len += sizeof(pkt.ack) + sizeof(pkt.info); trace_rxrpc_tx_ack(NULL, chan->last_seq, 0, RXRPC_ACK_DUPLICATE, 0); break; } Loading net/rxrpc/output.c +6 −1 Original line number Diff line number Diff line Loading @@ -38,12 +38,14 @@ struct rxrpc_pkt_buffer { static size_t rxrpc_fill_out_ack(struct rxrpc_call *call, struct rxrpc_pkt_buffer *pkt) { rxrpc_serial_t serial; rxrpc_seq_t hard_ack, top, seq; int ix; u32 mtu, jmax; u8 *ackp = pkt->acks; /* Barrier against rxrpc_input_data(). */ serial = call->ackr_serial; hard_ack = READ_ONCE(call->rx_hard_ack); top = smp_load_acquire(&call->rx_top); Loading @@ -51,7 +53,7 @@ static size_t rxrpc_fill_out_ack(struct rxrpc_call *call, pkt->ack.maxSkew = htons(call->ackr_skew); pkt->ack.firstPacket = htonl(hard_ack + 1); pkt->ack.previousPacket = htonl(call->ackr_prev_seq); pkt->ack.serial = htonl(call->ackr_serial); pkt->ack.serial = htonl(serial); pkt->ack.reason = call->ackr_reason; pkt->ack.nAcks = top - hard_ack; Loading @@ -75,6 +77,9 @@ static size_t rxrpc_fill_out_ack(struct rxrpc_call *call, pkt->ackinfo.rwind = htonl(call->rx_winsize); pkt->ackinfo.jumbo_max = htonl(jmax); trace_rxrpc_tx_ack(call, hard_ack + 1, serial, call->ackr_reason, top - hard_ack); *ackp++ = 0; *ackp++ = 0; *ackp++ = 0; Loading Loading
include/trace/events/rxrpc.h +30 −0 Original line number Diff line number Diff line Loading @@ -260,6 +260,36 @@ TRACE_EVENT(rxrpc_rx_ack, __entry->n_acks) ); TRACE_EVENT(rxrpc_tx_ack, TP_PROTO(struct rxrpc_call *call, rxrpc_seq_t first, rxrpc_serial_t serial, u8 reason, u8 n_acks), TP_ARGS(call, first, serial, reason, n_acks), TP_STRUCT__entry( __field(struct rxrpc_call *, call ) __field(rxrpc_seq_t, first ) __field(rxrpc_serial_t, serial ) __field(u8, reason ) __field(u8, n_acks ) ), TP_fast_assign( __entry->call = call; __entry->first = first; __entry->serial = serial; __entry->reason = reason; __entry->n_acks = n_acks; ), TP_printk("c=%p %s f=%08x r=%08x n=%u", __entry->call, rxrpc_acks(__entry->reason), __entry->first, __entry->serial, __entry->n_acks) ); #endif /* _TRACE_RXRPC_H */ /* This part must be outside protection */ Loading
net/rxrpc/conn_event.c +3 −0 Original line number Diff line number Diff line Loading @@ -98,6 +98,9 @@ static void rxrpc_conn_retransmit_call(struct rxrpc_connection *conn, pkt.info.rwind = htonl(rxrpc_rx_window_size); pkt.info.jumbo_max = htonl(rxrpc_rx_jumbo_max); len += sizeof(pkt.ack) + sizeof(pkt.info); trace_rxrpc_tx_ack(NULL, chan->last_seq, 0, RXRPC_ACK_DUPLICATE, 0); break; } Loading
net/rxrpc/output.c +6 −1 Original line number Diff line number Diff line Loading @@ -38,12 +38,14 @@ struct rxrpc_pkt_buffer { static size_t rxrpc_fill_out_ack(struct rxrpc_call *call, struct rxrpc_pkt_buffer *pkt) { rxrpc_serial_t serial; rxrpc_seq_t hard_ack, top, seq; int ix; u32 mtu, jmax; u8 *ackp = pkt->acks; /* Barrier against rxrpc_input_data(). */ serial = call->ackr_serial; hard_ack = READ_ONCE(call->rx_hard_ack); top = smp_load_acquire(&call->rx_top); Loading @@ -51,7 +53,7 @@ static size_t rxrpc_fill_out_ack(struct rxrpc_call *call, pkt->ack.maxSkew = htons(call->ackr_skew); pkt->ack.firstPacket = htonl(hard_ack + 1); pkt->ack.previousPacket = htonl(call->ackr_prev_seq); pkt->ack.serial = htonl(call->ackr_serial); pkt->ack.serial = htonl(serial); pkt->ack.reason = call->ackr_reason; pkt->ack.nAcks = top - hard_ack; Loading @@ -75,6 +77,9 @@ static size_t rxrpc_fill_out_ack(struct rxrpc_call *call, pkt->ackinfo.rwind = htonl(call->rx_winsize); pkt->ackinfo.jumbo_max = htonl(jmax); trace_rxrpc_tx_ack(call, hard_ack + 1, serial, call->ackr_reason, top - hard_ack); *ackp++ = 0; *ackp++ = 0; *ackp++ = 0; Loading