~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/linux/rcutiny.h

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /include/linux/rcutiny.h (Version linux-6.12-rc7) and /include/linux/rcutiny.h (Version ccs-tools-1.8.9)


** Warning: Cannot open xref database.

  1 /* SPDX-License-Identifier: GPL-2.0+ */             1 
  2 /*                                                
  3  * Read-Copy Update mechanism for mutual exclu    
  4  *                                                
  5  * Copyright IBM Corporation, 2008                
  6  *                                                
  7  * Author: Paul E. McKenney <paulmck@linux.ibm    
  8  *                                                
  9  * For detailed explanation of Read-Copy Updat    
 10  *              Documentation/RCU                 
 11  */                                               
 12 #ifndef __LINUX_TINY_H                            
 13 #define __LINUX_TINY_H                            
 14                                                   
 15 #include <asm/param.h> /* for HZ */               
 16                                                   
 17 struct rcu_gp_oldstate {                          
 18         unsigned long rgos_norm;                  
 19 };                                                
 20                                                   
 21 // Maximum number of rcu_gp_oldstate values co    
 22 // not-yet-completed RCU grace periods.           
 23 #define NUM_ACTIVE_RCU_POLL_FULL_OLDSTATE 2       
 24                                                   
 25 /*                                                
 26  * Are the two oldstate values the same?  See     
 27  * docbook header.                                
 28  */                                               
 29 static inline bool same_state_synchronize_rcu_    
 30                                                   
 31 {                                                 
 32         return rgosp1->rgos_norm == rgosp2->rg    
 33 }                                                 
 34                                                   
 35 unsigned long get_state_synchronize_rcu(void);    
 36                                                   
 37 static inline void get_state_synchronize_rcu_f    
 38 {                                                 
 39         rgosp->rgos_norm = get_state_synchroni    
 40 }                                                 
 41                                                   
 42 unsigned long start_poll_synchronize_rcu(void)    
 43                                                   
 44 static inline void start_poll_synchronize_rcu_    
 45 {                                                 
 46         rgosp->rgos_norm = start_poll_synchron    
 47 }                                                 
 48                                                   
 49 bool poll_state_synchronize_rcu(unsigned long     
 50                                                   
 51 static inline bool poll_state_synchronize_rcu_    
 52 {                                                 
 53         return poll_state_synchronize_rcu(rgos    
 54 }                                                 
 55                                                   
 56 static inline void cond_synchronize_rcu(unsign    
 57 {                                                 
 58         might_sleep();                            
 59 }                                                 
 60                                                   
 61 static inline void cond_synchronize_rcu_full(s    
 62 {                                                 
 63         cond_synchronize_rcu(rgosp->rgos_norm)    
 64 }                                                 
 65                                                   
 66 static inline unsigned long start_poll_synchro    
 67 {                                                 
 68         return start_poll_synchronize_rcu();      
 69 }                                                 
 70                                                   
 71 static inline void start_poll_synchronize_rcu_    
 72 {                                                 
 73         rgosp->rgos_norm = start_poll_synchron    
 74 }                                                 
 75                                                   
 76 static inline void cond_synchronize_rcu_expedi    
 77 {                                                 
 78         cond_synchronize_rcu(oldstate);           
 79 }                                                 
 80                                                   
 81 static inline void cond_synchronize_rcu_expedi    
 82 {                                                 
 83         cond_synchronize_rcu_expedited(rgosp->    
 84 }                                                 
 85                                                   
 86 extern void rcu_barrier(void);                    
 87                                                   
 88 static inline void synchronize_rcu_expedited(v    
 89 {                                                 
 90         synchronize_rcu();                        
 91 }                                                 
 92                                                   
 93 /*                                                
 94  * Add one more declaration of kvfree() here.     
 95  * not so straight forward to just include <li    
 96  * where it is defined due to getting many com    
 97  * errors caused by that include.                 
 98  */                                               
 99 extern void kvfree(const void *addr);             
100                                                   
101 static inline void __kvfree_call_rcu(struct rc    
102 {                                                 
103         if (head) {                               
104                 call_rcu(head, (rcu_callback_t    
105                 return;                           
106         }                                         
107                                                   
108         // kvfree_rcu(one_arg) call.              
109         might_sleep();                            
110         synchronize_rcu();                        
111         kvfree(ptr);                              
112 }                                                 
113                                                   
114 static inline void kvfree_rcu_barrier(void)       
115 {                                                 
116         rcu_barrier();                            
117 }                                                 
118                                                   
119 #ifdef CONFIG_KASAN_GENERIC                       
120 void kvfree_call_rcu(struct rcu_head *head, vo    
121 #else                                             
122 static inline void kvfree_call_rcu(struct rcu_    
123 {                                                 
124         __kvfree_call_rcu(head, ptr);             
125 }                                                 
126 #endif                                            
127                                                   
128 void rcu_qs(void);                                
129                                                   
130 static inline void rcu_softirq_qs(void)           
131 {                                                 
132         rcu_qs();                                 
133 }                                                 
134                                                   
135 #define rcu_note_context_switch(preempt) \        
136         do { \                                    
137                 rcu_qs(); \                       
138                 rcu_tasks_qs(current, (preempt    
139         } while (0)                               
140                                                   
141 static inline int rcu_needs_cpu(void)             
142 {                                                 
143         return 0;                                 
144 }                                                 
145                                                   
146 static inline void rcu_request_urgent_qs_task(    
147                                                   
148 /*                                                
149  * Take advantage of the fact that there is on    
150  * allows us to ignore virtualization-based co    
151  */                                               
152 static inline void rcu_virt_note_context_switc    
153 static inline void rcu_cpu_stall_reset(void) {    
154 static inline int rcu_jiffies_till_stall_check    
155 static inline void rcu_irq_exit_check_preempt(    
156 static inline void exit_rcu(void) { }             
157 static inline bool rcu_preempt_need_deferred_q    
158 {                                                 
159         return false;                             
160 }                                                 
161 static inline void rcu_preempt_deferred_qs(str    
162 void rcu_scheduler_starting(void);                
163 static inline void rcu_end_inkernel_boot(void)    
164 static inline bool rcu_inkernel_boot_has_ended    
165 static inline bool rcu_is_watching(void) { ret    
166 static inline void rcu_momentary_eqs(void) { }    
167 static inline void kfree_rcu_scheduler_running    
168 static inline bool rcu_gp_might_be_stalled(voi    
169                                                   
170 /* Avoid RCU read-side critical sections leaki    
171 static inline void rcu_all_qs(void) { barrier(    
172                                                   
173 /* RCUtree hotplug events */                      
174 #define rcutree_prepare_cpu      NULL             
175 #define rcutree_online_cpu       NULL             
176 #define rcutree_offline_cpu      NULL             
177 #define rcutree_dead_cpu         NULL             
178 #define rcutree_dying_cpu        NULL             
179 static inline void rcutree_report_cpu_starting    
180                                                   
181 #endif /* __LINUX_RCUTINY_H */                    
182                                                   

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php