Cover Letter Detail
Show a cover letter.
GET /api/1.1/covers/2220766/?format=api
{ "id": 2220766, "url": "http://patchwork.ozlabs.org/api/1.1/covers/2220766/?format=api", "web_url": "http://patchwork.ozlabs.org/project/ubuntu-kernel/cover/20260408004333.236687-1-acelan.kao@canonical.com/", "project": { "id": 15, "url": "http://patchwork.ozlabs.org/api/1.1/projects/15/?format=api", "name": "Ubuntu Kernel", "link_name": "ubuntu-kernel", "list_id": "kernel-team.lists.ubuntu.com", "list_email": "kernel-team@lists.ubuntu.com", "web_url": null, "scm_url": null, "webscm_url": null }, "msgid": "<20260408004333.236687-1-acelan.kao@canonical.com>", "date": "2026-04-08T00:43:32", "name": "[SRU,R,0/1] System doesn't response with mt76 call trace", "submitter": { "id": 2976, "url": "http://patchwork.ozlabs.org/api/1.1/people/2976/?format=api", "name": "AceLan Kao", "email": "acelan.kao@canonical.com" }, "mbox": "http://patchwork.ozlabs.org/project/ubuntu-kernel/cover/20260408004333.236687-1-acelan.kao@canonical.com/mbox/", "series": [ { "id": 499055, "url": "http://patchwork.ozlabs.org/api/1.1/series/499055/?format=api", "web_url": "http://patchwork.ozlabs.org/project/ubuntu-kernel/list/?series=499055", "date": "2026-04-08T00:43:32", "name": "System doesn't response with mt76 call trace", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/499055/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/covers/2220766/comments/", "headers": { "Return-Path": "<kernel-team-bounces@lists.ubuntu.com>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=W1GKdP4Z;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.ubuntu.com\n (client-ip=185.125.189.65; helo=lists.ubuntu.com;\n envelope-from=kernel-team-bounces@lists.ubuntu.com;\n receiver=patchwork.ozlabs.org)" ], "Received": [ "from lists.ubuntu.com (lists.ubuntu.com [185.125.189.65])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fr47T1lQTz1yD3\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 08 Apr 2026 10:43:48 +1000 (AEST)", "from localhost ([127.0.0.1] helo=lists.ubuntu.com)\n\tby lists.ubuntu.com with esmtp (Exim 4.86_2)\n\t(envelope-from <kernel-team-bounces@lists.ubuntu.com>)\n\tid 1wAH1A-0001Fc-7U; Wed, 08 Apr 2026 00:43:40 +0000", "from mail-qv1-f53.google.com ([209.85.219.53])\n by lists.ubuntu.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.86_2) (envelope-from <acelan@gmail.com>) id 1wAH18-0001FU-Sh\n for kernel-team@lists.ubuntu.com; Wed, 08 Apr 2026 00:43:39 +0000", "by mail-qv1-f53.google.com with SMTP id\n 6a1803df08f44-89cd8596724so63272356d6.0\n for <kernel-team@lists.ubuntu.com>; Tue, 07 Apr 2026 17:43:38 -0700 (PDT)", "from localhost (211-75-139-220.hinet-ip.hinet.net. [211.75.139.220])\n by smtp.gmail.com with ESMTPSA id\n 6a1803df08f44-8a597acf5dbsm157033296d6.49.2026.04.07.17.43.35\n for <kernel-team@lists.ubuntu.com>\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Tue, 07 Apr 2026 17:43:36 -0700 (PDT)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1775609017; x=1776213817; darn=lists.ubuntu.com;\n h=content-transfer-encoding:mime-version:message-id:date:subject:to\n :from:sender:from:to:cc:subject:date:message-id:reply-to;\n bh=qbxmC1DxoFRBnuX4vi1Rm0l+Ny/W4GnoQWqjBQDBKck=;\n b=W1GKdP4Z2ldxRkSkrtbmT0vHFo9E0Jc1W5aYvlrKdgBHgjFhbhpLfVRmkv2keshTQq\n CbgXLP57xZ1Wv9vKaEA21K18pow0K5whUo2ntgMcPsYBBzsBBw5zKQNrUuGXk2NhaLL5\n 1cmepF3jGeEj6jjYqrdprxDB715qovCu7h6ijqlzaKi72tdeLlmDOrQsfJ9biaTIAgjq\n vBLgDnkRPjdSZNpIwxs5+rLESDZ8HOriQEtDrgQPUIYvGO2YjpJJrhA0Jg42S/Kg7pxY\n VCS6o6bK07mkCri5QiYJpZ5GeskoSE+UTZS/UZL8pp6VBXieWFnsbFq9f5gJACB+iMMN\n IgJg==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775609017; x=1776213817;\n h=content-transfer-encoding:mime-version:message-id:date:subject:to\n :from:sender:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=qbxmC1DxoFRBnuX4vi1Rm0l+Ny/W4GnoQWqjBQDBKck=;\n b=kllMOpW6pqAjq2Rnqwc9H1aPjJJy7Myn6vTaI0POtDMT/w1blr4djU2qNvT0q17365\n LoS3TzUbJ00qqG8ajsJMfXJIyiAIgqiI//nmP+Gl9BrALYkY0+1NhvNotaeAHH1a60A/\n 66OqfpgdlIBr+M1bWX5ftD9Ye+KykvxdbzwPBtSEyGNrWJEnDJK8B1x9S9G4zIOtxGab\n RqNxqxpjFkKYivBHlJWIhLdj4IHvTCFzNpKT7pyftFod2UK00jzLisTr5dyp7qidaKDJ\n GZaEdEhd7U9mTYq18vtJ55SftHXTVBhEKDcuyKIT98JYKm213j7IH+XWKqLMclwExWus\n 4ofg==", "X-Gm-Message-State": "AOJu0YyIxPEyqQyowjHt7/d6q3pwBYJszYHvLnZkp6vk6HAGDSo6giLh\n mUn9y+3Srp/RjvEWeWlPlVT4ccxh6LNi7v5oWzTO7JSVIwkW+a+Wb97VIiaiyi/c", "X-Gm-Gg": "AeBDietcbe03sTrlz72ylMCqaxiKpmbHcfgW7V9r+pur7Kjf9RrLbxNx6YwE3BzF2FM\n ZYWMJ2mqOVd6UMFXnMjf0/MkpWN4vgPP3qZ0MNcIRfw6NZSlzJiBnJqLxb7Q4cAu7CmTv2e/BAE\n DmnsX5PpHFvGYMIES2UU9WAK6CjiTIKx1pPFEcfa89hfAYAeEFPuPqJZw9A3pbh+JCh7qO4UK9+\n hUJ9m4iXwKwCplrgMewMIMYloNv4d6NOr/y97pnGeTeZFw78mKiF8iZRRMgoqa89WBA3s6x2O2n\n QvTWB5m5Vma3/b3A2GGACIy15mowmLHfG58pv8XP9Pmve0qAmRUBPylmv760X/6chV9qo+SESZ4\n q0qdfw6PJ7R1+vvSAyQUW0FCqX4ZIqsvy+ULn6KQw0Gdsegqx3yIY61bsQTKls6gLDtibqB7ywL\n 35bavQSzTE8jPDOCkEJC2auP3ItorFe7WtlSdLtFaxeboiR87gE0Ta", "X-Received": "by 2002:a05:6214:611b:b0:89c:6451:67ac with SMTP id\n 6a1803df08f44-8a7021c6711mr262799486d6.12.1775609017073;\n Tue, 07 Apr 2026 17:43:37 -0700 (PDT)", "From": "AceLan Kao <acelan.kao@canonical.com>", "To": "kernel-team@lists.ubuntu.com", "Subject": "[SRU][R][PATCH 0/1] System doesn't response with mt76 call trace", "Date": "Wed, 8 Apr 2026 08:43:32 +0800", "Message-ID": "<20260408004333.236687-1-acelan.kao@canonical.com>", "X-Mailer": "git-send-email 2.53.0", "MIME-Version": "1.0", "Received-SPF": "pass client-ip=209.85.219.53; envelope-from=acelan@gmail.com;\n helo=mail-qv1-f53.google.com", "X-BeenThere": "kernel-team@lists.ubuntu.com", "X-Mailman-Version": "2.1.20", "Precedence": "list", "List-Id": "Kernel team discussions <kernel-team.lists.ubuntu.com>", "List-Unsubscribe": "<https://lists.ubuntu.com/mailman/options/kernel-team>,\n <mailto:kernel-team-request@lists.ubuntu.com?subject=unsubscribe>", "List-Archive": "<https://lists.ubuntu.com/archives/kernel-team>", "List-Post": "<mailto:kernel-team@lists.ubuntu.com>", "List-Help": "<mailto:kernel-team-request@lists.ubuntu.com?subject=help>", "List-Subscribe": "<https://lists.ubuntu.com/mailman/listinfo/kernel-team>,\n <mailto:kernel-team-request@lists.ubuntu.com?subject=subscribe>", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "base64", "Errors-To": "kernel-team-bounces@lists.ubuntu.com", "Sender": "\"kernel-team\" <kernel-team-bounces@lists.ubuntu.com>" }, "content": "From: \"Chia-Lin Kao (AceLan)\" <acelan.kao@canonical.com>\n\nBugLink: https://bugs.launchpad.net/bugs/2137448\n\n[Impact]\nOn Dell systems with MediaTek MT7925 WiFi cards (mt7925e driver), the system becomes unresponsive during firmware testing and high-load situations due to a deadlock in the mt76 driver. The system shows \"workqueue hogging CPU\" messages followed by system hang, preventing completion of certification testing.\n\nThe issue occurs because:\n1. Two workqueue functions (ps_work and mac_work) attempt to cancel each other using cancel_delayed_work_sync()\n2. In high-load situations, both works get queued but cannot execute until CPUs are available\n3. When CPUs become available, both work functions may run simultaneously, each trying to synchronously cancel the other, resulting in a deadlock\n\nThe call path that creates the circular dependency is:\n mt792x_mac_work() -> ... -> cancel_delayed_work_sync(&pm->ps_work);\n mt792x_pm_power_save_work() -> cancel_delayed_work_sync(&mphy->mac_work);\n\n[Fix]\nReplace cancel_delayed_work_sync() with cancel_delayed_work() in the mt792x_pm_power_save_work() function to eliminate the deadlock condition.\n\nUpstream commit (submitted to linux-wireless):\nhttps://patchwork.kernel.org/project/linux-wireless/patch/20251215122231.3180648-1-leon.yen@mediatek.com/\n\nIn linux-next:\nbb2f07819d063 wifi: mt76: mt792x: Fix a potential deadlock in high-load situations\n\nThe non-synchronous cancel is safe here because:\n- The work cancellation is part of the power-save flow, not a critical cleanup path\n- Avoiding synchronous wait prevents the circular dependency that causes the deadlock\n- The code becomes simpler and easier to maintain\n\n[Test Plan]\nOn a Dell system with MediaTek MT7925 WiFi (or similar affected platform):\n\n1. Install fwts if not already available:\n $ sudo apt-get install fwts\n\n2. Monitor system logs in a separate terminal:\n $ sudo dmesg -w\n\n3. Run the firmware test cases that previously triggered the deadlock:\n\n $ sudo fwts wakealarm\n $ sudo fwts uefirtvariable\n $ sudo fwts oops\n\n Or run a comprehensive diagnostic test:\n $ sudo fwts --log-level=high -r stdout\n\n4. Check for symptoms during and after the tests:\n\n Without the fix, you would see:\n - \"Message 00020080 (seq N) timeout\" from mt7925e\n - \"workqueue: vmstat_update hogged CPU for >10000us\" warnings\n - \"workqueue: psi_avgs_work hogged CPU for >10000us\" warnings\n - WARNING traces in iommu_dma_unmap_page\n - System becoming unresponsive\n\n With the fix, these symptoms should not occur and the system should remain responsive.\n\n5. Run extended stress testing with WiFi activity during high CPU load:\n $ stress-ng --cpu 128 --timeout 300s &\n $ ping -f <router_ip> # flood ping to generate WiFi traffic\n\n The system should remain stable without deadlocks.\n\n[Where problems could occur]\nThis change affects the MediaTek MT792x WiFi driver's power management and workqueue interaction on systems with mt7925e and similar chipsets.\n\nPotential issues if the non-synchronous cancel is not safe in this context:\n- If there are assumptions in the code that mac_work must be fully stopped before proceeding, using non-synchronous cancel might allow mac_work to run concurrently with subsequent operations, potentially causing race conditions\n- The mac_work might access hardware or data structures that ps_work assumes are quiescent after the cancel call, leading to unexpected behavior or crashes\n- Power management state transitions might become inconsistent if mac_work completes after ps_work has already proceeded with its power-save operations\n\nHowever, these risks are mitigated by:\n- The change is intentional and authored by MediaTek engineers who maintain the driver\n- The alternative (synchronous cancel) creates a known deadlock issue with 60% reproduction rate\n- The workqueue subsystem provides inherent protection against most race conditions\n- Similar patterns are used elsewhere in the kernel where work items need to coordinate\n\nThe impact is limited to:\n- Systems with MediaTek MT792x series WiFi chipsets (mt7921, mt7925, etc.)\n- Primarily affects high-load scenarios where both work items are queued simultaneously\n- Does not affect other wireless drivers or systems without these chipsets\nLeon Yen (1):\n wifi: mt76: mt792x: Fix a potential deadlock in high-load situations\n\n drivers/net/wireless/mediatek/mt76/mt792x_mac.c | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)" }