From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752694AbdBMQiZ (ORCPT ); Mon, 13 Feb 2017 11:38:25 -0500 Received: from mx0a-00082601.pphosted.com ([67.231.145.42]:41437 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751972AbdBMQiV (ORCPT ); Mon, 13 Feb 2017 11:38:21 -0500 Subject: Re: [PATCH] block/loop: fix race between I/O and set_status To: Ming Lei , References: <1486784445-25300-1-git-send-email-tom.leiming@gmail.com> CC: , Christoph Hellwig , Dmitry Vyukov , From: Jens Axboe Message-ID: Date: Mon, 13 Feb 2017 09:37:34 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: <1486784445-25300-1-git-send-email-tom.leiming@gmail.com> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-Originating-IP: [216.160.245.98] X-ClientProxiedBy: BN3PR04CA0031.namprd04.prod.outlook.com (10.166.70.169) To MWHPR15MB1199.namprd15.prod.outlook.com (10.175.2.141) X-MS-Office365-Filtering-Correlation-Id: 9f745747-7e90-45e4-3614-08d4542ea026 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:MWHPR15MB1199; X-Microsoft-Exchange-Diagnostics: 1;MWHPR15MB1199;3:QktLe5pcd9sH8QCwzzeMrPVPFwuXY934i6lrVr4ZeYsIKTdUN0fWh374gs7U2L9XMwl092i2ssPC2r/ALFtcUKLa/7xk+Se5TyvpG04GLo4xJxZamN2suAuHKcjQSw1wxI5s3cJHa6OobLUUpSGmX5COSE/RMWMpNhf1h304IEpJUltXNqL/ECx4PawiGed2MQX4Kfvvw511vpPqUHW+yagpUEscPoQy+wmojarkKKA5xGGQpMnGyb4RydhEmCMqhP9/O9Dq9VUpwWPd60SlEw==;25:SxgYQxVeE6WqNkgirrisROTsOrAKPNgXMTW2ZND7MQhN0kaNsdwXpmzq85ywyl17pQ54wOMQAqFXDTDeFMBuCAu6UOZFCqTRxH8VO89VBjH9k/2dWud2cliFj6mvnea3xCrxX/Ppv+HhwTcTzn4s+kJ5hRooT7tq9lY1jCpTYAwLCq8Bef0RAvf3Kmhq5/yrSxxycY913ej8Bcp3vxXKdxlUKtPu07eC1rClA3/XCDBKAjeFiJ71USi2acqSmOk1qLAKY1kAGNjqGhp86ZtViiByqGicEGzkNHUZRkvo5rUWBlbsdziP9VNCvBpEC3SvPmTVxoOBDpr3Tg+e9BAMt/+LtIU4AL6mlA60/GCWMeOLDMI3CzsyPd+k8GmVfmdZQwiM+cHDinVfiyqLGFCVYRonwhw+YiII4XqdSS0mS3MzlZUZPRUGdVk5fuQ/q+4sHoKaD0c78BXanM5pcZAbrg== X-Microsoft-Exchange-Diagnostics: 1;MWHPR15MB1199;31:mzWeAGstOpWmRKhpYmGKY2HO82gvCkrIciOYXTKcb0awsoGRr4hbT9ZboWfJMqr9hGksfjuXkPzGBb9Orrx703Qs6OU5/W9LTRQZByyKBgx3pt7xPZ9uAye/J8f7WoWfCOwIJELRYHCeIvsjS+nFKMlJsSoey1HhmX3TDmdPV84VGwejY/Etvf9EaMhOOKEFM6Zg6HzYdyS2TLlnY+h1OtkC5pAxkOZ/1obQohPZeZK94uu8fpGxMph6ftnawur00VslX91RPYDeLBaCdGfBrQ==;20:eQykk8gTU+s+qen/c9dzDknOjdozmCUaaZCxyOMekxJSxQKCNoCz/VtdVC/lSlmyizDxeywqduZPBQuqzw9WJL/wtkuxis1ZObiGpYCkPEUJYpqwBTW3AGUey+zb347WJP9AX5y1npMpoh3ypfXH2UM682SFU2wdBfncjETxTq3zBgYry5Fu0pUkq+TcAV/NDcWsBkLsCeStk6k6oKMuz3snq6LasV8vIJ0J6PzlBiTtjvUoMsJoeKhE+5e7MNckBVeApj6/BMWVEcKeKyOR9Ut2F6Sdnqj5b2E3ynWsSNt0CEO7MXcWwAb+Kg7f3+vs0pvhRvdL3nNN577viqd9pW7r8DoWzxn8BCCJPkyUlB45dw18VvfJe2mn1pu6h8C40RVvVbZxSCKCtFQxhufI35gAKW0x7jm1jw0uaZ2hqsV1bKZtgtMbX2aGYtq0VdBY0WTnbefOEA3A02jqHXIcSjpZQYSluxIBI0MowDGeyh8ZdGyZ9qfvLkBMVmAjhaAa X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(17755550239193); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6041248)(20161123564025)(20161123562025)(20161123555025)(20161123558025)(20161123560025)(6072148);SRVR:MWHPR15MB1199;BCL:0;PCL:0;RULEID:;SRVR:MWHPR15MB1199; X-Microsoft-Exchange-Diagnostics: 1;MWHPR15MB1199;4:ys0C9bm2Yj4sT2HW5bK1EWHlBKo770egAP8oPBkOBY2SrvZUYa03JFaiX/5AmBLpDE+7wTYkZ+pu10HwxSIJMIgcSlzMat4qh8bxzHJMOB3DWP8+JqNPDf19AtbrGoPORwkCZ0AA/jgv8LSwpdwaDBt+6CT/FZiJe5q0H540gSI2RhbvTdMvSwkEeKURgWByTfbImS+tETv7rtralzEivInxtzqk1Iad/KueqK1fyf8j7eHnypvNASLTTuw+Z64Y9GbwPkrfoGKv2IRZqOpvqVkiMs4MP0fryfjJUNsgG7sPP3oWssqai0PBi3svvBE+dCk/4S5P/w0MOiEym/7aoiwQcYMBNM4Y2rlktmK2Fx0D76a/N8vaah1g2yWXSXioF1H5NMXODWcKQJhPT5goAEJUnXOeIssmcfPHPD0fFZe4Xn4txrHBkRgXoXkvJ6p9DcPp4ZPxXvjW5naKh30+ZVC/0thOGy1dixtBvcY37QFVHuFi0PmmSeT1XMhuzY2nByGFqnYiWCJGGJlh+2rYU3BDKJeq1MhysiptB2MhNmtSRJNoOM2OruLRqQpwn7M2gKTWmwQR1iavxh/K5R8UMTg1VFY9G1KeCGwGAVNZ4ALSqE0nhi9p1oinJygGCpQdlw8WEESYIaq8i+pXU1XOEQ== X-Forefront-PRVS: 02176E2458 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6049001)(7916002)(39450400003)(377454003)(199003)(24454002)(189002)(38730400002)(101416001)(81166006)(6116002)(3846002)(92566002)(64126003)(54906002)(39060400001)(50466002)(25786008)(81156014)(53936002)(8676002)(83506001)(6246003)(53546003)(77096006)(36756003)(6486002)(229853002)(90366009)(31686004)(47776003)(31696002)(42186005)(5660300001)(2950100002)(86362001)(6666003)(575784001)(65826007)(4001350100001)(97736004)(65806001)(66066001)(189998001)(68736007)(65956001)(33646002)(23746002)(76176999)(54356999)(50986999)(7736002)(305945005)(2906002)(4326007)(117156001)(230700001)(105586002)(106356001);DIR:OUT;SFP:1102;SCL:1;SRVR:MWHPR15MB1199;H:[192.168.1.154];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;MWHPR15MB1199;23:lsWjvVnBVRyjRUQXL0dx5K+vw52nC8keUx12s?= =?Windows-1252?Q?rFSiWKHp5O3c+ETQtLPDDv551XuTTyApYeH48AvYh3bbonGalc6Uee6U?= =?Windows-1252?Q?3W45i14VNslJsEqmt4/H0mnmncGIDa91NxXNwsq7/FtHif8mL3evbJdr?= =?Windows-1252?Q?6QeQAKVyzV45P8KrFuYsZMqI0KBxrw+gFfXZqoYIUYTziSXC6UTAmspo?= =?Windows-1252?Q?zgHf/HMOcrdLYnqdaGFiVBPrIZbdJNqz7ZVGHPNSnhu7VUIu3UQgksDK?= =?Windows-1252?Q?z+q9Y0bvRiXqu5hIAMmgyY9qsWyjZ7mC/J4UnDcVxvOJUI7ku7597NV2?= =?Windows-1252?Q?lpuIQ7JPtxG+b8J233ZWhsTbbFXfbu18luLaxoSevv8vZiN18iJGu91A?= =?Windows-1252?Q?5PSlLouRqOrlu0/O3Gj9i2XyJAvCCElllfaEgT2RdimJKipykPblzao+?= =?Windows-1252?Q?V7JTm4F5kGUGpVIog5TTbKC1i2Y00gilC2rTXmBItGzl/zMQuPa9UOCa?= =?Windows-1252?Q?Q3DJmDs6I6VdhwiY7K1NSCvyKCVJ4e2IIKRLNoCGsiNNuJRm1/G1je9L?= =?Windows-1252?Q?/CnizC5bG4pVTKmCR8sSWxEqdVgKmDbPRLAfqmcQGVT6dsJ1pcEv/iAI?= =?Windows-1252?Q?L00RNscAGHd4Xme+1ibvwN8MsW2EPtR/TDg+cRzkAeWCb9raabWeNNZ8?= =?Windows-1252?Q?UFpJFWFxim31M+ayuZrMp9B9FryawFU01hnGtk6KY4oT1+BFPBp2Q1uD?= =?Windows-1252?Q?xCtM9A6azx/S5u5cwbOArw4rqzCZ4CjYtJ7W0R7kZ9IEq+cGzLPGjCvn?= =?Windows-1252?Q?z+tQQC+19Lm9yAYJRiIYpdAxLZ4+ECOTv1o6UGMsLuCi5Ncfr/DWIqYb?= =?Windows-1252?Q?PG4TDl2X3Qwlz6LGVR+PcCoJlNhTKJ9x78oox3XYXiGbXNiuD9lm613u?= =?Windows-1252?Q?fAP9LOKa50/M45azQIY+k8vmpr/Vw7vphlzqCuFBrhBgKbdWXGt0Veff?= =?Windows-1252?Q?T0V8DHZQLZTtEf/yUfLv5+1awpZ9dUGdBm6PNiF8OdUjgx38fFXZuepL?= =?Windows-1252?Q?Dt1SNCzIagfcp1S4i3iD0AUGL1v0xBi/RocHxWALAGnrGrFX6ul7dNuJ?= =?Windows-1252?Q?L3l0V40n4Dh/ieBx2VpwufaDE4oenFgEY2dkpmjpproYYsdLWzAxdE+U?= =?Windows-1252?Q?xe+v5plpca30/4K7jwBxgnXgmMYwkr4T4RPjKMNmsN5HizmgirWQnJKG?= =?Windows-1252?Q?F/5A4THOaFISyg5dEMcMpiRycOvzZ9bdSnc7S7L12sfw6k5+1fydO0gr?= =?Windows-1252?Q?y8LswhjuLE2sZ/BwyyE4n5mt1apkAoef44CmriNojRi76N9rO8DuNJ6+?= =?Windows-1252?Q?1MunG9H6dWFKHwQ0cXOE/R1ePHvMn0TPoxjWdZHwlXBPVeNt+giHyGMu?= =?Windows-1252?Q?bYu3Y+AylOWE0eCm/HK9kW/11wg2vcFqvdXYVzQ+gSZ2AG5mHqlzjYcP?= =?Windows-1252?Q?Kzza5mu2PWZcT4ZkVjEJYSwCLreucsrPHmRB1rB6HBb5/r699FR8oS7B?= =?Windows-1252?Q?3V5RLZgDvk0eoJDI3rKPGWu+WwHvlFdgo5Y?= X-Microsoft-Exchange-Diagnostics: 1;MWHPR15MB1199;6:E/DBBEaiTHrK2dJBbO6j44h5t2W9qFFUPLqzk9Pv7KxzUYrbAE9EPNo12oHK1dlE05l+cldPiX/EOFIn3ugPMys2wFvP4tjKT56hOfG4rP0NMIoadvZgbGAa8K/ThYRnNJEQtq7dzCGVx6vMgFYLxhRIJ30/GBlipeFme7YyMozE9+AP0QBwOkkoiS451WDoOIWN3qWiHjP7ylu7kk/8/JngpEe8uaUrfm0vxZ+bGSH0uLHDnzDoaCmytExAXQJI6fHcwMWaJF2ULT0F5bD3CqjIuVkW4kgj1NuqUt/mcYtjeDjSTnCrIAg6cKdV0n8MsEUL1b8Ao8HiyCKahQ29odole72kcZ8FReSev7tE2/dwxQq1ODW+63PoHYptrF7qYZH8L3u9dMfXBnWOMIq9vA==;5:EsgudhjKVtLlYZ5U4zXMVoiEJFV2J2VvWUey1DjKFiig1J79semTkK9tdNJ2BHw5F1MwOVf69Ih6oPfFGIsb4dxjXHouHcCow0zVDwNaT+yX3HfRQMiud+/vnhDmVcAYA/rdhImmEQ7Z9E/4yiwNUykbjVTp+RYMeA6Cf4shTTA=;24:7HpPfvrAL+RrBS/C+39p4gCXDuZcNGQ3q3oRpHPGENCOCe3P9jV6GJ/hpXWFBlyrGY7YavgTNSQ8zOGhQrgxZ2BdpO0U17RqfKtjOj0VXYQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;MWHPR15MB1199;7:5JzPDQH6kGjrmTLBhMDA4tpo3hPYKndlGTfmi/+X2bF9TJLcuyWWC2yA3mQe5ER30w0RntxZmY+zUZfBTbj62YYs5FlRAu3+Z8cVjE14w/k1+w9r0kqMrx/3yGzHg+UuBVZrdkX2PejoCP9yfJ5PCuHtqQObpwJz4u9eBGvcjedpZRx82yAb3EXdUCIrp9DygoNeJ1/zBjkY7NEx7lLm3bx2C54d5p2X4/OLf89nA4l38XeehGkPF67nCD9gFmfq//wMZ6e72+NhM6DRogOEoVeAzqMTKpIKnpRKAFjcuWHvw8JPAJWnzUgdmbXWN0ng+PUNTnbA01QCZKoz0tymFqSV3EV61TQCzss7uZhBQpc8ciIQ/qymuywoSo2wazKTLmI/rgjMqqHiSLyduJExUNk/vpWXvOmdibHYywerY6NJmEendSeTcFuGa3kROseHOD3eohyWfU0WmoVf9alKqiGzVF0sN+c9PpAeGOq/Z6xA48uonq2FfAQ1YwwS7dgpFYMp074FM6KWJv/3GaOlnw==;20:CenJwR9560CCqYzqhXU8fbWeUlACbcjKl9+vLdlU8VLZjMeToSkwv2ykJe245otkRgPcn0kE8GcZ/7KmCaA5NVu4ENZ1C0BeF3TC2PzPQ46OzIU7R2y7PKppc4mNY04IMrQBL/A2LbwKzXJDRPNGvhxKfCivLWk51O/FOQTcH6g= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2017 16:37:38.3017 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR15MB1199 X-OriginatorOrg: fb.com X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-02-13_08:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 02/10/2017 08:40 PM, Ming Lei wrote: > Inside set_status, transfer need to setup again, so > we have to drain IO before the transition, otherwise > oops may be triggered like the following: > > divide error: 0000 [#1] SMP KASAN > CPU: 0 PID: 2935 Comm: loop7 Not tainted 4.10.0-rc7+ #213 > Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs > 01/01/2011 > task: ffff88006ba1e840 task.stack: ffff880067338000 > RIP: 0010:transfer_xor+0x1d1/0x440 drivers/block/loop.c:110 > RSP: 0018:ffff88006733f108 EFLAGS: 00010246 > RAX: 0000000000000000 RBX: ffff8800688d7000 RCX: 0000000000000059 > RDX: 0000000000000000 RSI: 1ffff1000d743f43 RDI: ffff880068891c08 > RBP: ffff88006733f160 R08: ffff8800688d7001 R09: 0000000000000000 > R10: 0000000000000000 R11: 0000000000000000 R12: ffff8800688d7000 > R13: ffff880067b7d000 R14: dffffc0000000000 R15: 0000000000000000 > FS: 0000000000000000(0000) GS:ffff88006d000000(0000) > knlGS:0000000000000000 > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > CR2: 00000000006c17e0 CR3: 0000000066e3b000 CR4: 00000000001406f0 > Call Trace: > lo_do_transfer drivers/block/loop.c:251 [inline] > lo_read_transfer drivers/block/loop.c:392 [inline] > do_req_filebacked drivers/block/loop.c:541 [inline] > loop_handle_cmd drivers/block/loop.c:1677 [inline] > loop_queue_work+0xda0/0x49b0 drivers/block/loop.c:1689 > kthread_worker_fn+0x4c3/0xa30 kernel/kthread.c:630 > kthread+0x326/0x3f0 kernel/kthread.c:227 > ret_from_fork+0x31/0x40 arch/x86/entry/entry_64.S:430 > Code: 03 83 e2 07 41 29 df 42 0f b6 04 30 4d 8d 44 24 01 38 d0 7f 08 > 84 c0 0f 85 62 02 00 00 44 89 f8 41 0f b6 48 ff 25 ff 01 00 00 99 > 7d c8 48 63 d2 48 03 55 d0 48 89 d0 48 89 d7 48 c1 e8 03 83 > RIP: transfer_xor+0x1d1/0x440 drivers/block/loop.c:110 RSP: > ffff88006733f108 > ---[ end trace 0166f7bd3b0c0933 ]--- Thanks Ming, added for 4.11. -- Jens Axboe