From patchwork Fri Nov 18 22:29:41 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bart Van Assche X-Patchwork-Id: 9437461 X-Patchwork-Delegate: snitzer@redhat.com Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id E94C860238 for ; Fri, 18 Nov 2016 22:31:04 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D81FD29A21 for ; Fri, 18 Nov 2016 22:31:04 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id CC21329A29; Fri, 18 Nov 2016 22:31:04 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.1 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from mx6-phx2.redhat.com (mx6-phx2.redhat.com [209.132.183.39]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 37F8229A21 for ; Fri, 18 Nov 2016 22:31:04 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by mx6-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id uAIMToS6042392; Fri, 18 Nov 2016 17:29:50 -0500 Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id uAIMTmTZ028349 for ; Fri, 18 Nov 2016 17:29:48 -0500 Received: from mx1.redhat.com (ext-mx02.extmail.prod.ext.phx2.redhat.com [10.5.110.26]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id uAIMTms6029872 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Fri, 18 Nov 2016 17:29:48 -0500 Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0075.outbound.protection.outlook.com [104.47.42.75]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 224A19C0B0; Fri, 18 Nov 2016 22:29:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sandiskcorp.onmicrosoft.com; s=selector1-sandisk-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=9Y6sWHf/yW3PGjDMVLKbV+KeJek1wdt7vggfx7kAFn0=; b=hprkUu5pQTifrnpS5XQ0UtVPsD1PtLE1UFVllRB57hSaas0PPSFISUEOEAHfuyftmhnmTfADarv+fNYyOJ45tz/7sLBMaYlFIvOenbi3vDKXtB6QGbo5CK7jY2Qh9h694tgRWhYhvvVi1uynfiwo146F9LCNguIvnexK8F1y7MY= Received: from BY2PR02CA0116.namprd02.prod.outlook.com (10.163.44.170) by BN6PR02MB2852.namprd02.prod.outlook.com (10.175.96.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.734.8; Fri, 18 Nov 2016 22:29:45 +0000 Received: from BL2FFO11OLC013.protection.gbl (2a01:111:f400:7c09::150) by BY2PR02CA0116.outlook.office365.com (2a01:111:e400:5261::42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.734.8 via Frontend Transport; Fri, 18 Nov 2016 22:29:45 +0000 Authentication-Results: spf=pass (sender IP is 63.163.107.225) smtp.mailfrom=sandisk.com; redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=bestguesspass action=none header.from=sandisk.com; Received-SPF: Pass (protection.outlook.com: domain of sandisk.com designates 63.163.107.225 as permitted sender) receiver=protection.outlook.com; client-ip=63.163.107.225; helo=milsmgep14.sandisk.com; Received: from milsmgep14.sandisk.com (63.163.107.225) by BL2FFO11OLC013.mail.protection.outlook.com (10.173.160.161) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.721.5 via Frontend Transport; Fri, 18 Nov 2016 22:29:43 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:; UpperCasedChecksum:; SizeAsReceived:2880; Count:19 Received: from MILHUBIP03.sdcorp.global.sandisk.com (Unknown_Domain [10.201.67.162]) (using TLS with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by (Symantec Messaging Gateway) with SMTP id E3.FC.03811.32F7F285; Fri, 18 Nov 2016 14:22:27 -0800 (PST) Received: from milsmgip12.sandisk.com (10.177.9.6) by MILHUBIP03.sdcorp.global.sandisk.com (10.177.9.96) with Microsoft SMTP Server id 14.3.319.2; Fri, 18 Nov 2016 14:29:41 -0800 X-AuditID: 0ac94371-72fff70000000ee3-b2-582f7f235db1 Received: from exp-402881.sandisk.com ( [10.177.9.6]) by (Symantec Messaging Gateway) with SMTP id F4.8B.03661.5D08F285; Fri, 18 Nov 2016 14:29:41 -0800 (PST) To: Mike Snitzer References: <32edbd52-5b1a-b093-0195-2ec6fa73cd6f@sandisk.com> From: Bart Van Assche Message-ID: <67385207-63cf-02e3-c794-9fa1146562aa@sandisk.com> Date: Fri, 18 Nov 2016 14:29:41 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: <32edbd52-5b1a-b093-0195-2ec6fa73cd6f@sandisk.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrDLMWRmVeSWpSXmKPExsXCddJ5ka5yvX6EwaFH6hZ7381mtdizaBKT RdvGr4wOzB7v911l89h8ujqAKYrLJiU1J7MstUjfLoEr486JD+wFbxUqNl98x9jA+E2qi5GD Q0LAROLHDL0uRi4OIYGlTBKfZ3xnh3C2MUocX9HK1MXICVY0/Ug7G0RiMaPEovtHmUESwgI2 En+ObGAGmSQioCpxa5oLSFhIwE7i1aobYL3MAqES1z/+ZAex2QSMJL69n8kCYvMC1azfORHM ZgFqnbBoIxuILSoQIbHp6xyoGkGJkzOfgNmcAvYSvTuvsoGsYhbQlFi/Sx9ivLzE9rdzmEFO kxCYxCqxaf8bJogb1CVOLpnPNIFReBaSUbMQ2mchaV/AyLyKUSw3M6c4Nz21wNBErzgxLyWz OFsvOT93EyMkzAt3ML6+7X2IUYCDUYmHV0JUP0KINbGsuDL3EKMEB7OSCO/qWqAQb0piZVVq UX58UWlOavEhRmkOFiVx3ovRH8OEBNITS1KzU1MLUotgskwcnFINjAXLt+0tVczpEzj4b5qt 08eP8Qy3OsMaRC+dijFOP60vcE5YadHq9uUCxzd71Jhckd9eYPVrgcjrK1b7d/qu8c5jjD04 b7Pdp9Ms8z8ssJ0tcuD4xCndEwzm/FRe46vKxRmi8OmFLEfjwWvN7BbXNHPru78Vzdx6+Jvx R/etZsxzVN9P0JV0uqbEUpyRaKjFXFScCAAUuyDBbwIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrCJMWRmVeSWpSXmKPExsXCtZGTTfdqg36EwaLbkhZ7381mtdizaBKT RdvGr4wOzB7v911l89h8ujqAKYrLJiU1J7MstUjfLoEr486JD+wFbxUqNl98x9jA+E2qi5GT Q0LARGL6kXa2LkYuDiGBhYwSi89eZAdJCAvYSPw5soG5i5GDQ0RAVeLWNBeQsJCAncSrVTeY QGxmgVCJH7NnM4PYbAJGEt/ez2QBsXmBatbvnAhmswC1Tli0kQ3EFhWIkNj0dQ5UjaDEyZlP wGxOAXuJ3p1X2SBmqkv8mXeJGcKWl9j+dg7zBEa+WUhaZiEpm4WkbAEj8ypGsdzMnOLc9MwC QyO94sS8lMzibL3k/NxNjJBwi9rBeH2i+SFGJg5OqQZGgUWX2p49L5NmOhVyfUex4JXtiyXt N+g8X8ce9O9yqbXy8xK2uUERJ2/6fv/Os/FvzJ0dITpiarcCWnYsFGn8cuP/1eTb6xI+zNli /thuTzCHXM6cxiXWS2U8pS3nPnCIrg6deO6oHf/H6YXRL81Tf1bNeDhFJOb+7u7iXd6N1nwr VsTWTSq+ocRSnJFoqMVcVJwIACCjQxjnAQAA X-IncomingHeaderCount: 19 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:63.163.107.225; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(2980300002)(438002)(199003)(189002)(36756003)(6916009)(47776003)(64126003)(69596002)(305945005)(2950100002)(83506001)(87936001)(356003)(7846002)(81166006)(8936002)(81156014)(97736004)(38730400001)(65806001)(68736007)(2906002)(110136003)(31696002)(230700001)(4326007)(189998001)(92566002)(8676002)(86362001)(4001350100001)(33646002)(2270400002)(5660300001)(626004)(65826007)(31686004)(76176999)(106466001)(23676002)(54356999)(50986999)(50466002)(65956001)(77096005)(53416004); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR02MB2852; H:milsmgep14.sandisk.com; FPR:; SPF:Pass; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11OLC013; 1:AOmqFPFnBYNnZZjOfl5MdSe7kpU2FNCE4Ncw5K7WRx4yr/pYJf8yWPpQNogxM5Qp9G5oF6EFFI173+KlqBM5dYkvYsF4YlXLPALCPjcHbkXpSwkEG94y/tWP2PI/J4n+M2zkh+ogAn3/psPy1Jm++X4nIkEAHuLoWOjtc40xVAN7Zt9d931+3g3CKSTKv+cQw0uuHB02/cvqqaQ2IUeH4BtFf1tt5qxRIIUr2kDxGA9SHN5FlF/D9m5VwJra3ZYYgLvo+RYlkmPvjtPQPRz8ulwC9v9IHsXD1UsrgkdUdaxo/S1iAY+043tAhikcVKN0YFnaoaz4o05VfgWf9JFrNyDxh7Q8zdAg5lKRJwvpYQ4trcP/O1R/QngApqn6zZtR99M5l2qBRRKTebrUiHQal3rrFxvHrqgzPQ6NMyl5p1yJl/9KDkU5KRYO5b7ns4KxhtnHylnzgT1PfWcnmrSdjFlzWkyvL+0FjqdzzXY+V0tIFDka2gOyHBePnPVqe7tb X-Microsoft-Exchange-Diagnostics: 1; BN6PR02MB2852; 2:kBzQ3MEoDtkPpDZFJyOjR/RebMhcejdBXUM9O6uja/8KuK5r0Sj2Za0U0lMr99gym9ZMPVSUxXxBtmozUSheYYg8u13WylEHnMSESSlYy4lINvpgzgnzljTYFXTLF1xaoeu0zvGXEAIwUxZrhdlkabg88jUtU3pWOOXcNX7xxks=; 3:WXtN+GRIUsIOgK7FGqU1xKNWfPeP4i/z8LYTjbCQiaHQsiifHOypRP606wSlSmkdTHA8/yFhdD1P3RvrCe8GcKJ8fmecRXmAoBu0XvWpQSmguDj0nUceFN/ysUauhbE6dk/VbMExlEMxMnyYN08AD4R8d5XgY5ebE0PK9klEQ2r/2b9GAWDrsFERIGmQZJccNLPei1dD3Ea88FoiTWuYZHGZrGccYliLSXzdnFLdEnZL2wJi3S/UPYnUGnoSXLKRKAaij8eST4Ag/vy0ZNl5H4mLcVIY86wtSD2odajxwqg= X-MS-Office365-Filtering-Correlation-Id: f1d44331-d764-44a5-94cb-08d4100265d5 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(8251501002); SRVR:BN6PR02MB2852; X-Microsoft-Exchange-Diagnostics: 1; BN6PR02MB2852; 25:jCLLJAo751Bi8d/pPY0lI/sQVAWag3brRNrawhYr4W92+rr9ioT09ZA6xQ26T1z35xe4op2gptoduwXKfsRavh7ky4jl5a1T65kc2NcKoFwyEtBB+Jw45Woo0UoSp+h/xD1f8JE0PUj6ti44Y0ilpjE6gTkphYkrPdJCMSA4Yvo66nPCfHDKlBGh2aNfgiR148y03XCet7NP5l7QKSHODPCjjBM9KO78/CiTR7qeYJA5QC7uvDFtb4mlMWGyNnLmooXnv6OwOHE7l/Pu3OTXJSskJz5SYr9DWmKo4YhrMTBmCoB8Oxr5nd1FnC976K+ZRJCTKIkOv5kr7Os7KZ1yZNXTJy5c/GKaT37DgjJ2KsicY25myxcii2oPSX27f4MyqD8yj6QHetVOjdhwB01Mn9CTJOQJ63RUKXPf0SQH4kZeCHnZz8TQ32Y+ECER6dAhOAdEHwHJE9SLx+3OogSWXK/1MObmqhCZM8yWvqUNMKZum4l3ECiH2mMIlFRh7OyF9lDLL7Ju+Yb5LxhjkKaZkXd3GUWO1h38MKOgHKbJCCfcvzCFuSEpn4X+RGHrVrJo2zOCRi6v1NEt4a7omyZl6oop4Dm+rwre/xiUeA91QMFiNe6Mjyy0Whhm5/wP4VtI51Kxu7F/6aj5zIMAUcwhMKAcf3nCJg02l3JJbebfZueCkm04yhsFe0Jsl5drtm83rJCIwTKZyDhija6W4CPdJQZyQSPOJ2qUJ1O1T1uvnmHlnlCgThNmFGD+XkKEnPnw9l9OiFUZ4hinWGC8RfGUxfiNy2sTpJsm04/VumdH3vg3Lyzc5ioW4b76XYgLMeS7HuYjENax9fLswGoRAA0SMA== X-Microsoft-Exchange-Diagnostics: 1; BN6PR02MB2852; 31:vinBaftoRRmJwGftOMRSZx0Bb7PUkpz5xApmmjEOjhFQl/vcTHHcQ6lV9krj2vTJ4RmF9DsLm82bvoIi9VXG9/VNvk4apeAUQZfNW4oQyTjlAjj58quvwZ/PlVYLUvsIUsY1Orb7DiApeilTNcg8k4h1uChmb1sq0BNlf4sF9WZZs/MqL8gIP5/8xUDFzoMW70kFNoZyTTmooQfKiBeGmzt6qwB4BTEeFQZQtPLjvQU568TGFY2Xcm94/caXj5rAUFjk/nEZVJkXcc8wMRP0OVix1VS1ZgeirFVESG/JXvI=; 20:vy70EewJVXgUYw6nWRtuTNZ/MCdo8F5mPZw2bnnOR8c3PG7jGvxHOL++sesDSbPHl4jebVWRsM+FNPsrzAA/ekZCV+E5PYwoUifBqXTX9vyfoLlF8sNbvCbYMwsutFoOMtJro2jKho6FisCYXOekCtPYo551yym5HS6QFKupTQBNSxzG1Rj1l1ekh298E2BRAsAnNLVdFzpk3PvzPRFkqmUJEHnKtCX5OvtYrs87zrKP/+Y7eBf1agv3VZ38DWvl07Ao4VG3BzLI4lHLBTpPmipbZ0fIS6mx2UlzlHindrQJ8e6RrmgeU+xoVh3bAAvtGL9eXmLwreEOzT4UOVGJvkUvWK3pFRVuzi9qn9qG5IDJNtbRA8bIaqkHd9Uj7/uJvasPZ/FYH64go3tMu4Xbhn85GHv+Yi/MAwCp2o11vUZO5jEQykRA46JGcufBz85q9fBFI320Q1k4oSfQ8vVDfX47syf4etGn/6hiIJcEZE/XxtxQS0ckCL35g1A8jT4v X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(42932892334569); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6060326)(6040281)(601004)(2401047)(8121501046)(5005006)(13018025)(13016025)(10201501046)(3002001)(6055026)(6061324)(6041223); SRVR:BN6PR02MB2852; BCL:0; PCL:0; RULEID:; SRVR:BN6PR02MB2852; X-Microsoft-Exchange-Diagnostics: 1; BN6PR02MB2852; 4:zJiKqtKNIgGAhBWYcJTqAqxrlhgfZckgzDNj0aDVLYpD0NMBwWXvuekRbkILuL0EI7Dc8D1eh+6CAMd0+3OsoyNssHUktT5roYYkS6Om/4u+tR+JdTncHqc9/AsR04XLRRofX7Cj93dN/Bf7Twk8HzGlw0nFJTSPiWMJTX2052WFbyfBzE1r1McnLtVmlTG6YmU+pj2XPH62izinHTg4vHnKXp78DpemTkMJZnvQBzQVfcRUM5F889BbwtPPZs+FtnuuTER5F3q+mxgLCoqnRcLvNHz7jqmOEw+R6Muh8s8N5G7z71zekaGJMFUv1TnE1q8TYIktayTldKy5xUNrdHUkx3yMPnE1tGXMIRONr6douQeekyLZI6cr17JFu6WRYkpOEXxjUj3NVIWOm310+cuJPBw+8F/Hz+4toLWDDyFQA+bnWDLfhP3KSS6ITOXrC/TcdGjN42IfLTngln19xRBXk13tkg2n5kbUbO2m980CoJa87lq1ke0pLWj/IDeqAY3MW7Wb5JVyxkHiSl/Mv8HPyzSMM0km744vaZrx+6kyApAkOi4d3RUzXzX2SRBO X-Forefront-PRVS: 01304918F3 X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjZQUjAyTUIyODUyOzIzOmNtcStXWU83M3lCV2RHazJtMHFwNHlobGFC?= =?utf-8?B?UkxicGxGMS81SHorU20xWU5UdXBtT1c2VzJSYTh4YTc1NzZBVnNIb2UyeUoz?= =?utf-8?B?Y2VUOWFOUXRTNHNnbnR2djlhN1VoQjAxWm1ZSGg0eExzOXMzalZIb3VZQmdO?= =?utf-8?B?b21wQW5iNmkwVG5jaXp6R2V4eTFZSEovSHVGa1RIVGhYYXZyTmJ5Wks2OVBG?= =?utf-8?B?ZHhLOFJ3Mmt3U2t4VHFxNVFTRXI1cXArS2VQQnNkWUw0WVJRQ0N6b2VybVpk?= =?utf-8?B?U3AvZXVMbnNNYVVoYWMyK2hsWFNNdWVaR3UrUDEzOTk3U0kyRkpsZmxxMmtP?= =?utf-8?B?K2t4ejhzVlMvT3RVaFhNQlRrMU5aejUzckZ4UHZab3N0Y2FRcmJ6QXd2NWxH?= =?utf-8?B?bERjSm9SYWl0WVU0OUhCRnZ6bDRDN2Uzb28zL1Z0TWowVlkySEdzMisvNkhm?= =?utf-8?B?cnlPRkdrYnMyZVdKelJDaGJaL0lBVUcvaWpDeFdhbUxCa0h1bVNOU3k4ZHpU?= =?utf-8?B?bkc1aXZxaXh2d3RHQmVVdzVmVEZRNlZoMEtTbmFSK0dyUVlRUmIvMm11Mzhm?= =?utf-8?B?THl1R3JwdTdURHhHQ0ZERm5zTlNWOS9JRFVYaS8xd3RKMDJmSUV5VnlpbWFE?= =?utf-8?B?WVhCeXB4RDA0MytqdTlXN0tIRHNDVmxIUFF4V0g5MzdKT3IvVXFmNXdWL2d1?= =?utf-8?B?RFVVdmZoblNrbTJ3NXBaN2k1bVlpR09yVVhKaDVRQUdrVGdBSjkwVHJjMG9W?= =?utf-8?B?TmttWWduOTgvYkRoNGcrSy9qYkxrSE4vQ2lkeXlWek55TW1ES2ZRZmwyRjRJ?= =?utf-8?B?ZkxaR3ZrL0xZcTRKQllQVC82cjMwZ2N1cm1hVVJ1KzRtay9Kazl1ZEdUYVp5?= =?utf-8?B?NFRMUDJNQUVXdXovY2tDMU84UmcwODh2YmFmYXd2VkUzL2d0MzlKNVZTWHMz?= =?utf-8?B?TDA4aU82QUNoREx2MzlrOU5HOUlMbk45ZUVsZmJUanNHcWFWZkd3djJkN21P?= =?utf-8?B?YlRLamRoM2wwWitkYjRUWDEzVTVTOFBLcW5QKzFnNXpTMndwWE8vaTk1di8z?= =?utf-8?B?QXo3ODY4VFpzbFY2ZU1JN05UbFNNa1R3L3JRU3UrREp3MkdFK2Judzg2Q3Fu?= =?utf-8?B?SVZjNGlmUmZYMTVhcFZxNlVtV3dVUXo2M1JqaEtralRpQ01PM0pWbVhJNVlH?= =?utf-8?B?aGlta01DN2xSK0pvT0xRcFRIVkRFanBGTFM0dnNLVWxZVEw3S1h2UERRSGJQ?= =?utf-8?B?SW1pT1J2d1d2RVVMVS9WQ01iRGJRNzl1MUFWcUJFNCtEU3lRdnVvVDhMcUJy?= =?utf-8?B?RURYbTdvVk5lQmJBZHpDNmpvenppWHVpb0lvQmh3akFkcnhQSWV3Q0hXTHBI?= =?utf-8?B?N0Jla09OWjBIeXlVemh5TVpaMy9CUWF5eDRpTDNyZVVLTHdGOG9GSjhhSEp3?= =?utf-8?B?bkh4VlpBZVhWN2xhNzJzaHRIQ1lyaWRidzgzeW4yNFZYTnFCb3hkNWJYSHVw?= =?utf-8?B?QnVQQUVOOWRTZDBOOG96YnpMZ0hKSUFJbWZ3ZVJwekJTRlVJSDF6OW1XVjcv?= =?utf-8?Q?zUKsaQ2akuxs38QOyQ+cHYGT+zaG6QEBMj4QKmMtIX2s=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN6PR02MB2852; 6:zEvsP0CKH+AMzMuFO7ZUNwi+OnY68vfAhNYJ3lZxxlat3d9du6nbJQ8o+brMNUnCT++3I9JaGFJTFK4Fe7FdHyJYden9lz4dBt6pbc1Q9Ttw4zWHF2OeO8ovXW/u9Ran+9l/A/aFhddIVrx3MFarMiFjOLg7yrcQRSJIAYWXVWkdXY5bpLaQ0OgCOY+f7u0ukjgv9iAP3jHWEWsstyz5Bd+Sy75SKo3GW3Hkhak2qQ1kG3qqztEc1csYHlWv0qQwnLHO8JYLpa2ZSBThc83p5NLyHQhM9uG8FQZpX/8gR3z20QGw0MeATwExA6UMb2JdirBsemccu+7YBNufewMmMnEzUg/2rXzYBRHaOPxXr4gBkq8YHyhOire9dLSdx/6H; 5:9vty6ulSkm5Ppfzpau+oAlwJm4ZVZ5dxWZ95QkXyy+GqqdVfqfCLY+flzOOnxcz2xSp9ujUci0fO5iwBl9hS2VBqpXRA1lCWQQ4L2jujrAXcuVsq7P5AgZxBnpZR+qLowSl5xiIBCgho80PysdUCtBKxX5Pinnzuu7l2DJqLOHo=; 24:1KMmqgR7P8GR9ta6sz6fy9tet31O85ZfwkgdA8jXC6iM8pNxsz0sgbx71vF0QoMVp8DjGn5+gxV1pi9JRQxfsqJ/yK2mfRvuUjjbgy1gzUU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN6PR02MB2852; 7:DkDpBZpoBEj4FIakPdATdUF+pk82ewX/tJZtLEGPXFWrYz2SqFLgFLpcXAO06osE47MTRdj92vavVasmslrrxEt2u3hWnKUGnarmnZTtN37jNpRAITHSV47qzyEw+NpTtCPxK9a/9aZCTkdnVKJCGIs/dJUZGAy+T1O2CjnO5bRVQMjpPSKRrXzko7ImBlAal7CRQOIG9R40JnzBV+odT8Qg2WMHX/9PPTpaiqQGKHRo1v0n4BCsAamjpyYEsWrJe2GunIHh+6zumYR4Ld7h7oKi2hmdcO/PykyHvktciENw1wlJ1qjMaxxg6labQiD4A30gbHfJ2sCpMZvGjaW9jhKBDP5Jz2hKkKi5Eti2IZ8=; 20:I5jtTbhg/9HqzhgtK5xL0FArbt0pShYH/ZDNFEk+lJzDvh0wAdYlwZTRXAyVgRl9898iwp8Ch8keBjZn7rGyb/932Lzh0so3ri+BygUqjOIqYQCnRTL1r9J6F4OA0m5SJGN2RFypll85sBTzrBWc7SukHlHTfW8S+DpF8X4+BM3pSFuswitM72QwpFFDv1vNpBthnZ0wuQzKKzC2glKiAbF0NdXG6CQIa7o6+yJLDxDqTgqxZbW9uVDqQVerV2di X-OriginatorOrg: sandisk.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2016 22:29:43.6361 (UTC) X-MS-Exchange-CrossTenant-Id: fcd9ea9c-ae8c-460c-ab3c-3db42d7ac64d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=fcd9ea9c-ae8c-460c-ab3c-3db42d7ac64d; Ip=[63.163.107.225]; Helo=[milsmgep14.sandisk.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR02MB2852 X-Greylist: Sender passed SPF test, Sender IP whitelisted by DNSRBL, ACL 198 matched, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Fri, 18 Nov 2016 22:29:47 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Fri, 18 Nov 2016 22:29:47 +0000 (UTC) for IP:'104.47.42.75' DOMAIN:'mail-by2nam03on0075.outbound.protection.outlook.com' HELO:'NAM03-BY2-obe.outbound.protection.outlook.com' FROM:'Bart.VanAssche@sandisk.com' RCPT:'' X-RedHat-Spam-Score: 0.668 (BAYES_50, DCC_REPUT_13_19, DKIM_SIGNED, DKIM_VALID, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_PASS, SPF_PASS) 104.47.42.75 mail-by2nam03on0075.outbound.protection.outlook.com 104.47.42.75 mail-by2nam03on0075.outbound.protection.outlook.com X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Scanned-By: MIMEDefang 2.78 on 10.5.110.26 X-loop: dm-devel@redhat.com Cc: device-mapper development Subject: [dm-devel] [PATCH 12/14] dm-mpath: Micro-optimize the hot path X-BeenThere: dm-devel@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: device-mapper development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dm-devel-bounces@redhat.com Errors-To: dm-devel-bounces@redhat.com X-Virus-Scanned: ClamAV using ClamSMTP Instead of checking MPATHF_QUEUE_IF_NO_PATH, MPATHF_SAVED_QUEUE_IF_NO_PATH and the no_flush flag to decide whether or not to push back a request if there are no paths available, only clear MPATHF_QUEUE_IF_NO_PATH in queue_if_no_path() if no_flush has not been set. The result is that only a single bit has to be tested in the hot path to decide whether or not a request must be pushed back and also that m->lock does not have to be taken in the hot path. Signed-off-by: Bart Van Assche --- drivers/md/dm-mpath.c | 70 ++++++++------------------------------------------- 1 file changed, 11 insertions(+), 59 deletions(-) diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c index 5c73818..fff5d12 100644 --- a/drivers/md/dm-mpath.c +++ b/drivers/md/dm-mpath.c @@ -489,47 +489,6 @@ static struct pgpath *choose_pgpath(struct multipath *m, size_t nr_bytes) } /* - * Check whether bios must be queued in the device-mapper core rather - * than here in the target. - * - * If m->queue_if_no_path and m->saved_queue_if_no_path hold the - * same value then we are not between multipath_presuspend() - * and multipath_resume() calls and we have no need to check - * for the DMF_NOFLUSH_SUSPENDING flag. - */ -static bool __must_push_back(struct multipath *m) -{ - return ((test_bit(MPATHF_QUEUE_IF_NO_PATH, &m->flags) != - test_bit(MPATHF_SAVED_QUEUE_IF_NO_PATH, &m->flags)) && - dm_noflush_suspending(m->ti)); -} - -static bool must_push_back_rq(struct multipath *m) -{ - bool r; - unsigned long flags; - - spin_lock_irqsave(&m->lock, flags); - r = (test_bit(MPATHF_QUEUE_IF_NO_PATH, &m->flags) || - __must_push_back(m)); - spin_unlock_irqrestore(&m->lock, flags); - - return r; -} - -static bool must_push_back_bio(struct multipath *m) -{ - bool r; - unsigned long flags; - - spin_lock_irqsave(&m->lock, flags); - r = __must_push_back(m); - spin_unlock_irqrestore(&m->lock, flags); - - return r; -} - -/* * Map cloned requests (request-based multipath) */ static int __multipath_map(struct dm_target *ti, struct request *clone, @@ -549,7 +508,7 @@ static int __multipath_map(struct dm_target *ti, struct request *clone, pgpath = choose_pgpath(m, nr_bytes); if (!pgpath) { - if (must_push_back_rq(m)) + if (test_bit(MPATHF_QUEUE_IF_NO_PATH, &m->flags)) return DM_MAPIO_DELAY_REQUEUE; return -EIO; /* Failed */ } else if (test_bit(MPATHF_QUEUE_IO, &m->flags) || @@ -651,9 +610,9 @@ static int __multipath_map_bio(struct multipath *m, struct bio *bio, struct dm_m } if (!pgpath) { - if (!must_push_back_bio(m)) - return -EIO; - return DM_MAPIO_REQUEUE; + if (test_bit(MPATHF_QUEUE_IF_NO_PATH, &m->flags)) + return DM_MAPIO_REQUEUE; + return -EIO; } mpio->pgpath = pgpath; @@ -745,7 +704,7 @@ static int queue_if_no_path(struct multipath *m, bool queue_if_no_path, else clear_bit(MPATHF_SAVED_QUEUE_IF_NO_PATH, &m->flags); } - if (queue_if_no_path) + if (queue_if_no_path || dm_noflush_suspending(m->ti)) set_bit(MPATHF_QUEUE_IF_NO_PATH, &m->flags); else clear_bit(MPATHF_QUEUE_IF_NO_PATH, &m->flags); @@ -1578,12 +1537,9 @@ static int do_end_io(struct multipath *m, struct request *clone, if (mpio->pgpath) fail_path(mpio->pgpath); - if (!atomic_read(&m->nr_valid_paths)) { - if (!test_bit(MPATHF_QUEUE_IF_NO_PATH, &m->flags)) { - if (!must_push_back_rq(m)) - r = -EIO; - } - } + if (atomic_read(&m->nr_valid_paths) == 0 && + !test_bit(MPATHF_QUEUE_IF_NO_PATH, &m->flags)) + r = -EIO; return r; } @@ -1625,13 +1581,9 @@ static int do_end_io_bio(struct multipath *m, struct bio *clone, if (mpio->pgpath) fail_path(mpio->pgpath); - if (!atomic_read(&m->nr_valid_paths)) { - if (!test_bit(MPATHF_QUEUE_IF_NO_PATH, &m->flags)) { - if (!must_push_back_bio(m)) - return -EIO; - return DM_ENDIO_REQUEUE; - } - } + if (atomic_read(&m->nr_valid_paths) == 0 && + !test_bit(MPATHF_QUEUE_IF_NO_PATH, &m->flags)) + return -EIO; /* Queue for the daemon to resubmit */ dm_bio_restore(get_bio_details_from_bio(clone), clone);