[PATCH tip/core/rcu 32/40] srcu: Fix bogus try_check_zero() comment

2017-04-12 Thread Paul E. McKenney
Signed-off-by: Paul E. McKenney --- kernel/rcu/srcu.c | 7 +++ 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/kernel/rcu/srcu.c b/kernel/rcu/srcu.c index d51ab050f777..5aeeaecfb673 100644 --- a/kernel/rcu/srcu.c +++ b/kernel/rcu/srcu.c @@ -254,10 +254,9 @@ static void

[PATCH tip/core/rcu 19/40] rcu: Add single-element dequeue functions to rcu_segcblist

2017-04-12 Thread Paul E. McKenney
This commit adds single-element dequeue functions to rcu_segcblist. These are less efficient than using the extract and insert functions, but allow more precise debugging code. These functions are thus expected to be used only in debug builds, for example, CONFIG_PROVE_RCU. Signed-off-by: Paul

[PATCH tip/core/rcu 15/40] rcu: Default RCU_FANOUT_LEAF to 16 unless explicitly changed

2017-04-12 Thread Paul E. McKenney
If the RCU_EXPERT Kconfig option is not set (the default), then the RCU_FANOUT_LEAF Kconfig option will not be defined, which will cause the leaf-level rcu_node tree fanout to default to 32 on 32-bit systems and 64 on 64-bit systems. This can result in excessive lock contention. This commit

[PATCH tip/core/rcu 18/40] srcu: Allow early boot use of synchronize_srcu()

2017-04-12 Thread Paul E. McKenney
This commit checks for pre-scheduler state, and if that early in the boot process, synchronize_srcu() and friends are no-ops. Signed-off-by: Paul E. McKenney --- kernel/rcu/srcu.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kernel/rcu/srcu.c

[PATCH tip/core/rcu 15/40] rcu: Default RCU_FANOUT_LEAF to 16 unless explicitly changed

2017-04-12 Thread Paul E. McKenney
If the RCU_EXPERT Kconfig option is not set (the default), then the RCU_FANOUT_LEAF Kconfig option will not be defined, which will cause the leaf-level rcu_node tree fanout to default to 32 on 32-bit systems and 64 on 64-bit systems. This can result in excessive lock contention. This commit

[PATCH tip/core/rcu 18/40] srcu: Allow early boot use of synchronize_srcu()

2017-04-12 Thread Paul E. McKenney
This commit checks for pre-scheduler state, and if that early in the boot process, synchronize_srcu() and friends are no-ops. Signed-off-by: Paul E. McKenney --- kernel/rcu/srcu.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kernel/rcu/srcu.c b/kernel/rcu/srcu.c index

[PATCH tip/core/rcu 25/40] srcu: Add grace-period sequence numbers

2017-04-12 Thread Paul E. McKenney
This commit adds grace-period sequence numbers, which will be used to handle mid-boot grace periods and per-CPU callback lists. Signed-off-by: Paul E. McKenney --- include/linux/srcu.h | 1 + kernel/rcu/srcu.c| 27 +++ 2 files changed, 24

[PATCH tip/core/rcu 25/40] srcu: Add grace-period sequence numbers

2017-04-12 Thread Paul E. McKenney
This commit adds grace-period sequence numbers, which will be used to handle mid-boot grace periods and per-CPU callback lists. Signed-off-by: Paul E. McKenney --- include/linux/srcu.h | 1 + kernel/rcu/srcu.c| 27 +++ 2 files changed, 24 insertions(+), 4

[PATCH tip/core/rcu 31/40] srcu: Make num_rcu_lvl[] array be external

2017-04-12 Thread Paul E. McKenney
This commit makes the num_rcu_lvl[] array external so that SRCU can make use of it for initializing its upcoming srcu_node tree. Signed-off-by: Paul E. McKenney --- kernel/rcu/rcu.h | 1 + kernel/rcu/tree.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-)

[PATCH tip/core/rcu 31/40] srcu: Make num_rcu_lvl[] array be external

2017-04-12 Thread Paul E. McKenney
This commit makes the num_rcu_lvl[] array external so that SRCU can make use of it for initializing its upcoming srcu_node tree. Signed-off-by: Paul E. McKenney --- kernel/rcu/rcu.h | 1 + kernel/rcu/tree.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/rcu/rcu.h

[PATCH tip/core/rcu 21/40] rcu: Expedited wakeups need to be fully ordered

2017-04-12 Thread Paul E. McKenney
Expedited grace periods use workqueue handlers that wake up the requesters, but there is no lock mediating this wakeup. Therefore, memory barriers are required to ensure that the handler's memory references are seen by all to occur before synchronize_*_expedited() returns to its caller. Possibly

[PATCH tip/core/rcu 21/40] rcu: Expedited wakeups need to be fully ordered

2017-04-12 Thread Paul E. McKenney
Expedited grace periods use workqueue handlers that wake up the requesters, but there is no lock mediating this wakeup. Therefore, memory barriers are required to ensure that the handler's memory references are seen by all to occur before synchronize_*_expedited() returns to its caller. Possibly

[PATCH tip/core/rcu 17/40] srcu: Allow SRCU to access rcu_scheduler_active

2017-04-12 Thread Paul E. McKenney
This is primarily a code-movement commit in preparation for allowing SRCU to handle early-boot SRCU grace periods. Signed-off-by: Paul E. McKenney --- include/linux/rcutiny.h | 6 +++--- kernel/rcu/tiny_plugin.h | 9 + kernel/rcu/tree.c| 2 +-

