[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200601084442.8284-1-laijs@linux.alibaba.com>
Date: Mon, 1 Jun 2020 08:44:38 +0000
From: Lai Jiangshan <laijs@...ux.alibaba.com>
To: linux-kernel@...r.kernel.org
Cc: Lai Jiangshan <laijs@...ux.alibaba.com>, Tejun Heo <tj@...nel.org>
Subject: [PATCH 0/4] workqueue: reduce the sizeof pool_workqueue
The major memory ussage in workqueue is on the pool_workqueue.
The pool_workqueue has alignment requirement which often leads
to padding.
Reducing the memory usage for the pool_workqueue is valuable.
And 32bit system often has less memory, less workqueues,
less works, less concurrent flush_workqueue()s, so we can
slash the flush color on 32bit system to reduce memory usage
Before patch:
The sizeof the struct pool_workqueue is 256 bytes,
only 136 bytes is in use in 32bit system
After patch:
The sizeof the struct pool_workqueue is 128 bytes,
only 104 bytes is in use in 32bit system, there is still
room for future usage.
Setting WORK_STRUCT_COLOR_BITS to 3 can't reduce the sizeof
the struct pool_workqueue in 64bit system, unless combined
with big refactor for unbound pwq.
Lai Jiangshan (4):
workqueue: fix a piece of comment about reserved bits for work flags
workqueue: use BUILD_BUG_ON() for compile time test instead of
WARN_ON()
workqueue: add a BUILD_BUG_ON() to check the size of struct
pool_workqueue
workqueue: slash half memory usage in 32bit system
Cc: Tejun Heo <tj@...nel.org>
include/linux/workqueue.h | 8 +++++++-
kernel/workqueue.c | 10 +++++++++-
2 files changed, 16 insertions(+), 2 deletions(-)
--
2.20.1
Powered by blists - more mailing lists