tree.c (eaaf055f27a0eaaed0cdb0d3aa8d7fb892829ccb) tree.c (e0aff97355575ac6a28a48a4217533a3953095c5)
1/*
2 * Read-Copy Update mechanism for mutual exclusion
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *

--- 2644 unchanged lines hidden (view full) ---

2653 rcu_state.gp_kthread ? rcu_state.gp_kthread->state : 0x1ffffL);
2654 WARN_ON(1);
2655 if (rnp_root != rnp)
2656 raw_spin_unlock_rcu_node(rnp_root);
2657 raw_spin_unlock_irqrestore_rcu_node(rnp, flags);
2658}
2659
2660/*
1/*
2 * Read-Copy Update mechanism for mutual exclusion
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *

--- 2644 unchanged lines hidden (view full) ---

2653 rcu_state.gp_kthread ? rcu_state.gp_kthread->state : 0x1ffffL);
2654 WARN_ON(1);
2655 if (rnp_root != rnp)
2656 raw_spin_unlock_rcu_node(rnp_root);
2657 raw_spin_unlock_irqrestore_rcu_node(rnp, flags);
2658}
2659
2660/*
2661 * Do a forward-progress check for rcutorture. This is normally invoked
2662 * due to an OOM event. The argument "j" gives the time period during
2663 * which rcutorture would like progress to have been made.
2664 */
2665void rcu_fwd_progress_check(unsigned long j)
2666{
2667 struct rcu_data *rdp;
2668
2669 if (rcu_gp_in_progress()) {
2670 show_rcu_gp_kthreads();
2671 } else {
2672 preempt_disable();
2673 rdp = this_cpu_ptr(&rcu_data);
2674 rcu_check_gp_start_stall(rdp->mynode, rdp, j);
2675 preempt_enable();
2676 }
2677}
2678EXPORT_SYMBOL_GPL(rcu_fwd_progress_check);
2679
2680/*
2661 * This does the RCU core processing work for the specified rcu_data
2662 * structures. This may be called only from the CPU to whom the rdp
2663 * belongs.
2664 */
2665static __latent_entropy void rcu_process_callbacks(struct softirq_action *unused)
2666{
2667 unsigned long flags;
2668 struct rcu_data *rdp = raw_cpu_ptr(&rcu_data);

--- 1081 unchanged lines hidden ---
2681 * This does the RCU core processing work for the specified rcu_data
2682 * structures. This may be called only from the CPU to whom the rdp
2683 * belongs.
2684 */
2685static __latent_entropy void rcu_process_callbacks(struct softirq_action *unused)
2686{
2687 unsigned long flags;
2688 struct rcu_data *rdp = raw_cpu_ptr(&rcu_data);

--- 1081 unchanged lines hidden ---