[PATCH tip/core/rcu 35/40] srcu: Merge ->srcu_state into ->srcu_gp_seq

2017-04-12 Thread Paul E. McKenney
Updating ->srcu_state and ->srcu_gp_seq will lead to extremely complex race conditions given multiple callback queues, so this commit takes advantage of the two-bit state now available in rcu_seq counters to store the state in the bottom two bits of ->srcu_gp_seq. Signed-off-by: Paul E. McKenney

[PATCH tip/core/rcu 20/40] srcu: Move rcu_seq_start() and friends to rcu.h

2017-04-12 Thread Paul E. McKenney
This commit moves rcu_seq_start(), rcu_seq_end(), rcu_seq_snap(), and rcu_seq_done() from kernel/rcu/tree.c to kernel/rcu/rcu.h. This will allow SRCU to use these functions, which in turn will allow SRCU to move from a single global callback queue to a per-CPU callback queue. Signed-off-by: Paul

[PATCH tip/core/rcu 17/40] srcu: Allow SRCU to access rcu_scheduler_active

2017-04-12 Thread Paul E. McKenney
This is primarily a code-movement commit in preparation for allowing SRCU to handle early-boot SRCU grace periods. Signed-off-by: Paul E. McKenney --- include/linux/rcutiny.h | 6 +++--- kernel/rcu/tiny_plugin.h | 9 + kernel/rcu/tree.c| 2 +- kernel/rcu/tree_exp.h| 12

[PATCH tip/core/rcu 35/40] srcu: Merge ->srcu_state into ->srcu_gp_seq

2017-04-12 Thread Paul E. McKenney
Updating ->srcu_state and ->srcu_gp_seq will lead to extremely complex race conditions given multiple callback queues, so this commit takes advantage of the two-bit state now available in rcu_seq counters to store the state in the bottom two bits of ->srcu_gp_seq. Signed-off-by: Paul E. McKenney

[PATCH tip/core/rcu 20/40] srcu: Move rcu_seq_start() and friends to rcu.h

2017-04-12 Thread Paul E. McKenney
This commit moves rcu_seq_start(), rcu_seq_end(), rcu_seq_snap(), and rcu_seq_done() from kernel/rcu/tree.c to kernel/rcu/rcu.h. This will allow SRCU to use these functions, which in turn will allow SRCU to move from a single global callback queue to a per-CPU callback queue. Signed-off-by: Paul

[PATCH tip/core/rcu 33/40] srcu: Improve rcu_seq grace-period-counter abstraction

2017-04-12 Thread Paul E. McKenney
The expedited grace-period code contains several open-coded shifts know the format of an rcu_seq grace-period counter, which is not particularly good style. This commit therefore creates a new rcu_seq_ctr() function that extracts the counter portion of the counter, and an rcu_seq_state() function

[PATCH tip/core/rcu 33/40] srcu: Improve rcu_seq grace-period-counter abstraction

2017-04-12 Thread Paul E. McKenney
The expedited grace-period code contains several open-coded shifts know the format of an rcu_seq grace-period counter, which is not particularly good style. This commit therefore creates a new rcu_seq_ctr() function that extracts the counter portion of the counter, and an rcu_seq_state() function

Re: linux-next: manual merge of the scsi-mkp tree with the char-misc tree

2017-04-12 Thread Bart Van Assche
On Tue, 2017-04-11 at 21:00 -0400, Martin K. Petersen wrote: > Bart Van Assche writes: > > Sorry that I had not yet noticed Logan's patch series. Should my two > > patches that conflict with Logan's patch series be dropped and > > reworked after Logan's patches are

Re: linux-next: manual merge of the scsi-mkp tree with the char-misc tree

2017-04-12 Thread Bart Van Assche
On Tue, 2017-04-11 at 21:00 -0400, Martin K. Petersen wrote: > Bart Van Assche writes: > > Sorry that I had not yet noticed Logan's patch series. Should my two > > patches that conflict with Logan's patch series be dropped and > > reworked after Logan's patches are upstream? > > Obviously things

[PATCH tip/core/rcu 12/40] rcu: Pull rcu_qs_ctr into rcu_dynticks structure

2017-04-12 Thread Paul E. McKenney
The rcu_qs_ctr variable is yet another isolated per-CPU variable, so this commit pulls it into the pre-existing rcu_dynticks per-CPU structure. Signed-off-by: Paul E. McKenney --- .../RCU/Design/Data-Structures/Data-Structures.html | 12 ++--

[PATCH tip/core/rcu 27/40] srcu: Move combining-tree definitions for SRCU's benefit

2017-04-12 Thread Paul E. McKenney
This commit moves the C preprocessor code that defines the default shape of the rcu_node combining tree to a new include/linux/rcu_node_tree.h file as a first step towards enabling SRCU to create its own combining tree, which in turn enables SRCU to implement per-CPU callback handling, thus

[PATCH tip/core/rcu 12/40] rcu: Pull rcu_qs_ctr into rcu_dynticks structure

2017-04-12 Thread Paul E. McKenney
The rcu_qs_ctr variable is yet another isolated per-CPU variable, so this commit pulls it into the pre-existing rcu_dynticks per-CPU structure. Signed-off-by: Paul E. McKenney --- .../RCU/Design/Data-Structures/Data-Structures.html | 12 ++-- kernel/rcu/tree.c

