From patchwork Tue Nov 7 16:19:41 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Nefedov X-Patchwork-Id: 835358 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="Eqct3847"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3yWZRD1dBJz9s7G for ; Wed, 8 Nov 2017 03:20:39 +1100 (AEDT) Received: from localhost ([::1]:54237 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eC6c9-0005Bn-2y for incoming@patchwork.ozlabs.org; Tue, 07 Nov 2017 11:20:37 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58467) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eC6bV-00057P-Md for qemu-devel@nongnu.org; Tue, 07 Nov 2017 11:20:03 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eC6bU-0001eV-F3 for qemu-devel@nongnu.org; Tue, 07 Nov 2017 11:19:57 -0500 Received: from mail-eopbgr20110.outbound.protection.outlook.com ([40.107.2.110]:15739 helo=EUR02-VE1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eC6bM-0001Xm-08; Tue, 07 Nov 2017 11:19:48 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=EQJuZF12czhE2XxyRg3djAOjhlMB3xREocBJKHr10Vk=; b=Eqct3847hbJ1HkGHe33R7H0XCW3Kqas/JjMCz6v8W1Fi8i71zk3sMYEYNc18KHDObd/YOoXcIp9qjT2LdPwY60x0UpQGnq4RsO5QxAHPT3t2RuT08nsZ0r2tqrJ8tw7UKt0UsoDXtXMkKZGacTeiNpu9D/9SJL9pMRzUA2rmDrQ= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=anton.nefedov@virtuozzo.com; Received: from [172.16.24.220] (195.214.232.6) by VI1PR0801MB1998.eurprd08.prod.outlook.com (2603:10a6:800:8a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.197.13; Tue, 7 Nov 2017 16:19:44 +0000 From: Anton Nefedov To: qemu-devel@nongnu.org Message-ID: Date: Tue, 7 Nov 2017 19:19:41 +0300 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 Content-Language: en-US X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: AM5PR0701CA0024.eurprd07.prod.outlook.com (2603:10a6:203:51::34) To VI1PR0801MB1998.eurprd08.prod.outlook.com (2603:10a6:800:8a::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2c682084-a243-4768-d746-08d525fb5b85 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(2017052603199); SRVR:VI1PR0801MB1998; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0801MB1998; 3:lDHuZY4/BtF4Q4xbSUvnYB2OiqvxHSkEv65XIbTG6DSpQmLDrXyIwAsr8c0Y1EONwa9vuNY+ViFezjIAQhGMOxwcojBA3rOyp0SHrzXXxHEg8Ai3zrmiuXOQ5FEL2bpMBai+h1rnPhpSUha24UWqgP6f4ok39+UkG3g6wgbBSq8krekIEWHY6tY6ZViwWErgfCaqY5gzTchotOB0pzVrMgU8V+mLudwN/blA3myuzSZBa6gOjpRy4MC7vW16IYzR; 25:CuaFQctPqP8rV1SestYTTDtU2jgrtLS2kgsrLwS4M1ihUko418HzxaRMRx3ynROCA0a4KEkbm7+ZLR2JdvVXmt2dIfkrxyNL+QXXG61AQrFvzLyQLeOw4ht46W/9GqEddF9vxs0x25h/RjbWtkoR9RiYB3wnj/aQPdyWruvnV5tFsMmPgJdlOKq9fOpE9YTbqfF6snZPIIvXL8zLjN5h6+6YfiDofQmikf7z8D8QxKHrG2cXUILPEHQJ4TN7l12vUVnbFPqJlJ/jCFbR9isil6JYSUEoO0muxfqs1s2GN3qdjFN+sOzZVH4n3nsg1ULtg4b8X5oVp4R1h+A5gT38qg==; 31:vyUxOe/hlp+OfpyVmy8U44N0gK+ycC2nnWWy/Og7GHt2McXWMR5j+xFOQYUZoqXXwOIPy3qzY7QgqBBwY14qeeK9LJNzotSP/cN3lTIvVhYKVMHkYS4YlkJOIWeB+OmcJ8ewdtPkxzz3AlnqAACVtZLomvwmBzYwXlCuznJ2x4W25IZcspZlUxQMUeoTU0VvFBaAdk4GZsx9w8WrgEZ4fpZcnGV5XHSdB2NrpJ0n6Q4= X-MS-TrafficTypeDiagnostic: VI1PR0801MB1998: X-Microsoft-Exchange-Diagnostics: 1; VI1PR0801MB1998; 20:brZ6z7CbRSZA3ozl2nx+8hrjiWJFOnde7wgH3eJHw6XN3OgvPKgLeSodpj9CeGizGZj9h9cTe8nHsrww9kC7owq+AdeyZADwsJTaJndc10ttjcH4mZq2JiY1HKUGwMn0svoRz8+nEBOAuoZyUtyMSnwVVaeCRn559zktRmyuCPW6l+iP5uPFoaqKyt9hjjGCP/YciGIbjXSUCCEh6ytEY2NvF3pUfTT9kiLVMx5oEBmn3OQiyLXbS5Tug/FozSsePBUaSRo3uWu/t84HHwmqaV5namx0SqyGC0mn00wURmp62SFto7nHQdf17/U5R8p8tu+folsQh/eEHghJjhS1AuCRdyDVoVDJb7Rxokg9atXfZVD6EmvE4MqEevOKLBziEpXwkLnh4uKdCmUjZj3PY0jssS4jEa4zLx0XbrOl8Qo=; 4:D7qsUvGwdZCmmizvRfCdD9RcMJGR2TaYFv55FFyPgeg3m7oza4pwcmNunxVYdvtDv0S1xcVaj9VT3opgj51JdfIbDN9t1Vkiq9MEV1QHd5jVit7HQmkMONmUCDyZYEuW+wee5r1A8Gg66aV3l66SP6tludWiAS5TAKSyPh7VYnVlmGnM6xhaTvp6d+d+xQmAHDdMeALbzKHxX82jNc2wIr/bCsXLVJHL8KujHqpdKM7bpuVuxknw4N1vbJJ6yYwrAoCx0QZvnzL0ibj8KaAbYA== X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(93006095)(93001095)(100000703101)(100105400095)(10201501046)(3231021)(3002001)(6041248)(20161123564025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123558100)(20161123555025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:VI1PR0801MB1998; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:VI1PR0801MB1998; X-Forefront-PRVS: 0484063412 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(6009001)(6049001)(346002)(39830400002)(376002)(189002)(199003)(305945005)(23676003)(5890100001)(101416001)(189998001)(31696002)(67846002)(65806001)(2906002)(58126008)(65956001)(65826007)(575784001)(16576012)(5660300001)(316002)(33646002)(54356999)(2351001)(2361001)(47776003)(66066001)(50986999)(86362001)(25786009)(105586002)(106356001)(31686004)(230700001)(97736004)(8936002)(36756003)(3846002)(6916009)(8676002)(81156014)(6116002)(81166006)(4326008)(77096006)(68736007)(7736002)(50466002)(478600001)(6666003)(16526018)(64126003)(6486002)(53936002)(83506002); DIR:OUT; SFP:1102; SCL:1; SRVR:VI1PR0801MB1998; H:[172.16.24.220]; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?q?1=3BVI1PR0801MB1998=3B23=3Aqn?= =?utf-8?q?ER5JBAogV0UoMvDOY8RJBNjiLphmmMLDgd6y5Rd94nOhynyeHgjqyR46?= =?utf-8?q?ln5GX9DTkta7IXpfckGjiIfwvwmd6J39T+qZcDkykDHAZEufDmlJLAqu?= =?utf-8?q?7SV3y1SHW6oBWfnLAyFmQNpEPRwFjAnNl+DEKaSQuLU2/CZdhMclHNGV?= =?utf-8?q?I9JBpcZW5LRTeZ6m2IsKellACFamrDvu1Ip6DKj0ovA3RIwHBhN8cZck?= =?utf-8?q?xeDRsDWnUbQuw3+BZ7VhmkBZMMy8i9YJEnAfHjwbHI0QrWp8RIMVxMUu?= =?utf-8?q?z+Qi44iJ4cNT3sTneSf7XTAzbJvPvlzJuk9gLLBhWEEWArmbKy0JbuET?= =?utf-8?q?79zbwKQkOP9W6INEMDht9yPmQn4uoZVssXacDCikFbATwKgUjZmqEu8M?= =?utf-8?q?ovVQmSrkkCXqDGDAVjj76Hmw053alh+C5zYKGRFBmiUa8vow+dzezvVc?= =?utf-8?q?dKoqwrZKao3LhFrUSrG1B+Qwc6Mz9mRjiDLeZZW+ZRJKZHPtk7gEMQqZ?= =?utf-8?q?e4T5fpBHFDqrysaT7T2NpedIgbFSOOswUuV2E4jNVR9TZIcVFjChaAhK?= =?utf-8?q?7fGHI1Afk054t9Eajkaz2tQqGTClD81azoHkLY8O8aATcw1EXHRQ5i8V?= =?utf-8?q?WY4RHb+HvtmccggSPR8gcQ+RtvgysR6cLIPyV7aMuQBddVgSNKxhHdjp?= =?utf-8?q?uTO2K7YFNoJa5QfxIyqCUifsfhyT1JvioHn4dqNjYfXJeB9AcK5XXWV5?= =?utf-8?q?lGw1XQOCrjtwtTaGe3rJucYNtqUb/wQHSZXvG0Ch8RThyKnpn062efSt?= =?utf-8?q?+FXFq/Ju6yZEHwePErCQWa/Xnz34u7ffd0iQDmJt3gfyg85yUHxyxscA?= =?utf-8?q?3bhll/12D81vW8MeiH3WUMUIIo5BD+XGUc1mxLGWS1DfXtcGtm2qvWzk?= =?utf-8?q?zSRV9QzCDhuGyOZhuVNydzLbyK+35LHPhBr1u2EKp0i/9SKateCSyTvG?= =?utf-8?q?Q6IkDTuW2EQyaMWTcsDuLmL0qZKccMxcbxPdcnDd9t8DTR1vPuhZz1Vp?= =?utf-8?q?WMCeNRPRBSA2eniC7A7irrf/FUOjDrunIENiy2N0OxgHdzy8Ds+Oypbt?= =?utf-8?q?7LS8CKgqmNUnDsFi6tu1B+LbapW30E3UrdaN11XMP4R0nQqaZmcG081W?= =?utf-8?q?75Q1u1opSdJtNgeEiZc0MHI25A+w4crGxnEXQp4rbG0KXiboq1fi6mWw?= =?utf-8?q?Pq9CgfHgDiXT3eTuvPiWWXGTXYDMw+bb0HJy1VUdt6DSxpPwQDyJl6cV?= =?utf-8?q?WeoYouanTn1Oso47BMLb+whVle1SNDYb16VgxrXfG8ICcQGCyWYlqmAG?= =?utf-8?q?m9SJgwmX5l7mLtT3NcrMduTPiTw55RnDM=3D?= X-Microsoft-Exchange-Diagnostics: 1; VI1PR0801MB1998; 6:KkxTXYHv5cocggL9J1cXmNCHFS4EhWbcS/72zeA5K87yXGBxOQyfUjXy9fWiMA9K6z8bx1z1wI3PU7fqr4di1w/vTLjpFs5inKgGQ5KmxPXS0MbQQ8hxxtOrmB5zVOE/b47H4oytmPhg4kEnCLvZSp/ys1LYqcqndxAR4b0/KU2QRtrlCYrkZ61IymJpCvppB2IRTSJnNYun0sG5IQCUOTj3KFx++DM+gCKZxSpu1YtlzbU4jttb67vsy/gRg9+ZUnAfz3ILcsNwtu1sPhWKWzv2Tk5eCWcdYdYCddJKwsDCuRiiys1Wjhlj1Nr4e25ArMDekw0sNeIYdwbKiSPTt1+GNB7LsT+8sYxY+obK9fg=; 5:bug9KL2g5p5LtcwwHLfbnZ+HAJmzHEvMX3cR7wJkxhfL6Z4NQ9B361ibNGKMFLI4cZaj3hGYwYucmU+e0S5MpH+Ho7xBf7uJ/UyJ/AHYgf3VR/cOQQkmcEWVDn43YXQXsYXhGe8cjgavzp5nlHVeWG+PCDKhf8+x8yetVRHPKGw=; 24:T+oex/8tlfR+1OCicYmuqWSwj4zPHTBBKsKKRfydoC2TXWB/RfWYQDd9NItr31NRJqXkrrqHURbtuR6THSKNpVvk5/T6ZGLkdTaEokBigkE=; 7:wsYFZvZjYz9Nim2RoU4863yuIPb94i8jEqN8lD09dYqdJxc7UQ9cL3sCHUzCd8Un+SJfK6QKCs6Fjss20WF8B+CChjQ1oLBHvREi6FpWAonLTxlrDM+c874JXsMYyfe9vq6RK1JEJRqr2LhW+rq9w8vMCX5I3IzC+1AFzASYnROjX1RX8vX1CV67AG51qr63dSPCBfz9rYbv32iIFAm0d0bSEkE4ADq7/DG/lMchlXVVwR8ZxvH7FVbrL2dZjOhi SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR0801MB1998; 20:eLzjc08nYW/9cZNDA/roD6oXK/r0WBDdVFH92Q2aeJ/W91CFvLEfFrja0cTrDNV+QTr/P06SjUZkT+KiehgMVUTUl5Og5wCV395Vur7/lY8Mbqjaal8utyim5xyOb6uPNUYSwMiTLiKSGDk2T+qOLxDU5LbchV01iZtrdp0id5c= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Nov 2017 16:19:44.1091 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2c682084-a243-4768-d746-08d525fb5b85 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0801MB1998 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 40.107.2.110 Subject: [Qemu-devel] segfault in parallel blockjobs (iotest 30) X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, qemu-block@nongnu.org, mreitz@redhat.com Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Hi, One more drainage-related thing. We have recently encountered an issue with parallel block jobs and it's not quite clear how to fix it properly, so would appreciate your ideas. The small attached tweak makes iotest 30 (-qcow2 -nocache) fail 10/10 times on my machine. And while most of the errors are just a desync between qemu and the test, TestParallelOps is more worrying: qemu segfaults while draining before reopening the image for the new block-stream job: > Program received signal SIGSEGV, Segmentation fault. > bdrv_next (it=it@entry=0x7fffcea39330) at /mnt/code/us-qemu/block/block-backend.c:453 > 453 bs = it->blk ? blk_bs(it->blk) : NULL; > (gdb) bt > #0 bdrv_next (it=it@entry=0x7fffcea39330) at /mnt/code/us-qemu/block/block-backend.c:453 > #1 0x00007f2797ca1bd7 in bdrv_drain_all_begin () at /mnt/code/us-qemu/block/io.c:347 > #2 0x00007f2797c5470e in bdrv_reopen_multiple (ctx=0x7f279904bd40, bs_queue=0x7f2799b9d8d0, > errp=errp@entry=0x7fffcea393e0) at /mnt/code/us-qemu/block.c:2871 > #3 0x00007f2797c548d4 in bdrv_reopen (bs=bs@entry=0x7f27990a0250, bdrv_flags=bdrv_flags@entry=8226, > errp=errp@entry=0x7fffcea394e8) at /mnt/code/us-qemu/block.c:2916 > #4 0x00007f2797ab49bb in stream_start (job_id=job_id@entry=0x7f2799c2bc10 "stream-node6", > bs=bs@entry=0x7f27990a0250, base=base@entry=0x7f27990de250, > backing_file_str=backing_file_str@entry=0x7f2799a0a350 "/vz/anefedov/qemu-build/us/tests/qemu-iotests/scratch/img-4.img", speed=speed@entry=524288, on_error=on_error@entry=BLOCKDEV_ON_ERROR_REPORT, > errp=errp@entry=0x7fffcea394e8) at /mnt/code/us-qemu/block/stream.c:239 > #5 0x00007f2797a86c96 in qmp_block_stream (has_job_id=, > [...] > (gdb) p it->blk > $1 = (BlockBackend *) 0x9797979797979797 BlockBackend gets deleted by another job's stream_complete(), deferred to the main loop, so the fact that the job is put to sleep by bdrv_drain_all_begin() doesn't really stop it from execution. Looks like the problem is a bit wider though: if I (just for a test) keep the BlockBackends referenced while iterating in drain_all_begin(), qemu fails a bit further, when accessing the deleted BlockDriverState from the apparently obsolete BlockReopenQueue in bdrv_reopen_prepare(). > Program received signal SIGSEGV, Segmentation fault. > 0x00007f4c66a04420 in find_parent_in_reopen_queue (q=, c=0x7f4c68b365e0) > at /mnt/code/us-qemu/block.c:2932 > 2932 QLIST_FOREACH(child, &bs->children, next) { > (gdb) bt > #0 0x00007f4c66a04420 in find_parent_in_reopen_queue (q=, c=0x7f4c68b365e0) > at /mnt/code/us-qemu/block.c:2932 > #1 bdrv_reopen_perm (shared=0x7f4c69596440, perm=0x7f4c69596438, bs=0x7f4c68abc250, q=0x7f4c696238d0) > at /mnt/code/us-qemu/block.c:2951 > #2 bdrv_reopen_prepare (reopen_state=reopen_state@entry=0x7f4c69596428, queue=queue@entry=0x7f4c696238d0, > errp=errp@entry=0x7ffe09fc28d0) at /mnt/code/us-qemu/block.c:3035 > #3 0x00007f4c66a0474f in bdrv_reopen_multiple (ctx=, bs_queue=0x7f4c696238d0, > errp=errp@entry=0x7ffe09fc2920) at /mnt/code/us-qemu/block.c:2875 > #4 0x00007f4c66a048d4 in bdrv_reopen (bs=bs@entry=0x7f4c68abc250, bdrv_flags=bdrv_flags@entry=8226, > errp=errp@entry=0x7ffe09fc2a28) at /mnt/code/us-qemu/block.c:2916 > #5 0x00007f4c668649bb in stream_start (job_id=job_id@entry=0x7f4c68f95fc0 "stream-node6", > [...] > (gdb) p bs > $1 = (BlockDriverState *) 0x7f4c68b57250 > (gdb) p bs->children > $2 = {lh_first = 0x6060606060606060} Does this mean that bdrv_reopen_queue() has to be moved after bdrv_drain_all_begin() which also has to be taught to suspend the main loop BHs somehow? thank you /Anton ------ #define SLICE_TIME 100000000ULL /* ns */ diff --git a/block/stream.c b/block/stream.c index 52d329f..74e980c 100644 --- a/block/stream.c +++ b/block/stream.c @@ -26,7 +26,7 @@ enum { * enough to process multiple clusters in a single call, so that populating * contiguous regions of the image is efficient. */ - STREAM_BUFFER_SIZE = 512 * 1024, /* in bytes */ + STREAM_BUFFER_SIZE = 8 * 1024 * 1024, /* in bytes */ };