From patchwork Wed Jun 13 17:44:18 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Nefedov X-Patchwork-Id: 929001 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; dmarc=fail (p=none dis=none) header.from=virtuozzo.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="RATikwIf"; 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 415Z4L2Jrlz9s2g for ; Thu, 14 Jun 2018 03:48:50 +1000 (AEST) Received: from localhost ([::1]:35970 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT9t1-00062v-Vq for incoming@patchwork.ozlabs.org; Wed, 13 Jun 2018 13:48:48 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59345) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT9pF-0003LD-Hk for qemu-devel@nongnu.org; Wed, 13 Jun 2018 13:44:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fT9pC-0006yh-AV for qemu-devel@nongnu.org; Wed, 13 Jun 2018 13:44:53 -0400 Received: from mail-eopbgr10138.outbound.protection.outlook.com ([40.107.1.138]:47432 helo=EUR02-HE1-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 1fT9pB-0006sA-D0; Wed, 13 Jun 2018 13:44:50 -0400 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:X-MS-Exchange-SenderADCheck; bh=CMZCw4XcQi5uishxXj1/brB2s2KBg4NXaQyN74q8VK0=; b=RATikwIfcIXLuGhp2Ni6kqyAxiFLLCPFRgYPFrD1Tj5RRmHesiTbms29W0ZLOhqC97d5VqHC5tCWlPEKUGd0zUnsoRzv0J8Yzh76kI4kCbgKrTf+mAb8VkzCVJiLSs2mDV3mUqSglwe9AgXmoo96+4dpZbtiVNl/JpIt28kNsso= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=anton.nefedov@virtuozzo.com; Received: from xantnef-ws.sw.ru (195.214.232.6) by AM0PR08MB3347.eurprd08.prod.outlook.com (2603:10a6:208:5f::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.863.16; Wed, 13 Jun 2018 17:44:45 +0000 From: Anton Nefedov To: qemu-devel@nongnu.org Date: Wed, 13 Jun 2018 20:44:18 +0300 Message-Id: <1528911866-37489-1-git-send-email-anton.nefedov@virtuozzo.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HE1PR0902CA0023.eurprd09.prod.outlook.com (2603:10a6:3:e5::33) To AM0PR08MB3347.eurprd08.prod.outlook.com (2603:10a6:208:5f::20) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c24dd423-1b63-4294-a6fa-08d5d1555a2e X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(711020)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:AM0PR08MB3347; X-Microsoft-Exchange-Diagnostics: 1; AM0PR08MB3347; 3:gtcQGpUqIq2H2MnnLedFhDfx3ytTIEzWQRQxrpHYqvC9qcu9dSc3OrcnUEtZxtX7yX+zlFswFn6gxh82u4XCPAqzuU8o89Bi4Kob6WE6TrB/VPx8AnfssRd6B/YA6t231iETIf+59do3tPudWbwGtIJMCTCVBHWZnvL+y0pC2SjBxarCszQiZl5S2l/KxvkEr4nT65fdCWuoM+erNSZo63hgQjzJrH8sQKjtvvEsg5c5qIbO0zNgJoD2Y398WkHY; 25:yIsACBw5V/a6S5E9Tph7guu7Ky5sM5Qcu31/HLx64NGQbe+cstSrboCgf1vZ494t1pYo6wCWybRtqhV88mdIE7XyH2lkT4+OyYh85rVZQq9mgX2lHimVvsfWyYt/lI/kRam71CotFDgWxs4nMekHD5fVjt5hPKBx0SbZmUpGFYUayqT+AFECAXwhCYbrDj3vqXVuJCP7Jk1stp4WTjaLpPHX/J9/AnaURyToiF77NM1YZou5sm/zh643AzOV5u3hofWR2VYTiBlzqNWcpK1T6f34b5nxpbLFa/mCc1y8KepSZ5aXBa7WpW/r7V4kRBJeawBf1k64vRSG7LeagrhcPQ==; 31:aaJzH8NEb7gEgaaCRYXFIdXRMPgHFY52mT/kjy9BCAfyNzL3etj6caOaykituMGLoBbOLXg1bCDQ8/+Jy40X1ByP2lBK21bcKwJYR3n0SsL5MglVPmhif7WQ6Oz6n/VmXsf5HnBY7IYMS2yxbhHMtdoPkZin+t0HMdOTfctRvZwgiM0xPXKjBrEs/CnQEoyVwsp1v9DZX+nTqJsmkKRHNJHAOWMgXxZTeeyvroimZmU= X-MS-TrafficTypeDiagnostic: AM0PR08MB3347: X-Microsoft-Exchange-Diagnostics: 1; AM0PR08MB3347; 20:b6H/ZBMvHIZyU4+ItovZ8p3e+t5eaxfrjesU7RviIeLOT8r0Z5KTFHOc7sLqGwt+VXy/qAyNSForXrtpK+YDkkEhv/6tiNLo3anguKXjS2Dqk2dbSh7CqRL9ApMbZ6KjNaDjkHOsX8jleMDPQxFmyZvHKSgyYBKzBbmZTvBngA3r81Ue3LJScOcDCZXR4kJBM4SL6ZwqE8eOeaDAyyCxhfrl7H0TQ5I30ScqpvwG3MqdtAvZI1dB/TEpfCExgi4RPwfH9ibPOz1JTS5EuGyPgF7h6olHW++ctmOWpSqE4BGRejh3reBmk+Gxjag7vHOq8/sbVG2rV90xfLUCpY85OqmYH5Z4jYG/DM1ScHFQEmJBbKcUeA0WBrkKuB7Gc1bF9TO3AuywDnHTM4iajaS56UV35bvQDAz91ICnlCu9urIUsk42UAKfefRRjZTV6EhdV6Qne18Bo71UtMaxnbvi5uGfaLGgt0hCmVu97v4m+Rk3LtMI0+fTYt/544hWNEmi; 4:LQOk3v8q84XvhVGhlk9cAeBbMT/5GWfZ44m0Br7r+suGd6uJJKV5+wmvxYTDq/JVQSBllMpZZuolHPBubdJ93uLvhhMOr5bB5PwtJK4R6cztWmrjzD9ttiRpH3r65VmRJErVAsFu0VodTxorn7AvmEX5I/bSCLK6B/b5aJNWToK5ZSwa8mIfqZmV5/drWZnRMczRD1lEkYoy7NiNqHclXv5A8qqLjMAYUBYd1wk7p0hPm8OonTDKTBdXtHv37Bn/hZleDVtl7ZZzeZH0++crUw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(8121501046)(5005006)(3002001)(93006095)(93001095)(3231254)(944501410)(52105095)(10201501046)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(20161123558120)(20161123564045)(6072148)(201708071742011)(7699016); SRVR:AM0PR08MB3347; BCL:0; PCL:0; RULEID:; SRVR:AM0PR08MB3347; X-Forefront-PRVS: 07025866F6 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(396003)(346002)(376002)(39850400004)(366004)(39380400002)(199004)(189003)(50466002)(2351001)(386003)(4326008)(2361001)(59450400001)(6512007)(52116002)(6306002)(105586002)(486006)(478600001)(106356001)(44832011)(966005)(53416004)(107886003)(51416003)(53936002)(956004)(2616005)(476003)(69596002)(6486002)(48376002)(16526019)(6506007)(7736002)(97736004)(186003)(5660300001)(6666003)(25786009)(6916009)(305945005)(8936002)(6116002)(3846002)(50226002)(66066001)(36756003)(8676002)(86362001)(47776003)(55236004)(68736007)(316002)(2906002)(16586007)(81166006)(26005)(81156014); DIR:OUT; SFP:1102; SCL:1; SRVR:AM0PR08MB3347; H:xantnef-ws.sw.ru; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM0PR08MB3347; 23:DBW3zr+F4vqTlqSc0Pm8oQ0VYfHasEd3g0O/JbT9O?= S9sfIANNfFsflMleOQRoICBN42glgxs/SOFbL3Yk2HUnvdafaYnIEDQno2gFpwRM1pZNqeL9ySrUfI+wvIDY5KFCkRFxErC0zdvtEruf/40KdyZpDJ4sNi8fGR/aSFl3hcNsNOAF5adxAvrCzddDqVnmw3p9UYdW1WnpqdP+wbPMSg0VkBgw8tW8G/V+SrjKSfcDU1Sn5vYHwnwVStGJUsdtCE6zr0gqsvRrNP5v6tYdNWrLzAMXeftIQGT+7aGoh+JA93J362eqiGqPHPyYa9YN9TTnxpTPbNJ4AqBjECLbx2NRRhy4794q2D2woyLBgXAQyR6mOHb4dZ3ZCAREAKiezDat4ulE3gH7LpU4lJ9IEscNgh+N4s01GX6f4DsMgp9utrirdo0cD4yO4CwuTkfgv8xlBBamzsqglZ8eTCN0fJdEUwgI24a1d1QwibtNiIdAK2NQLRRMW0Ir6jJH65T/xlEw16n2ebU2OuQggB+4vPrRUWa6ajJWRO/XL6PRnnfvVaJRYsH/vRHNftfbbguipNauCGC4Mg2kuzh9TluO/7l+6qZ7jV/pOJ+9gU/RWeKQgGTe6yoXFKvPdivxYhHAqVlZS0t+wBudwG8sTIgnYBNqYvcOD+5Lty3ySPxO7bcNyvHeJZF8YMwfFBMnQ0PWzzfhizxcMfEx+zm/kujDD+rydT1WMRFPvLbbf4BS5Wwb65IBnidOaZ4ozLd29Me8a/DA2wk7y0GP7kY7v3BpLLn8g5EnG3yDfNXtnyzSd+Kofi8EL8TAGgIoWbgWBH4KS6Mby4Lv6zku9U9R0AmbUDXKO+w+lyScj//3P6YUcdKV1l1BnEz729i64gk3t5MRX/gUO2Rtyfpkx5y0qXhXuT8Jen7mJu03SlSWavJrMJ1TjacdfEJPM18RxiOhkAn/fciRkVK6pwOtWpYPoDJQbHguUv2D1RUOANFTArz9Yq4nbu1LQUNC+k/aC8vTg9CS1gOXvc9M8S8rW2x6qy3x7Xv5QCoqxfUW7PtdrsLIlaS2BZmfRrNduO5V1JT7Zj72qfFG5A7k8KafYzul8ijgUKZTGQbZfFE02RMa+s4uRgWs5sCug4QhAll1e3B7FALqTRQ7frjrCNnuqOLW+VRSA8EaYo5VlmiSLwIQDKbXgp9pkovIjbiY7Tj0fpir9qeGWtggM5geIM01RnsI3QIyU2PMuBC+fBD09fY2TA5/G58hOMPa2oG04Wlo4xgewJOmoN64ioCZlgfZpEgsu7tynPyO21fsf5637fWZj0AI3rXmhT4Ysbc1Fs/ms2rt6wD X-Microsoft-Antispam-Message-Info: hMVLiu4JbLClors8A6CowmyvuRAXmOoQj8GxAD/JyLggx1axfJc04YqSZhA/vmC/AwnIrPQpKn13eNzQZrr6Yk9NaVbDiDAVGYv241kcPF8n++pz4CRvgq+FVNivtfmucORSDFzWCrJQONc6ijyCz/LpUQWzJjG6M4oNZei6hIU/wnvAyBRmXmwJx59Qi5Bi X-Microsoft-Exchange-Diagnostics: 1; AM0PR08MB3347; 6:L5bMbHK9LdGIjOV2Xs4dIHsDvIzGsSo+mnDVaKbG+q4GNWyBWtEVmbZ3izp1Wosv1XV314tQWBTeu7gOSJSutzFCUPIQBUEIatmPI27/feFL7jf/EUHCbaOH9Pj962Q28rw94fKUf+g/AFRGToXCIy7TvkDmCO9btur7jvcOdAqFjxAoLAaVD6+ekk9UUeVWjLp70CM8hiaEQTXt6zMe6+jDEAun3vNgog8zE5ngIbtKAr77Q+5P9xjGgTuRfCqEbGySNnm8GG7aKxf1YrClHUi0rkzefwRNyEaHtghgiLDYPsBu5FY9PAy1HPPOnuM/sbagdu2bDLkU2XhgW7tuw3e67VzY24cc1+o6QoIUHKUG0NHqk33179/gVMwHV1JV43TQnLoaQGUcIGI1CH9gG96QVRBzSndCmOsu+jFZMYar16k9a4OGm61GA+HGOmhAPAlanP+/cXwL7qx9fzfNHw==; 5:QU+5gGqNY01CYUb1/Y8rbdVSAnxmSLPvALVTu9eeaiPp79UbZBxLmmd1dDu0VhCcwPk8J8bLk7J4tJfUbNqC4pVaaIiIC08MulodGGkikrX4r3NOcw/p+tFCcEPjNJ2mSd3m5IEFxOsVMAntrviPVJ1n0J8zjkOKpbl2R/OHtMM=; 24:oecKp3KOtZR5z+/5t9VswzL2f0Rn00ob8TjYdChPwLVBeZNqjlXpATRsU0gxUuT5+fuD8RaiyM4So3qhY43EhZnWjm5vNY9vbW6ZTj1C2pY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; AM0PR08MB3347; 7:/h8m55lM+00hYpwRTT7wiBuZ+jgEOZjpDHdFycNWZnF3R/k66XawsDzte1ImmX65+chjud8wlbxOrZzCQjGkpk1L76IgnTw4u7SEjInFCKtUdVKNxokgWy84jymv9XKURvFgIGFQNz46pFU9BetBokv/mlGUVSPxDZjZb4MS2WuDBBGfL/fCYtsfjH6KZ9Zjs3bkuICa59Pj3VyBkKJoonQrN/SHZ+GO8jYZE3ZfGxZIlvO/TB/WCzHdBVY/beWu; 20:dExtzANdlwQdWuvghjXluKMQSSmPEPR4n2YLVjNRcHGS9DlE3N09CUyTx/MU1Iagd4FiGSVoJ0t4dSmIGVzvblDkzix2ACdhBW15f4ydquD2WJfpuGb3IaGJXmHehj8qLmC2Oa1rs/+jJ1dJGvtyTiSTvi29vB+BKqjftS28BjY= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jun 2018 17:44:45.0700 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c24dd423-1b63-4294-a6fa-08d5d1555a2e X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB3347 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 40.107.1.138 Subject: [Qemu-devel] [PATCH v3 0/8] discard blockstats 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, Anton Nefedov , berto@igalia.com, den@virtuozzo.com, qemu-block@nongnu.org, armbru@redhat.com, mreitz@redhat.com, pbonzini@redhat.com, jsnow@redhat.com Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" new in v3: - based on qapi series: (http://lists.nongnu.org/archive/html/qemu-devel/2018-06/msg03638.html) - qapi 'Since' clauses changed 2.12 -> 3.0 (RB tags not stripped) - patch 3 rebase: ide_issue_trim_cb invalid path has changed, so block_acct_invalid() is moved to ide_dma_cb - patch 8: BlockDriverStats union made flat and renamed (BlockStatsSpecific) v2: - http://lists.nongnu.org/archive/html/qemu-devel/2018-01/msg04795.html ---- qmp query-blockstats provides stats info for write/read/flush ops. Patches 1-6 implement the similar for discard (unmap) command for scsi and ide disks. Discard stat "unmap_ops / unmap_bytes" is supposed to account the ops that have completed without an error. However, discard operation is advisory. Specifically, - common block layer ignores ENOTSUP error code. That might be returned if the block driver does not support discard, or discard has been configured to be ignored. - format drivers such as qcow2 may ignore discard if they were configured to ignore that, or if the corresponding area is already marked unused (unallocated / zero clusters). And what is actually useful is the number of bytes actually discarded down on the host filesystem. To achieve that, driver-specific statistics has been added to blockstats (patch 8). With patch 7, file-posix driver accounts discard operations on its level too. query-blockstat result: (note the difference between blockdevice unmap and file discard stats. qcow2 sends fewer ops down to the file as the clusters are actually unallocated on qcow2 level) { "device": "drive-scsi0-0-0-0", "node-name": "#block159", "stats": { > "invalid_unmap_operations": 0, > "failed_unmap_operations": 0, "wr_highest_offset": 13411688448, "rd_total_time_ns": 2859566315, "rd_bytes": 103182336, "rd_merged": 0, "flush_operations": 19, "invalid_wr_operations": 0, "flush_total_time_ns": 23111608, "failed_rd_operations": 0, "failed_flush_operations": 0, "invalid_flush_operations": 0, "timed_stats": [ ], "wr_merged": 0, "wr_bytes": 1702912, > "unmap_bytes": 11954954240, > "unmap_operations": 865, "idle_time_ns": 2669508623, "account_invalid": true, > "unmap_total_time_ns": 19698002, "wr_operations": 143, "failed_wr_operations": 0, "rd_operations": 4816, "account_failed": true, > "unmap_merged": 0, "wr_total_time_ns": 1262686124, "invalid_rd_operations": 0 }, "parent": { > "driver-specific": { > "discard-nb-failed": 0, > "discard-bytes-ok": 720896, > "driver": "file", > "discard-nb-ok": 8 > }, "node-name": "#block009", "stats": { [..] } } }, { "device": "floppy0", Anton Nefedov (8): qapi: group BlockDeviceStats fields qapi: add unmap to BlockDeviceStats ide: account UNMAP (TRIM) operations scsi: store unmap offset and nb_sectors in request struct scsi: move unmap error checking to the complete callback scsi: account unmap operations file-posix: account discard operations qapi: query-blockstat: add driver specific file-posix stats qapi/block-core.json | 90 ++++++++++++++++++++++++++++++++++++++++------ include/block/accounting.h | 1 + include/block/block.h | 1 + include/block/block_int.h | 1 + block.c | 9 +++++ block/file-posix.c | 38 ++++++++++++++++++-- block/qapi.c | 11 ++++++ hw/ide/core.c | 12 +++++++ hw/scsi/scsi-disk.c | 29 +++++++++------ 9 files changed, 168 insertions(+), 24 deletions(-)