[PATCH tip/core/rcu 27/40] srcu: Move combining-tree definitions for SRCU's benefit

2017-04-12 Thread Paul E. McKenney
This commit moves the C preprocessor code that defines the default shape of the rcu_node combining tree to a new include/linux/rcu_node_tree.h file as a first step towards enabling SRCU to create its own combining tree, which in turn enables SRCU to implement per-CPU callback handling, thus

[PATCH tip/core/rcu 23/40] srcu: Push srcu_advance_batches() fastpath into common case

2017-04-12 Thread Paul E. McKenney
This commit simplifies the SRCU state machine by pushing the srcu_advance_batches() idle-SRCU fastpath into the common case. This is done by giving srcu_reschedule() a delay parameter, which is zero in the call from srcu_advance_batches(). This commit is a step towards numbering callbacks in

[PATCH tip/core/rcu 23/40] srcu: Push srcu_advance_batches() fastpath into common case

2017-04-12 Thread Paul E. McKenney
This commit simplifies the SRCU state machine by pushing the srcu_advance_batches() idle-SRCU fastpath into the common case. This is done by giving srcu_reschedule() a delay parameter, which is zero in the call from srcu_advance_batches(). This commit is a step towards numbering callbacks in

[PATCH tip/core/rcu 28/40] srcu: Move rcu_init_levelspread() to rcu_tree_node.h

2017-04-12 Thread Paul E. McKenney
This commit moves the rcu_init_levelspread() function from kernel/rcu/tree.c to kernel/rcu/rcu.h so that SRCU can access it. This is another step towards enabling SRCU to create its own combining tree. This commit is code-movement only, give or take knock-on adjustments. Signed-off-by: Paul E.

[PATCH tip/core/rcu 28/40] srcu: Move rcu_init_levelspread() to rcu_tree_node.h

2017-04-12 Thread Paul E. McKenney
This commit moves the rcu_init_levelspread() function from kernel/rcu/tree.c to kernel/rcu/rcu.h so that SRCU can access it. This is another step towards enabling SRCU to create its own combining tree. This commit is code-movement only, give or take knock-on adjustments. Signed-off-by: Paul E.

[PATCH] MAINTAINERS: drop akarwar from mwifiex

2017-04-12 Thread Brian Norris
His email is bouncing, and I expect he's not doing this work any more. Cc: Amitkumar Karwar Cc: Nishant Sarmukadam Cc: Ganapathi Bhat Cc: Xinming Hu Signed-off-by: Brian Norris --- Or

[PATCH tip/core/rcu 16/40] srcu: Abstract multi-tail callback list handling

2017-04-12 Thread Paul E. McKenney
RCU has only one multi-tail callback list, which is implemented via the nxtlist, nxttail, nxtcompleted, qlen_lazy, and qlen fields in the rcu_data structure, and whose operations are open-code throughout the Tree RCU implementation. This has been more or less OK in the past, but upcoming

[PATCH tip/core/rcu 40/40] srcu: Parallelize callback handling

2017-04-12 Thread Paul E. McKenney
Peter Zijlstra proposed using SRCU to reduce mmap_sem contention [1], however, there are workloads that could result in a high volume of concurrent invocations of call_srcu(), which with current SRCU would result in excessive lock contention on the srcu_struct structure's ->queue_lock, which

[PATCH] MAINTAINERS: drop akarwar from mwifiex

2017-04-12 Thread Brian Norris
His email is bouncing, and I expect he's not doing this work any more. Cc: Amitkumar Karwar Cc: Nishant Sarmukadam Cc: Ganapathi Bhat Cc: Xinming Hu Signed-off-by: Brian Norris --- Or alternatively, we can update his email address. I just don't want to keep seeing bounced emails :)

[PATCH tip/core/rcu 16/40] srcu: Abstract multi-tail callback list handling

2017-04-12 Thread Paul E. McKenney
RCU has only one multi-tail callback list, which is implemented via the nxtlist, nxttail, nxtcompleted, qlen_lazy, and qlen fields in the rcu_data structure, and whose operations are open-code throughout the Tree RCU implementation. This has been more or less OK in the past, but upcoming

[PATCH tip/core/rcu 40/40] srcu: Parallelize callback handling

2017-04-12 Thread Paul E. McKenney
Peter Zijlstra proposed using SRCU to reduce mmap_sem contention [1], however, there are workloads that could result in a high volume of concurrent invocations of call_srcu(), which with current SRCU would result in excessive lock contention on the srcu_struct structure's ->queue_lock, which

[PATCH tip/core/rcu 24/40] srcu: Move to state-based grace-period sequencing

2017-04-12 Thread Paul E. McKenney
The current SRCU grace-period processing might never reach the last portion of srcu_advance_batches(). This is OK given the current implementation, as the first portion, up to the try_check_zero() following the srcu_flip() is sufficient to drive grace periods forward. However, it has the

[PATCH tip/core/rcu 38/40] srcutorture: Print Tiny SRCU reader statistics

2017-04-12 Thread Paul E. McKenney
The srcu_torture_stats() function is adapted to the specific srcu_struct layout traditionally used by SRCU. This commit therefore adds support for Tiny SRCU. Signed-off-by: Paul E. McKenney --- kernel/rcu/rcutorture.c | 15 +++ 1 file changed, 11

[PATCH tip/core/rcu 24/40] srcu: Move to state-based grace-period sequencing

