From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: "pantherchen@versanet.de" <pantherchen@versanet.de>
Cc: Tejun Heo <tj@kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: Boot time regression in 2.6.38 after initial wq merge
Date: Tue, 22 Feb 2011 21:20:42 -0800 [thread overview]
Message-ID: <20110223052042.GA19269@core.coreip.homeip.net> (raw)
In-Reply-To: <4D641936.90404@versanet.de>
On Tue, Feb 22, 2011 at 09:14:46PM +0100, pantherchen@versanet.de wrote:
> On 02/22/2011 08:52 PM, Dmitry Torokhov wrote:
> >Ewww... tty/ldisc...
> >
> >Does it help if you change drivers/input/serio/serio.c::serio_queue_event()
> >from calling
> >
> > schedule_work(&serio_event_work);
> >
> >to call
> >
> > queue_work(system_long_wq,&serio_event_work);
> >
> >?
>
> Yes, that works: http://img.xrmb2.net/images/499337.png
>
Great!
OK, so below is properly formatted patch. I am going to send it upstream
unless somebody objects.
Thanks.
--
Dmitry
Input: serio/gameport - use 'long' system workqueue
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Commit 8ee294cd9def0004887da7f44b80563493b0a097 converted serio
subsystem event handling from using a dedicated thread to using
common workqueue. Unfortunately, this regressed our boot times,
due to the fact that serio jobs take long time to execute. While
the new concurrency managed workqueue code manages long-playing
works just fine and schedules additional workers as needed, such
works wreck havoc among remaining users of flush_scheduled_work().
To solve this problem let's move serio/gameport works from system_wq
to system_long_wq which nobody tries to flush.
Reported-and-tested-by: Hernando Torque <pantherchen@versanet.de>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
---
drivers/input/gameport/gameport.c | 2 +-
drivers/input/serio/serio.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/input/gameport/gameport.c b/drivers/input/gameport/gameport.c
index 23cf8fc..5b8f59d 100644
--- a/drivers/input/gameport/gameport.c
+++ b/drivers/input/gameport/gameport.c
@@ -360,7 +360,7 @@ static int gameport_queue_event(void *object, struct module *owner,
event->owner = owner;
list_add_tail(&event->node, &gameport_event_list);
- schedule_work(&gameport_event_work);
+ queue_work(system_long_wq, &gameport_event_work);
out:
spin_unlock_irqrestore(&gameport_event_lock, flags);
diff --git a/drivers/input/serio/serio.c b/drivers/input/serio/serio.c
index 7c38d1f..ba70058 100644
--- a/drivers/input/serio/serio.c
+++ b/drivers/input/serio/serio.c
@@ -299,7 +299,7 @@ static int serio_queue_event(void *object, struct module *owner,
event->owner = owner;
list_add_tail(&event->node, &serio_event_list);
- schedule_work(&serio_event_work);
+ queue_work(system_long_wq, &serio_event_work);
out:
spin_unlock_irqrestore(&serio_event_lock, flags);
next prev parent reply other threads:[~2011-02-23 5:20 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <4D62CE9C.7090806@versanet.de>
2011-02-22 8:17 ` Tejun Heo
2011-02-22 8:52 ` Dmitry Torokhov
2011-02-22 9:02 ` Tejun Heo
2011-02-22 9:15 ` Dmitry Torokhov
2011-02-22 15:04 ` pantherchen
2011-02-22 17:22 ` Dmitry Torokhov
2011-02-22 17:59 ` Dmitry Torokhov
2011-02-22 19:32 ` pantherchen
2011-02-22 19:52 ` Dmitry Torokhov
2011-02-22 20:14 ` pantherchen
2011-02-23 5:20 ` Dmitry Torokhov [this message]
2011-02-23 9:38 ` Tejun Heo
2011-02-23 10:22 ` Dmitry Torokhov
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=20110223052042.GA19269@core.coreip.homeip.net \
--to=dmitry.torokhov@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=pantherchen@versanet.de \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®