root/kernel/locking/lock_events_list.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /*
   3  * This program is free software; you can redistribute it and/or modify
   4  * it under the terms of the GNU General Public License as published by
   5  * the Free Software Foundation; either version 2 of the License, or
   6  * (at your option) any later version.
   7  *
   8  * This program is distributed in the hope that it will be useful,
   9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  11  * GNU General Public License for more details.
  12  *
  13  * Authors: Waiman Long <longman@redhat.com>
  14  */
  15 
  16 #ifndef LOCK_EVENT
  17 #define LOCK_EVENT(name)        LOCKEVENT_ ## name,
  18 #endif
  19 
  20 #ifdef CONFIG_QUEUED_SPINLOCKS
  21 #ifdef CONFIG_PARAVIRT_SPINLOCKS
  22 /*
  23  * Locking events for PV qspinlock.
  24  */
  25 LOCK_EVENT(pv_hash_hops)        /* Average # of hops per hashing operation */
  26 LOCK_EVENT(pv_kick_unlock)      /* # of vCPU kicks issued at unlock time   */
  27 LOCK_EVENT(pv_kick_wake)        /* # of vCPU kicks for pv_latency_wake     */
  28 LOCK_EVENT(pv_latency_kick)     /* Average latency (ns) of vCPU kick       */
  29 LOCK_EVENT(pv_latency_wake)     /* Average latency (ns) of kick-to-wakeup  */
  30 LOCK_EVENT(pv_lock_stealing)    /* # of lock stealing operations           */
  31 LOCK_EVENT(pv_spurious_wakeup)  /* # of spurious wakeups in non-head vCPUs */
  32 LOCK_EVENT(pv_wait_again)       /* # of wait's after queue head vCPU kick  */
  33 LOCK_EVENT(pv_wait_early)       /* # of early vCPU wait's                  */
  34 LOCK_EVENT(pv_wait_head)        /* # of vCPU wait's at the queue head      */
  35 LOCK_EVENT(pv_wait_node)        /* # of vCPU wait's at non-head queue node */
  36 #endif /* CONFIG_PARAVIRT_SPINLOCKS */
  37 
  38 /*
  39  * Locking events for qspinlock
  40  *
  41  * Subtracting lock_use_node[234] from lock_slowpath will give you
  42  * lock_use_node1.
  43  */
  44 LOCK_EVENT(lock_pending)        /* # of locking ops via pending code         */
  45 LOCK_EVENT(lock_slowpath)       /* # of locking ops via MCS lock queue       */
  46 LOCK_EVENT(lock_use_node2)      /* # of locking ops that use 2nd percpu node */
  47 LOCK_EVENT(lock_use_node3)      /* # of locking ops that use 3rd percpu node */
  48 LOCK_EVENT(lock_use_node4)      /* # of locking ops that use 4th percpu node */
  49 LOCK_EVENT(lock_no_node)        /* # of locking ops w/o using percpu node    */
  50 #endif /* CONFIG_QUEUED_SPINLOCKS */
  51 
  52 /*
  53  * Locking events for rwsem
  54  */
  55 LOCK_EVENT(rwsem_sleep_reader)  /* # of reader sleeps                   */
  56 LOCK_EVENT(rwsem_sleep_writer)  /* # of writer sleeps                   */
  57 LOCK_EVENT(rwsem_wake_reader)   /* # of reader wakeups                  */
  58 LOCK_EVENT(rwsem_wake_writer)   /* # of writer wakeups                  */
  59 LOCK_EVENT(rwsem_opt_rlock)     /* # of opt-acquired read locks         */
  60 LOCK_EVENT(rwsem_opt_wlock)     /* # of opt-acquired write locks        */
  61 LOCK_EVENT(rwsem_opt_fail)      /* # of failed optspins                 */
  62 LOCK_EVENT(rwsem_opt_nospin)    /* # of disabled optspins               */
  63 LOCK_EVENT(rwsem_opt_norspin)   /* # of disabled reader-only optspins   */
  64 LOCK_EVENT(rwsem_opt_rlock2)    /* # of opt-acquired 2ndary read locks  */
  65 LOCK_EVENT(rwsem_rlock)         /* # of read locks acquired             */
  66 LOCK_EVENT(rwsem_rlock_fast)    /* # of fast read locks acquired        */
  67 LOCK_EVENT(rwsem_rlock_fail)    /* # of failed read lock acquisitions   */
  68 LOCK_EVENT(rwsem_rlock_handoff) /* # of read lock handoffs              */
  69 LOCK_EVENT(rwsem_wlock)         /* # of write locks acquired            */
  70 LOCK_EVENT(rwsem_wlock_fail)    /* # of failed write lock acquisitions  */
  71 LOCK_EVENT(rwsem_wlock_handoff) /* # of write lock handoffs             */

/* [<][>][^][v][top][bottom][index][help] */