From: Oleg Nesterov <oleg@redhat.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>,
Samu Onkalo <samu.p.onkalo@nokia.com>, Tejun Heo <tj@kernel.org>,
linux-kernel@vger.kernel.org
Subject: [PATCH 2/3] workqueues: microoptimize set_wq_data()
Date: Wed, 24 Feb 2010 21:20:35 +0100 [thread overview]
Message-ID: <20100224202035.GA26991@redhat.com> (raw)
The comment correctly states that the _PENDING bit must be set and
we even have the BUG_ON() check. But this means there is no need to
set WORK_STRUCT_PENDING explicitely and load work_data_bits() twice,
we can rely on WORK_STRUCT_FLAG_MASK which contains _PENDING.
Shaves 32 bytes from workqueue.o.
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
---
kernel/workqueue.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
--- wq/kernel/workqueue.c~2_CLEANUP_SET_DATA 2010-02-24 20:55:53.000000000 +0100
+++ wq/kernel/workqueue.c 2010-02-24 20:58:37.000000000 +0100
@@ -220,12 +220,9 @@ struct cpu_workqueue_struct *wq_per_cpu(
static inline void set_wq_data(struct work_struct *work,
struct cpu_workqueue_struct *cwq)
{
- unsigned long new;
-
- BUG_ON(!work_pending(work));
-
- new = (unsigned long) cwq | (1UL << WORK_STRUCT_PENDING);
+ unsigned long new = (unsigned long)cwq;
new |= WORK_STRUCT_FLAG_MASK & *work_data_bits(work);
+ BUG_ON(!(new & (1UL << WORK_STRUCT_PENDING)));
atomic_long_set(&work->data, new);
}
next reply other threads:[~2010-02-24 20:22 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-24 20:20 Oleg Nesterov [this message]
2010-02-25 3:10 ` [PATCH 2/3] workqueues: microoptimize set_wq_data() Tejun Heo
2010-02-25 10:27 ` Tejun Heo
2010-02-25 13:55 ` Oleg Nesterov
2010-02-25 15:16 ` 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=20100224202035.GA26991@redhat.com \
--to=oleg@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=dmitry.torokhov@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=samu.p.onkalo@nokia.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.