From patchwork Fri Nov 30 22:56:19 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tejun Heo X-Patchwork-Id: 1828481 Return-Path: X-Original-To: patchwork-linux-wireless@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork1.kernel.org (Postfix) with ESMTP id 25B923FC23 for ; Fri, 30 Nov 2012 22:56:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754731Ab2K3W40 (ORCPT ); Fri, 30 Nov 2012 17:56:26 -0500 Received: from mail-pa0-f46.google.com ([209.85.220.46]:33579 "EHLO mail-pa0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754690Ab2K3W4Y (ORCPT ); Fri, 30 Nov 2012 17:56:24 -0500 Received: by mail-pa0-f46.google.com with SMTP id bh2so660576pad.19 for ; Fri, 30 Nov 2012 14:56:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=eCBEzRIg0zreYwcLzHMyDY4CvJ2XDQPTGnNldSHr3B8=; b=cM3UcabyjK7Ao34GNWYurq7Wa+L1ldwOfD5U8dJRm9Xp1hG7rocWwUonk2ePanHsSL XSbn9Q8/NWoTLX8/UF5Hikyf7HKHCO5a9nVLLFEv/YITNfHOjCRm1DjkaYV2Q+nFmY1k 84JlrLNgYW1KIR3EffxNm77BAwT5RtOos2zGUq42/3y0mbZczp9d5jHQAriZ1Ly0ss3j s5ApWL13xa3i6oWkrofw7d2iV1bIivIroSjUs685Jmmn9Hgc/74APYzYxzJM3fsSeQ4J 6rs1srd/JZ3vs5NmSH+JSkAU5Al2mfquuaTAJr15XIpi3TPIOc1f3HMbEA0i7Kd27FDW 4M6w== Received: by 10.68.203.198 with SMTP id ks6mr9577285pbc.35.1354316184191; Fri, 30 Nov 2012 14:56:24 -0800 (PST) Received: from htj.dyndns.org (c-69-181-251-227.hsd1.ca.comcast.net. [69.181.251.227]) by mx.google.com with ESMTPS id oj1sm3695847pbb.19.2012.11.30.14.56.21 (version=SSLv3 cipher=OTHER); Fri, 30 Nov 2012 14:56:22 -0800 (PST) Date: Fri, 30 Nov 2012 14:56:19 -0800 From: Tejun Heo To: Anders Kaseorg Cc: Herbert Xu , "John W. Linville" , netdev@vger.kernel.org, linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: Wireless regression in workqueue: use mod_delayed_work() instead of __cancel + queue Message-ID: <20121130225619.GD6021@htj.dyndns.org> References: <20121130211435.GJ3873@htj.dyndns.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20121130211435.GJ3873@htj.dyndns.org> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org Hey, again. Can you please test whether the following patch makes any difference? Thanks! --- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 042d221..26368ef 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -1477,7 +1477,10 @@ bool mod_delayed_work_on(int cpu, struct workqueue_struct *wq, } while (unlikely(ret == -EAGAIN)); if (likely(ret >= 0)) { - __queue_delayed_work(cpu, wq, dwork, delay); + if (!delay) + __queue_work(cpu, wq, &dwork->work); + else + __queue_delayed_work(cpu, wq, dwork, delay); local_irq_restore(flags); }