From patchwork Sun Oct 23 18:54:44 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Conor Dooley X-Patchwork-Id: 8084 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp103519wru; Sun, 23 Oct 2022 12:07:21 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4b0XuLv5i2drx4eTCDW8guuCk4y6CZGSmiNkrMIZ488+QlHS8NRmMw1v2YlPNDKYT2a1pN X-Received: by 2002:a17:90b:4c92:b0:20b:a13:83c7 with SMTP id my18-20020a17090b4c9200b0020b0a1383c7mr69834636pjb.128.1666552041103; Sun, 23 Oct 2022 12:07:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666552041; cv=none; d=google.com; s=arc-20160816; b=iGUjZy4rupZ5JHwD6UYFOB9EPcWxRYzet/RiS6hjhgANaJgpQkpmKeZQFsWGB9svw+ CduldsdcP+tZtmJUhE3arvYKgoENUS7ADjr7Mk2zdX6jVotaMTiSfVP2+ZMn86WNhK1r JKGwHRn0Q8NzkTRZM5ReTtRCfHzscxiW2G6Wzi18VaQtphFZKSo7fIRS77z5Xbcqx3TR sQ2c0yd7sgFqKloHhCrDhvnVe0dXKcvRj12KWIMQEEtGBdfIfF8Pp5y2e5qp6OT7bgvP wKkvjNEl4O+P989oFMA6iPXlNiYrD0TbmHVy15pG1pM+Q4mCpGVnAWVPo9/xQO4IlPEb lQDQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=i6StGOWjgP4bdGOPudG4lhBaseTzhPh9y+kkmV5G3MA=; b=bYw+YDQkIce/9Evvhp8dUzmgNpfl1tXlITOLRl2E4AUDYG4ru54h/eD3CAFeUrGrsf UDIPPLyJBt6RXd4nS79BhbXNExsxTp5cg+fbUNbG1RCIzIvRfeVQACjbVnweKE52YNHn Snmo1CgNNUfKz24HAvDaquLM3iykVXMVs19faknC+yD6/jVBiAm4iQIirCGIW1HLvOjq bdY75+CPLaqJrD7vb94ge/pxhKMhlg2+RtA8HOOda9xxulBXRH/It3nP+cnX05ZyHk/q ZlsFTETAtGRiTj6czVAziUv8MGMMCGR7Ip2MnoZ7uPJ2UbMOE2aMm1ZVWyyuejXo+2ei DWUg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=QfBjm4lH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id a38-20020a056a001d2600b00538147a4b3csi33750662pfx.318.2022.10.23.12.07.08; Sun, 23 Oct 2022 12:07:21 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=QfBjm4lH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230408AbiJWSzP (ORCPT + 99 others); Sun, 23 Oct 2022 14:55:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35594 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230060AbiJWSzN (ORCPT ); Sun, 23 Oct 2022 14:55:13 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0C1F536DDF for ; Sun, 23 Oct 2022 11:55:12 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id A922EB80D90 for ; Sun, 23 Oct 2022 18:55:10 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E86E8C433D6; Sun, 23 Oct 2022 18:55:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1666551309; bh=b1OgIjfo/vN3Wzi1YZhctjiBYrxk8+3C/gbHYBJY808=; h=From:To:Cc:Subject:Date:From; b=QfBjm4lHPb4x8RrylH9Jgg4rhZi6CVodwyBLeUo1tSsU6v9D9ruBRJGNdKWCyyoXD C1OPkW/WZTBgkz77qmI1xzKUFVh0GjwMXNGrd6f9ypF9rXwk5WbTiZFRGu9NYP8s73 sjw+wvVM3a2p0xOILeA4C42ZplfMB+gUWnlKkkq6x3EvTCcCMeQxeW+STbgRyNe34p 4iHGAc6lfrWQpJQ3O/cgoS7gSmOj/7NWoB8APxdmfZY/L+SQsuMd6T6q8hFxbROAMl /HNzZzxjYlrKtSKzu5dfldfYNaLQ6RnIdrgnOigOQvcG4/6DaSAOu81rEWejrSO2Fy 5guuKCk5zctjQ== From: Conor Dooley To: daniel.lezcano@linaro.org, tglx@linutronix.de Cc: Conor Dooley , samuel@sholland.org, aou@eecs.berkeley.edu, atishp@atishpatra.org, dmitriy@oss-tech.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, palmer@dabbelt.com, paul.walmsley@sifive.com Subject: [PATCH] Revert "clocksource/drivers/riscv: Events are stopped during CPU suspend" Date: Sun, 23 Oct 2022 19:54:44 +0100 Message-Id: <20221023185444.678573-1-conor@kernel.org> X-Mailer: git-send-email 2.38.0 MIME-Version: 1.0 X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1747506473335570290?= X-GMAIL-MSGID: =?utf-8?q?1747506473335570290?= From: Conor Dooley This reverts commit 232ccac1bd9b5bfe73895f527c08623e7fa0752d. If an AXI read to the PCIe controller on PolarFire SoC times out, the system will stall, with an expected: io scheduler mq-deadline registered io scheduler kyber registered microchip-pcie 2000000000.pcie: host bridge /soc/pcie@2000000000 ranges: microchip-pcie 2000000000.pcie: MEM 0x2008000000..0x2087ffffff -> 0x0008000000 microchip-pcie 2000000000.pcie: sec error in pcie2axi buffer microchip-pcie 2000000000.pcie: ded error in pcie2axi buffer microchip-pcie 2000000000.pcie: axi read request error microchip-pcie 2000000000.pcie: axi read timeout microchip-pcie 2000000000.pcie: sec error in pcie2axi buffer microchip-pcie 2000000000.pcie: ded error in pcie2axi buffer microchip-pcie 2000000000.pcie: sec error in pcie2axi buffer microchip-pcie 2000000000.pcie: ded error in pcie2axi buffer microchip-pcie 2000000000.pcie: sec error in pcie2axi buffer microchip-pcie 2000000000.pcie: ded error in pcie2axi buffer Freeing initrd memory: 7336K mc_event_handler: 667402 callbacks suppressed microchip-pcie 2000000000.pcie: sec error in pcie2axi buffer microchip-pcie 2000000000.pcie: ded error in pcie2axi buffer microchip-pcie 2000000000.pcie: sec error in pcie2axi buffer microchip-pcie 2000000000.pcie: ded error in pcie2axi buffer microchip-pcie 2000000000.pcie: sec error in pcie2axi buffer microchip-pcie 2000000000.pcie: ded error in pcie2axi buffer microchip-pcie 2000000000.pcie: sec error in pcie2axi buffer microchip-pcie 2000000000.pcie: ded error in pcie2axi buffer microchip-pcie 2000000000.pcie: sec error in pcie2axi buffer microchip-pcie 2000000000.pcie: ded error in pcie2axi buffer mc_event_handler: 666588 callbacks suppressed microchip-pcie 2000000000.pcie: ded error in pcie2axi buffer mc_event_handler: 666748 callbacks suppressed microchip-pcie 2000000000.pcie: sec error in pcie2axi buffer microchip-pcie 2000000000.pcie: ded error in pcie2axi buffer microchip-pcie 2000000000.pcie: sec error in pcie2axi buffer microchip-pcie 2000000000.pcie: ded error in pcie2axi buffer microchip-pcie 2000000000.pcie: sec error in pcie2axi buffer microchip-pcie 2000000000.pcie: ded error in pcie2axi buffer microchip-pcie 2000000000.pcie: sec error in pcie2axi buffer microchip-pcie 2000000000.pcie: ded error in pcie2axi buffer microchip-pcie 2000000000.pcie: sec error in pcie2axi buffer microchip-pcie 2000000000.pcie: ded error in pcie2axi buffer rcu: INFO: rcu_preempt detected stalls on CPUs/tasks: rcu: 0-...0: (1 GPs behind) idle=19f/1/0x4000000000000002 softirq=34/36 fqs=2626 (detected by 1, t=5256 jiffies, g=-1151, q=1143 ncpus=4) Task dump for CPU 0: task:swapper/0 state:R running task stack: 0 pid: 1 ppid: 0 flags:0x00000008 Call Trace: mc_event_handler: 666648 callbacks suppressed With this patch applied, the system just locks up without RCU stalling: io scheduler mq-deadline registered io scheduler kyber registered microchip-pcie 2000000000.pcie: host bridge /soc/pcie@2000000000 ranges: microchip-pcie 2000000000.pcie: MEM 0x2008000000..0x2087ffffff -> 0x0008000000 microchip-pcie 2000000000.pcie: sec error in pcie2axi buffer microchip-pcie 2000000000.pcie: ded error in pcie2axi buffer microchip-pcie 2000000000.pcie: axi read request error microchip-pcie 2000000000.pcie: axi read timeout microchip-pcie 2000000000.pcie: sec error in pcie2axi buffer microchip-pcie 2000000000.pcie: ded error in pcie2axi buffer microchip-pcie 2000000000.pcie: sec error in pcie2axi buffer microchip-pcie 2000000000.pcie: ded error in pcie2axi buffer microchip-pcie 2000000000.pcie: sec error in pcie2axi buffer microchip-pcie 2000000000.pcie: ded error in pcie2axi buffer Freeing initrd memory: 7332K Link: https://lore.kernel.org/linux-riscv/YzYTNQRxLr7Q9JR0@spud/ Fixes: 232ccac1bd9b ("clocksource/drivers/riscv: Events are stopped during CPU suspend") Signed-off-by: Conor Dooley Reviewed-by: Palmer Dabbelt Acked-by: Palmer Dabbelt --- I don't really want to post a revert, but it's been nearly a month since I posted about my issue initially & 2 weeks without a reply to Palmer's comments. CC: samuel@sholland.org CC: aou@eecs.berkeley.edu CC: atishp@atishpatra.org CC: daniel.lezcano@linaro.org CC: dmitriy@oss-tech.org CC: linux-kernel@vger.kernel.org CC: linux-riscv@lists.infradead.org CC: palmer@dabbelt.com CC: paul.walmsley@sifive.com CC: tglx@linutronix.de --- drivers/clocksource/timer-riscv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/clocksource/timer-riscv.c b/drivers/clocksource/timer-riscv.c index 969a552da8d2..a0d66fabf073 100644 --- a/drivers/clocksource/timer-riscv.c +++ b/drivers/clocksource/timer-riscv.c @@ -51,7 +51,7 @@ static int riscv_clock_next_event(unsigned long delta, static unsigned int riscv_clock_event_irq; static DEFINE_PER_CPU(struct clock_event_device, riscv_clock_event) = { .name = "riscv_timer_clockevent", - .features = CLOCK_EVT_FEAT_ONESHOT | CLOCK_EVT_FEAT_C3STOP, + .features = CLOCK_EVT_FEAT_ONESHOT, .rating = 100, .set_next_event = riscv_clock_next_event, };