[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20160610152905.e99933d99108fa6d9f8d4dca@linux-foundation.org>
Date: Fri, 10 Jun 2016 15:29:05 -0700
From: Andrew Morton <akpm@...ux-foundation.org>
To: Steven Rostedt <rostedt@...dmis.org>
Cc: Petr Mladek <pmladek@...e.com>, Oleg Nesterov <oleg@...hat.com>,
Tejun Heo <tj@...nel.org>, Ingo Molnar <mingo@...hat.com>,
Peter Zijlstra <peterz@...radead.org>,
"Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>,
Josh Triplett <josh@...htriplett.org>,
Thomas Gleixner <tglx@...utronix.de>,
Linus Torvalds <torvalds@...ux-foundation.org>,
Jiri Kosina <jkosina@...e.cz>, Borislav Petkov <bp@...e.de>,
Michal Hocko <mhocko@...e.cz>, linux-mm@...ck.org,
Vlastimil Babka <vbabka@...e.cz>, linux-api@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v8 02/12] kthread: Kthread worker API cleanup
On Thu, 9 Jun 2016 11:07:10 -0400 Steven Rostedt <rostedt@...dmis.org> wrote:
> On Thu, 9 Jun 2016 15:51:56 +0200
> Petr Mladek <pmladek@...e.com> wrote:
>
> > A good practice is to prefix the names of functions and macros
> > by the name of the subsystem.
> >
> > The kthread worker API is a mix of classic kthreads and workqueues.
> > Each worker has a dedicated kthread. It runs a generic function
> > that process queued works. It is implemented as part of
> > the kthread subsystem.
> >
> > This patch renames the existing kthread worker API to use
> > the corresponding name from the workqueues API prefixed by
> > kthread_/KTHREAD_:
> >
> > DEFINE_KTHREAD_WORKER() -> KTHREAD_DECLARE_WORKER()
> > DEFINE_KTHREAD_WORK() -> KTHREAD_DECLARE_WORK()
> > DEFINE_KTHREAD_WORKER_ONSTACK() -> KTHREAD_DECLARE_WORKER_ONSTACK()
> > DEFINE_KTHREAD_WORKER_ONSTACK() -> KTHREAD_DECLARE_WORKER_ONSTACK()
> > __init_kthread_worker() -> __kthread_init_worker()
> > init_kthread_worker() -> kthread_init_worker()
> > init_kthread_work() -> kthread_init_work()
> > insert_kthread_work() -> kthread_insert_work()
> > queue_kthread_work() -> kthread_queue_work()
> > flush_kthread_work() -> kthread_flush_work()
> > flush_kthread_worker() -> kthread_flush_worker()
> >
>
> I know that Andrew suggested this, but I didn't get a chance to respond
> to his email due to traveling.
>
> Does this mean we are going to change all APIs like this? Because we
> pretty much use this type of naming everywhere. That is, we start with
> "DEFINE_*" and "DECLARE_*" commonly. As well as "init_*".
>
> For example DEFINE_PER_CPU(), DEFINE_SPINLOCK(), DEFINE_LGLOCK(),
> DEFINE_MUTEX(), DEFINE_RES_MEME(), DEFINE_TIMER(), DEFINE_IDA(),
> DEFINE_NFS4_*(), and the list goes on. Just do a grep in
> include/linux/*.h for DEFINE_ and DECLARE_.
Yes, there's so much precedence that DEFINE_KTHREAD_WORKER() and
friends can/should be left as-is.
But I do think that init_kthread_worker() is a sore thumb and should
become kthread_worker_init() (not kthread_worker_init())
> Also, are you sure that we should change the DEFINE to a DECLARE,
> because DEFINE is used to create the object in question, DECLARE is for
> header files:
Yes2, these macros expand to definitions, not to declarations.
Powered by blists - more mailing lists