[{"id":1765639,"web_url":"http://patchwork.ozlabs.org/comment/1765639/","msgid":"<94e9e0f9-403a-72c7-62d2-797f6fd1bc99@fb.com>","list_archive_url":null,"date":"2017-09-08T22:38:14","subject":"Re: [net PATCH 1/3] net: rcu lock and preempt disable missing around\n\tgeneric xdp","submitter":{"id":68234,"url":"http://patchwork.ozlabs.org/api/people/68234/","name":"Alexei Starovoitov","email":"ast@fb.com"},"content":"On 9/8/17 2:00 PM, John Fastabend wrote:\n> do_xdp_generic must be called inside rcu critical section with preempt\n> disabled to ensure BPF programs are valid and per-cpu variables used\n> for redirect operations are consistent. This patch ensures this is true\n> and fixes the splat below.\n>\n> The netif_receive_skb_internal() code path is now broken into two rcu\n> critical sections. I decided it was better to limit the preempt_enable/disable\n> block to just the xdp static key portion and the fallout is more\n> rcu_read_lock/unlock calls. Seems like the best option to me.\n>\n> [  607.596901] =============================\n> [  607.596906] WARNING: suspicious RCU usage\n> [  607.596912] 4.13.0-rc4+ #570 Not tainted\n> [  607.596917] -----------------------------\n> [  607.596923] net/core/dev.c:3948 suspicious rcu_dereference_check() usage!\n> [  607.596927]\n> [  607.596927] other info that might help us debug this:\n> [  607.596927]\n> [  607.596933]\n> [  607.596933] rcu_scheduler_active = 2, debug_locks = 1\n> [  607.596938] 2 locks held by pool/14624:\n> [  607.596943]  #0:  (rcu_read_lock_bh){......}, at: [<ffffffff95445ffd>] ip_finish_output2+0x14d/0x890\n> [  607.596973]  #1:  (rcu_read_lock_bh){......}, at: [<ffffffff953c8e3a>] __dev_queue_xmit+0x14a/0xfd0\n> [  607.597000]\n> [  607.597000] stack backtrace:\n> [  607.597006] CPU: 5 PID: 14624 Comm: pool Not tainted 4.13.0-rc4+ #570\n> [  607.597011] Hardware name: Dell Inc. Precision Tower 5810/0HHV7N, BIOS A17 03/01/2017\n> [  607.597016] Call Trace:\n> [  607.597027]  dump_stack+0x67/0x92\n> [  607.597040]  lockdep_rcu_suspicious+0xdd/0x110\n> [  607.597054]  do_xdp_generic+0x313/0xa50\n> [  607.597068]  ? time_hardirqs_on+0x5b/0x150\n> [  607.597076]  ? mark_held_locks+0x6b/0xc0\n> [  607.597088]  ? netdev_pick_tx+0x150/0x150\n> [  607.597117]  netif_rx_internal+0x205/0x3f0\n> [  607.597127]  ? do_xdp_generic+0xa50/0xa50\n> [  607.597144]  ? lock_downgrade+0x2b0/0x2b0\n> [  607.597158]  ? __lock_is_held+0x93/0x100\n> [  607.597187]  netif_rx+0x119/0x190\n> [  607.597202]  loopback_xmit+0xfd/0x1b0\n> [  607.597214]  dev_hard_start_xmit+0x127/0x4e0\n>\n> Fixes: d445516966dc (\"net: xdp: support xdp generic on virtual devices\")\n> Fixes: b5cdae3291f7 (\"net: Generic XDP\")\n> Acked-by: Daniel Borkmann <daniel@iogearbox.net>\n> Signed-off-by: John Fastabend <john.fastabend@gmail.com>\n\nargh, so it's due to virtual devices and loopback.\nNot pretty, but have to agree I don't see another way of fixing it.\n\nAcked-by: Alexei Starovoitov <ast@kernel.org>","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=fb.com header.i=@fb.com header.b=\"RVHSLw9r\";\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=fb.onmicrosoft.com header.i=@fb.onmicrosoft.com\n\theader.b=\"G5R3kv9t\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xpsgB4d2zz9sRV\n\tfor <patchwork-incoming@ozlabs.org>;\n\tSat,  9 Sep 2017 08:38:46 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1757261AbdIHWio (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tFri, 8 Sep 2017 18:38:44 -0400","from mx0a-00082601.pphosted.com ([67.231.145.42]:39674 \"EHLO\n\tmx0a-00082601.pphosted.com\" rhost-flags-OK-OK-OK-OK)\n\tby vger.kernel.org with ESMTP id S1757003AbdIHWim (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Fri, 8 Sep 2017 18:38:42 -0400","from pps.filterd (m0109334.ppops.net [127.0.0.1])\n\tby mx0a-00082601.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id\n\tv88MbRd4007551; Fri, 8 Sep 2017 15:38:22 -0700","from mail.thefacebook.com ([199.201.64.23])\n\tby mx0a-00082601.pphosted.com with ESMTP id 2cv1pcge3x-1\n\t(version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT);\n\tFri, 08 Sep 2017 15:38:22 -0700","from NAM02-SN1-obe.outbound.protection.outlook.com (192.168.54.28)\n\tby o365-in.thefacebook.com (192.168.16.22) with Microsoft SMTP\n\tServer (TLS) id 14.3.319.2; Fri, 8 Sep 2017 15:38:20 -0700","from [IPv6:2620:10d:c081:1130::10d2] (2620:10d:c090:180::1:72d0) by\n\tDM3PR15MB0972.namprd15.prod.outlook.com (2603:10b6:0:10::26) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.35.12;\n\tFri, 8 Sep 2017 22:38:18 +0000"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com;\n\th=subject : to : references\n\t: cc : from : message-id : date : mime-version : in-reply-to :\n\tcontent-type : content-transfer-encoding; s=facebook;\n\tbh=V3panHeg9SJC6KWrE6M52Ffk377onEb5SoxqHmn6ra4=;\n\tb=RVHSLw9rjfV1ETXu5ETy+ABHPzXRbVK7kTgd+Sz9D0AJfBoWj13FUDXrPBHeGFEJKNmw\n\tLsFU9p+WJ2SZc/Elj8hEeEcSj8vQg9GH8g+HaWH49dTi8Sjy9TUKxI4v6sPA8k3PJMq4\n\tSyyGkMO1j3p40USUUwf6fvIvmx5Tma8rWG4= ","v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.onmicrosoft.com; \n\ts=selector1-fb-com;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version; \n\tbh=V3panHeg9SJC6KWrE6M52Ffk377onEb5SoxqHmn6ra4=;\n\tb=G5R3kv9tyYFd/kf+8ruo571ZDnnSD7BC6hIsfG66fxTsu2lsClxJlM1pNBLYApmS6ySpL4A+Tf+OKw7B/volsNxPGpZUYPEd5vYIq8mcwjaKZVHJutQShvfeUSC7fPRVzkrmBU+tq4+fACT3mEoI48ZNtJaSzvNGAjQgsmpUFDo="],"Subject":"Re: [net PATCH 1/3] net: rcu lock and preempt disable missing around\n\tgeneric xdp","To":"John Fastabend <john.fastabend@gmail.com>, <davem@davemloft.net>","References":"<150490397545.11590.1409723973253492363.stgit@john-XPS-13-9360>\n\t<150490443011.11590.2847947557652786219.stgit@john-XPS-13-9360>","CC":"<netdev@vger.kernel.org>, <daniel@iogearbox.net>","From":"Alexei Starovoitov <ast@fb.com>","Message-ID":"<94e9e0f9-403a-72c7-62d2-797f6fd1bc99@fb.com>","Date":"Fri, 8 Sep 2017 15:38:14 -0700","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:45.0)\n\tGecko/20100101 Thunderbird/45.8.0","MIME-Version":"1.0","In-Reply-To":"<150490443011.11590.2847947557652786219.stgit@john-XPS-13-9360>","Content-Type":"text/plain; charset=\"utf-8\"; format=flowed","Content-Transfer-Encoding":"7bit","X-Originating-IP":"[2620:10d:c090:180::1:72d0]","X-ClientProxiedBy":"CY4PR13CA0037.namprd13.prod.outlook.com\n\t(2603:10b6:903:99::23) To DM3PR15MB0972.namprd15.prod.outlook.com\n\t(2603:10b6:0:10::26)","X-MS-PublicTrafficType":"Email","X-MS-Office365-Filtering-Correlation-Id":"e95a17ea-9663-4877-e778-08d4f70a4dbe","X-Microsoft-Antispam":"UriScan:; BCL:0; PCL:0;\n\tRULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);\n\tSRVR:DM3PR15MB0972; ","X-Microsoft-Exchange-Diagnostics":["1; DM3PR15MB0972;\n\t3:k3yyunJytbo/U9wp/FosSj+8HrPKorqr1ZBiyHd3lsics6C9jCN29TGJK4WQdPqDdsxYlBbQPIWkQai1BSQ6WYre/AgML+fpvFIK/hXqYUXh0M0Q3g3ez+S+l7qvwAFnukZCU2n+V9exxitpd5hx3OK/8ZOYBhmQcjtgJONEV7DyH+NL08rLF/YiS/OhRugPaOb7VVEDHiTY5wJnITb3QezL5N+GDYdLBlSH6ne17kn5lhdZd2d4ih7xl2oVLpZU;\n\t25:h+9Mc5czOLjoTVF/P1iLcVFiZv5m6wVOoZPeglweiNPaqyqo2miUR/tAuDyiEgdALQ+exdele78F60jYQw8FkhSh7DLB3LMWggFAOYXOAptu6g16vu12ScHT/uJmXt9pH3hbxhezgZW+fbdYmBg/ROF4bpE1Oa0ogH/iKX/qCLhLfNapCpML0ZM5fwByx24RHy91Q5nt3pMVX+iE3cO0jjsSPgWdwQBnMupuhxrmrryCmbpTA2dK/VINxF4vUthbPgDquNxmTKRqaR3bcaqd4KrAmLeOmVuohIsjtrnxL1R0HT1cEB/hXRy45wZbeRu3Ap+devPr+sI0GyUyqZtrrg==;\n\t31:zg0xD4xs4MeoWYsiX9rtjhAvGgtcYQmj+iPt1M/1/hxEUNtbZ1kd8Rwz+J1Irj1YfyvRC6ZZoVNULWpWLclMCdtzpmjFylbTIFYBIXFKGnEKZysqksjt71YTuaTq8YvmRTfa/Rt78Yaqvtydiibil27TnNHChsQd7W6CnUVpFUSQX0sn1W3ZgRAP6x1RjIG2OF6m8yvXCQzmvdF/WCN1/OJumM5r/IwWT+yLWrNjazg=","1; DM3PR15MB0972;\n\t20:8jon/uaVThGokQAd8jnLNcH+Ucobtj2qKhCsh5Hbezh47AYPem28TMXpbW7K2IqV763Dk7F+1O49+vUy1nIFnj0DG3iVEziIlf8a2iskovtKCEcrJY4rkEGy5w1r7pAha0fVEBjB2gv+9vibvC6m26LLnsKwq0oEp8Hn5Kd+oBmLA9+sqO6LEWmFrIlEjSVRgHI/6jvmOuqkBW1Giw2WsgvDycN6N+o36BnVUWcHDRy5YdWiYHq0gGxBsNVKb8VMOdYg8uw2lDH0JWbPgNHzHkzRhyupSy43TrwSCPugI6x1mTg4jf5rc1PrlyVCmFnjX9/o5UZdKnslFbgN985KHaYkYUDnEPgSZmt3wnBhB40daAQ9jFNA6XxlJtqY/p6kvHoIl1XLV+p/lKcbPxiLdZcWp6TTm0OHez6ywFVgdJH4Y6eH1FgzZzLSU1NBWnKQvXAqQsiHKwkwUZWc5+nu9geT7kqiKFIRkBRgshPFZ+gNmX46foWkwupR6O7ZX+2p;\n\t4:IK3OvVIzyijYF5pTmI5PjFKxZAHFuTedNGPzdEz0nwT48T7xBDtWQiWO8V7aLlsVYaiHI+9qte5JUn3ixwxydK+Sy8puI+YeTkwzPEFUN7UFp8NeEm/2ylvHXw5NssNR04VUxPlQexKP9jMzOOLm9TOtGyaRfaDFYc529kAc+UepRXf8CLVGrMAnTyPFM5GcAHXb2ktHJHmQM34A8uaKFVgOwYzj7AZnIT2mQXMLHxrIQUIyDYgVTl0M2tjmXR9Tuza2wIYv6T2JRzRbzSVArABwUDSh4m4Q889SEuzh0To=","=?utf-8?q?1=3BDM3PR15MB0972=3B23=3A+shS?=\n\t=?utf-8?q?T7VHGnR/UcMOruuCg8BWH6XQzfsodXIj1ZROuxbWHlyJBKlzddiN5rq8?=\n\t=?utf-8?q?osdDXQq2AdkRHkK3nJi/1dyH37HePzn/F6e2XXVUvDKBHngc1+brP00T?=\n\t=?utf-8?q?gEGGE5kf+lLr10vG9SvX75SongGLRLavNyq77GHqoY+v+omhL2dI7iJU?=\n\t=?utf-8?q?sZnv1TzDplbumb3bj+cNdjVEqbysggbLIKcNhhqLEYNFO+01XZUtfBby?=\n\t=?utf-8?q?ZPA/UAC0duBri9Zuoy0y2ytCXfBJxwX7yaTnqRb6R6+hMatvPAgWuCDx?=\n\t=?utf-8?q?Py0jAkpBsH/hS7L6HanJQiwFa+WEHAiKso/IkYlpQ+gTAsPaRXrNCTRX?=\n\t=?utf-8?q?/HVmqBI3DhrjhNNseSGrLUlviqJ/r8yuXLSfTUyLydLEjJbVWXEXNqF+?=\n\t=?utf-8?q?MwiPFzkKpuvS16z1rUMQ6z6/jiC1u+2AOysuLw12WfBq0rC9rHciTpMf?=\n\t=?utf-8?q?YMdxv7X0Q/YBEz4AqxbAoHpHbBVWPwDhAQILnLCl0YTPm+HINIXpIPnw?=\n\t=?utf-8?q?Z6IetyHbUFqxCSXzFX2/+zFvcZEY+psKLfV5sgd+eO0r+ihXYNIQ4vvK?=\n\t=?utf-8?q?MTC0CQ9pf1WRVARvfOS8XCFOb/oGuchsGYC8OT6wH06HVBTRWO2iB2Tx?=\n\t=?utf-8?q?1qg2PdTcuvizCLuVqhgwVaNimZAB0KHXdiOltLGcRNdopvKbOfnuRwv3?=\n\t=?utf-8?q?hUOyWvhYIEebLPwIvDRZJnhpmCHB0oagw+bLPkt5/CxKGpEwnBQyHAus?=\n\t=?utf-8?q?scXLjdr+aorlEsgmiY8/yMPJ1kPVbdGUiA7lV31RzxI8WcmFf67fk/M7?=\n\t=?utf-8?q?7M9JHk9gYF4JzBmC780g95L9p89PQAAaUHc9aTJ1BNB9IGGfbwFH+iim?=\n\t=?utf-8?q?uaQFmtjUILyCBqJetVBNFBJGf9lEOiZvYjKyLk2fg4/uWYXiJrRdZzg0?=\n\t=?utf-8?q?CX4wbbyS/liNPePyGrg94tobyav1LOoqyfmqCSQntESyw38BQNHiKX+U?=\n\t=?utf-8?q?ehIVDVzA92vQiWieya1zNQWPmEGqI/UFQjGI+XEAVcG8L6qFwat0tk8x?=\n\t=?utf-8?q?yKyH3KZSzrOHjlG6VR7QhZmbNxRYlf1jTvVx/nbtW4H2fJ/Se+e3Ni/z?=\n\t=?utf-8?q?D/rQGNlKwPdWk2rAo7gmV4RuFA7yLj5HaQT4TEKhVCJFDat0Mv80j4QR?=\n\t=?utf-8?q?FHOS45uEPaUhGHtT5anX5Texjsz0XxlxPYxhLJz065ggDbcCwWzPUFYp?=\n\t=?utf-8?q?Epj1FYvEfoqJiM6eBICEdGuuRf42LEWg+Ps+3jF7BOXHYiYDfTHR/dU0?=\n\t=?utf-8?q?ma0HBwCJGJWEn3t4E/xerpJGQHwD00jSaYFbenvpQd/UMiHFM1o+akIx?=\n\t=?utf-8?q?5zseFSpjvA=3D=3D?=","1; DM3PR15MB0972;\n\t6:n4wansjVxMt1RQ6+2RD9RhzK42Eyxro+/q+bb47B0Hs4fBr5lW8gDUktApQh1lYFdE8JgpiilrPsIgF/DZgh8t+6lYT7iJgzpUwTNXfzdx5kjchAbonhaxE4KCwIKlgrHE8JxWV10hO0dSZgLHbyKn+bi1EGEQBY7baj+C0xCW3iI3OJL2B88zy0uHyPfTyjuXdaGWEyeLu1l67uWWiUzOOs+o34XB7ms4xIkGqIK0QVRxNOnxrcBzEKTZVlvaxm+fCXObfqqDauqswIZwzNQSv6TJzLbLX2XcUBSI57l13aWr8hyEKl6eSE5N6O3bR4C6+cgOPLey9c9xA3/+UlZA==;\n\t5:MClIOckWQiBYVcHBLY10+s9xEA4DzuYsdq29yQLPdYnI7RIKt0p2JKdUARfMEXWlP9B0+TPPtrLAzqn/YnqX59se4dYjXPDAjJOaa5o9rIFRuLEYYIhst7CoMzczd9rKe3YOHg8XGKcWfji2Uya5eg==;\n\t24:sMOD7JNbIjUk6+uggHFxDYApKslvN4b7nLw6X4TPQFoDi/siXLzM4YAqEM9LiiLJPs+cF3RkJFvXuSz52eCnPOo2dBFU275UiqTHph9u4e4=;\n\t7:Ci3UdEPTtNmVm3sCprokSPFRVi7S1MvHI7LF1nKuGps850k0WoJaBgaSksiF/NBrQnSNNEFLiKeRICRrhtpgscFEEaUc7U819fcRoMoF0D+H3czoyNFkfJX+sMYTblflqA45TsyKRDIuhdlgaTPt2YtP3QZOw/hXDN8GLmjxzNWObw3qTMSTz5+7SN0OIL1Dm6svMUhPH81LLRkadiL4DLyS3whnbu/KqnvYDLSy7Oc=","1; DM3PR15MB0972;\n\t20:tM59ze2ps3V7M+Mn4arpVp0Ypvm7vjA3U3uF6wUxiS48U3ZzF8yYUsMaXOTMY6Mcip+CGcA9jYFdeka/GLoSqujDtlUnX8u3z/I0Zk5tFXxHTYR3N26o4RPRvWsWwUU6vaR97y/bA0RLnggpdFwpuPBQ8TpbVKWP0quEtmNT/+o="],"X-MS-TrafficTypeDiagnostic":"DM3PR15MB0972:","X-Exchange-Antispam-Report-Test":"UriScan:(17755550239193);","X-Microsoft-Antispam-PRVS":"<DM3PR15MB09725C2C859B074397CD6D0FD7950@DM3PR15MB0972.namprd15.prod.outlook.com>","X-Exchange-Antispam-Report-CFA-Test":"BCL:0; PCL:0;\n\tRULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(93006095)(93001095)(100000703101)(100105400095)(10201501046)(3002001)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123560025)(20161123562025)(20161123555025)(20161123564025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:DM3PR15MB0972; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:DM3PR15MB0972; ","X-Forefront-PRVS":"04244E0DC5","X-Forefront-Antispam-Report":"SFV:NSPM;\n\tSFS:(10019020)(6009001)(199003)(24454002)(377454003)(189002)(65956001)(76176999)(50466002)(50986999)(54356999)(106356001)(7736002)(2950100002)(229853002)(105586002)(65806001)(6666003)(47776003)(31686004)(478600001)(6486002)(64126003)(81156014)(8676002)(81166006)(305945005)(65826007)(8936002)(33646002)(101416001)(5660300001)(2906002)(6116002)(36756003)(189998001)(1706002)(53546010)(83506001)(97736004)(4001350100001)(25786009)(42186005)(23676002)(68736007)(110136004)(53936002)(6246003)(4326008)(31696002)(230700001)(86362001)(39060400002)(41533002)(42262002);\n\tDIR:OUT; SFP:1102; SCL:1; SRVR:DM3PR15MB0972;\n\tH:[IPv6:2620:10d:c081:1130::10d2]; FPR:; SPF:None;\n\tPTR:InfoNoRecords; A:1; MX:1; LANG:en; ","Received-SPF":"None (protection.outlook.com: fb.com does not designate\n\tpermitted sender hosts)","SpamDiagnosticOutput":"1:99","SpamDiagnosticMetadata":"NSPM","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"08 Sep 2017 22:38:18.5297\n\t(UTC)","X-MS-Exchange-CrossTenant-FromEntityHeader":"Hosted","X-MS-Exchange-CrossTenant-Id":"8ae927fe-1255-47a7-a2af-5f3a069daaa2","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"DM3PR15MB0972","X-OriginatorOrg":"fb.com","X-Proofpoint-Spam-Reason":"safe","X-FB-Internal":"Safe","X-Proofpoint-Virus-Version":"vendor=fsecure engine=2.50.10432:, ,\n\tdefinitions=2017-09-08_14:, , signatures=0","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}}]