From: Anton Vorontsov <cbouatmailru@gmail.com>
To: Tejun Heo <tj@kernel.org>
Cc: linux-kernel@vger.kernel.org, torvalds@linux-foundation.org,
akpm@linux-foundation.org, padovan@profusion.mobi,
marcel@holtmann.org, peterz@infradead.org, mingo@redhat.com,
davem@davemloft.net, dougthompson@xmission.com,
ibm-acpi@hmh.eng.br, rui.zhang@intel.com,
Jens Axboe <axboe@kernel.dk>, Jiri Kosina <jkosina@suse.cz>,
David Airlie <airlied@linux.ie>,
Roland Dreier <roland@kernel.org>,
Dmitry Torokhov <dmitry.torokhov@gmail.com>,
"John W. Linville" <linville@tuxdriver.com>,
Len Brown <len.brown@intel.com>,
David Howells <dhowells@redhat.com>,
"J. Bruce Fields" <bfields@fieldses.org>,
Johannes Berg <johannes@sipsolutions.net>
Subject: Re: [PATCH 14/15] workqueue: use mod_delayed_work() instead of cancel + queue
Date: Sun, 29 Jul 2012 13:55:16 -0700 [thread overview]
Message-ID: <20120729205516.GA14801@lizard> (raw)
In-Reply-To: <1343433308-26614-15-git-send-email-tj@kernel.org>
On Fri, Jul 27, 2012 at 04:55:07PM -0700, Tejun Heo wrote:
> Convert delayed_work users doing [__]cancel_delayed_work() +
> queue_delayed_work() to mod_delayed_work().
>
> Most conversions are straight-forward. Ones worth mentioning are,
>
> * drivers/edac/edac_mc.c: edac_mc_workq_setup() converted to always
> use mod_delayed_work() and cancel loop in
> edac_mc_reset_delay_period() is dropped.
>
> * drivers/platform/x86/thinkpad_acpi.c: No need to remember whether
> watchdog is active or not. @fan_watchdog_active and related code
> dropped.
>
> * drivers/power/charger-manager.c: Seemingly a lot of
> delayed_work_pending() abuse going on here.
> [delayed_]work_pending() are unsynchronized and racy when used like
> this. I converted one instance in fullbatt_handler(). Please
> conver the rest so that it invokes workqueue APIs for the intended
> target state rather than trying to game work item pending state
> transitions. e.g. if timer should be modified - call
> mod_delayed_work(), canceled - call cancel_delayed_work[_sync]().
>
> * drivers/thermal/thermal_sys.c: thermal_zone_device_set_polling()
> simplified. Note that round_jiffies() calls in this function are
> meaningless. round_jiffies() work on absolute jiffies not delta
> delay used by delayed_work.
>
> * net/core/link_watch.c: linkwatch_schedule_work() was doing a quite
> elaborate dancing around its delayed_work. Collapse it such that
> linkwatch_work is queued for immediate execution if LW_URGENT and
> existing timer is kept otherwise.
>
> Signed-off-by: Tejun Heo <tj@kernel.org>
drivers/power/ bits:
Acked-by: Anton Vorontsov <cbouatmailru@gmail.com>
Thanks!
--
Anton Vorontsov
Email: cbouatmailru@gmail.com
next prev parent reply other threads:[~2012-07-29 20:57 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-27 23:54 [PATCHSET wq/for-3.7] workqueue: implement mod_delayed_work[_on]() Tejun Heo
2012-07-27 23:54 ` [PATCH 01/15] workqueue: reorder queueing functions so that _on() variants are on top Tejun Heo
2012-07-27 23:54 ` [PATCH 02/15] workqueue: make queueing functions return bool Tejun Heo
2012-07-27 23:54 ` [PATCH 03/15] workqueue: add missing smp_wmb() in process_one_work() Tejun Heo
2012-07-27 23:54 ` [PATCH 04/15] workqueue: disable preemption while manipulating PENDING Tejun Heo
2012-07-30 20:10 ` [PATCH v2 " Tejun Heo
2012-07-27 23:54 ` [PATCH 05/15] workqueue: set delayed_work->timer function on initialization Tejun Heo
2012-07-27 23:54 ` [PATCH 06/15] workqueue: unify local CPU queueing handling Tejun Heo
2012-07-27 23:55 ` [PATCH 07/15] workqueue: fix zero @delay handling of queue_delayed_work_on() Tejun Heo
2012-07-27 23:55 ` [PATCH 08/15] workqueue: move try_to_grab_pending() upwards Tejun Heo
2012-07-27 23:55 ` [PATCH 09/15] workqueue: introduce WORK_OFFQ_FLAG_* Tejun Heo
2012-07-27 23:55 ` [PATCH 10/15] workqueue: factor out __queue_delayed_work() from queue_delayed_work_on() Tejun Heo
2012-07-27 23:55 ` [PATCH 11/15] workqueue: reorganize try_to_grab_pending() and __cancel_timer_work() Tejun Heo
2012-07-27 23:55 ` [PATCH 12/15] workqueue: mark a work item being canceled as such Tejun Heo
2012-07-30 20:11 ` [PATCH v2 " Tejun Heo
2012-07-27 23:55 ` [PATCH 13/15] workqueue: implement mod_delayed_work[_on]() Tejun Heo
2012-07-27 23:55 ` [PATCH 14/15] workqueue: use mod_delayed_work() instead of cancel + queue Tejun Heo
2012-07-28 1:05 ` Henrique de Moraes Holschuh
2012-07-28 1:28 ` Dmitry Torokhov
2012-07-29 20:55 ` Anton Vorontsov [this message]
2012-07-31 17:55 ` [PATCH v2 " Tejun Heo
2012-07-27 23:55 ` [PATCH 15/15] workqueue: deprecate __cancel_delayed_work() Tejun Heo
2012-07-31 13:05 ` Tomi Valkeinen
2012-07-31 17:11 ` Tejun Heo
2012-07-31 17:51 ` Tejun Heo
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=20120729205516.GA14801@lizard \
--to=cbouatmailru@gmail.com \
--cc=airlied@linux.ie \
--cc=akpm@linux-foundation.org \
--cc=axboe@kernel.dk \
--cc=bfields@fieldses.org \
--cc=davem@davemloft.net \
--cc=dhowells@redhat.com \
--cc=dmitry.torokhov@gmail.com \
--cc=dougthompson@xmission.com \
--cc=ibm-acpi@hmh.eng.br \
--cc=jkosina@suse.cz \
--cc=johannes@sipsolutions.net \
--cc=len.brown@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linville@tuxdriver.com \
--cc=marcel@holtmann.org \
--cc=mingo@redhat.com \
--cc=padovan@profusion.mobi \
--cc=peterz@infradead.org \
--cc=roland@kernel.org \
--cc=rui.zhang@intel.com \
--cc=tj@kernel.org \
--cc=torvalds@linux-foundation.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.