From: Lai Jiangshan <laijs@cn.fujitsu.com>
To: Tejun Heo <tj@kernel.org>
Cc: linux-kernel@vger.kernel.org, Ray Jui <rjui@broadcom.com>
Subject: Re: [PATCH 05/12] workqueue: don't wake up other workers in rescuer
Date: Fri, 28 Sep 2012 18:18:27 +0800 [thread overview]
Message-ID: <50657973.8090401@cn.fujitsu.com> (raw)
In-Reply-To: <20120926183429.GF12544@google.com>
On 09/27/2012 02:34 AM, Tejun Heo wrote:
> (cc'ing Ray Jui)
>
> On Thu, Sep 27, 2012 at 01:20:36AM +0800, Lai Jiangshan wrote:
>> rescuer is NOT_RUNNING, so there is no sense when it wakes up other workers,
>> if there are available normal workers, they are already woken up when needed.
>>
>> Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
>> ---
>> kernel/workqueue.c | 8 --------
>> 1 files changed, 0 insertions(+), 8 deletions(-)
>>
>> diff --git a/kernel/workqueue.c b/kernel/workqueue.c
>> index c718b94..6c339bf 100644
>> --- a/kernel/workqueue.c
>> +++ b/kernel/workqueue.c
>> @@ -2438,14 +2438,6 @@ repeat:
>>
>> process_scheduled_works(rescuer);
>>
>> - /*
>> - * Leave this gcwq. If keep_working() is %true, notify a
>> - * regular worker; otherwise, we end up with 0 concurrency
>> - * and stalling the execution.
>> - */
>> - if (keep_working(pool))
>> - wake_up_worker(pool);
>> -
>
> This was added by 7576958a9d5a4a6 ("workqueue: wake up a worker when a
> rescuer is leaving a gcwq") to fix a bug reported by Ray Jui.
>
> http://thread.gmane.org/gmane.linux.kernel/1098131
>
> I'm fairly sure it was a valid bug report. I don't think the
> depletion comes from concurrency management. It's just the lack of
> chaining which could lead to stall. What am I missing here?
>
"http://thread.gmane.org/gmane.linux.kernel/1098131" does not find out the root cause.
I find out the root cause with hard searching from the code, I will describe it later.
Thanks,
Lai
next prev parent reply other threads:[~2012-09-28 10:16 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-26 17:20 [PATCH 00/12] workqueue: simple cleanups Lai Jiangshan
2012-09-26 17:20 ` [PATCH 01/12] workqueue: add WORKER_RESCUER Lai Jiangshan
2012-09-26 18:07 ` Tejun Heo
2012-09-28 10:11 ` Lai Jiangshan
2012-09-26 17:20 ` [PATCH 02/12] workqueue: disallow set_cpus_allowed_ptr() from work item Lai Jiangshan
2012-09-26 18:12 ` Tejun Heo
2012-09-26 17:20 ` [PATCH 03/12] workqueue: remove WORKER_PREP from rescuer Lai Jiangshan
2012-09-26 18:24 ` Tejun Heo
2012-09-28 10:04 ` Lai Jiangshan
2012-09-30 7:39 ` Tejun Heo
2012-09-26 17:20 ` [PATCH 04/12] workqueue: simplify is_chained_work() Lai Jiangshan
2012-09-26 18:28 ` Tejun Heo
2012-09-28 9:52 ` Lai Jiangshan
2012-09-30 7:32 ` Tejun Heo
2012-09-26 17:20 ` [PATCH 05/12] workqueue: don't wake up other workers in rescuer Lai Jiangshan
2012-09-26 18:34 ` Tejun Heo
2012-09-28 10:18 ` Lai Jiangshan [this message]
2012-09-26 17:20 ` [PATCH 06/12] workqueue: destroy_worker() can only destory idle worker not just created worker Lai Jiangshan
2012-09-26 18:35 ` Tejun Heo
2012-09-26 17:20 ` [PATCH 07/12] workqueue: remove WORKER_STARTED Lai Jiangshan
2012-09-26 18:36 ` Tejun Heo
2012-09-28 9:52 ` Lai Jiangshan
2012-09-26 17:20 ` [PATCH 08/12] workqueue: fix comments of insert_work() Lai Jiangshan
2012-09-26 17:20 ` [PATCH 09/12] workqueue: declare system_highpri_wq Lai Jiangshan
2012-09-26 17:20 ` [PATCH 10/12] cpu-hotplug.txt: fix comments of work_on_cpu() Lai Jiangshan
2012-09-26 17:20 ` [RFC PATCH 11/12] workqueue: add WQ_CPU_INTENSIVE to system_long_wq Lai Jiangshan
2012-09-26 18:38 ` Tejun Heo
2012-09-28 8:06 ` Lai Jiangshan
2012-09-30 7:22 ` Tejun Heo
2012-09-26 17:20 ` [PATCH 12/12] workqueue: avoid work_on_cpu() to interfere system_wq Lai Jiangshan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=50657973.8090401@cn.fujitsu.com \
--to=laijs@cn.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=rjui@broadcom.com \
--cc=tj@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.