From patchwork Mon Apr 9 19:49:44 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jeroen Hofstee X-Patchwork-Id: 896387 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=victronenergy.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=VICTRONENERGY.onmicrosoft.com header.i=@VICTRONENERGY.onmicrosoft.com header.b="4B56/oyc"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 40Kgr24Yp0z9rxx for ; Tue, 10 Apr 2018 05:49:54 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753719AbeDITtv (ORCPT ); Mon, 9 Apr 2018 15:49:51 -0400 Received: from mail-eopbgr40123.outbound.protection.outlook.com ([40.107.4.123]:45039 "EHLO EUR03-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753611AbeDITtt (ORCPT ); Mon, 9 Apr 2018 15:49:49 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=VICTRONENERGY.onmicrosoft.com; s=selector1-victronenergy-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=QwMgSWJ4bOBnIRjc80e5uQ7t9Z83I0fCZxUab0xKGTo=; b=4B56/oycH+BtllBrGNotmFe5UvWcsCQ4aCiR0+ry85Yp42S2aHf/k24VoTtZ4RUzA8WsR5GYzXFfs6kKUABuFdBkBX8o8W5sxZOqwkaT5FMAwnVSeFie+jNnVKoGqcqF1iq0qtCrhZQEytexg4AtWcJlw4QgLUKFW4jip0RWUa0= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=jhofstee@victronenergy.com; Received: from [IPv6:2001:1c01:c06:100:485a:3879:f346:2e86] (2001:1c01:c06:100:485a:3879:f346:2e86) by HE1PR0702MB3641.eurprd07.prod.outlook.com (2603:10a6:7:8c::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.675.4; Mon, 9 Apr 2018 19:49:47 +0000 To: netdev@vger.kernel.org From: Jeroen Hofstee Subject: RFC: ti_hecc: don't repoll but interrupt again Message-ID: Date: Mon, 9 Apr 2018 21:49:44 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 Content-Language: en-US X-Originating-IP: [2001:1c01:c06:100:485a:3879:f346:2e86] X-ClientProxiedBy: AM0PR0102CA0008.eurprd01.prod.exchangelabs.com (2603:10a6:208:14::21) To HE1PR0702MB3641.eurprd07.prod.outlook.com (2603:10a6:7:8c::27) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e1ecfff3-52db-486c-3d14-08d59e530c84 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:HE1PR0702MB3641; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0702MB3641; 3:X7m+rQEGTW1CZ829VDjN+sF6vA+62RZ45bPoqVpmTJkCaW1pdQTTv2Fcdd/rNncG09PaoZelaYTiNilNgRE4hHwl0EO3EAMj0BzpyFvndE93GeFfGpuWk34GWzJqpKu4YkK3ZHwJzF/5HyNVVuhUyxc/9YMFg+X9URfFZOgsMr18qKrrNtzPje/d86dG1jNiWjXh4KFjfeb1DC1KzGMr+I/yeAcggEtZ1anc3k5fnVP/kmBuzG4xQ1QGqWd+gRQq; 25:XUztvlcQP7WJitoPv67QzlVY9EL0Tg7na6zZMYwNUEgEnaqhj32OmAQkPij3qCNTDia85iQ7NzAC1QMtZ4zrDsy9SIp1Y9ux17H1928QN8BQO3IecyCxUabiwobSzp4A/lAmEaiPTJFbx7txAPKZUXu2yHVuo/C7wju0Iyk9P9beNiAphkenci3d1BcOg3pXa3/NivMQANzzJ1u29ejNhtAtdySlKoeF0g2ytmXiwPFX32xoQfie9SapueU0GPCeJmYTTVnDRWwKoZu7zpsyM2efBRmuixRn40+fdWqwetC1YR108fsF2sYHe6RvX2NtTiQbPjfIC5triyaTOXOzCw==; 31:Z4Oku1BxoWaWkaKAZNrdIeM25IZdjKIV4G5cQnz+CNBFxHiK0rlCTw+heBV2NgaQXn+LNFsEHbTnFNUA5ELqBcQydl+F6EmSdId+tfEpFyWkM1HIuPQC1nQSjSlfxajn5O96uZZ4zTYDLXcJMxG4VxuvsVb6ixMl/H2k0jUkyZXG85XZWmGkoRz1AbutLlCVmrJCEg8cfbfIiq0na9rsVZdC4Tsd+FStlG3rtNBWGXk= X-MS-TrafficTypeDiagnostic: HE1PR0702MB3641: X-Microsoft-Exchange-Diagnostics: 1; HE1PR0702MB3641; 20:lLcrZszQytmNDp6L062kx5SB03xrrAEzo0K1MR91ci/wow0M6iDgMr/jGbrRjU/QM3H27tahaFMW0+EG3jZqswaDmFRSpV7yY7KaWOx16p2w3oonK9B0VNPkTIibfFTe/GhONMftKtvGRNaUvm+uRrJnttHVfg4fOveY+/9eat7Map63Di0CsUsjtI5RNIUx/VnNyaI8kSeLJRIHQSxo1A3gLLu2w/3lxBZNHUU1w6tcbiWiUfBzTsKWOsGtsw/n; 4:K0AWCgclbqJz+rEBHX+oCSA5XPJRa62V5pk8tStpVGnznEhpLai4zgQtQYiKEnhn2/++wE5sMMNl6v6hP8DsBtSAlYgcM7z92VaQdKGPwqkqWG6nMT7jPR2+24Vx+CGg5JytQBSOayMZG4V5q9cdWHcJ1Q0vfS6zRKCjmxQgPL1DgnawVyP4xTOsuG3FkE2sBiFgoeNUiJMi2ePD1kSLYQrgtBY1Y7Ypg4Vyk30h+qDLbzvuqNAZZ/2fIiKfu8q3GxVky5i+m6Px9TdluzlQgA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(5005006)(8121501046)(10201501046)(3002001)(3231221)(944501327)(52105095)(93006095)(93001095)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123560045)(20161123558120)(20161123562045)(6072148)(201708071742011); SRVR:HE1PR0702MB3641; BCL:0; PCL:0; RULEID:; SRVR:HE1PR0702MB3641; X-Forefront-PRVS: 0637FCE711 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(39380400002)(376002)(366004)(39850400004)(346002)(396003)(199004)(189003)(51874003)(6116002)(316002)(305945005)(58126008)(64126003)(31696002)(6666003)(6916009)(2351001)(2361001)(7736002)(106356001)(65806001)(65956001)(97736004)(486006)(46003)(2486003)(16526019)(2616005)(476003)(186003)(478600001)(230700001)(31686004)(5660300001)(81166006)(25786009)(81156014)(68736007)(65826007)(50466002)(2906002)(6486002)(8936002)(1706002)(52116002)(47776003)(386003)(52146003)(59450400001)(52396003)(8676002)(53936002)(105586002)(86362001)(36756003)(67846002)(23676004); DIR:OUT; SFP:1102; SCL:1; SRVR:HE1PR0702MB3641; H:[IPv6:2001:1c01:c06:100:485a:3879:f346:2e86]; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: victronenergy.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?q?1=3BHE1PR0702MB3641=3B23=3A0g?= =?utf-8?q?hnh7taenzDO3zxWAqjCE2VwyRgt9OqMFsEi63jBS8iHHP5uuooukhJWJ?= =?utf-8?q?rSj+MDlAwgo6qyWgDzztWBZW7I2D+WITZ3xuJZOwNHb2vdFWOBJ18o2V?= =?utf-8?q?nugn/Rpu+P+3ab133sXb6Btv+dMLgZGln0DQwEmQts0nLgW7zxb0ceIb?= =?utf-8?q?4AEBkFVE3Rl0ckRsTwEeA6nfupVLmvSKVIQkrDa1BY6JB/EzT7zsw7dI?= =?utf-8?q?bAKb+qoFDbA+dLdd++8zhqwgXnwEX8kDLw8x8L1S2umyDhsSl+7o3QuP?= =?utf-8?q?PBpHX893F/+AzOqqtPCgTR29KXaNkTrPIv6t5CgFpPAE/tKTMIN9lRBo?= =?utf-8?q?G0Ck1+wHFvaUfO2QXuy+S+awd6euJBXSsW+WCEh8Znn57RsDML+hur17?= =?utf-8?q?QrXhLTcwW3pIVFbndvt6l+nc4aust51qWN2zP/Z2UEPOLRrqLkkbnfR+?= =?utf-8?q?xk+xgqlXJjuCYeGZmzzEcTY642eMZ5nr3tWBNJJ/rt2kp13rKLktRM91?= =?utf-8?q?xXpYzLtykl+NXWm0wPRmkox7FVD1QeHfR2wS9blA7so/FFqXcX9bgibM?= =?utf-8?q?RbZvYqzK+cKyDHvqSUUP5k6OZotpw9VUfWtbBSfFcTU4fhR9ZQEOYsUp?= =?utf-8?q?U41i/jeWjrzEj9A95WEqbA2XGK6xiNzrQero+f/xXaL7Kry6W0xtPqjs?= =?utf-8?q?TI72P/cA/KnpnjeZVtLKdvg8R1ENZ8Cd+ysxvo/gEreWvyV9SGxWdF3T?= =?utf-8?q?sDPcAEraAkZrrB61k6Z63bsH/TZ5c6OPx0lAYGZKwfmBoRZUr1YzlBnt?= =?utf-8?q?S+teb3w7FnIO/emhzcKYIH6TdvLkp3MRvNbuhoqRV1afIJsLUYT+EnsE?= =?utf-8?q?Um+M8Muh2UVRv1GeNE8pGSIBVSJZDHg2C6Mkx0PpqjVPdkcEzcVUQrCc?= =?utf-8?q?MR/Xm5RFqCwgfaohEZEh4baSMBmIUnwXN/XLDiU3wT4OOjB8++cyuM9R?= =?utf-8?q?yL8NxSJ/D4MFMGaih3ZdoNVkqRrCm1i7prSZVN2b+D+y73tFioDx2x82?= =?utf-8?q?o67HS7/4DG+nXpusObane4DwLlr9Qfzk2xLqoStMcqciU6zpQsl+TxPs?= =?utf-8?q?VYttrid4dMBHmivPqFBF9CQISJdoDPkXlWxHIS9VHoQkjMYHP6cFd/D4?= =?utf-8?q?GuoqOr4PmX1JCdqn6wBUiQcK7A198HURbao3GwrVJvZeONJSQaBSyfmt?= =?utf-8?q?AnFN38gbCU421WOoA+AmFyr7bC0SEQJGK1OL6jFv2P3PN3KXKKPhgtf8?= =?utf-8?q?LysDogHt1JMK1vHeuc8edFsfpVFGRzHlzueNa8VHNj5fCDDGOAg9cCzW?= =?utf-8?q?TyBVqP4UI//fKbt0U17tYJqCrEGf9Ted4=3D?= X-Microsoft-Antispam-Message-Info: QWTFv2YWqOfqPwcMcBpTkjKxTOWGSD8Nwk3LwNXjtXj9ECmViIVubvWzi7LYddXHK7BIQP1xY/xyNo3kI8Ntn4C/HVopEz+IPfpCEA6xKDy7fco4pNmi1GpProCc2waRjU/zpWTrIKv76+G8S1gOxzql0yXaunYez4FOEomtJ4dZSHpEY5l6pNSoZGNgMKTo X-Microsoft-Exchange-Diagnostics: 1; HE1PR0702MB3641; 6:KZQuNRTE9I5lvzGuMi1M/njEBDywacAEbi0Jt1DQQ47NdZYxQlZoV99FD/bMLh7rZnTlFRPjzDG/G7p8QrlWgTxTYcTwduEp0cq4dDMVn7b6ze5UfT/KO3lVrETZBKfEJkXCdLmM8RUE5cgOVzzTJ5dipH+OuRQN+bg1sBnszlBty4GKKD6ak09WVusBI0RixzUm2Dj1GCx+tMzEcEDr8Nk2S9CuUqudi6wIhs5Onf2xDfQ+Cp7+mvBWRHNO4062/yYsWMrgfSpODwh1v9Fp3IkCTh68To5uR+jzdMUYHxcWklBEq1mLe2mBlQ9dbdxU+krJculMOLzHjJJkr3JpHM1CSESLkMDxH05VpDDuvxGnlg1yE/GzI5FsAR+OPVxa2k82cEzN3AEduVxaCR4bEp0uLUv+dlh+kwNZMumEy1dW6OheGodwclRc8CSf9hY7JVMh/0f8H0SfiUzah9WUdA==; 5:UdQPKbfFaNrNQEkKNzwM39M9WtZPh/BG7CFLxvBSHbUUO037q3TWU8zlJm5rD5R8+X7Ensrf5yWjNvhZIkIgDRMzGKXc53/9f6GBnvxFdnKfSSipzR5s2km8J+JiiQ4iJZCDI5djpYgJCDAQxQyPYUnGKU6CGXLlGc1giyf/ZsE=; 24:GZGPl2+2g6SJK50HZx+xEmEwidLetNCO8K3eXfIdmXdLKpvyZJUQm1EPj8Ud79U49LdBGC07+WPfu5vOF2GHVzyGlNeP0frdqA4AJpn3qcU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; HE1PR0702MB3641; 7:0mYIaGgfca0dBcWQDGyi7HNhG/lwwqPDWAQ2VhLPq7IZRqWtNytj76Adu9HBlrg2WL2NRDGfClCk3IhnSH7JQxgtlY9BTrNaky3B+/6p2PqlTLQigbgz2eTrILYF0X/fqgcQX261qNqJBYLNpnJv8WMxstJGVQwU9dXDlz7bQJAP9jH0CZn9aYW/CGtWWw18W/66lHYAWtZNbCkzv8tYj/kIoxvI2s5dWYtGGwx7z6avmT8ak8I/DO3qTDCaVwRy X-OriginatorOrg: victronenergy.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2018 19:49:47.0659 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e1ecfff3-52db-486c-3d14-08d59e530c84 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 60b95f08-3558-4e94-b0f8-d690c498e225 X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0702MB3641 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Hello, I posted below RFC to the linux-can ML, but it might be actually more appropriate for netdev (since it involves napi). This driver is lying a bit about the amount of work done. Changing that (always look at work done instead of the hw state) seems to solve the issue, but I have no clear understanding why that is (and why it takes down the ethernet stack as well). If someone has suggestions / ideas on what to check, please let me know. Regards, Jeroen The mail send to linux-can: While updating to Linux 4.9.93, the ti_hecc causes several problems. One of them is that under high load on the CAN-bus and ethernet, the ethernet connection completely stalls and won't recover. The patch below seems to fix that (as in read as much as we can and always re-enable interrupts, it will poll again thereafter). It would be appreciated if someone more familiar with this code can comment on it. Thanks in advance, Jeroen --- a/drivers/net/can/ti_hecc.c +++ b/drivers/net/can/ti_hecc.c @@ -625,20 +625,16 @@ static int ti_hecc_rx_poll(struct napi_struct *napi, int quota) spin_unlock_irqrestore(&priv->mbx_lock, flags); } else if (priv->rx_next == HECC_MAX_TX_MBOX - 1) { priv->rx_next = HECC_RX_FIRST_MBOX; - break; } } /* Enable packet interrupt if all pkts are handled */ - if (hecc_read(priv, HECC_CANRMP) == 0) { + if (num_pkts < quota) { napi_complete(napi); /* Re-enable RX mailbox interrupts */ mbx_mask = hecc_read(priv, HECC_CANMIM); mbx_mask |= HECC_TX_MBOX_MASK; hecc_write(priv, HECC_CANMIM, mbx_mask); - } else { - /* repoll is done only if whole budget is used */ - num_pkts = quota; }