Browse files

Add a comment on why inlining critical_enter() may not be a good idea

for the general case.

Reviewed by:	bde
MFC after:	1 week
  • Loading branch information...
1 parent c2c3784 commit 3e75d99318ad43cd915247f505d7905f4a134dde attilio committed Dec 9, 2012
Showing with 6 additions and 0 deletions.
  1. +6 −0 sys/kern/kern_switch.c
View
6 sys/kern/kern_switch.c
@@ -176,6 +176,12 @@ choosethread(void)
/*
* Kernel thread preemption implementation. Critical sections mark
* regions of code in which preemptions are not allowed.
+ *
+ * It might seem a good idea to inline critical_enter() but, in order
+ * to prevent instructions reordering by the compiler, a __compiler_membar()
+ * would have to be used here (the same as sched_pin()). The performance
+ * penalty imposed by the membar could, then, produce slower code than
+ * the function call itself, for most cases.
*/
void
critical_enter(void)

0 comments on commit 3e75d99

Please sign in to comment.