Re: [PATCH v8 02/12] kthread: Kthread worker API cleanup
From: Andrew Morton <akpm@linux-foundation.org>
Date: 2016-06-10 22:29:10
Also in:
linux-api, lkml
On Thu, 9 Jun 2016 11:07:10 -0400 Steven Rostedt [off-list ref] wrote:
On Thu, 9 Jun 2016 15:51:56 +0200 Petr Mladek [off-list ref] wrote:quoted
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. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>