2017-04-12 Thread Paul E. McKenney
The current SRCU grace-period processing might never reach the last portion of srcu_advance_batches(). This is OK given the current implementation, as the first portion, up to the try_check_zero() following the srcu_flip() is sufficient to drive grace periods forward. However, it has the

[PATCH tip/core/rcu 38/40] srcutorture: Print Tiny SRCU reader statistics

2017-04-12 Thread Paul E. McKenney
The srcu_torture_stats() function is adapted to the specific srcu_struct layout traditionally used by SRCU. This commit therefore adds support for Tiny SRCU. Signed-off-by: Paul E. McKenney --- kernel/rcu/rcutorture.c | 15 +++ 1 file changed, 11 insertions(+), 4 deletions(-) diff

[PATCH tip/core/rcu 22/40] rcu: Fix warning in rcu_seq_end()

2017-04-12 Thread Paul E. McKenney
From: Dmitry Vyukov The rcu_seq_end() function increments seq signifying completion of a grace period, after that checks that the seq is even and wakes _synchronize_rcu_expedited(). The _synchronize_rcu_expedited() function uses wait_event() to wait for even seq. The

[PATCH tip/core/rcu 39/40] srcu: Introduce CLASSIC_SRCU Kconfig option

2017-04-12 Thread Paul E. McKenney
The TREE_SRCU rewrite is large and a bit on the non-simple side, so this commit helps reduce risk by allowing the old v4.11 SRCU algorithm to be selected using a new CLASSIC_SRCU Kconfig option that depends on RCU_EXPERT. The default is to use the new TREE_SRCU and TINY_SRCU algorithms, in order

[PATCH tip/core/rcu 22/40] rcu: Fix warning in rcu_seq_end()

2017-04-12 Thread Paul E. McKenney
From: Dmitry Vyukov The rcu_seq_end() function increments seq signifying completion of a grace period, after that checks that the seq is even and wakes _synchronize_rcu_expedited(). The _synchronize_rcu_expedited() function uses wait_event() to wait for even seq. The problem is that

[PATCH tip/core/rcu 39/40] srcu: Introduce CLASSIC_SRCU Kconfig option

2017-04-12 Thread Paul E. McKenney
The TREE_SRCU rewrite is large and a bit on the non-simple side, so this commit helps reduce risk by allowing the old v4.11 SRCU algorithm to be selected using a new CLASSIC_SRCU Kconfig option that depends on RCU_EXPERT. The default is to use the new TREE_SRCU and TINY_SRCU algorithms, in order

[PATCH tip/core/rcu 30/40] srcu: Move rcu_node traversal macros to rcu.h

2017-04-12 Thread Paul E. McKenney
This commit moves rcu_for_each_node_breadth_first(), rcu_for_each_nonleaf_node_breadth_first(), and rcu_for_each_leaf_node() from kernel/rcu/tree.h to kernel/rcu/rcu.h so that SRCU can access them. This commit is code-movement only. Signed-off-by: Paul E. McKenney ---

[PATCH tip/core/rcu 30/40] srcu: Move rcu_node traversal macros to rcu.h

2017-04-12 Thread Paul E. McKenney
This commit moves rcu_for_each_node_breadth_first(), rcu_for_each_nonleaf_node_breadth_first(), and rcu_for_each_leaf_node() from kernel/rcu/tree.h to kernel/rcu/rcu.h so that SRCU can access them. This commit is code-movement only. Signed-off-by: Paul E. McKenney --- kernel/rcu/rcu.h | 35

[PATCH tip/core/rcu 01/40] rcu: Maintain special bits at bottom of ->dynticks counter

2017-04-12 Thread Paul E. McKenney
Currently, IPIs are used to force other CPUs to invalidate their TLBs in response to a kernel virtual-memory mapping change. This works, but degrades both battery lifetime (for idle CPUs) and real-time response (for nohz_full CPUs), and in addition results in unnecessary IPIs due to the fact that

[PATCH tip/core/rcu 34/40] srcu: Allow a second bit in rcu_seq for SRCU state

2017-04-12 Thread Paul E. McKenney
This commit increases the number of reserved bits at the bottom of an rcu_seq grace-period counter from one to two, as will be needed to accommodate SRCU's three-state grace periods. Signed-off-by: Paul E. McKenney --- kernel/rcu/rcu.h | 2 +- 1 file changed, 1

[PATCH tip/core/rcu 01/40] rcu: Maintain special bits at bottom of ->dynticks counter

2017-04-12 Thread Paul E. McKenney
Currently, IPIs are used to force other CPUs to invalidate their TLBs in response to a kernel virtual-memory mapping change. This works, but degrades both battery lifetime (for idle CPUs) and real-time response (for nohz_full CPUs), and in addition results in unnecessary IPIs due to the fact that

[PATCH tip/core/rcu 34/40] srcu: Allow a second bit in rcu_seq for SRCU state

2017-04-12 Thread Paul E. McKenney
This commit increases the number of reserved bits at the bottom of an rcu_seq grace-period counter from one to two, as will be needed to accommodate SRCU's three-state grace periods. Signed-off-by: Paul E. McKenney --- kernel/rcu/rcu.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff

[PATCH tip/core/rcu 06/40] rcu: Semicolon inside RCU_TRACE() for Tiny RCU

