Received: by 2002:a05:6359:6284:b0:131:369:b2a3 with SMTP id se4csp3437152rwb; Mon, 7 Aug 2023 13:36:01 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHicvURts/1trbX9XUDSf5J9OEjpiG5zPebPCd1t3+dv+SoUanKWlNIZehzh/PDivGCB7z2 X-Received: by 2002:a17:906:20dc:b0:99b:431b:a5e9 with SMTP id c28-20020a17090620dc00b0099b431ba5e9mr9184163ejc.45.1691440560711; Mon, 07 Aug 2023 13:36:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691440560; cv=none; d=google.com; s=arc-20160816; b=Bjk4bg8+i25r+sq7EII4MklWW0uAIg93R5+ed9FYeKxDHzwwp6puHPLQg1C9B8Os+V fr441efjeSxWlHvMktH7y1RhFCHIQjqAiHGthlvce1OuQFmSZmG0dE0L6HoQmabprLlk guwCfJ2VbYd3771dmQGbzJWYp6ICA7ZWqWCf8i3gXSsy51OcX6YuGnvDw11JIuhEjRDa TRSwD0Qob+J09xpwIbaJuss5gZz16KTwHF4qUpREDScu0IZ3rAAqKJXuPKMHgHx8SYNi a7Pzmw+fUabMM0l1CrFowGcy87c/Vz//OIKw0E4oKtgfIRrHew1rTWAZ7k/BRrqZOgx4 XbOg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:from:references:cc:to:subject :user-agent:mime-version:date:message-id:dkim-signature; bh=qaSpe4uuEIbqVkic0o+txah2izfQczIDcnA1/dHmT2Y=; fh=NfMcN5V99eLRj9O1Uo9igva5VWarePoIRWnNDxijGrM=; b=B9U8h0iocqVATFYFnv+B/k+1GR3Mc50Lqf9j7tRL7cpnR8+nikgP5OJ9JCdSYXeagv 09tEaOM2KC1mnAG7zC7ThRh6CAz7T5/EVgm9Lg1fjoClD4WvkXkmWX0sfLhqjVTAD/Su h1ayfw1x1vQpo/swWsJaX3hWy5njnSjhfcMtSEXAWVNutEnn6+fVZi3UoqTlDqn6TLLr 8CJeTNMhy6Gk77VRpfxHQ+j7Gftr6yOrahnqIxWJlQcnTxvG1q1kbhzIWPSsZO91C6hF Hk20JL6/dwhv2HU5oDW6GUHd1t0dB05sgRIU8cOHZLG8tVwTsaPGbHTegl/GYt3L4OL9 mjNA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@broadcom.com header.s=google header.b=K0mnAEpa; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c3-20020a170906170300b0099bca8453f0si6048611eje.764.2023.08.07.13.35.35; Mon, 07 Aug 2023 13:36:00 -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=@broadcom.com header.s=google header.b=K0mnAEpa; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231153AbjHGSfC (ORCPT + 99 others); Mon, 7 Aug 2023 14:35:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33146 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230346AbjHGSfB (ORCPT ); Mon, 7 Aug 2023 14:35:01 -0400 Received: from mail-oi1-x22a.google.com (mail-oi1-x22a.google.com [IPv6:2607:f8b0:4864:20::22a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 975BE1726 for ; Mon, 7 Aug 2023 11:34:59 -0700 (PDT) Received: by mail-oi1-x22a.google.com with SMTP id 5614622812f47-3a78604f47fso2312185b6e.1 for ; Mon, 07 Aug 2023 11:34:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1691433299; x=1692038099; h=in-reply-to:from:references:cc:to:subject:user-agent:mime-version :date:message-id:from:to:cc:subject:date:message-id:reply-to; bh=qaSpe4uuEIbqVkic0o+txah2izfQczIDcnA1/dHmT2Y=; b=K0mnAEpaQnCmvOHxociCV+a+1fO51MG91f/mKJheZwqQP6hFs9kFEGHWHJpo5dRQof Bp2pgVngLvLtU0+08cxf+docB/LYcd9zi7n8bcK/CrUctIwVpwvkgGzw/M8/posLM6hr C4F0pEX+m1PqCLHcWVTEeIYuINy27R3KwjW4k= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691433299; x=1692038099; h=in-reply-to:from:references:cc:to:subject:user-agent:mime-version :date:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=qaSpe4uuEIbqVkic0o+txah2izfQczIDcnA1/dHmT2Y=; b=eyJqfOf8HvjoaHkOcXOlbHtr5eEeIUxmmaUvJtvPprhBxpmXynXwhEsaIVi/nAmAMQ qkwSYCI0YS0LrNToqmHUuCl/OdcWGZhrV60vG/l8L9aUyX0Kn0lSYEJhlwjLRBOX9Es9 gfFPNZFbyAREUWLr0noBBchg+11oHcEnasaPUXMct+K+OPw6h1tlLTSnsbpGFEgqoYfA ubgUFP18hPYT9/cLFrtXyHPaWrxlOJOsf8/3NAQQvuI1bXPzZMcN09krK0BL3yQXNFEP Mtx2+3qrZQzbEzOmkheXKaSKUu8Tj7GZ+eWci9dlGkZ66uG8GUcWijmLz8J6FXOOIvJs O3fw== X-Gm-Message-State: AOJu0YxQSMyacg24gahyxRhCxOIKRLDHHYEUDSwC3dqC5tIsodw1tMM5 /qErfv4XoZfPYFfspkWudlOghYi3Tw3ezB3si3g= X-Received: by 2002:aca:1905:0:b0:3a7:46d2:5203 with SMTP id l5-20020aca1905000000b003a746d25203mr9865896oii.51.1691433298823; Mon, 07 Aug 2023 11:34:58 -0700 (PDT) Received: from [10.67.48.245] ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id w70-20020a638249000000b0056368adf5e2sm5291227pgd.87.2023.08.07.11.34.56 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 07 Aug 2023 11:34:58 -0700 (PDT) Message-ID: Date: Mon, 7 Aug 2023 11:34:55 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: ARM board lockups/hangs triggered by locks and mutexes To: =?UTF-8?B?UmFmYcWCIE1pxYJlY2tp?= , Peter Zijlstra , Ingo Molnar , Will Deacon , Waiman Long , Boqun Feng , Russell King , Daniel Lezcano , Thomas Gleixner , Florian Fainelli , linux-clk@vger.kernel.org, "linux-arm-kernel@lists.infradead.org" , Network Development , Linux Kernel Mailing List Cc: OpenWrt Development List , bcm-kernel-feedback-list References: <0f9d0cd6-d344-7915-7bc1-7a090b8305d2@gmail.com> From: Florian Fainelli In-Reply-To: <0f9d0cd6-d344-7915-7bc1-7a090b8305d2@gmail.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="000000000000f4eafa06025980ec" X-Spam-Status: No, score=-3.9 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_NONE 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 --000000000000f4eafa06025980ec Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 8/7/23 04:10, Rafał Miłecki wrote: > On 4.08.2023 13:07, Rafał Miłecki wrote: >> I triple checked that. Dropping a single unused function breaks kernel / >> device stability on BCM53573! >> >> AFAIK the only thing below diff actually affects is location of symbols >> (I actually verified that by comparing System.map before and after - >> over 22'000 of relocated symbols). >> >> Can some unfortunate location of symbols cause those hangs/lockups? > > I performed another experiment. First I dropped mtd_check_of_node() to > bring kernel back to the stable state. > > Then I started adding useless code to the mtdchar_unlocked_ioctl(). I > ended up adding just enough to make sure all post-mtd symbols in > System.map got the same offset as in case of backporting > mtd_check_of_node(). > > I started experiencing lockups/hangs again. > > I repeated the same test with adding dumb code to the brcm_nvram_probe() > and verifying symbols offsets following brcm_nvram_probe one. > > I believe this confirms that this problem is about offset or alignment > of some specific symbol(s). The remaining question is what symbols and > how to fix or workaround that. In the config.gz file you attached in your first email, both CONFIG_MTD_* and CONFIG_NVMEM_* so it is not like we are reaching into module space for code and/or data and need veneers or anything, it is part of the kernel image so we can assert the maximum distance between instructions etc. Now is it just that specific mutex that is an issue, or do other mutexes through the system do cause problems as well? Do we suspect the toolchain to be possibly problematic? > > Following dump change brings back lockups/hangs: > > diff --git a/drivers/mtd/mtdchar.c b/drivers/mtd/mtdchar.c > index ee437af41..0a24dec55 100644 > --- a/drivers/mtd/mtdchar.c > +++ b/drivers/mtd/mtdchar.c > @@ -1028,6 +1028,22 @@ static long mtdchar_unlocked_ioctl(struct file > *file, u_int cmd, u_long arg) >  { >      int ret; > > +    if (!file) > +        pr_info("Missing\n"); > +    WARN_ON(!file); > +    WARN_ON(cmd == 1234); > +    WARN_ON(cmd == 5678); > +    WARN_ON(cmd == 1234); > +    WARN_ON(cmd == 5678); > +    WARN_ON(cmd == 1234); > +    WARN_ON(cmd == 5678); > +    WARN_ON(cmd == 1234); > +    WARN_ON(cmd == 5678); > +    WARN_ON(cmd == 1234); > +    WARN_ON(cmd == 5678); > +    WARN_ON(cmd == 1234); > +    WARN_ON(cmd == 5678); > + >      mutex_lock(&mtd_mutex); >      ret = mtdchar_ioctl(file, cmd, arg); >      mutex_unlock(&mtd_mutex); > -- Florian --000000000000f4eafa06025980ec Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 riBJ/K1AFUjRAjFhGV64l++td7dkmnq/X8ET75ti+w1s4FRpFqkD2m7pg5NxdsZphYIXAgMBAAGj QjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSP8Et/qC5FJK5N UPpjmove4t0bvDANBgkqhkiG9w0BAQsFAAOCAQEAS0DbwFCq/sgM7/eWVEVJu5YACUGssxOGhigH M8pr5nS5ugAtrqQK0/Xx8Q+Kv3NnSoPHRHt44K9ubG8DKY4zOUXDjuS5V2yq/BKW7FPGLeQkbLmU Y/vcU2hnVj6DuM81IcPJaP7O2sJTqsyQiunwXUaMld16WCgaLx3ezQA3QY/tRG3XUyiXfvNnBB4V 14qWtNPeTCekTBtzc3b0F5nCH3oO4y0IrQocLP88q1UOD5F+NuvDV0m+4S4tfGCLw0FREyOdzvcy a5QBqJnnLDMfOjsl0oZAzjsshnjJYS8Uuu7bVW/fhO4FCU29KNhyztNiUGUe65KXgzHZs7XKR1g/ XzCCBVgwggRAoAMCAQICDBP8P9hKRVySg3Qv5DANBgkqhkiG9w0BAQsFADBbMQswCQYDVQQGEwJC RTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTExMC8GA1UEAxMoR2xvYmFsU2lnbiBHQ0MgUjMg UGVyc29uYWxTaWduIDIgQ0EgMjAyMDAeFw0yMjA5MTAxMjE4MTFaFw0yNTA5MTAxMjE4MTFaMIGW MQswCQYDVQQGEwJJTjESMBAGA1UECBMJS2FybmF0YWthMRIwEAYDVQQHEwlCYW5nYWxvcmUxFjAU BgNVBAoTDUJyb2FkY29tIEluYy4xGTAXBgNVBAMTEEZsb3JpYW4gRmFpbmVsbGkxLDAqBgkqhkiG 9w0BCQEWHWZsb3JpYW4uZmFpbmVsbGlAYnJvYWRjb20uY29tMIIBIjANBgkqhkiG9w0BAQEFAAOC AQ8AMIIBCgKCAQEA+oi3jMmHltY4LMUy8Up5+1zjd1iSgUBXhwCJLj1GJQF+GwP8InemBbk5rjlC UwbQDeIlOfb8xGqHoQFGSW8p9V1XUw+cthISLkycex0AJ09ufePshLZygRLREU0H4ecNPMejxCte KdtB4COST4uhBkUCo9BSy1gkl8DJ8j/BQ1KNUx6oYe0CntRag+EnHv9TM9BeXBBLfmMRnWNhvOSk nSmRX0J3d9/G2A3FIC6WY2XnLW7eAZCQPa1Tz3n2B5BGOxwqhwKLGLNu2SRCPHwOdD6e0drURF7/ Vax85/EqkVnFNlfxtZhS0ugx5gn2pta7bTdBm1IG4TX+A3B1G57rVwIDAQABo4IB3jCCAdowDgYD VR0PAQH/BAQDAgWgMIGjBggrBgEFBQcBAQSBljCBkzBOBggrBgEFBQcwAoZCaHR0cDovL3NlY3Vy ZS5nbG9iYWxzaWduLmNvbS9jYWNlcnQvZ3NnY2NyM3BlcnNvbmFsc2lnbjJjYTIwMjAuY3J0MEEG CCsGAQUFBzABhjVodHRwOi8vb2NzcC5nbG9iYWxzaWduLmNvbS9nc2djY3IzcGVyc29uYWxzaWdu MmNhMjAyMDBNBgNVHSAERjBEMEIGCisGAQQBoDIBKAowNDAyBggrBgEFBQcCARYmaHR0cHM6Ly93 d3cuZ2xvYmFsc2lnbi5jb20vcmVwb3NpdG9yeS8wCQYDVR0TBAIwADBJBgNVHR8EQjBAMD6gPKA6 hjhodHRwOi8vY3JsLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwLmNy bDAoBgNVHREEITAfgR1mbG9yaWFuLmZhaW5lbGxpQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggr BgEFBQcDBDAfBgNVHSMEGDAWgBSWM9HmWBdbNHWKgVZk1b5I3qGPzzAdBgNVHQ4EFgQUUwwfJ6/F KL0fRdVROal/Lp4lAF0wDQYJKoZIhvcNAQELBQADggEBAKBgfteDc1mChZjKBY4xAplC6uXGyBrZ kNGap1mHJ+JngGzZCz+dDiHRQKGpXLxkHX0BvEDZLW6LGOJ83ImrW38YMOo3ZYnCYNHA9qDOakiw 2s1RH00JOkO5SkYdwCHj4DB9B7KEnLatJtD8MBorvt+QxTuSh4ze96Jz3kEIoHMvwGFkgObWblsc 3/YcLBmCgaWpZ3Ksev1vJPr5n8riG3/N4on8gO5qinmmr9Y7vGeuf5dmZrYMbnb+yCBalkUmZQwY NxADYvcRBA0ySL6sZpj8BIIhWiXiuusuBmt2Mak2eEv0xDbovE6Z6hYyl/ZnRadbgK/ClgbY3w+O AfUXEZ0xggJtMIICaQIBATBrMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52 LXNhMTEwLwYDVQQDEyhHbG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwAgwT /D/YSkVckoN0L+QwDQYJYIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEIEWhoOXxk0RhVNuR uy7XDF/MMj9GpPcQi6ZqAl+HxMf/MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcN AQkFMQ8XDTIzMDgwNzE4MzQ1OVowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZI AWUDBAEWMAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEH MAsGCWCGSAFlAwQCATANBgkqhkiG9w0BAQEFAASCAQAPQYgxCVsB8REBNkIw9FccqITUY58doMjY /cRDez2mWPU/N0+EQNMhS1BMuYm18MDgMin7Ymqr7HnsISJVa6k8+WBALE2r7L9y7g7cptOIdu4z X02dMvEZZPlPotYwHfWjY8VqOgXpivy5zULGDdhhBqo2mLeAKlULM6tk70aX54fonMKCqNPThWWN q+yglQ4cJuhoWj5ugsAPiF9/oknzOHSUPPspGN2L9BWvnUrCRxAH3NnFjIyBSobaln9KQyieOjbA 6NKALXV641AkvQIrVRRS/5/VIgGA4r/6ECgOaa+6RGVtGOHS+GqvaBz/tRYnOdVXa5B3FI1oFINI HOqq --000000000000f4eafa06025980ec--