From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756083AbcBIXO5 (ORCPT ); Tue, 9 Feb 2016 18:14:57 -0500 Received: from mail-yw0-f175.google.com ([209.85.161.175]:36043 "EHLO mail-yw0-f175.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755058AbcBIXOz (ORCPT ); Tue, 9 Feb 2016 18:14:55 -0500 From: Tejun Heo To: torvalds@linux-foundation.org, umgwanakikbuti@gmail.com, mhocko@kernel.org, jslaby@suse.cz, tglx@linutronix.de, pmladek@suse.com, jack@suse.cz, ben@decadent.org.uk, sasha.levin@oracle.com, shli@fb.com, daniel.bilik@neosystem.cz, gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, kernel-team@fb.com Subject: [PATCHSET] workqueue: break local execution guarantee of unbound work items Date: Tue, 9 Feb 2016 18:14:47 -0500 Message-Id: <1455059690-18765-1-git-send-email-tj@kernel.org> X-Mailer: git-send-email 2.5.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello, Workqueue used to implicitly guarantee local execution of unbound work items. Recent timer updates broke that for delayed work items and the attempt to restore it ended up causing more harm than good. It has been decided to take the chance and officially break it. This patchset reverts 874bbfe600a6 ("workqueue: make sure delayed work run in local cpu"), expands wq_unbound_cpu_mask so that it also applies to unbound work items queued on percpu workqueues, and implements a debug feature which forces wq_unbound_cpu_mask based round-robin selection to flush out usages which depend on the local execution guarantee. I'll push the patchset through wq/for-4.5-fixes soon. The patchset contains the following three patches. 0001-Revert-workqueue-make-sure-delayed-work-run-in-local.patch 0002-workqueue-schedule-WORK_CPU_UNBOUND-work-on-wq_unbou.patch 0003-workqueue-implement-workqueue.debug_force_rr_cpu-deb.patch and available in the following git branch. git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq.git review-rr_cpu Documentation/kernel-parameters.txt | 11 ++++++ kernel/workqueue.c | 61 ++++++++++++++++++++++++++++++++---- lib/Kconfig.debug | 15 ++++++++ 3 files changed, 81 insertions(+), 6 deletions(-) Thanks. -- tejun