2017-04-12 Thread Paul E. McKenney
The current use of "RCU_TRACE(statement);" can cause odd bugs, especially where "statement" is a local-variable declaration, as it can leave a misplaced ";" in the source code. This commit therefore converts these to "RCU_TRACE(statement;)", which avoids the misplaced ";". Reported-by: Josh

[PATCH tip/core/rcu 06/40] rcu: Semicolon inside RCU_TRACE() for Tiny RCU

2017-04-12 Thread Paul E. McKenney
The current use of "RCU_TRACE(statement);" can cause odd bugs, especially where "statement" is a local-variable declaration, as it can leave a misplaced ";" in the source code. This commit therefore converts these to "RCU_TRACE(statement;)", which avoids the misplaced ";". Reported-by: Josh

[PATCH tip/core/rcu 26/40] srcu: Use rcu_segcblist to track SRCU callbacks

2017-04-12 Thread Paul E. McKenney
This commit switches SRCU from custom-built callback queues to the new rcu_segcblist structure. This change associates grace-period sequence numbers with groups of callbacks, which will be needed for efficient processing of per-CPU callbacks. Signed-off-by: Paul E. McKenney

[PATCH tip/core/rcu 26/40] srcu: Use rcu_segcblist to track SRCU callbacks

2017-04-12 Thread Paul E. McKenney
This commit switches SRCU from custom-built callback queues to the new rcu_segcblist structure. This change associates grace-period sequence numbers with groups of callbacks, which will be needed for efficient processing of per-CPU callbacks. Signed-off-by: Paul E. McKenney ---

[PATCH tip/core/rcu 04/40] srcu: Check for tardy grace-period activity in cleanup_srcu_struct()

2017-04-12 Thread Paul E. McKenney
Users of SRCU are obliged to complete all grace-period activity before invoking cleanup_srcu_struct(). This means that all calls to either synchronize_srcu() or synchronize_srcu_expedited() must have returned, and all calls to call_srcu() must have returned, and the last call to call_srcu() must

[PATCH tip/core/rcu 10/40] rcu: Make rcu_note_context_switch() do deferred NOCB wakeups

2017-04-12 Thread Paul E. McKenney
If a CONFIG_RCU_NOCB_CPUS kernel invokes call_rcu() with interrupts disabled, wakeups must be deferred in order to avoid self-deadlock in the cases where the disabled interrupts are due to scheduler locks being held. In this case, a flag is set and is checked on entry to extended quiescent states

[PATCH tip/core/rcu 04/40] srcu: Check for tardy grace-period activity in cleanup_srcu_struct()

2017-04-12 Thread Paul E. McKenney
Users of SRCU are obliged to complete all grace-period activity before invoking cleanup_srcu_struct(). This means that all calls to either synchronize_srcu() or synchronize_srcu_expedited() must have returned, and all calls to call_srcu() must have returned, and the last call to call_srcu() must

[PATCH tip/core/rcu 10/40] rcu: Make rcu_note_context_switch() do deferred NOCB wakeups

2017-04-12 Thread Paul E. McKenney
If a CONFIG_RCU_NOCB_CPUS kernel invokes call_rcu() with interrupts disabled, wakeups must be deferred in order to avoid self-deadlock in the cases where the disabled interrupts are due to scheduler locks being held. In this case, a flag is set and is checked on entry to extended quiescent states

[PATCH tip/core/rcu 08/40] rcu: Make call_rcu() do deferred NOCB wakeups

2017-04-12 Thread Paul E. McKenney
If a CONFIG_RCU_NOCB_CPUS kernel invokes call_rcu() with interrupts disabled, wakeups must be deferred in order to avoid self-deadlock in the cases where the disabled interrupts are due to scheduler locks being held. In this case, a flag is set and is checked on entry to extended quiescent states

[PATCH tip/core/rcu 08/40] rcu: Make call_rcu() do deferred NOCB wakeups

2017-04-12 Thread Paul E. McKenney
If a CONFIG_RCU_NOCB_CPUS kernel invokes call_rcu() with interrupts disabled, wakeups must be deferred in order to avoid self-deadlock in the cases where the disabled interrupts are due to scheduler locks being held. In this case, a flag is set and is checked on entry to extended quiescent states

[PATCH tip/core/rcu 0/40] SRCU callback parallelization for 4.12

2017-04-12 Thread Paul E. McKenney
Hello! This series moves SRCU from its traditional single per-srcu_struct callback queue to per-srcu_struct/per-CPU callback queues. This involves abstracting functionality from Tree RCU, which results in a large conflict footprint, which in turn results in some otherwise unrelated patches

[PATCH tip/core/rcu 0/40] SRCU callback parallelization for 4.12

2017-04-12 Thread Paul E. McKenney
Hello! This series moves SRCU from its traditional single per-srcu_struct callback queue to per-srcu_struct/per-CPU callback queues. This involves abstracting functionality from Tree RCU, which results in a large conflict footprint, which in turn results in some otherwise unrelated patches

[PATCH] sched: Have do_idle() call __schedule() without enabling preemption

2017-04-12 Thread Steven Rostedt
From: Steven Rostedt (VMware) I finally got around to creating trampolines for dynamically allocated ftrace_ops with using synchronize_rcu_tasks(). For users of the ftrace function hook callbacks, like perf, that allocate the ftrace_ops descriptor via kmalloc() and friends,

[PATCH] sched: Have do_idle() call __schedule() without enabling preemption

