Thread (13 messages) 13 messages, 3 authors, 2012-05-31

Re: [PATCH 0/3] Generic rb tree code

From: Kent Overstreet <hidden>
Date: 2012-05-29 03:30:38
Also in: lkml

On Tue, May 29, 2012 at 08:22:46AM +0900, Tejun Heo wrote:
On Fri, May 25, 2012 at 01:57:38PM -0700, Kent Overstreet wrote:
quoted
Right now, users of the rb tree code have to open code their own search and
insert functions. This provides generic versions that you pass a comparison
function to.

I highly doubt the extra function calls are going to have a measurable
performance impact in practice - the pointer chasing is going to dominate. I
did provide inline versions just in case, though - it's modelled after the
spinlock code.
Modeled after spinlock code how?  AFAICS, spinlock code doesn't
present inline and !inline versions to users. 
That probably wasn't intended, but it's how it works out.
__raw_spin_lock() and all the variants are defined as inline functions,
and then depending on whether CONFIG_INLINE_BLAH is enabled
_raw_spin_lock_blah() is defined to __raw_spin_lock_blah(), otherwise
_raw_spin_lock_blah() is a wrapper in a .c file.

But the end result is that the inline versions are also available.
All the current users
are inline anyway, why not just provide inlined versions and worry
about whether inlining is beneifical in a separate patch?
Yeah, possible. I think it's only going to be an issue for rb_search()
in practice (since rb_search needs the stack allocated search argument),
should probably just drop the inline version of rb_insert().
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help