Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1468646 > unrolled thread

[PATCH net-next 0/5] rxrpc: Cleanups

Started byDavid Howells <dhowells@redhat.com>
First post2016-08-23 17:40 +0200
Last post2016-08-24 02:30 +0200
Articles 3 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [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

#1468646 — [PATCH net-next 0/5] rxrpc: Cleanups

FromDavid Howells <dhowells@redhat.com>
Date2016-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]


#1468649 — [PATCH net-next 1/5] rxrpc: Remove RXRPC_CALL_PROC_BUSY

FromDavid Howells <dhowells@redhat.com>
Date2016-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]


#1468987

FromDavid Miller <davem@davemloft.net>
Date2016-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