2017-04-12 Thread Steven Rostedt
From: Steven Rostedt (VMware) I finally got around to creating trampolines for dynamically allocated ftrace_ops with using synchronize_rcu_tasks(). For users of the ftrace function hook callbacks, like perf, that allocate the ftrace_ops descriptor via kmalloc() and friends, ftrace was not able

Re: [PATCH] pci/quirks: ITE 8893 needs quirk_use_pcie_bridge_dma_alias

2017-04-12 Thread Bjorn Helgaas
On Mon, Apr 10, 2017 at 09:01:27PM -0400, Jarod Wilson wrote: > This bridge has the same problems as the ITE 8892, which were resulting in > crippling an older PCI 1Gbps NIC down to 45Mbps throughput with IOMMU and > VT-d enabled. With the patch, this old e1000 goes back up to ~900Mbps. > >

Re: [PATCH 3/3] drm/vc4: Add support for dma-buf fencing.

2017-04-12 Thread Eric Anholt
Daniel Vetter writes: > On Mon, Apr 10, 2017 at 06:44:14PM -0700, Eric Anholt wrote: >> This is needed for proper synchronization with display on another DRM >> device (pl111 or tinydrm) with buffers produced by vc4 V3D. Fixes the >> new igt vc4_dmabuf_poll testcase, and

Re: [PATCH] pci/quirks: ITE 8893 needs quirk_use_pcie_bridge_dma_alias

2017-04-12 Thread Bjorn Helgaas
On Mon, Apr 10, 2017 at 09:01:27PM -0400, Jarod Wilson wrote: > This bridge has the same problems as the ITE 8892, which were resulting in > crippling an older PCI 1Gbps NIC down to 45Mbps throughput with IOMMU and > VT-d enabled. With the patch, this old e1000 goes back up to ~900Mbps. > >

Re: [PATCH 3/3] drm/vc4: Add support for dma-buf fencing.

2017-04-12 Thread Eric Anholt
Daniel Vetter writes: > On Mon, Apr 10, 2017 at 06:44:14PM -0700, Eric Anholt wrote: >> This is needed for proper synchronization with display on another DRM >> device (pl111 or tinydrm) with buffers produced by vc4 V3D. Fixes the >> new igt vc4_dmabuf_poll testcase, and rendering of one of the

Re: [PATCH 5/6] perf tools: disable JVMTI if no ELF support available

2017-04-12 Thread Jiri Olsa
On Wed, Apr 12, 2017 at 10:07:45AM -0700, David Carrillo-Cisneros wrote: > The build of JVMTI depends on LIBELF (-lelf). Make Makefile.conf > check this dependendancy and notify user when not present. > > v2: Comma nitpicking. I think Arnaldo would change that.. but thanks! ;-) jirka > >

Re: [PATCH 5/6] perf tools: disable JVMTI if no ELF support available

2017-04-12 Thread Jiri Olsa
On Wed, Apr 12, 2017 at 10:07:45AM -0700, David Carrillo-Cisneros wrote: > The build of JVMTI depends on LIBELF (-lelf). Make Makefile.conf > check this dependendancy and notify user when not present. > > v2: Comma nitpicking. I think Arnaldo would change that.. but thanks! ;-) jirka > >

Re: [PATCH 2/3] drm/etnaviv: Expose our reservation object when exporting a dmabuf.

2017-04-12 Thread Eric Anholt
Lucas Stach writes: > Am Mittwoch, den 12.04.2017, 14:47 +0200 schrieb Daniel Vetter: >> On Mon, Apr 10, 2017 at 06:44:13PM -0700, Eric Anholt wrote: >> > Without this, polling on the dma-buf (and presumably other devices >> > synchronizing against our rendering) would

Re: [PATCH 2/3] drm/etnaviv: Expose our reservation object when exporting a dmabuf.

2017-04-12 Thread Eric Anholt
Lucas Stach writes: > Am Mittwoch, den 12.04.2017, 14:47 +0200 schrieb Daniel Vetter: >> On Mon, Apr 10, 2017 at 06:44:13PM -0700, Eric Anholt wrote: >> > Without this, polling on the dma-buf (and presumably other devices >> > synchronizing against our rendering) would return immediately, even

Re: [PATCH v1]] lib/btree.c: optimise the code by previously getpos function

2017-04-12 Thread Christoph Hellwig
On Wed, Apr 12, 2017 at 06:03:10PM +0800, Leno Hou wrote: > 1. Actually, this is cleanup of the code to human being read but not > optimize. And When I compiled the kernel > and checked with object code . It proved as same as before. So it's no > need to test this change. > > 2. This Simple

Re: [PATCH] mm: add VM_STATIC flag to vmalloc and prevent from removing the areas

2017-04-12 Thread Christoph Hellwig
On Wed, Apr 12, 2017 at 08:42:08PM +0900, Hoeun Ryu wrote: > > > On Apr 12, 2017, at 3:02 PM, Christoph Hellwig wrote: > > > >> On Wed, Apr 12, 2017 at 02:01:59PM +0900, Hoeun Ryu wrote: > >> vm_area_add_early/vm_area_register_early() are used to reserve vmalloc area > >>

Re: [PATCH v1]] lib/btree.c: optimise the code by previously getpos function

2017-04-12 Thread Christoph Hellwig
On Wed, Apr 12, 2017 at 06:03:10PM +0800, Leno Hou wrote: > 1. Actually, this is cleanup of the code to human being read but not > optimize. And When I compiled the kernel > and checked with object code . It proved as same as before. So it's no > need to test this change. > > 2. This Simple

