On Mon, Jun 01, 2020 at 08:44:42AM +0000, Lai Jiangshan wrote: > 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.
Have you calculated how much memory is actually saved this way on a typical system? Thanks. -- tejun