Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754880AbbKMT6H (ORCPT ); Fri, 13 Nov 2015 14:58:07 -0500 Received: from mail-bl2on0071.outbound.protection.outlook.com ([65.55.169.71]:47307 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754669AbbKMT6B (ORCPT ); Fri, 13 Nov 2015 14:58:01 -0500 Authentication-Results: spf=pass (sender IP is 63.163.107.173) smtp.mailfrom=sandisk.com; obsidianresearch.com; dkim=none (message not signed) header.d=none;obsidianresearch.com; dmarc=bestguesspass action=none header.from=sandisk.com; X-AuditID: ac160a69-f79f76d000007db2-0c-564640c48b7f Subject: Re: [PATCH 2/9] IB: add a proper completion queue abstraction To: Jason Gunthorpe , Christoph Hellwig References: <1447422410-20891-1-git-send-email-hch@lst.de> <1447422410-20891-3-git-send-email-hch@lst.de> <20151113182513.GB21808@obsidianresearch.com> CC: , , , , , From: Bart Van Assche Message-ID: <564640C4.3000603@sandisk.com> Date: Fri, 13 Nov 2015 11:57:56 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <20151113182513.GB21808@obsidianresearch.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupmkeLIzCtJLcpLzFFi42JZI8azSPeIg1uYwcYTmhb/9xxjs1i5+iiT xfcbphaXd81hs3h2qJfFovv6DjaL18efMjmwe0yfsYnVY2LzO3aP3Tcb2Dy+7+hl9Pi8SS6A NYrLJiU1J7MstUjfLoEr4+rjFvaC3TwVexu7WRsYu7i6GDk5JARMJN4cPcYOYYtJXLi3ng3E FhI4wSjR9jgewt7BKLH/phtMfffTLUxdjFxA8U2MEmt+zWMGSQgLuEnsmn+CpYuRg0NEIFzi +go1iJrZjBKHdh9jAXGYBdYwSkxYtZ0JpIFNwEji2/uZLCA2r4CWxLM3l8DiLAKqEotfzQK7 QlQgQmLihAZWiBpBiZMzn4DVcwpYSSzfeIANZBmzgL3Eg61lIGFmAXmJ7W/nMIPskhB4yCrx ft1RJogP1CVOLpnPNIFRZBaSUbMQ2mchaV/AyLyKUSw3M6c4Nz21wNBIrzgxLyWzOFsvOT93 EyM4irgydzCumGR+iFGAg1GJh7dBzy1MiDWxrLgy9xCjBAezkghvhAlQiDclsbIqtSg/vqg0 J7X4EKM0B4uSOK91i1qYkEB6YklqdmpqQWoRTJaJg1OqgXFJWeCMH47vp1ZLXZlqHLRj9TKG K7zJdnc1E58vKNBdukj0/JljZn8u3tLZnGh6Y2XDbz5+C7e5SyRVeHjLv9oKFYc5Hl9fIMlo 7dnLn8V99sODrkV9Vi1Ff9qOfj0zt/vh5pcqPyTdD+3Ntklc/+POmUiv3vxZ/Wl/vF++z/pz e1JLnPwCpm9KLMUZiYZazEXFiQC9c1HPngIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupnluLIzCtJLcpLzFFi42Lh2siRonvEwS3M4P1WGYv/e46xWRz82cZo sXL1USaL7zdMLS7vmsNm8exQL4tF9/UdbBavjz9lcuDwmD5jE6vHxOZ37B67bzaweXzf0cvo MW3NeSaPz5vkAtiiuGxSUnMyy1KL9O0SuDKuPm5hL9jNU7G3sZu1gbGLq4uRk0NCwESi++kW JghbTOLCvfVsXYxcHEICGxgl+lrmgSWEBdwkds0/wQJiiwiES1y7dR+qaDajxKHdx1hAHGaB BYwSW6ZtZgSpYhMwkvj2fiZYB6+AlsSzN5fAJrEIqEosfjWLDcQWFYiQmDihgRWiRlDi5Mwn YPWcAlYSyzceAKthFrCVuDN3NzOELS+x/e0c5gmM/LOQtMxCUjYLSdkCRuZVjGK5mTnFuemZ BYaGesWJeSmZxdl6yfm5mxjBQc4ZuYPx6UTzQ4xMHJxSDYx+H5Wcpi59FrDTO93u4AHfylMP tjldawn7m3GasXj2fbdTKpeS5h9svfDk65GearEdflXiXEW/rLk5VXSLm2dM7V/lwddW9lb0 2lye5QrSkzPbN9xrZRV6MuHxJvcnma77DC9O831rN/Vu0NR7AUfmxrzcnRnsl77byvBaT1QO S7W7zrK8mjIlluKMREMt5qLiRACJYJCyIgIAAA== X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BL2FFO11FD045;1:UuPYG9xGzOrP1BQEPdOP5astBc3yZwlvkhCkMnznxHKujIH/+t1ThJs6IjA72B3jNX+4rP7fgz1lyFMHqrafkMhZmBciADRrBkaqPuB1WKHgK0i2HeOODAPOUyKnywOums+leOZDVglfDJGsoGKEGI/M9JeYPcZ46aVyMsd1Q80NYtbyfN2jONDT+QARvM1KIrb7z3LdRz8hw1zWxu2oRHhq+TyQQQ28+00RgK8gAh6dAUVTDkxbPsc4v4RKBweukIuK+5Xi/mZh4ENN7gLqD76AIOcUC+9fZm8QuxJpHO6KwhJJ7uXQMOfJK8wvUJSpqHcLo+kdsF/B5+xxmeKYne4kxwfiTDf7GWXpCvK5Q6I= X-Forefront-Antispam-Report: CIP:63.163.107.173;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(438002)(189002)(24454002)(377454003)(479174004)(199003)(97736004)(64126003)(99136001)(86362001)(50986999)(83506001)(230700001)(50466002)(65956001)(65806001)(19580395003)(47776003)(5008740100001)(80316001)(69596002)(15975445007)(92566002)(77096005)(5001960100002)(2950100001)(36756003)(5001770100001)(59896002)(81156007)(106466001)(23746002)(87936001)(4001350100001)(54356999)(5007970100001)(189998001)(87266999)(76176999)(11100500001)(33656002)(65816999)(586003);DIR:OUT;SFP:1101;SCL:1;SRVR:BY2PR0201MB0758;H:milsmgep12.sandisk.com;FPR:;SPF:Pass;PTR:InfoDomainNonexistent;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BY2PR0201MB0758;2:3W1frRV0MM+vs0pxqW9cHoE0Zz1pcaXkO7EoQiZeAq/4ygsTVq81YsTxnYMvJsOz+6AmMLJLCaZCmRDIuaeXDOvs4s5tvuTg3uGk6dVtfgy7/LJTK3dgVwQ30UD6Vp40FsM1bcXXZb/bYYSsYsGE5FFB7PooSvc1prGFNCAPwQE=;3:qXnl/8go9qt9rVYIdHYAmiNSokUzm/8Z7eQT+JAv5I8O0lWNQU7+L4l6FzrRaD4Ey+o+8EMvBF6jG0a2FbQ5m6NrUmtadwYFzVl6LmQnpBiv44NJ3X+nb83nwMziEJllzojHvlv1762bYHlxDRBVTiJOlvDqdSHV9wZC6cv+emL1wwtYTog2MO1zwcIazWtSV3ICuEB1SYx5Tl+edjPlbxY3ovNSBR1gSJPDAoyLNvzvQSQiG4yfvYbyoNPqJ7P/2cKp59XnamkFlUh/VXHe3A==;25:SjNejHQ1dtrj3eDbloEXH9DlF0iq8PwBI4IuXWWJY85oM/KDoCBn42R/YDxFdsnyTQ73hPngInqtnknzNKVcKupS6m9B34hp4N9boo3hWX+qhv4N5CbuN5MlvajfOpapboGa+DTPTb8dPNMqCSp3qixVLrSjMeNAmL45+bg6A8gjwCqtbu2x+G+o7d22/ugwCL0dzXMScn7BIce4IXGP/3f82mFDGmclwmYmAHKu8z960h0sm32KVI++SXacJaAe X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(8251501001);SRVR:BY2PR0201MB0758; X-Microsoft-Exchange-Diagnostics: 1;BY2PR0201MB0758;20:G7OWapu4qYrhqjS506md11Wsji8vYNMD9sl40Z2TMBvssKAmPxal4ivg8uqe+c1mGekS/HcuTHLyr+0uwlRVE7rF1W/puUXfCTNJGwAadNRLzgnaviTSdabkMaAShh11r/d75YQpWR1F34+9ZfEG2bjuznUu8xfVaV0MYP3kh55AjFKfho7BGHM5i6p0lX4ozF3YSTACeyJNW5TNrpImnbPgzvt73VQeA95/gCHKTM0/OAxbHXhCiERX3ln+yMxcyzs78zzIoTxLrWlz6v88x9jE0zB6GeM/8c1PmOyMGeUbpFhNXB4GaN6rGZjL3GnY1wFSw1sPY2dT3NoghHcZ8/+SxSwEfW5tC43G9Yad/W/oGtsOdhf5renwOKruUr1kAU3K4RIJMl5BHBufM3E8RGtuNlukaE8KOD0Y539zK98DqECRS0oKkULPrN5LFQzjLk36c6JLMtgbfna3omyiwi7/yFngA/bMRlqS+uP8KqAQ+rh2LGD1vhFAHZTRMrnH;4:/O5UxqDjsKePEqrJzUW5tIOfbmTU+L8abc+FzipyWSU4ZsypapFpML5tOtisbqKqyKeLvDopwbsoJCzuQiU/eKvLcLsqvXZcdRZwguwCUFK30WwEGshLDUbu84l/4VMY+k+h84GWu5Sp+HoRfva+MW8V4zR4SDCsyM4UoiJpUbMlpUiKicvnEpRBbIm+O+y7CjlFqMrOuT4S2GFNCAXeG+RBgnuicyy2+cS/WIbK6ZDHTsppP4Mc9uO/bEVM6u0EGFzO8uja8JYQQ1lmMdPJqWKwxkfagcAc0k24kfLIUIRICDxAV9UTWpq1UTbg8o6n2YDXkhaPnuIdY8bDDMBQgZoVODGKHt+TgUpOxd9y95dhkVgrBvla9Pt+zelPQ3a/ X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(3002001)(10201501046);SRVR:BY2PR0201MB0758;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0201MB0758; X-Forefront-PRVS: 0759F7A50A X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;BY2PR0201MB0758;23:84FnH58cJmyLk2AxXV5KGDK36lfoSpgcQ4j?= =?Windows-1252?Q?/14e+YqP57a843jFY0bJI9Wdu7zcZYy5Oeh5hwSjOAiT8WfjWEFXxZWb?= =?Windows-1252?Q?5Qb7InVqb8A7treUqlpaN64T0jYNDTndtCBUPiaAxpfNqp0lg4Q//GSH?= =?Windows-1252?Q?eKlLbeQHXpQyjoywRP+bfYXsWP1i04ovDpfm5cB/FT5oxCcdtVBJoZ0m?= =?Windows-1252?Q?cj45yKC/eKm+GsofiGa5ZVpib/0Nbsn/RoUm3eQHNnKUSBHP3W4e6H+8?= =?Windows-1252?Q?tZ2MprrO5DFUBolD7NqbWVB5j6msZhgynUzZVUHVjbZIV7XZps9+qU/i?= =?Windows-1252?Q?UW62fF/z87iVL80xjdyrLO+7zQIu/H2zOr/0ul76mYE878Wjzkn3/kES?= =?Windows-1252?Q?PicQVton+9wKhSR/vdLpVNT4TxlNd/EUtbVSwOKFsLjwIVYTY0/3QI/n?= =?Windows-1252?Q?2WHGL9Upz36rBkN2/pru7NGc++2uPSHJ9GQySaSJ6UhuZUOrud+Y+e7U?= =?Windows-1252?Q?F5heFHHEZEtL4+eggQczx6q1C+VSFhSthQYC5KprGUqWXiTwOT6PnNfb?= =?Windows-1252?Q?msdYMwJ+8p214oJAQgFMTFEoGfG3SpEXiNv+SFrRSlducLcu/aTOg4Vz?= =?Windows-1252?Q?zOc0/tJqz0v9xHD6CUnCAuTzfvx2Y8MtCanKPfqqt22NestVtgJyjrSm?= =?Windows-1252?Q?FRrUPPRHFAVUDXKHUtnaEezLOni/j/3BeA+UyLAPGeTkijphOM20u+Kl?= =?Windows-1252?Q?2NywwPX9gMrpY5Y2b6bH7Q5vvxP1ngr8b1rXZj2eMxXj+sW0f/MzddI9?= =?Windows-1252?Q?YdUjzB6gvQu5p4Bq1etiB/Z7fwPNeX6BhH2hJumV4MRHs06CXozF1zhv?= =?Windows-1252?Q?R+BgpJTV7hYV3NJlkTp0xhQMUiOlCqUuxAG00b7lnNLn0m3DxtuJblOh?= =?Windows-1252?Q?NIl1T7Yjx18fW5Ek45LXMBLz7Y07PszmAqWgIWUOU5Po6XECV6uufiv4?= =?Windows-1252?Q?ML//jxBWUfGPvehlJrQ+pjm/rXic6ap/Js6kaj82fG00rEmjX0/FRFbF?= =?Windows-1252?Q?3YFUY5IMP+H2k+ahllEvpKNhQd+hbhKbwXqmPMzozUBS/IdRlXhTfEKw?= =?Windows-1252?Q?rG2JRH2ZxkvBF4wS8GrouPCVbYNVLLeh7YCXIvdaQSAPKLaMNeQ61VxO?= =?Windows-1252?Q?gYKN9+T0RX+2NjRn2g4XOKX2xdtMvayOJD+4FOa1HSG+G68IwGM5knF4?= =?Windows-1252?Q?DuGRXvUOwjAFomd2+Oixlq7UYfNb2PW6XRQwUUr9fMl4W/BKeHaZ0Yg0?= =?Windows-1252?Q?9tnaE?= X-Microsoft-Exchange-Diagnostics: 1;BY2PR0201MB0758;5:IOMRRBFvYDHmhQB5i3XjKjDZj+QGA6d1uuKy45S+esi3IB7NuyDpUMh6vtNgD89QvgFU6v2VVr3lMwsOMYOe8pLGQHO8ueHngfr89uGLZhZqDEjq2Y2pESYCuQ3Gh0W8eW2JZYB592jzOpYYt2ZvTA==;24:4OIVaxjur9HqmNyx+GZtmYqxoIQLk8VuyaArZEtJXnKyaGts2RsxxisSqTtzCaGvvsZD6tS49K7Az4YN/RajEP16njLWYboj2V4oUE0RAm8=;20:uHOExwlWVxV6zgJjGjV/QF3vweY0yQ4DsZDqt2MqhV/5srxim9q6z8M3zKa0qVdb+DsTpUcLbGJiSR54e+TJLxhwQuZt20sjBL4Is88mMcPZ85yHUycvGQo7d4A8B0Ehe1JsRfj34drfUFptPxrIUN8pMkCbnoG2vjuF740iq1RQhSWLSYTp2wKeFUcTvxOKaVo0BnXbHtG+KFmprOfn9J/NA4JgwstWfB6gBpMZOTtNWvE1az0S7JQVKGlNBvrH SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: sandisk.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2015 19:57:57.2244 (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.173];Helo=[milsmgep12.sandisk.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR0201MB0758 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1804 Lines: 41 On 11/13/2015 10:25 AM, Jason Gunthorpe wrote: > On Fri, Nov 13, 2015 at 02:46:43PM +0100, Christoph Hellwig wrote: >> This adds an abstraction that allows ULP to simply pass a completion >> object and completion callback with each submitted WR and let the RDMA >> core handle the nitty gritty details of how to handle completion >> interrupts and poll the CQ. > > This looks pretty nice, I'd really like to look it over carefully > after SC|15.. > > I know Bart and others have attempted to have switching between event > and polling driven operation, but there were problems resolving the > races. Would be nice to review that conversation.. Do you remember the > details Bart? Hello Jason, I think this is the conversation you are referring to: "About a shortcoming of the verbs API" (http://thread.gmane.org/gmane.linux.drivers.rdma/5028). That conversation occurred five years ago, which means that you have an excellent memory :-) I doesn't seem to me like Christoph wanted to support dynamic switching between the IB_POLL_DIRECT, IB_POLL_SOFTIRQ and IB_POLL_WORKQUEUE polling modes. I think this should have been mentioned in the patch description. The implementation of this patch makes it clear that it is essential that all polling is serialized. The WC array that is used for polling is embedded in the CQ and is not protected against concurrent access. This means that it is essential that _ib_process_cq() calls are serialized. I need some more time to verify whether such serialization is always guaranteed by this patch. Bart. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/