Re: [PATCH] mm: add VM_STATIC flag to vmalloc and prevent from removing the areas

2017-04-12 Thread Christoph Hellwig
On Wed, Apr 12, 2017 at 08:42:08PM +0900, Hoeun Ryu wrote: > > > On Apr 12, 2017, at 3:02 PM, Christoph Hellwig wrote: > > > >> On Wed, Apr 12, 2017 at 02:01:59PM +0900, Hoeun Ryu wrote: > >> vm_area_add_early/vm_area_register_early() are used to reserve vmalloc area > >> during boot process

Re: please use pci_alloc_irq_vectors in thunderx_edac.

2017-04-12 Thread Christoph Hellwig
On Wed, Apr 12, 2017 at 07:28:59PM +0200, Borislav Petkov wrote: > On Wed, Apr 12, 2017 at 07:16:22PM +0200, Christoph Hellwig wrote: > > Did we ever do this for deprecated APIs before? For now I'm just watching > > Linux-next and sending gentle reminders :) > > $ git grep __deprecated > >

Re: please use pci_alloc_irq_vectors in thunderx_edac.

2017-04-12 Thread Christoph Hellwig
On Wed, Apr 12, 2017 at 07:28:59PM +0200, Borislav Petkov wrote: > On Wed, Apr 12, 2017 at 07:16:22PM +0200, Christoph Hellwig wrote: > > Did we ever do this for deprecated APIs before? For now I'm just watching > > Linux-next and sending gentle reminders :) > > $ git grep __deprecated > >

Re: [PATCH] switchtec: Fix an error handling

