Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp5477021pxb; Wed, 26 Jan 2022 12:58:18 -0800 (PST) X-Google-Smtp-Source: ABdhPJzaCGpcONW3pKivGOpoZ26pGkxUmgPlLBaEeir87nk/d+oDyj8jYkieakM8RHyafSYQaq8e X-Received: by 2002:a65:424d:: with SMTP id d13mr539329pgq.82.1643230698164; Wed, 26 Jan 2022 12:58:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643230698; cv=none; d=google.com; s=arc-20160816; b=ZvvHEv2mu+el87BmGd8bGHfu3Wj9+xLzUJjK0zQIokGrjY8m5Szs/fLadZCkEBivTK I5BTI/YakpFEb+wQvuUKe31QsWxMcCAc0tGA6vFt0zTQ28wFBpXE5ceZymChJU6Rv/7G NCKU5lHJzr31PWoiJM8qskx51Wr0Q93G3lRVHceNPLbMeD7UQP8cC38ZglDBueyekB6Z Z7PS2Teajd1kKEu2e3vaKeXravoDyn3OowvHo3PyK/GjW10SX5KTtyGFXqCsCvRlF37e F8FOHdyR0YRRkEOz2DEdZ0F+blsPfCicqpB3jDapUvDEn5BkNAQ1rTPTyhSGOH8pRdyn yKjQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:mime-version:message-id:date :dkim-signature; bh=3ao5SEtR1nv4TevYgqWzJAQJIpCFZnovOjTeqxptCiI=; b=xbT7ebLQRAeTvpzIZcTnDI/VPIOm7esNJeg95ij+i0+r1e4Tl+JNDEkEqLmwB4hERx eS6QZzpAbZUC4cbUMYWtatkfi31nxyzSkVU1e3M3Y49uzFqnTJl3cyOWo2PNqfsorfBI X10R6WRNk/2nDBOTsUJSaEDOXpn0rKS14pyP+kOPC3Xx/7EDMyME2gKebbH0lHVjPunH V1St2MO6XGEx0vID1cMkj1xU3i0HYpJDhpg98pyZ3sTnX3+D2hN6MTfK/NuT3C0/33YF nkN+O3yG0YRkvE/5xWl9Ja0O6VqhWyImwIXDxQOAKsTyc4h8F4dO1ArJKT/5nkB3YJUo t6ng== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=nKL1RLKr; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id z2si3465257pjh.164.2022.01.26.12.58.05; Wed, 26 Jan 2022 12:58:18 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=nKL1RLKr; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232538AbiAZKL0 (ORCPT + 99 others); Wed, 26 Jan 2022 05:11:26 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53988 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232330AbiAZKLZ (ORCPT ); Wed, 26 Jan 2022 05:11:25 -0500 Received: from mail-yb1-xb4a.google.com (mail-yb1-xb4a.google.com [IPv6:2607:f8b0:4864:20::b4a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 94741C06161C for ; Wed, 26 Jan 2022 02:11:25 -0800 (PST) Received: by mail-yb1-xb4a.google.com with SMTP id c7-20020a25a2c7000000b00613e4dbaf97so43235355ybn.13 for ; Wed, 26 Jan 2022 02:11:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:message-id:mime-version:subject:from:to:cc; bh=3ao5SEtR1nv4TevYgqWzJAQJIpCFZnovOjTeqxptCiI=; b=nKL1RLKrnPjz1hKxYNDPT4GEvheUHYDOMS4Ahn8hJr/RRulI2CLOl4pQHpxk9QJbuV pz9Wtp/FOvzRMoSp/gToPLGg8/HMaV2EwtALymbQtn+pSfknLohXS1rMMHqof84eLR6I 47dlK5Cqhgf0MxMtAgMyPc5XV4R9ubV7JI4LVK1+xCK9lNMX6FBK+BC7sP43ARSvl4Os cvDCrwvm2XHB/rkRNsvCh/xvCe1Xr0bg7nTyIcXU65u6iLeKH0b86u9kMge2VMkd6tPf lVmbeer4PtbjbY4qYDa3TvHjw71uSHDh96d3W4Iq5sKqKFeI2dRe8c8qjh5s+WPQSdAu Op3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=3ao5SEtR1nv4TevYgqWzJAQJIpCFZnovOjTeqxptCiI=; b=BiBv1vvn47EhiF3XjoLros28UzTJz5dQ3KqfO/d3Q6imRpqIuyALj3FMPFTAbA+IbG ysYDG1RG07dBEw2qHNrosEZwz/xAd1whN3IWPZhUBgcKyY5+xTt3tRSxHiY9Fa++cavT nHdPh9gOd3M5g1Z72DtnexVT3l2D/SRFQty/xwM2pB5ls8ZgFtERJZ3b+cdcbSL/38x8 vf/dlqFQDYM8HrdkEQGqsKCH/vP8WAWhrEtiuEILticfN8OauaZJPxpIOdL938EkQcBZ nkmjItjsgE0tcO5D7aMmrl4Zorln0UNMrrauUaJs3DzlvAxbOhhTd/iU4ndbQ507SxD8 tX5A== X-Gm-Message-State: AOAM532guXCDEkV236a88hv9Evh+0LVdTBv2640sDgQAoEejHSpbNG+k YRuhRyepKzGQsWGu3LNzC3mUi6uOoKcl0GNgX/98xkhjl7kSKO5AzT2yuId7nyld2tepK969iot pJHnfP1n2GqdqVMSup1GHiozdVza5fxoDB6/6QGI9YceIMF0YJpUMFmA2aC3Z3qn7EYw= X-Received: from decot.svl.corp.google.com ([2620:15c:2c5:11:bb79:635d:80b2:3c02]) (user=decot job=sendgmr) by 2002:a81:db08:0:b0:2ca:287c:6c28 with SMTP id 00721157ae682-2ca287c6e78mr6888267b3.205.1643191884223; Wed, 26 Jan 2022 02:11:24 -0800 (PST) Date: Wed, 26 Jan 2022 02:11:20 -0800 Message-Id: <20220126101120.676021-1-decot+git@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.35.0.rc0.227.g00780c9af4-goog Subject: [PATCH RFC v3 1/1] mtd_blkdevs: avoid soft lockups with some mtd/spi devices From: David Decotigny To: linux-kernel@vger.kernel.org Cc: Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , linux-mtd@lists.infradead.org, David Decotigny Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: David Decotigny With some spi devices, the heavy cpu usage due to polling the spi registers may lead to netdev timeouts, RCU complaints, etc. This can be acute in the absence of CONFIG_PREEMPT. This patch allows to give enough breathing room to avoid those incorrectly detected netdev timeouts for example. Example splat on 5.10.92: [ 828.399306] rcu: INFO: rcu_sched self-detected stall on CPU ... [ 828.419245] Task dump for CPU 1: [ 828.422465] task:kworker/1:1H state:R running task on cpu 1 stack: 0 pid: 76 ppid: 2 flags:0x0000002a [ 828.433132] Workqueue: kblockd blk_mq_run_work_fn [ 828.437820] Call trace: ... [ 828.512267] spi_mem_exec_op+0x4d0/0xde0 [ 828.516184] spi_mem_dirmap_read+0x180/0x39c [ 828.520443] spi_nor_read_data+0x428/0x7e8 [ 828.524523] spi_nor_read+0x154/0x214 [ 828.528172] mtd_read_oob+0x440/0x714 [ 828.531815] mtd_read+0xac/0x120 [ 828.535030] mtdblock_readsect+0x178/0x230 [ 828.539102] mtd_blktrans_work+0x9fc/0xf28 [ 828.543177] mtd_queue_rq+0x1ac/0x2e4 [ 828.546827] blk_mq_dispatch_rq_list+0x2cc/0xa44 [ 828.551419] blk_mq_do_dispatch_sched+0xb0/0x7cc [ 828.556010] __blk_mq_sched_dispatch_requests+0x350/0x494 [ 828.561372] blk_mq_sched_dispatch_requests+0xac/0xe4 [ 828.566387] __blk_mq_run_hw_queue+0x130/0x254 [ 828.570806] blk_mq_run_work_fn+0x50/0x60 [ 828.574814] process_one_work+0x578/0xf1c [ 828.578814] worker_thread+0x5dc/0xea0 [ 828.582547] kthread+0x270/0x2d4 [ 828.585765] ret_from_fork+0x10/0x30 Signed-off-by: David Decotigny --- drivers/mtd/mtd_blkdevs.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/mtd/mtd_blkdevs.c b/drivers/mtd/mtd_blkdevs.c index 243f28a3206b4..64d2b093f114b 100644 --- a/drivers/mtd/mtd_blkdevs.c +++ b/drivers/mtd/mtd_blkdevs.c @@ -158,6 +158,7 @@ static void mtd_blktrans_work(struct mtd_blktrans_dev *dev) } background_done = 0; + cond_resched(); spin_lock_irq(&dev->queue_lock); } } -- 2.35.0.rc0.227.g00780c9af4-goog