Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1468646 > unrolled thread
| Started by | David Howells <dhowells@redhat.com> |
|---|---|
| First post | 2016-08-23 17:40 +0200 |
| Last post | 2016-08-24 02:30 +0200 |
| Articles | 3 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH net-next 0/5] rxrpc: Cleanups David Howells <dhowells@redhat.com> - 2016-08-23 17:40 +0200
[PATCH net-next 1/5] rxrpc: Remove RXRPC_CALL_PROC_BUSY David Howells <dhowells@redhat.com> - 2016-08-23 17:40 +0200
Re: [PATCH net-next 0/5] rxrpc: Cleanups David Miller <davem@davemloft.net> - 2016-08-24 02:30 +0200
| From | David Howells <dhowells@redhat.com> |
|---|---|
| Date | 2016-08-23 17:40 +0200 |
| Subject | [PATCH net-next 0/5] rxrpc: Cleanups |
| Message-ID | <s9lOi-5N9-9@gated-at.bofh.it> |
Here are some cleanups for the AF_RXRPC rewrite:
(1) Remove some unused bits.
(2) Call releasing on socket closure is now done in the order in which
calls progress through the phases so that we don't miss a call
actively moving list.
(3) The rxrpc_call struct's channel number field is redundant and replaced
with accesses to the masked off cid field instead.
(4) Use a tracepoint for socket buffer accounting rather than printks.
Unfortunately, since this would require currently non-existend
arch-specific help to divine the current instruction location, the
accounting functions are moved out of line so that
__builtin_return_address() can be used.
The patches can be found here also (though they're not terminal on the branch):
http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=rxrpc-rewrite
Tagged thusly:
git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git
rxrpc-rewrite-20160823-1
David
---
David Howells (5):
rxrpc: Remove RXRPC_CALL_PROC_BUSY
rxrpc: Tidy up the rxrpc_call struct a bit
rxrpc: When clearing a socket, clear the call sets in the right order
rxrpc: Drop channel number field from rxrpc_call struct
rxrpc: Use a tracepoint for skb accounting debugging
include/trace/events/rxrpc.h | 56 +++++++++++++++++++++++++++++++++++
net/rxrpc/af_rxrpc.c | 1 +
net/rxrpc/ar-internal.h | 68 +++++++++++++-----------------------------
net/rxrpc/call_accept.c | 1 +
net/rxrpc/call_event.c | 9 ++----
net/rxrpc/call_object.c | 26 ++++++----------
net/rxrpc/conn_client.c | 2 -
net/rxrpc/conn_event.c | 2 +
net/rxrpc/conn_object.c | 5 ++-
net/rxrpc/local_event.c | 1 +
net/rxrpc/output.c | 5 ++-
net/rxrpc/proc.c | 6 ++--
net/rxrpc/recvmsg.c | 1 +
net/rxrpc/rxkad.c | 4 +-
net/rxrpc/skbuff.c | 62 ++++++++++++++++++++++++++++++++++++++
15 files changed, 169 insertions(+), 80 deletions(-)
create mode 100644 include/trace/events/rxrpc.h
[toc] | [next] | [standalone]
| From | David Howells <dhowells@redhat.com> |
|---|---|
| Date | 2016-08-23 17:40 +0200 |
| Subject | [PATCH net-next 1/5] rxrpc: Remove RXRPC_CALL_PROC_BUSY |
| Message-ID | <s9lXY-5QD-25@gated-at.bofh.it> |
| In reply to | #1468646 |
Remove RXRPC_CALL_PROC_BUSY as work queue items are now 100% non-reentrant.
Signed-off-by: David Howells <dhowells@redhat.com>
---
net/rxrpc/ar-internal.h | 1 -
net/rxrpc/call_event.c | 6 ------
2 files changed, 7 deletions(-)
diff --git a/net/rxrpc/ar-internal.h b/net/rxrpc/ar-internal.h
index ff83fb1ddd47..3a2f4c214811 100644
--- a/net/rxrpc/ar-internal.h
+++ b/net/rxrpc/ar-internal.h
@@ -341,7 +341,6 @@ enum rxrpc_call_flag {
RXRPC_CALL_RCVD_LAST, /* all packets received */
RXRPC_CALL_RUN_RTIMER, /* Tx resend timer started */
RXRPC_CALL_TX_SOFT_ACK, /* sent some soft ACKs */
- RXRPC_CALL_PROC_BUSY, /* the processor is busy */
RXRPC_CALL_INIT_ACCEPT, /* acceptance was initiated */
RXRPC_CALL_HAS_USERID, /* has a user ID attached */
RXRPC_CALL_EXPECT_OOS, /* expect out of sequence packets */
diff --git a/net/rxrpc/call_event.c b/net/rxrpc/call_event.c
index e60cf65c2232..eaa8035dcb71 100644
--- a/net/rxrpc/call_event.c
+++ b/net/rxrpc/call_event.c
@@ -832,11 +832,6 @@ void rxrpc_process_call(struct work_struct *work)
call->debug_id, rxrpc_call_states[call->state], call->events,
(jiffies - call->creation_jif) / (HZ / 10));
- if (test_and_set_bit(RXRPC_CALL_PROC_BUSY, &call->flags)) {
- _debug("XXXXXXXXXXXXX RUNNING ON MULTIPLE CPUS XXXXXXXXXXXXX");
- return;
- }
-
if (!call->conn)
goto skip_msg_init;
@@ -1281,7 +1276,6 @@ maybe_reschedule:
}
error:
- clear_bit(RXRPC_CALL_PROC_BUSY, &call->flags);
kfree(acks);
/* because we don't want two CPUs both processing the work item for one
[toc] | [prev] | [next] | [standalone]
| From | David Miller <davem@davemloft.net> |
|---|---|
| Date | 2016-08-24 02:30 +0200 |
| Message-ID | <s9ueR-2XK-1@gated-at.bofh.it> |
| In reply to | #1468646 |
From: David Howells <dhowells@redhat.com> Date: Tue, 23 Aug 2016 16:26:18 +0100 > Here are some cleanups for the AF_RXRPC rewrite: ... > git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git > rxrpc-rewrite-20160823-1 Pulled.
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web