2017-04-12 Thread Logan Gunthorpe
On 12/04/17 11:27 AM, Bjorn Helgaas wrote: > On Tue, Apr 11, 2017 at 06:32:04AM +0200, Christophe JAILLET wrote: >> 'stuser_create' returns an error pointer in case of error, not NULL. >> So test its return value with IS_ERR. >> >> Fixes: 74004262f329 ("MicroSemi Switchtec management interface

Re: [PATCH] switchtec: Fix an error handling

2017-04-12 Thread Logan Gunthorpe
On 12/04/17 11:27 AM, Bjorn Helgaas wrote: > On Tue, Apr 11, 2017 at 06:32:04AM +0200, Christophe JAILLET wrote: >> 'stuser_create' returns an error pointer in case of error, not NULL. >> So test its return value with IS_ERR. >> >> Fixes: 74004262f329 ("MicroSemi Switchtec management interface

[PATCH v5 3/8] mfd: retu: Add OF device ID table

2017-04-12 Thread Javier Martinez Canillas
The driver doesn't have a struct of_device_id table but supported devices are registered via Device Trees. This is working on the assumption that a I2C device registered via OF will always match a legacy I2C device ID and that the MODALIAS reported will always be of the form i2c:. But this could

[PATCH v5 3/8] mfd: retu: Add OF device ID table

2017-04-12 Thread Javier Martinez Canillas
The driver doesn't have a struct of_device_id table but supported devices are registered via Device Trees. This is working on the assumption that a I2C device registered via OF will always match a legacy I2C device ID and that the MODALIAS reported will always be of the form i2c:. But this could

[PATCH v5 7/8] mfd: tps6105x: Add OF device ID table

2017-04-12 Thread Javier Martinez Canillas
The driver doesn't have a struct of_device_id table but supported devices are registered via Device Trees. This is working on the assumption that a I2C device registered via OF will always match a legacy I2C device ID and that the MODALIAS reported will always be of the form i2c:. But this could

[PATCH v5 7/8] mfd: tps6105x: Add OF device ID table

2017-04-12 Thread Javier Martinez Canillas
The driver doesn't have a struct of_device_id table but supported devices are registered via Device Trees. This is working on the assumption that a I2C device registered via OF will always match a legacy I2C device ID and that the MODALIAS reported will always be of the form i2c:. But this could

Re: please use pci_alloc_irq_vectors in thunderx_edac.

2017-04-12 Thread Borislav Petkov
On Wed, Apr 12, 2017 at 07:16:22PM +0200, Christoph Hellwig wrote: > Did we ever do this for deprecated APIs before? For now I'm just watching > Linux-next and sending gentle reminders :) $ git grep __deprecated shows some have been done. I wonder whether marking pci_enable_msix_exact() would

Re: please use pci_alloc_irq_vectors in thunderx_edac.

2017-04-12 Thread Borislav Petkov
On Wed, Apr 12, 2017 at 07:16:22PM +0200, Christoph Hellwig wrote: > Did we ever do this for deprecated APIs before? For now I'm just watching > Linux-next and sending gentle reminders :) $ git grep __deprecated shows some have been done. I wonder whether marking pci_enable_msix_exact() would

[PATCH v5 8/8] ARM: ux500: Add vendor prefix to tps61052 node

2017-04-12 Thread Javier Martinez Canillas
The tps61052 device node doesn't have a vendor prefix in its compatible string, fix it by adding one. Signed-off-by: Javier Martinez Canillas Acked-by: Rob Herring Acked-by: Tony Lindgren --- Changes in v5: - Add Rob Herring's

[PATCH v5 8/8] ARM: ux500: Add vendor prefix to tps61052 node

2017-04-12 Thread Javier Martinez Canillas
The tps61052 device node doesn't have a vendor prefix in its compatible string, fix it by adding one. Signed-off-by: Javier Martinez Canillas Acked-by: Rob Herring Acked-by: Tony Lindgren --- Changes in v5: - Add Rob Herring's Acked-by tag. - Add Acked-by: Tony Lindgren 's Acked-by tag.

[PATCH v5 5/8] i2c: i2c-cbus-gpio: Add vendor prefix to retu node in example

2017-04-12 Thread Javier Martinez Canillas
The example contains a device node for a retu device, but its compatible string doesn't have a vendor prefix. While being there, drop the -mfd suffix since isn't correct. Signed-off-by: Javier Martinez Canillas Acked-by: Rob Herring Acked-by: Aaro

[PATCH v5 5/8] i2c: i2c-cbus-gpio: Add vendor prefix to retu node in example

2017-04-12 Thread Javier Martinez Canillas
The example contains a device node for a retu device, but its compatible string doesn't have a vendor prefix. While being there, drop the -mfd suffix since isn't correct. Signed-off-by: Javier Martinez Canillas Acked-by: Rob Herring Acked-by: Aaro Koskinen Acked-by: Tony Lindgren ---

[PATCH v5 4/8] ARM: dts: n8x0: Add vendor prefix to retu node

2017-04-12 Thread Javier Martinez Canillas
The retu device node doesn't have a vendor prefix in its compatible string, fix it by adding one. Signed-off-by: Javier Martinez Canillas Acked-by: Rob Herring Acked-by: Aaro Koskinen Acked-by: Tony Lindgren ---

[PATCH v5 2/8] mfd: retu: Drop -mfd suffix from I2C device ID name

2017-04-12 Thread Javier Martinez Canillas
It's not correct to encode the subsystem in the I2C device name, so drop the -mfd suffix. To maintain bisect-ability, change driver and platform code / DTS users in the same patch. Suggested-by: Lee Jones Signed-off-by: Javier Martinez Canillas

[PATCH v5 6/8] dt-bindings: mfd: Add TI tps6105x chip bindings

2017-04-12 Thread Javier Martinez Canillas
There are Device Tree source files defining a device node for the tps61050/61052 I2C chip but there isn't a binding document for it. Signed-off-by: Javier Martinez Canillas Acked-by: Rob Herring Acked-by: Tony Lindgren --- Changes in

[PATCH v5 4/8] ARM: dts: n8x0: Add vendor prefix to retu node

2017-04-12 Thread Javier Martinez Canillas
The retu device node doesn't have a vendor prefix in its compatible string, fix it by adding one. Signed-off-by: Javier Martinez Canillas Acked-by: Rob Herring Acked-by: Aaro Koskinen Acked-by: Tony Lindgren --- Changes in v5: - Add Rob Herring's Acked-by tag. - Add Aaro Koskinen's Acked-by

[PATCH v5 2/8] mfd: retu: Drop -mfd suffix from I2C device ID name

2017-04-12 Thread Javier Martinez Canillas
It's not correct to encode the subsystem in the I2C device name, so drop the -mfd suffix. To maintain bisect-ability, change driver and platform code / DTS users in the same patch. Suggested-by: Lee Jones Signed-off-by: Javier Martinez Canillas Acked-by: Rob Herring Acked-by: Aaro Koskinen

[PATCH v5 6/8] dt-bindings: mfd: Add TI tps6105x chip bindings

2017-04-12 Thread Javier Martinez Canillas
There are Device Tree source files defining a device node for the tps61050/61052 I2C chip but there isn't a binding document for it. Signed-off-by: Javier Martinez Canillas Acked-by: Rob Herring Acked-by: Tony Lindgren --- Changes in v5: - Add Rob Herring's Acked-by tag. - Add Acked-by: Tony

[PATCH v5 0/8] mfd: Add OF device table to I2C drivers that are missing it

2017-04-12 Thread Javier Martinez Canillas
Hello, This series add OF device ID tables to mfd I2C drivers whose devices are either used in Device Tree source files or are listed in binding docs as a compatible string. That's done because the plan is to change the I2C core to report proper OF modaliases instead of always reporting a

[PATCH v5 0/8] mfd: Add OF device table to I2C drivers that are missing it

2017-04-12 Thread Javier Martinez Canillas
Hello, This series add OF device ID tables to mfd I2C drivers whose devices are either used in Device Tree source files or are listed in binding docs as a compatible string. That's done because the plan is to change the I2C core to report proper OF modaliases instead of always reporting a

[PATCH v5 1/8] dt-bindings: mfd: Add retu/tahvo ASIC chips bindings

2017-04-12 Thread Javier Martinez Canillas
There are Device Tree source files defining a device node for the retu/tahvo I2C chip, but there isn't a DT binding document for it. Signed-off-by: Javier Martinez Canillas Acked-by: Rob Herring Acked-by: Aaro Koskinen Acked-by:

[PATCH v5 1/8] dt-bindings: mfd: Add retu/tahvo ASIC chips bindings

2017-04-12 Thread Javier Martinez Canillas
There are Device Tree source files defining a device node for the retu/tahvo I2C chip, but there isn't a DT binding document for it. Signed-off-by: Javier Martinez Canillas Acked-by: Rob Herring Acked-by: Aaro Koskinen Acked-by: Tony Lindgren Acked-by: Lee Jones --- Changes in v5: - Add

<    2   3   4   5   6   7   8   9   10   11   >