| /kernel/linux/linux-5.10/net/rxrpc/ |
| D | call_object.c | 2 /* RxRPC individual remote procedure call handling 50 struct rxrpc_call *call = from_timer(call, t, timer); in rxrpc_call_timer_expired() local 52 _enter("%d", call->debug_id); in rxrpc_call_timer_expired() 54 if (call->state < RXRPC_CALL_COMPLETE) { in rxrpc_call_timer_expired() 55 trace_rxrpc_timer(call, rxrpc_timer_expired, jiffies); in rxrpc_call_timer_expired() 56 __rxrpc_queue_call(call); in rxrpc_call_timer_expired() 58 rxrpc_put_call(call, rxrpc_call_put); in rxrpc_call_timer_expired() 62 void rxrpc_reduce_call_timer(struct rxrpc_call *call, in rxrpc_reduce_call_timer() argument 67 if (rxrpc_try_get_call(call, rxrpc_call_got_timer)) { in rxrpc_reduce_call_timer() 68 trace_rxrpc_timer(call, why, now); in rxrpc_reduce_call_timer() [all …]
|
| D | call_event.c | 23 static void rxrpc_propose_ping(struct rxrpc_call *call, in rxrpc_propose_ping() argument 28 !test_and_set_bit(RXRPC_CALL_EV_PING, &call->events)) in rxrpc_propose_ping() 29 rxrpc_queue_call(call); in rxrpc_propose_ping() 34 if (time_before(ping_at, call->ping_at)) { in rxrpc_propose_ping() 35 WRITE_ONCE(call->ping_at, ping_at); in rxrpc_propose_ping() 36 rxrpc_reduce_call_timer(call, ping_at, now, in rxrpc_propose_ping() 45 static void __rxrpc_propose_ACK(struct rxrpc_call *call, u8 ack_reason, in __rxrpc_propose_ACK() argument 57 rxrpc_propose_ping(call, immediate, background); in __rxrpc_propose_ACK() 66 call->ackr_reason, rxrpc_ack_priority[call->ackr_reason]); in __rxrpc_propose_ACK() 67 if (ack_reason == call->ackr_reason) { in __rxrpc_propose_ACK() [all …]
|
| D | sendmsg.c | 23 static bool rxrpc_check_tx_space(struct rxrpc_call *call, rxrpc_seq_t *_tx_win) in rxrpc_check_tx_space() argument 26 min_t(unsigned int, call->tx_winsize, in rxrpc_check_tx_space() 27 call->cong_cwnd + call->cong_extra); in rxrpc_check_tx_space() 28 rxrpc_seq_t tx_win = READ_ONCE(call->tx_hard_ack); in rxrpc_check_tx_space() 32 return call->tx_top - tx_win < win_size; in rxrpc_check_tx_space() 39 struct rxrpc_call *call, in rxrpc_wait_for_tx_window_intr() argument 44 if (rxrpc_check_tx_space(call, NULL)) in rxrpc_wait_for_tx_window_intr() 47 if (call->state >= RXRPC_CALL_COMPLETE) in rxrpc_wait_for_tx_window_intr() 48 return call->error; in rxrpc_wait_for_tx_window_intr() 53 trace_rxrpc_transmit(call, rxrpc_transmit_wait); in rxrpc_wait_for_tx_window_intr() [all …]
|
| D | recvmsg.c | 20 * Post a call for attention by the socket or kernel service. Further 23 void rxrpc_notify_socket(struct rxrpc_call *call) in rxrpc_notify_socket() argument 28 _enter("%d", call->debug_id); in rxrpc_notify_socket() 30 if (!list_empty(&call->recvmsg_link)) in rxrpc_notify_socket() 35 rx = rcu_dereference(call->socket); in rxrpc_notify_socket() 38 if (call->notify_rx) { in rxrpc_notify_socket() 39 spin_lock_bh(&call->notify_lock); in rxrpc_notify_socket() 40 call->notify_rx(sk, call, call->user_call_ID); in rxrpc_notify_socket() 41 spin_unlock_bh(&call->notify_lock); in rxrpc_notify_socket() 44 if (list_empty(&call->recvmsg_link)) { in rxrpc_notify_socket() [all …]
|
| D | input.c | 27 struct rxrpc_call *call, rxrpc_seq_t seq) in rxrpc_proto_abort() argument 29 if (rxrpc_abort_call(why, call, seq, RX_PROTOCOL_ERROR, -EBADMSG)) { in rxrpc_proto_abort() 30 set_bit(RXRPC_CALL_EV_ABORT, &call->events); in rxrpc_proto_abort() 31 rxrpc_queue_call(call); in rxrpc_proto_abort() 38 static void rxrpc_congestion_management(struct rxrpc_call *call, in rxrpc_congestion_management() argument 44 unsigned int cumulative_acks = call->cong_cumul_acks; in rxrpc_congestion_management() 45 unsigned int cwnd = call->cong_cwnd; in rxrpc_congestion_management() 49 (call->tx_top - call->tx_hard_ack) - summary->nr_acks; in rxrpc_congestion_management() 51 if (test_and_clear_bit(RXRPC_CALL_RETRANS_TIMEOUT, &call->flags)) { in rxrpc_congestion_management() 53 call->cong_ssthresh = max_t(unsigned int, in rxrpc_congestion_management() [all …]
|
| D | output.c | 36 static void rxrpc_tx_backoff(struct rxrpc_call *call, int ret) in rxrpc_tx_backoff() argument 39 u16 tx_backoff = READ_ONCE(call->tx_backoff); in rxrpc_tx_backoff() 42 WRITE_ONCE(call->tx_backoff, tx_backoff + 1); in rxrpc_tx_backoff() 44 WRITE_ONCE(call->tx_backoff, 0); in rxrpc_tx_backoff() 50 * lets the far side know we're still interested in this call and helps keep 56 static void rxrpc_set_keepalive(struct rxrpc_call *call) in rxrpc_set_keepalive() argument 58 unsigned long now = jiffies, keepalive_at = call->next_rx_timo / 6; in rxrpc_set_keepalive() 61 WRITE_ONCE(call->keepalive_at, keepalive_at); in rxrpc_set_keepalive() 62 rxrpc_reduce_call_timer(call, keepalive_at, now, in rxrpc_set_keepalive() 70 struct rxrpc_call *call, in rxrpc_fill_out_ack() argument [all …]
|
| /kernel/linux/linux-6.6/net/rxrpc/ |
| D | call_object.c | 2 /* RxRPC individual remote procedure call handling 45 void rxrpc_poke_call(struct rxrpc_call *call, enum rxrpc_call_poke_trace what) in rxrpc_poke_call() argument 47 struct rxrpc_local *local = call->local; in rxrpc_poke_call() 50 if (!test_bit(RXRPC_CALL_DISCONNECTED, &call->flags)) { in rxrpc_poke_call() 52 busy = !list_empty(&call->attend_link); in rxrpc_poke_call() 53 trace_rxrpc_poke_call(call, busy, what); in rxrpc_poke_call() 54 if (!busy && !rxrpc_try_get_call(call, rxrpc_call_get_poke)) in rxrpc_poke_call() 57 list_add_tail(&call->attend_link, &local->call_attend_q); in rxrpc_poke_call() 67 struct rxrpc_call *call = from_timer(call, t, timer); in rxrpc_call_timer_expired() local 69 _enter("%d", call->debug_id); in rxrpc_call_timer_expired() [all …]
|
| D | call_event.c | 23 void rxrpc_propose_ping(struct rxrpc_call *call, u32 serial, in rxrpc_propose_ping() argument 29 if (time_before(ping_at, call->ping_at)) { in rxrpc_propose_ping() 30 WRITE_ONCE(call->ping_at, ping_at); in rxrpc_propose_ping() 31 rxrpc_reduce_call_timer(call, ping_at, now, in rxrpc_propose_ping() 33 trace_rxrpc_propose_ack(call, why, RXRPC_ACK_PING, serial); in rxrpc_propose_ping() 40 void rxrpc_propose_delay_ACK(struct rxrpc_call *call, rxrpc_serial_t serial, in rxrpc_propose_delay_ACK() argument 48 if (call->peer->srtt_us != 0) in rxrpc_propose_delay_ACK() 49 ack_at = usecs_to_jiffies(call->peer->srtt_us >> 3); in rxrpc_propose_delay_ACK() 53 ack_at += READ_ONCE(call->tx_backoff); in rxrpc_propose_delay_ACK() 55 if (time_before(ack_at, call->delay_ack_at)) { in rxrpc_propose_delay_ACK() [all …]
|
| D | input.c | 23 static void rxrpc_proto_abort(struct rxrpc_call *call, rxrpc_seq_t seq, in rxrpc_proto_abort() argument 26 rxrpc_abort_call(call, seq, RX_PROTOCOL_ERROR, -EBADMSG, why); in rxrpc_proto_abort() 32 static void rxrpc_congestion_management(struct rxrpc_call *call, in rxrpc_congestion_management() argument 38 unsigned int cumulative_acks = call->cong_cumul_acks; in rxrpc_congestion_management() 39 unsigned int cwnd = call->cong_cwnd; in rxrpc_congestion_management() 43 (call->tx_top - call->acks_hard_ack) - summary->nr_acks; in rxrpc_congestion_management() 45 if (test_and_clear_bit(RXRPC_CALL_RETRANS_TIMEOUT, &call->flags)) { in rxrpc_congestion_management() 47 call->cong_ssthresh = max_t(unsigned int, in rxrpc_congestion_management() 50 if (cwnd >= call->cong_ssthresh && in rxrpc_congestion_management() 51 call->cong_mode == RXRPC_CALL_SLOW_START) { in rxrpc_congestion_management() [all …]
|
| D | sendmsg.c | 23 bool rxrpc_propose_abort(struct rxrpc_call *call, s32 abort_code, int error, in rxrpc_propose_abort() argument 26 _enter("{%d},%d,%d,%u", call->debug_id, abort_code, error, why); in rxrpc_propose_abort() 28 if (!call->send_abort && !rxrpc_call_is_complete(call)) { in rxrpc_propose_abort() 29 call->send_abort_why = why; in rxrpc_propose_abort() 30 call->send_abort_err = error; in rxrpc_propose_abort() 31 call->send_abort_seq = 0; in rxrpc_propose_abort() 33 smp_store_release(&call->send_abort, abort_code); in rxrpc_propose_abort() 34 rxrpc_poke_call(call, rxrpc_call_poke_abort); in rxrpc_propose_abort() 42 * Wait for a call to become connected. Interruption here doesn't cause the 43 * call to be aborted. [all …]
|
| D | rxperf.c | 65 int (*deliver)(struct rxperf_call *call); 74 static int rxperf_deliver_param_block(struct rxperf_call *call); 75 static int rxperf_deliver_request(struct rxperf_call *call); 76 static int rxperf_process_call(struct rxperf_call *call); 82 static inline void rxperf_set_call_state(struct rxperf_call *call, in rxperf_set_call_state() argument 85 call->state = to; in rxperf_set_call_state() 88 static inline void rxperf_set_call_complete(struct rxperf_call *call, in rxperf_set_call_complete() argument 91 if (call->state != RXPERF_CALL_COMPLETE) { in rxperf_set_call_complete() 92 call->abort_code = remote_abort; in rxperf_set_call_complete() 93 call->error = error; in rxperf_set_call_complete() [all …]
|
| D | recvmsg.c | 20 * Post a call for attention by the socket or kernel service. Further 23 void rxrpc_notify_socket(struct rxrpc_call *call) in rxrpc_notify_socket() argument 28 _enter("%d", call->debug_id); in rxrpc_notify_socket() 30 if (!list_empty(&call->recvmsg_link)) in rxrpc_notify_socket() 35 rx = rcu_dereference(call->socket); in rxrpc_notify_socket() 38 if (call->notify_rx) { in rxrpc_notify_socket() 39 spin_lock(&call->notify_lock); in rxrpc_notify_socket() 40 call->notify_rx(sk, call, call->user_call_ID); in rxrpc_notify_socket() 41 spin_unlock(&call->notify_lock); in rxrpc_notify_socket() 44 if (list_empty(&call->recvmsg_link)) { in rxrpc_notify_socket() [all …]
|
| D | call_state.c | 2 /* Call state changing functions. 11 * Transition a call to the complete state. 13 bool rxrpc_set_call_completion(struct rxrpc_call *call, in rxrpc_set_call_completion() argument 18 if (__rxrpc_call_state(call) == RXRPC_CALL_COMPLETE) in rxrpc_set_call_completion() 21 call->abort_code = abort_code; in rxrpc_set_call_completion() 22 call->error = error; in rxrpc_set_call_completion() 23 call->completion = compl; in rxrpc_set_call_completion() 25 rxrpc_set_call_state(call, RXRPC_CALL_COMPLETE); in rxrpc_set_call_completion() 26 trace_rxrpc_call_complete(call); in rxrpc_set_call_completion() 27 wake_up(&call->waitq); in rxrpc_set_call_completion() [all …]
|
| D | output.c | 48 static void rxrpc_tx_backoff(struct rxrpc_call *call, int ret) in rxrpc_tx_backoff() argument 51 u16 tx_backoff = READ_ONCE(call->tx_backoff); in rxrpc_tx_backoff() 54 WRITE_ONCE(call->tx_backoff, tx_backoff + 1); in rxrpc_tx_backoff() 56 WRITE_ONCE(call->tx_backoff, 0); in rxrpc_tx_backoff() 62 * lets the far side know we're still interested in this call and helps keep 68 static void rxrpc_set_keepalive(struct rxrpc_call *call) in rxrpc_set_keepalive() argument 70 unsigned long now = jiffies, keepalive_at = call->next_rx_timo / 6; in rxrpc_set_keepalive() 73 WRITE_ONCE(call->keepalive_at, keepalive_at); in rxrpc_set_keepalive() 74 rxrpc_reduce_call_timer(call, keepalive_at, now, in rxrpc_set_keepalive() 82 struct rxrpc_call *call, in rxrpc_fill_out_ack() argument [all …]
|
| /kernel/linux/linux-6.6/fs/afs/ |
| D | rxrpc.c | 28 /* asynchronous incoming call initial processing */ 134 * Allocate a call. 140 struct afs_call *call; in afs_alloc_call() local 143 call = kzalloc(sizeof(*call), gfp); in afs_alloc_call() 144 if (!call) in afs_alloc_call() 147 call->type = type; in afs_alloc_call() 148 call->net = net; in afs_alloc_call() 149 call->debug_id = atomic_inc_return(&rxrpc_debug_id); in afs_alloc_call() 150 refcount_set(&call->ref, 1); in afs_alloc_call() 151 INIT_WORK(&call->async_work, afs_process_async_call); in afs_alloc_call() [all …]
|
| D | cmservice.c | 105 * route an incoming cache manager call 108 bool afs_cm_incoming_call(struct afs_call *call) in afs_cm_incoming_call() argument 110 _enter("{%u, CB.OP %u}", call->service_id, call->operation_ID); in afs_cm_incoming_call() 112 switch (call->operation_ID) { in afs_cm_incoming_call() 114 call->type = &afs_SRXCBCallBack; in afs_cm_incoming_call() 117 call->type = &afs_SRXCBInitCallBackState; in afs_cm_incoming_call() 120 call->type = &afs_SRXCBInitCallBackState3; in afs_cm_incoming_call() 123 call->type = &afs_SRXCBProbe; in afs_cm_incoming_call() 126 call->type = &afs_SRXCBProbeUuid; in afs_cm_incoming_call() 129 call->type = &afs_SRXCBTellMeAboutYourself; in afs_cm_incoming_call() [all …]
|
| D | vlclient.c | 15 * Deliver reply data to a VL.GetEntryByNameU call. 17 static int afs_deliver_vl_get_entry_by_name_u(struct afs_call *call) in afs_deliver_vl_get_entry_by_name_u() argument 27 ret = afs_transfer_reply(call); in afs_deliver_vl_get_entry_by_name_u() 32 uvldb = call->buffer; in afs_deliver_vl_get_entry_by_name_u() 33 entry = call->ret_vldb; in afs_deliver_vl_get_entry_by_name_u() 109 static void afs_destroy_vl_get_entry_by_name_u(struct afs_call *call) in afs_destroy_vl_get_entry_by_name_u() argument 111 kfree(call->ret_vldb); in afs_destroy_vl_get_entry_by_name_u() 112 afs_flat_call_destructor(call); in afs_destroy_vl_get_entry_by_name_u() 134 struct afs_call *call; in afs_vl_get_entry_by_name_u() local 148 call = afs_alloc_flat_call(net, &afs_RXVLGetEntryByNameU, reqsz, in afs_vl_get_entry_by_name_u() [all …]
|
| D | yfsclient.c | 138 static void yfs_check_req(struct afs_call *call, __be32 *bp) in yfs_check_req() argument 140 size_t len = (void *)bp - call->request; in yfs_check_req() 142 if (len > call->request_size) in yfs_check_req() 144 call->type->name, len, call->request_size); in yfs_check_req() 145 else if (len < call->request_size) in yfs_check_req() 147 call->type->name, len, call->request_size); in yfs_check_req() 174 struct afs_call *call, in xdr_decode_YFSFetchStatus() argument 220 afs_protocol_error(call, afs_eproto_bad_status); in xdr_decode_YFSFetchStatus() 228 struct afs_call *call, in xdr_decode_YFSCallBack() argument 235 cb_expiry = ktime_add(call->issue_time, xdr_to_u64(x->expiration_time) * 100); in xdr_decode_YFSCallBack() [all …]
|
| D | fsclient.c | 55 struct afs_call *call, in xdr_decode_AFSFetchStatus() argument 60 bool inline_error = (call->operation_ID == afs_FS_InlineBulkStatus); in xdr_decode_AFSFetchStatus() 128 afs_protocol_error(call, afs_eproto_bad_status); in xdr_decode_AFSFetchStatus() 132 static time64_t xdr_decode_expiry(struct afs_call *call, u32 expiry) in xdr_decode_expiry() argument 134 return ktime_divns(call->issue_time, NSEC_PER_SEC) + expiry; in xdr_decode_expiry() 138 struct afs_call *call, in xdr_decode_AFSCallBack() argument 145 cb->expires_at = xdr_decode_expiry(call, ntohl(*bp++)); in xdr_decode_AFSCallBack() 238 static int afs_deliver_fs_fetch_status(struct afs_call *call) in afs_deliver_fs_fetch_status() argument 240 struct afs_operation *op = call->op; in afs_deliver_fs_fetch_status() 245 ret = afs_transfer_reply(call); in afs_deliver_fs_fetch_status() [all …]
|
| /kernel/linux/linux-5.10/fs/afs/ |
| D | rxrpc.c | 26 /* asynchronous incoming call initial processing */ 132 * Allocate a call. 138 struct afs_call *call; in afs_alloc_call() local 141 call = kzalloc(sizeof(*call), gfp); in afs_alloc_call() 142 if (!call) in afs_alloc_call() 145 call->type = type; in afs_alloc_call() 146 call->net = net; in afs_alloc_call() 147 call->debug_id = atomic_inc_return(&rxrpc_debug_id); in afs_alloc_call() 148 atomic_set(&call->usage, 1); in afs_alloc_call() 149 INIT_WORK(&call->async_work, afs_process_async_call); in afs_alloc_call() [all …]
|
| D | cmservice.c | 103 * route an incoming cache manager call 106 bool afs_cm_incoming_call(struct afs_call *call) in afs_cm_incoming_call() argument 108 _enter("{%u, CB.OP %u}", call->service_id, call->operation_ID); in afs_cm_incoming_call() 110 switch (call->operation_ID) { in afs_cm_incoming_call() 112 call->type = &afs_SRXCBCallBack; in afs_cm_incoming_call() 115 call->type = &afs_SRXCBInitCallBackState; in afs_cm_incoming_call() 118 call->type = &afs_SRXCBInitCallBackState3; in afs_cm_incoming_call() 121 call->type = &afs_SRXCBProbe; in afs_cm_incoming_call() 124 call->type = &afs_SRXCBProbeUuid; in afs_cm_incoming_call() 127 call->type = &afs_SRXCBTellMeAboutYourself; in afs_cm_incoming_call() [all …]
|
| D | vlclient.c | 15 * Deliver reply data to a VL.GetEntryByNameU call. 17 static int afs_deliver_vl_get_entry_by_name_u(struct afs_call *call) in afs_deliver_vl_get_entry_by_name_u() argument 27 ret = afs_transfer_reply(call); in afs_deliver_vl_get_entry_by_name_u() 32 uvldb = call->buffer; in afs_deliver_vl_get_entry_by_name_u() 33 entry = call->ret_vldb; in afs_deliver_vl_get_entry_by_name_u() 109 static void afs_destroy_vl_get_entry_by_name_u(struct afs_call *call) in afs_destroy_vl_get_entry_by_name_u() argument 111 kfree(call->ret_vldb); in afs_destroy_vl_get_entry_by_name_u() 112 afs_flat_call_destructor(call); in afs_destroy_vl_get_entry_by_name_u() 134 struct afs_call *call; in afs_vl_get_entry_by_name_u() local 148 call = afs_alloc_flat_call(net, &afs_RXVLGetEntryByNameU, reqsz, in afs_vl_get_entry_by_name_u() [all …]
|
| D | yfsclient.c | 145 static void yfs_check_req(struct afs_call *call, __be32 *bp) in yfs_check_req() argument 147 size_t len = (void *)bp - call->request; in yfs_check_req() 149 if (len > call->request_size) in yfs_check_req() 151 call->type->name, len, call->request_size); in yfs_check_req() 152 else if (len < call->request_size) in yfs_check_req() 154 call->type->name, len, call->request_size); in yfs_check_req() 181 struct afs_call *call, in xdr_decode_YFSFetchStatus() argument 227 afs_protocol_error(call, afs_eproto_bad_status); in xdr_decode_YFSFetchStatus() 235 struct afs_call *call, in xdr_decode_YFSCallBack() argument 242 cb_expiry = ktime_add(call->issue_time, xdr_to_u64(x->expiration_time) * 100); in xdr_decode_YFSCallBack() [all …]
|
| D | fsclient.c | 54 struct afs_call *call, in xdr_decode_AFSFetchStatus() argument 59 bool inline_error = (call->operation_ID == afs_FS_InlineBulkStatus); in xdr_decode_AFSFetchStatus() 127 afs_protocol_error(call, afs_eproto_bad_status); in xdr_decode_AFSFetchStatus() 131 static time64_t xdr_decode_expiry(struct afs_call *call, u32 expiry) in xdr_decode_expiry() argument 133 return ktime_divns(call->issue_time, NSEC_PER_SEC) + expiry; in xdr_decode_expiry() 137 struct afs_call *call, in xdr_decode_AFSCallBack() argument 144 cb->expires_at = xdr_decode_expiry(call, ntohl(*bp++)); in xdr_decode_AFSCallBack() 237 static int afs_deliver_fs_fetch_status(struct afs_call *call) in afs_deliver_fs_fetch_status() argument 239 struct afs_operation *op = call->op; in afs_deliver_fs_fetch_status() 244 ret = afs_transfer_reply(call); in afs_deliver_fs_fetch_status() [all …]
|
| /kernel/linux/linux-6.6/include/trace/ |
| D | trace_events.h | 8 * struct trace_event_raw_<call> { 101 * struct trace_event_data_offsets_<call> { 115 #define DECLARE_EVENT_CLASS(call, proto, args, tstruct, assign, print) \ argument 116 struct trace_event_data_offsets_##call { \ 141 * trace_raw_output_<call>(struct trace_iterator *iter, int flags) 144 * struct trace_event_raw_<call> *field; <-- defined in stage 1 153 * if (entry->type != event_<call>->event.type) { 161 * return trace_output_call(iter, <call>, <TP_printk> "\n"); 187 #define DECLARE_EVENT_CLASS(call, proto, args, tstruct, assign, print) \ argument 189 trace_raw_output_##call(struct trace_iterator *iter, int flags, \ [all …]
|