All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <20160224162552.GC3305@pathway.suse.cz>

diff --git a/a/1.txt b/N1/1.txt
index fbc3225..3b17efb 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -17,165 +17,3 @@ On Tue 2016-02-23 01:33:12, kbuild test robot wrote:
 
 Please find below an updated version of the patch that fixes the above
 warnings:
-
-
->From 66fbe9142d4761a7010a73eeb69ef315053684cb Mon Sep 17 00:00:00 2001
-From: Petr Mladek <pmladek@suse.com>
-Date: Mon, 22 Jun 2015 15:05:16 +0200
-Subject: [PATCH 10/10] kthread: Better support freezable kthread workers
-
-This patch allows to make kthread worker freezable via a new @flags
-parameter. It will allow to avoid an init work in some kthreads.
-
-It currently does not affect the function of kthread_worker_fn()
-but it might help to do some optimization or fixes eventually.
-
-I currently do not know about any other use for the @flags
-parameter but I believe that we will want more flags
-in the future.
-
-Finally, I hope that it will not cause confusion with @flags member
-in struct kthread. Well, I guess that we will want to rework the
-basic kthreads implementation once all kthreads are converted into
-kthread workers or workqueues. It is possible that we will merge
-the two structures.
-
-Signed-off-by: Petr Mladek <pmladek@suse.com>
----
- include/linux/kthread.h | 11 ++++++++---
- kernel/kthread.c        | 20 ++++++++++++++------
- 2 files changed, 22 insertions(+), 9 deletions(-)
-
-diff --git a/include/linux/kthread.h b/include/linux/kthread.h
-index 531730f8a8a7..b57786c40c2c 100644
---- a/include/linux/kthread.h
-+++ b/include/linux/kthread.h
-@@ -65,7 +65,12 @@ struct kthread_work;
- typedef void (*kthread_work_func_t)(struct kthread_work *work);
- void delayed_kthread_work_timer_fn(unsigned long __data);
- 
-+enum {
-+	KTW_FREEZABLE		= 1 << 2,	/* freeze during suspend */
-+};
-+
- struct kthread_worker {
-+	unsigned int		flags;
- 	spinlock_t		lock;
- 	struct list_head	work_list;
- 	struct list_head	delayed_work_list;
-@@ -154,12 +159,12 @@ extern void __init_kthread_worker(struct kthread_worker *worker,
- 
- int kthread_worker_fn(void *worker_ptr);
- 
--__printf(1, 2)
-+__printf(2, 3)
- struct kthread_worker *
--create_kthread_worker(const char namefmt[], ...);
-+create_kthread_worker(unsigned int flags, const char namefmt[], ...);
- 
- struct kthread_worker *
--create_kthread_worker_on_cpu(int cpu, const char namefmt[]);
-+create_kthread_worker_on_cpu(int cpu, unsigned int flags, const char namefmt[]);
- 
- bool queue_kthread_work(struct kthread_worker *worker,
- 			struct kthread_work *work);
-diff --git a/kernel/kthread.c b/kernel/kthread.c
-index 43b46daafb4d..4450474301c7 100644
---- a/kernel/kthread.c
-+++ b/kernel/kthread.c
-@@ -556,11 +556,11 @@ void __init_kthread_worker(struct kthread_worker *worker,
- 				const char *name,
- 				struct lock_class_key *key)
- {
-+	memset(worker, 0, sizeof(struct kthread_worker));
- 	spin_lock_init(&worker->lock);
- 	lockdep_set_class_and_name(&worker->lock, key, name);
- 	INIT_LIST_HEAD(&worker->work_list);
- 	INIT_LIST_HEAD(&worker->delayed_work_list);
--	worker->task = NULL;
- }
- EXPORT_SYMBOL_GPL(__init_kthread_worker);
- 
-@@ -590,6 +590,10 @@ int kthread_worker_fn(void *worker_ptr)
- 	 */
- 	WARN_ON(worker->task && worker->task != current);
- 	worker->task = current;
-+
-+	if (worker->flags & KTW_FREEZABLE)
-+		set_freezable();
-+
- repeat:
- 	set_current_state(TASK_INTERRUPTIBLE);	/* mb paired w/ kthread_stop */
- 
-@@ -623,7 +627,8 @@ repeat:
- EXPORT_SYMBOL_GPL(kthread_worker_fn);
- 
- static struct kthread_worker *
--__create_kthread_worker(int cpu, const char namefmt[], va_list args)
-+__create_kthread_worker(int cpu, unsigned int flags,
-+			const char namefmt[], va_list args)
- {
- 	struct kthread_worker *worker;
- 	struct task_struct *task;
-@@ -643,6 +648,7 @@ __create_kthread_worker(int cpu, const char namefmt[], va_list args)
- 	if (IS_ERR(task))
- 		goto fail_task;
- 
-+	worker->flags = flags;
- 	worker->task = task;
- 	wake_up_process(task);
- 	return worker;
-@@ -654,6 +660,7 @@ fail_task:
- 
- /**
-  * create_kthread_worker - create a kthread worker
-+ * @flags: flags modifying the default behavior of the worker
-  * @namefmt: printf-style name for the kthread worker (task).
-  *
-  * Returns a pointer to the allocated worker on success, ERR_PTR(-ENOMEM)
-@@ -661,13 +668,13 @@ fail_task:
-  * when the worker was SIGKILLed.
-  */
- struct kthread_worker *
--create_kthread_worker(const char namefmt[], ...)
-+create_kthread_worker(unsigned int flags, const char namefmt[], ...)
- {
- 	struct kthread_worker *worker;
- 	va_list args;
- 
- 	va_start(args, namefmt);
--	worker = __create_kthread_worker(-1, namefmt, args);
-+	worker = __create_kthread_worker(-1, flags, namefmt, args);
- 	va_end(args);
- 
- 	return worker;
-@@ -678,6 +685,7 @@ EXPORT_SYMBOL(create_kthread_worker);
-  * create_kthread_worker_on_cpu - create a kthread worker and bind it
-  *	it to a given CPU and the associated NUMA node.
-  * @cpu: CPU number
-+ * @flags: flags modifying the default behavior of the worker
-  * @namefmt: printf-style name for the kthread worker (task).
-  *
-  * Use a valid CPU number if you want to bind the kthread worker
-@@ -690,11 +698,11 @@ EXPORT_SYMBOL(create_kthread_worker);
-  * when the worker was SIGKILLed.
-  */
- struct kthread_worker *
--create_kthread_worker_on_cpu(int cpu, const char namefmt[])
-+create_kthread_worker_on_cpu(int cpu, unsigned int flags, const char namefmt[])
- {
- 	va_list fake_args;
- 
--	return __create_kthread_worker(cpu, namefmt, fake_args);
-+	return __create_kthread_worker(cpu, flags, namefmt, fake_args);
- }
- EXPORT_SYMBOL(create_kthread_worker_on_cpu);
- 
--- 
-1.8.5.6
-
---
-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>
diff --git a/a/content_digest b/N1/content_digest
index 72f4635..e353efd 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -42,168 +42,6 @@
  ">    kernel/kthread.c:700: warning: No description found for parameter 'flags'\n"
  "\n"
  "Please find below an updated version of the patch that fixes the above\n"
- "warnings:\n"
- "\n"
- "\n"
- ">From 66fbe9142d4761a7010a73eeb69ef315053684cb Mon Sep 17 00:00:00 2001\n"
- "From: Petr Mladek <pmladek@suse.com>\n"
- "Date: Mon, 22 Jun 2015 15:05:16 +0200\n"
- "Subject: [PATCH 10/10] kthread: Better support freezable kthread workers\n"
- "\n"
- "This patch allows to make kthread worker freezable via a new @flags\n"
- "parameter. It will allow to avoid an init work in some kthreads.\n"
- "\n"
- "It currently does not affect the function of kthread_worker_fn()\n"
- "but it might help to do some optimization or fixes eventually.\n"
- "\n"
- "I currently do not know about any other use for the @flags\n"
- "parameter but I believe that we will want more flags\n"
- "in the future.\n"
- "\n"
- "Finally, I hope that it will not cause confusion with @flags member\n"
- "in struct kthread. Well, I guess that we will want to rework the\n"
- "basic kthreads implementation once all kthreads are converted into\n"
- "kthread workers or workqueues. It is possible that we will merge\n"
- "the two structures.\n"
- "\n"
- "Signed-off-by: Petr Mladek <pmladek@suse.com>\n"
- "---\n"
- " include/linux/kthread.h | 11 ++++++++---\n"
- " kernel/kthread.c        | 20 ++++++++++++++------\n"
- " 2 files changed, 22 insertions(+), 9 deletions(-)\n"
- "\n"
- "diff --git a/include/linux/kthread.h b/include/linux/kthread.h\n"
- "index 531730f8a8a7..b57786c40c2c 100644\n"
- "--- a/include/linux/kthread.h\n"
- "+++ b/include/linux/kthread.h\n"
- "@@ -65,7 +65,12 @@ struct kthread_work;\n"
- " typedef void (*kthread_work_func_t)(struct kthread_work *work);\n"
- " void delayed_kthread_work_timer_fn(unsigned long __data);\n"
- " \n"
- "+enum {\n"
- "+\tKTW_FREEZABLE\t\t= 1 << 2,\t/* freeze during suspend */\n"
- "+};\n"
- "+\n"
- " struct kthread_worker {\n"
- "+\tunsigned int\t\tflags;\n"
- " \tspinlock_t\t\tlock;\n"
- " \tstruct list_head\twork_list;\n"
- " \tstruct list_head\tdelayed_work_list;\n"
- "@@ -154,12 +159,12 @@ extern void __init_kthread_worker(struct kthread_worker *worker,\n"
- " \n"
- " int kthread_worker_fn(void *worker_ptr);\n"
- " \n"
- "-__printf(1, 2)\n"
- "+__printf(2, 3)\n"
- " struct kthread_worker *\n"
- "-create_kthread_worker(const char namefmt[], ...);\n"
- "+create_kthread_worker(unsigned int flags, const char namefmt[], ...);\n"
- " \n"
- " struct kthread_worker *\n"
- "-create_kthread_worker_on_cpu(int cpu, const char namefmt[]);\n"
- "+create_kthread_worker_on_cpu(int cpu, unsigned int flags, const char namefmt[]);\n"
- " \n"
- " bool queue_kthread_work(struct kthread_worker *worker,\n"
- " \t\t\tstruct kthread_work *work);\n"
- "diff --git a/kernel/kthread.c b/kernel/kthread.c\n"
- "index 43b46daafb4d..4450474301c7 100644\n"
- "--- a/kernel/kthread.c\n"
- "+++ b/kernel/kthread.c\n"
- "@@ -556,11 +556,11 @@ void __init_kthread_worker(struct kthread_worker *worker,\n"
- " \t\t\t\tconst char *name,\n"
- " \t\t\t\tstruct lock_class_key *key)\n"
- " {\n"
- "+\tmemset(worker, 0, sizeof(struct kthread_worker));\n"
- " \tspin_lock_init(&worker->lock);\n"
- " \tlockdep_set_class_and_name(&worker->lock, key, name);\n"
- " \tINIT_LIST_HEAD(&worker->work_list);\n"
- " \tINIT_LIST_HEAD(&worker->delayed_work_list);\n"
- "-\tworker->task = NULL;\n"
- " }\n"
- " EXPORT_SYMBOL_GPL(__init_kthread_worker);\n"
- " \n"
- "@@ -590,6 +590,10 @@ int kthread_worker_fn(void *worker_ptr)\n"
- " \t */\n"
- " \tWARN_ON(worker->task && worker->task != current);\n"
- " \tworker->task = current;\n"
- "+\n"
- "+\tif (worker->flags & KTW_FREEZABLE)\n"
- "+\t\tset_freezable();\n"
- "+\n"
- " repeat:\n"
- " \tset_current_state(TASK_INTERRUPTIBLE);\t/* mb paired w/ kthread_stop */\n"
- " \n"
- "@@ -623,7 +627,8 @@ repeat:\n"
- " EXPORT_SYMBOL_GPL(kthread_worker_fn);\n"
- " \n"
- " static struct kthread_worker *\n"
- "-__create_kthread_worker(int cpu, const char namefmt[], va_list args)\n"
- "+__create_kthread_worker(int cpu, unsigned int flags,\n"
- "+\t\t\tconst char namefmt[], va_list args)\n"
- " {\n"
- " \tstruct kthread_worker *worker;\n"
- " \tstruct task_struct *task;\n"
- "@@ -643,6 +648,7 @@ __create_kthread_worker(int cpu, const char namefmt[], va_list args)\n"
- " \tif (IS_ERR(task))\n"
- " \t\tgoto fail_task;\n"
- " \n"
- "+\tworker->flags = flags;\n"
- " \tworker->task = task;\n"
- " \twake_up_process(task);\n"
- " \treturn worker;\n"
- "@@ -654,6 +660,7 @@ fail_task:\n"
- " \n"
- " /**\n"
- "  * create_kthread_worker - create a kthread worker\n"
- "+ * @flags: flags modifying the default behavior of the worker\n"
- "  * @namefmt: printf-style name for the kthread worker (task).\n"
- "  *\n"
- "  * Returns a pointer to the allocated worker on success, ERR_PTR(-ENOMEM)\n"
- "@@ -661,13 +668,13 @@ fail_task:\n"
- "  * when the worker was SIGKILLed.\n"
- "  */\n"
- " struct kthread_worker *\n"
- "-create_kthread_worker(const char namefmt[], ...)\n"
- "+create_kthread_worker(unsigned int flags, const char namefmt[], ...)\n"
- " {\n"
- " \tstruct kthread_worker *worker;\n"
- " \tva_list args;\n"
- " \n"
- " \tva_start(args, namefmt);\n"
- "-\tworker = __create_kthread_worker(-1, namefmt, args);\n"
- "+\tworker = __create_kthread_worker(-1, flags, namefmt, args);\n"
- " \tva_end(args);\n"
- " \n"
- " \treturn worker;\n"
- "@@ -678,6 +685,7 @@ EXPORT_SYMBOL(create_kthread_worker);\n"
- "  * create_kthread_worker_on_cpu - create a kthread worker and bind it\n"
- "  *\tit to a given CPU and the associated NUMA node.\n"
- "  * @cpu: CPU number\n"
- "+ * @flags: flags modifying the default behavior of the worker\n"
- "  * @namefmt: printf-style name for the kthread worker (task).\n"
- "  *\n"
- "  * Use a valid CPU number if you want to bind the kthread worker\n"
- "@@ -690,11 +698,11 @@ EXPORT_SYMBOL(create_kthread_worker);\n"
- "  * when the worker was SIGKILLed.\n"
- "  */\n"
- " struct kthread_worker *\n"
- "-create_kthread_worker_on_cpu(int cpu, const char namefmt[])\n"
- "+create_kthread_worker_on_cpu(int cpu, unsigned int flags, const char namefmt[])\n"
- " {\n"
- " \tva_list fake_args;\n"
- " \n"
- "-\treturn __create_kthread_worker(cpu, namefmt, fake_args);\n"
- "+\treturn __create_kthread_worker(cpu, flags, namefmt, fake_args);\n"
- " }\n"
- " EXPORT_SYMBOL(create_kthread_worker_on_cpu);\n"
- " \n"
- "-- \n"
- "1.8.5.6\n"
- "\n"
- "--\n"
- "To unsubscribe, send a message with 'unsubscribe linux-mm' in\n"
- "the body to majordomo@kvack.org.  For more info on Linux MM,\n"
- "see: http://www.linux-mm.org/ .\n"
- "Don't email: <a href=mailto:\"dont@kvack.org\"> email@kvack.org </a>"
+ warnings:
 
-839eb8c99b7912e6560d09b1ef08cc10c98f2a27088388d5a95522275b73f1f8
+d865abc1dd2c6200e786502ea83ea0fe08f4dc63bbdc6c06db710c249da9c05c

diff --git a/a/1.txt b/N2/1.txt
index fbc3225..4eebd5e 100644
--- a/a/1.txt
+++ b/N2/1.txt
@@ -173,9 +173,3 @@ index 43b46daafb4d..4450474301c7 100644
  
 -- 
 1.8.5.6
-
---
-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>
diff --git a/a/content_digest b/N2/content_digest
index 72f4635..2f989ed 100644
--- a/a/content_digest
+++ b/N2/content_digest
@@ -198,12 +198,6 @@
  " EXPORT_SYMBOL(create_kthread_worker_on_cpu);\n"
  " \n"
  "-- \n"
- "1.8.5.6\n"
- "\n"
- "--\n"
- "To unsubscribe, send a message with 'unsubscribe linux-mm' in\n"
- "the body to majordomo@kvack.org.  For more info on Linux MM,\n"
- "see: http://www.linux-mm.org/ .\n"
- "Don't email: <a href=mailto:\"dont@kvack.org\"> email@kvack.org </a>"
+ 1.8.5.6
 
-839eb8c99b7912e6560d09b1ef08cc10c98f2a27088388d5a95522275b73f1f8
+8c79e1953d9acb27f5cfeb4fc6a532e7530ef55a96389d2dc98377745c57142f

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.