Changeset f0fcb04 in mainline for kernel/generic/include


Ignore:
Timestamp:
2012-07-29T19:26:32Z (13 years ago)
Author:
Adam Hraska <adam.hraska+hos@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
d4d36f9
Parents:
5b03a72
Message:

rcu: Replaced checking three variables to see if the detector needs to be notified in rcu_read_unlock() with a single bool cpu.signal_unlock.

Location:
kernel/generic/include/synch
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/include/synch/rcu.h

    r5b03a72 rf0fcb04  
    200200                /*
    201201                 * The thread was preempted while in a critical section or
    202                  * the detector is eagerly waiting for this cpu's reader
    203                  * to finish.
    204                  *
    205                  * Note that THREAD may be 0 in scheduler() and not just during boot.
     202                 * the detector is eagerly waiting for this cpu's reader to finish.
    206203                 */
    207                 if ((THREAD && THREAD->rcu.was_preempted) || CPU->rcu.is_delaying_gp) {
     204                if (CPU->rcu.signal_unlock) {
    208205                        /* Rechecks with disabled interrupts. */
    209206                        _rcu_signal_read_unlock();
    210207                }
    211208        }
    212 
    213209       
    214210        preemption_enable();
  • kernel/generic/include/synch/rcu_types.h

    r5b03a72 rf0fcb04  
    107107        bool is_delaying_gp;
    108108       
     109        /** True if we should signal the detector that we exited a reader section.
     110         *
     111         * Equal to (THREAD->rcu.was_preempted || CPU->rcu.is_delaying_gp).
     112         */
     113        bool signal_unlock;
     114       
    109115        /** Positive if there are callbacks pending in arriving_cbs. */
    110116        semaphore_t arrived_flag;
Note: See TracChangeset for help on using the changeset viewer.