Messages in this thread | | | Date | Thu, 21 May 2015 09:09:43 -0400 | From | Steven Rostedt <> | Subject | Re: [PATCH] rcu: Deinline rcu_read_lock_sched_held() if DEBUG_LOCK_ALLOC |
| |
On Thu, 21 May 2015 05:52:24 -0700 "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> wrote:
> On Thu, May 21, 2015 at 12:04:07PM +0200, Denys Vlasenko wrote: > > DEBUG_LOCK_ALLOC=y is not a production setting, but it is > > not very unusual either. Many developers routinely > > use kernels built with it enabled. > > > > Apart from being selected by hand, it is also auto-selected by > > PROVE_LOCKING "Lock debugging: prove locking correctness" and > > LOCK_STAT "Lock usage statistics" config options. > > LOCK STAT is necessary for "perf lock" to work. > > > > I wouldn't spend too much time optimizing it, but this particular > > function has a very large cost in code size: when it is deinlined, > > code size decreases by 830,000 bytes: > > > > text data bss dec hex filename > > 85674192 22294776 20627456 128596424 7aa39c8 vmlinux.before > > 84837612 22294424 20627456 127759492 79d7484 vmlinux > > > > (with this config: http://busybox.net/~vda/kernel_config) > > OK, I'll bite... I do see the numbers above, but is this really a > problem for anyone? As you say, DEBUG_LOCK_ALLOC=y is not a production > setting. >
Correct, and because it's not a production setting it should be fine as a call and not a static inline. The i$ hit probably neglects the saving of it being inlined too.
It's not a big deal either way, but it may make building the kernel a bit faster ;-)
-- Steve
| |