svn commit: r244046 - head/sys/kern
Attilio Rao
attilio at FreeBSD.org
Sun Dec 9 04:54:23 UTC 2012
Author: attilio
Date: Sun Dec 9 04:54:22 2012
New Revision: 244046
URL: http://svnweb.freebsd.org/changeset/base/244046
Log:
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
Modified:
head/sys/kern/kern_switch.c
Modified: head/sys/kern/kern_switch.c
==============================================================================
--- head/sys/kern/kern_switch.c Sun Dec 9 04:15:51 2012 (r244045)
+++ head/sys/kern/kern_switch.c Sun Dec 9 04:54:22 2012 (r244046)
@@ -176,6 +176,12 @@ retry:
/*
* 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)
More information about the svn-src-head
mailing list