From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754685AbdAaAbS (ORCPT ); Mon, 30 Jan 2017 19:31:18 -0500 Received: from mail-dm3nam03on0086.outbound.protection.outlook.com ([104.47.41.86]:41995 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753609AbdAaAbP (ORCPT ); Mon, 30 Jan 2017 19:31:15 -0500 Authentication-Results: spf=pass (sender IP is 74.221.232.54) smtp.mailfrom=sandisk.com; lst.de; dkim=none (message not signed) header.d=none;lst.de; dmarc=bestguesspass action=none header.from=sandisk.com; X-AuditID: ac1c2133-0afff70000013ebf-09-589055443c3f From: Bart Van Assche To: "hare@suse.de" , "axboe@kernel.dk" CC: "hch@lst.de" , "linux-kernel@vger.kernel.org" , "linux-block@vger.kernel.org" , "jth@kernel.org" , "hare@suse.com" Subject: Re: [PATCH] genhd: Do not hold event lock when scheduling workqueue elements Thread-Topic: [PATCH] genhd: Do not hold event lock when scheduling workqueue elements Thread-Index: AQHSe1lMjCpexCS/ykG32VvL7S8QhQ== Date: Tue, 31 Jan 2017 00:31:01 +0000 Message-ID: <1485822639.2669.16.camel@sandisk.com> References: <1484732896-22941-1-git-send-email-hare@suse.de> In-Reply-To: <1484732896-22941-1-git-send-email-hare@suse.de> Accept-Language: nl-NL, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [172.28.1.254] Content-Type: text/plain; charset="iso-8859-1" Content-ID: <33D54B3E3D852241B1981B3C7F9275F9@sandisk.com> MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrBIsWRmVeSWpSXmKPExsWyRobxn6576IQIg4Zr0har7/azWSx4s5fN Ys+iSUwWK1cfZbJ4+OUWi8XeW9oWl3fNYXNg97h8ttRj06pONo/dNxvYPNZvucrisfl0tcfn TXIBbFFcNimpOZllqUX6dglcGR2rb7EUrOOtOPJtN1sD437uLkZODgkBE4mPW3ewdDFycQgJ LGGS2Ll5NRuEc55R4tHV7VCZY4wSq75eYgNpYRMwkpg9YQ8LiC0i4CZxr/cUE0gRs8BjRonW tmVgRcIC4RIrG34yQhRFSJx+8IkVwtaTuLX8PpjNIqAqcX76d7BBvEBDT3a2M4PYQgI2EutX /WMHsTkFbCW2nD0DZHNwMArISrS8BjubWUBc4taT+UwQLwhILNlznhnCFpV4+fgfK4StIPF5 xT82iHo9iRtTp0DZVhIbpp9jgbC1JZYtfM0McYKgxMmZT1ggTlCXOHlnLfMERolZSNbNQjJq FpJRs5CMmoVk1AJG1lWMYsWJycW56akFhiZ6xYl5KZnF2XrJ+bmbGMHxrWi8g/HfBvdDjAIc jEo8vBwMEyKEWBPLiitzDzFKcDArifDuudEfIcSbklhZlVqUH19UmpNafIhRmoNFSZz39bGu CCGB9MSS1OzU1ILUIpgsEwenVAOjE8Ny5537j0kt2vuWd8WO/DbryYK3SzrKpy1WOfDr924V u/yj/1eprc95XvT8bt65O/f+V0/+uHrtAXep65vU9TLffOiN9z+xZQ//zkPvN1caz+x+v3z/ hBkXd71QsogwUpTemOF9NOHeqwl7GKtOLZpf9cLUheOGfCvPHZMMlal2k18t9J18zUSJpTgj 0VCLuag4EQCeqi9r6wIAAA== X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:74.221.232.54;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(979002)(6009001)(7916002)(39410400002)(39840400002)(39860400002)(39850400002)(39450400003)(2980300002)(438002)(199003)(24454002)(189002)(377424004)(8676002)(2270400002)(33646002)(5660300001)(8936002)(8746002)(106116001)(106466001)(626004)(23756003)(103116003)(54906002)(81166006)(81156014)(189998001)(305945005)(50466002)(76176999)(5250100002)(2501003)(356003)(68736007)(36756003)(54356999)(7736002)(47776003)(5001770100001)(97736004)(2906002)(229853002)(3846002)(102836003)(53936002)(4326007)(92566002)(69596002)(2950100002)(50986999)(6116002)(86362001)(38730400001)(2900100001)(7099028)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1101;SCL:1;SRVR:BY2PR02MB042;H:sacsmgep14.sandisk.com;FPR:;SPF:Pass;PTR:InfoDomainNonexistent;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BL2FFO11FD056;1:3nxk3TbNKOYDNAJjG6xwLVVht009uMcugEO5F7GopHmKmPInf8pZDgwbiAAMcoxajcEaJU/9dilsCB3D5b1HoKL5rfV2XQyXAyF0WqDs2nKetCvg2MKbxs6xcQhHtzkcZSHMUYg1AjnuytgsOWHRrPUmo1V7NGJOx4M0N10mM9MSwIrPAEQvWlSQtmRDID05apSR8wspUDZMaO3/gUewIiL7R56QEKDGlzpsq8dDOh0ltaHaWk0WvkC+H9+SlsR/9Q/Cb/qKU0QqgunzUbiYY6XvMmNDhlOOUtExChsFlhb7G2D4rmK4lwRM66whgV5oDurrdZJz37yQ6FbioZHIhf+R3lFzkSsxTb7GhSBisyCoWZy97RNkMEMx7iAWwNNVdj4ZruuitNuXa8EG213mon4ACOrjUzUrhjFBzwpirlLL+I3jsaybH3WRmNvhr7AV9nQMn82tfJvKxc+BDPHHljzsklLQE3V+PT0/XZ4321hyqnkA32yCoQCNSbg2C7YzrCav2ALNA4EdsHtS3upEyzyYZd7fI6ilCvFVz904clOdfKqGGrlnOsWtsnNYAPVW X-MS-Office365-Filtering-Correlation-Id: 9589290d-8f2f-4eee-be19-08d449707463 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(8251501002);SRVR:BY2PR02MB042; X-Microsoft-Exchange-Diagnostics: 1;BY2PR02MB042;3:Xz0zPyjwESj0AQF6lJWcFTMwIPbEj22LO24Fa8yzGpNnqQEtz31NP4vzdXCoVhwItyvhiOhRopIzIuH1b7Qs4GSuHiWa3iAfVC4ZFMjgnZUUuT5tpgPozPUFh24AzV2g/Ci41SZEorhcPMY9APbw5/KX3YOS61tjT0kLua+E7cLihVsLMY0krGPRzDv+auU0OmQcpTsV58rjbIfeIVWo9bVIg+IsxvSdxG2SMLaiR2uaVEsFKiraQBroolaoEaJ6F3PM2z0GZUYvXjfX5NSnTNzlbxllLG90y8ltUcH+PhH3H8ivmKzgX+2uyKHy0EQpCVpLKGHFkNeWaD4PoeBmi8wQcykgQ23ZajIOUt+hBw+o8IcKX8O7i66TxlkweAG1p++uGgS8LhpkKyFPgKmNlw==;25:vVQdSk7uHPlMTYsrgCXNHns6Hh5RYvJWLCcdWh3AtFF5+ybFhhgaZ4k2FOXM43FjWPPMl8VVesLnpppHvnXd42xkH/ww8ZL0Htiblu2memPyfrJKDpdZ65s6T7uLgZz/nXXkJnFvy+mCf7sxieiI5i09ykQSHQssjUtSJIx64yccVEPXMSP3WzDWHtGdwwCK5MQOJ2CMTWc/2TknXYPm4ZcdlI0GbGoq7sEtBiVOaEnjad299Bij1jodmzHS0kW04fWGPUaKTiqz3JKThMBEq33ifVTi69hQIoF6sB3WQophvvNTCvNKPyGrRGf0zXeTNIfZECB77nADDzpOFzCnCYMKL7f9FvjD+z2W2tWl26vBvUX2DY3CGO0gCioeXvuK3l3sTofeq1hNaioc+Ff6IEUPh64dXv1HtQR6ANvfDSgmLAugS3cx8fudJ+vUNU2UnjLIKS5sM1N6jRXvldkiHA== X-Microsoft-Exchange-Diagnostics: 1;BY2PR02MB042;31:UkWPOXh40Sgcf01HJN1ktw3lAW9CJvzdaBKeg0VZ3ML2CE3OshWkUpvI5Oy4Kq4oO7Erqxz4N0aUsvgl2CTv9A+hF5KtqUqOmQBVTD/bek6SJTnv29NQWeuspyx3MgQmAJCwAco+qI94JM+1EmXj7PfzdgnZjt5wMxwQYNDOUpfg7SYdWYASIOL6uIT0uSRNbWqG1kVr+n+R6EHgv9Swy4A2XavftRCISLeN2QgXLNByY2dd8lisA8TuzsXX0hlV7l0ouVe3I/vvDfNRmQ2w/n28d1yFSmZECD9rf+unYj8=;20:s337GioZ6GJksh0/C6o6c/JwWXaXbR9cE8eO/6HOkfdp6nUJQr3g4vdlCLzQgp9rkVyLNYByOHzEe+QDGmcPSuKDsOq6rgpxHn/gjPQRhatdr0wTYYsjsuNzj2H56RNcy0D6jr6uhwvlIlOVwqI9mdI8EC8VQY2ioLJGURl2zilNpICtbccVt2DAX1bsnrm/Y4m6PgpxP20906ebqcAvHoC4UvWW1s1W/wDkCMXgZjudWVR8nRDBVI42riI8iBeDA/IchIC/aRdnCAv7D0NJ1HSs5qpxZ2muOiF6VU4ojH/ZgLI157lcKDnATrW2YH/1yLP87z7UttWwydw07pCJ7TMHMqKg06m6UF8fY8wYdrfH/gTj3JzOzVcD06oYPxpRpfw8wMxtZN+T7vnrDhmU5nYqYWrbF9T7qaB1M0fMGGbaeH+TWogrSLuea/jkZXE7iCBwxkjPRltqSa01liT/gNKHv7ctRaE/RcBtZLo2d0iDQRD5rfkRKuSjrpfTj4xA X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(131327999870524); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(13015025)(13017025)(13023025)(13024025)(13018025)(3002001)(10201501046)(6055026)(6041248)(20161123560025)(20161123555025)(20161123562025)(20161123564025)(6072148);SRVR:BY2PR02MB042;BCL:0;PCL:0;RULEID:;SRVR:BY2PR02MB042; X-Microsoft-Exchange-Diagnostics: 1;BY2PR02MB042;4:h9yBRrPhAfSdF3v2U2q+1X2FHm9Yuh+CtXxWXh9jPLHN8Wxv/KmDIuIt35Z0KlBE3/H5CRWKRE0V1LuIizhVcCdXJciCZTp6R9bG9b18lSlFpAis4x6DEdYUNQKbU9FAGkt7pzbSc1VLbZlj9nyaJGIMJhullLF5ij5+T/oYiVvKaugjz3D804GoYTscZx/muXpIwdVO+5+hsIPICMa+sDmo1lQkS6bLW9+tB8pfIb+eoRWST96omofsAx7CJvvHPIA4AxUVzpw+rH8w+3WWaIe2azNXnWuL1Yh7nSVo+l7FDnWqPOfbrihyLrGiR82lLJhlSewrSn5DdI7olfpzEB8bmURZy77CPhJvu0Vjx6cc4ibEWX3ycqAit7bLhBSQw/DiC/0dRprnmcxRaiY6yzd8RvrSdAVW9kRIHLcLrOgRRe2xfHKofvylGEPM3F8XOnWavbfgtWpp6cYctAJTo03IMKSTAmyYL2tlEf3B/K3uh2Il9nI18znOx1f/XRdx134vPgmcj9SRn0lwxWouhWUTFHtPYWkRM9HSDnTrAwM6/vT+fQ8IGg9+v2F9PxmV6arGq0jB5ZMa9/Pzlgqu/IYxTgDpnfmGA6rsiBVZGJvoRiW05TsAnkrU8DN5w1RB5LPLtKpTLiMpguQRh5410s9K9QnGroHzpxYbHYbQG3ZcimpuR/YOLFA0qf3sq7HU0j7hiGOJrHAAETSFsHVCPTs6nXC2+x57IwkB6VhSIE8= X-Forefront-PRVS: 0204F0BDE2 X-Microsoft-Exchange-Diagnostics: =?iso-8859-1?Q?1;BY2PR02MB042;23:SC3LXIZhy4t9wfvUPmz+Ica6LGYX8jfsop8Sl2Xs?= =?iso-8859-1?Q?Pgj8LkylNjRWOBaVeA10uFJVmJ8LrewymxIyIy2lpVqcUbzjNq2I+xQhiJ?= =?iso-8859-1?Q?ev9cE8JZstcM83uYoVgMpnSF4pKEqNoGiS2rkQFvg2LfLV2zMAKcg0d3xF?= =?iso-8859-1?Q?THCB9v+VGF/ojK1LIiIQG7eRQKfqUmw0TcwF2BLJ+JjnRlz7bCvURkFpJs?= =?iso-8859-1?Q?J5Fe8JTFxWAnklZGbYyTYBZ4SAv8QQGsXJZILGNt5eUGPlDV2m9OuatHM8?= =?iso-8859-1?Q?f933NjhG3uPHuY0XhA2bOjzV+bGUjw1vnBsiIS5FgnYISeFKELstBrPuDG?= =?iso-8859-1?Q?5KwN+G9cwwMFF6QhC5YTpyCYSbZa5luhkli6NbpQANr3NIwpY8/jcWRrlA?= =?iso-8859-1?Q?my8taBWdHzQQ3DSluGKA4rMLi9rOd4TXULeOzUoYpcKIxkR3HMSup+48RN?= =?iso-8859-1?Q?dDBOgpVuTyAUNcQrtF9HCGBkFPMeTbNeXEiqWCT/ozBX0eq3baojU92z7l?= =?iso-8859-1?Q?sC3zfgjtAZ/0YZNIlEGyyMNQhwWnxeSjuWJB69tCsuBZNGV3D5RRKvhKD3?= =?iso-8859-1?Q?itIJn/0Cz4EifKk/rEKma7RkI5mgrpMxRj0PTYG/eE0R6mZXI/ungkmrHx?= =?iso-8859-1?Q?vmkXbDG2ikP0GZjqi/Uz0JX3nj0buItnzYRLvgsj/RUqmU3OzJSs9mCf3R?= =?iso-8859-1?Q?P5YDgjDvEaSBSDbVUoOy4qpSVRVR/Mx9TileL4v9DJydLD3mCwsJ6Aj070?= =?iso-8859-1?Q?tJ4voxZIR8yMmIS/VLUBNH2X9041w0NGyAgDXExcDQ29Ln5lvJV1S09D38?= =?iso-8859-1?Q?AhdazAvmT/GuUpmxZajulpVMsoTXZF4ykbpwLt8Dp//OkZn+M1WLu3r9R8?= =?iso-8859-1?Q?ObHdYh0aXn0MiJmU+rLoWy5KefZTbl4WWO8Xs9RCPhevv4vCDiN+anhxYp?= =?iso-8859-1?Q?6eBE5FwYCfIPOPBmW6T5bobpuX8h6l7qVY4wFGgKCGQoiu59OaK0FAiJbP?= =?iso-8859-1?Q?FH6kAgTvkSJPdB0xjUVx81FcbY+1yp9hLRh6lPEhcaWQfua03ydOX2CaRQ?= =?iso-8859-1?Q?Xr35ywkRmqvwrVfMVieWy4amk+Ac7XkCBLtTX5+1ko7jtJlv9rqh4C64G7?= =?iso-8859-1?Q?a3yXzyuoXi6/Y+A6XE7iHammNbRUTB3y2mVdheub2fBQVmm619kc/Zs2l8?= =?iso-8859-1?Q?XntoNtM3RTg561nRsg1oRZnzoNrdkPdtrvoWrvxV8fiLiGdSlvPe/oc20Z?= =?iso-8859-1?Q?AfCr/3crSlnPEj2BKuzi/d8HUme4oHQlRpAsx8SunJ0/y6zzlunSQJrguf?= =?iso-8859-1?Q?QUX6iUAExcOJGHluoG0FJppOyqsJXrIsqcU9OXsziZ6wSAnug3A8FLHf2G?= =?iso-8859-1?Q?BeypJDa0bO6GoW0JLCKo7MxxVcI3VaGzbHXWKGSdXTjwIBzKWMAAZXmBJu?= =?iso-8859-1?Q?EuJnx+cfHCUgj9p+NwMCSF0TQLroAxJru9ggePkD0gLRPyJz67Fbo3Ohxr?= =?iso-8859-1?Q?bjojC/nAndA5TqPlo9k=3D?= X-Microsoft-Exchange-Diagnostics: 1;BY2PR02MB042;6:dFAE51OqQqRltni7GbPX8DnystDI0H/E39iocB6HQtUZ/i+XfM2B4CSo+BODt1agGE0nLleeQ1sKB5WeTqR6w4G++BtMXGONKoseH1mVvZewxqUw6YHjxnqRnXWq2PQwuRVyg0Dn2yHQVZDrFerYc/ccG5vEhTLRZAJz8uQ1l6rpcVEuajsbVzF1EhHMn+P5lADk+MR0ihDfzBIAHqnsyZHUW5rraAJbRMExUoa5bRq5vRjjuipQ3m8dUm3pAM+RqUvNKzDtjXim3RNERMsjjwdAMMe/Ioa0wychMPxs8bhDaQoTk+tolHaXtGY18ZTO9kXJOocHZGuV1qb9tL/v+08A7VU+nwU+JdpIYr8cyqiSKIohwzFv9X7Eci6C5fXP7Qeqq353WQi3+T+3laoCay37SShVYL3yQXslG5/Q6fsUlCN8fbt00kLw2HbW9KM3;5:VwiCJ0sQg5pvO+AZJRTRA9bUXSNVCqYZ2FpYinDBE+3KZQ+fMupV1JLn2VbxlUZnYBbWzrS08scbo/SxJxWj+vrtFwJFOyLRIljnm8gKb8h86DeOnIEu2EtOrSTx/Guvzdw+toC3qgNPJbMPE9hchcjJWiL7EqLrG6dfDs+t8Vs=;24:oioSSvV5hV8mrqcqtiFqMirPUehALgN0WzQXN0Fwsy/ULEvFzlPCLvC26dAd5CeyB7/wVv5ERAHDDPQ6pYOuXf82PiPQw7GHewpbICLvRTE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BY2PR02MB042;7:hCEsvD9d96SYbm4uzcekZix6YaFbAGOXx+pdHFIjAC0X/ChfIcV/Fdh4v0/sPm8fkcOdLlj2yldU51N7HXkWyesBg+o2Mpv/ZHkzXhNFZyrYsixemzYQfxnfC+IJaA6+WlF76GBy8deg++c51a7BQs5kgcvbGP5f/E4cVB0y5ToIDUURwtG6Gu/q/irak4qr9MwcrU6ac6dgofTbc8c20zU6Z8rRs7XOH/FovS+xo3kg3J9XIopX0Jw5CVvfxp8/s8VyFb+Ldc6A0VzHAoERD3YJk2pPO8K/Zc6cwCLUGRXE2N//2eBOtzHswv7fTtPn491C9ux0wBplI9Od9cZnid62i2ZDMQ3RYFVLrhC/CZ86yR57SsrvRo6CsgfrEgQp69LNUoF2aygQ8aPwCMc301ShnAdoM+rTmSNm+HGXv49jm9nkQ+A7+Jvecn9/dLk3ue0N0cXnZOU60s7uyFA8gg== X-OriginatorOrg: sandisk.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jan 2017 00:31:07.1961 (UTC) X-MS-Exchange-CrossTenant-Id: fcd9ea9c-ae8c-460c-ab3c-3db42d7ac64d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=fcd9ea9c-ae8c-460c-ab3c-3db42d7ac64d;Ip=[74.221.232.54];Helo=[sacsmgep14.sandisk.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR02MB042 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by mail.home.local id v0V0VokH015002 On Wed, 2017-01-18 at 10:48 +0100, Hannes Reinecke wrote: > @@ -1488,26 +1487,13 @@ static unsigned long disk_events_poll_jiffies(struct gendisk *disk) >  void disk_block_events(struct gendisk *disk) >  { >         struct disk_events *ev = disk->ev; > -       unsigned long flags; > -       bool cancel; >   >         if (!ev) >                 return; >   > -       /* > -        * Outer mutex ensures that the first blocker completes canceling > -        * the event work before further blockers are allowed to finish. > -        */ > -       mutex_lock(&ev->block_mutex); > - > -       spin_lock_irqsave(&ev->lock, flags); > -       cancel = !ev->block++; > -       spin_unlock_irqrestore(&ev->lock, flags); > - > -       if (cancel) > +       if (atomic_inc_return(&ev->block) == 1) >                 cancel_delayed_work_sync(&disk->ev->dwork); >   > -       mutex_unlock(&ev->block_mutex); >  } Hello Hannes, I have already encountered a few times a deadlock that was caused by the event checking code so I agree with you that it would be a big step forward if such deadlocks wouldn't occur anymore. However, this patch realizes a change that has not been described in the patch description, namely that disk_block_events() calls are no longer serialized. Are you sure it is safe to drop the serialization of disk_block_events() calls? Thanks, Bart.