|| ||Alan Cox <alan-AT-lxorguk.ukuu.org.uk> |
|| ||Andrew Morton <akpm-AT-linux-foundation.org> |
|| ||Re: [PATCH 2/7] kfifo: move out spinlock |
|| ||Mon, 17 Aug 2009 09:08:29 +0100|
|| ||Stefani Seibold <stefani-AT-seibold.net>,
Arnd Bergmann <arnd-AT-arndb.de>,
Andi Kleen <andi-AT-firstfloor.org>,
Amerigo Wang <xiyou.wangcong-AT-gmail.com>,
Joe Perches <joe-AT-perches.com>|
|| ||Article, Thread
> > Those wrappers happen to be called kfifo_get and kfifo_put
> Those names are wrong.
We've had them for years
> They're wrong because they are the spinlock-specific variant. What are
> we going to call the mutex_lock-specific variant?
There isn't one.
> > > But the happens-to-use-spin_lock functions shouldn't be called
> > > kfifo_get(), because that steals namespace from the unlocked functions,
> > > and makes the naming for the happens-to-use-mutex_lock functions look
> > > weird.
> > All over the kernel unlocked function versions have a leading _ name.
> > It's the kernel convention.
> tisn't. radix-tree, rbrtee, idr, list_head, prio_tree, flex_array -
> none of them use that convention.
Some random "10 second grep" examples, and this is also used more
generally for the "without extra goo" variant of things
and the without extra goo use includes such minor classics
the kernel contains lots and lots of
> > The other thing I must say I dislike about these patches is the
> > gratuitious 'let's rename all the functions' approach it takes. The kfifo
> > API is documented, used and random API of the year type changes mess
> > stuff up and cause unneeded churn.
> It fixes naming mistakes. Long-term it is the correct thing to do.
> Best to do it now before we get more callers.
Why don't we fix all the really dumb naming mistakes then - things like
the chrdev interfaces ? Massive churn, massive confusion. Patches are
always being rejected (and rightfully so) for causing such messes.
And remember: its very hard to fix existing API documentation and books.
It's doubly dangerous (and IMHO a complete no-no) to change the API of an
interface if you don't change it such that old code will not reliably get
a compile time failure.
to post comments)