From patchwork Fri Oct 18 13:20:38 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aleksandar Rakic X-Patchwork-Id: 13841754 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 378CDD30008 for ; Fri, 18 Oct 2024 13:20:55 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t1muR-0002FH-1U; Fri, 18 Oct 2024 09:20:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t1muL-00025d-L1 for qemu-devel@nongnu.org; Fri, 18 Oct 2024 09:20:45 -0400 Received: from mail-db8eur05on2070c.outbound.protection.outlook.com ([2a01:111:f403:2614::70c] helo=EUR05-DB8-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t1muJ-0005z0-62 for qemu-devel@nongnu.org; Fri, 18 Oct 2024 09:20:45 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=k2L1I9ppqshFrdcITxr7P/wPNeWo7FCw7BlayahrBN5nLIKlsHBVVtMZElPc6HplpluYPvkyU6bNJEFfOPFs8dey7nn7eP7N+FN5/Sc5/G6dRXTK4KNzYhae3dw99gyyzJD/1bjsIqsNVfIxtZ+aIw/Gxx2QbTiWBEcQ79ugLSHcRC73q14yiCeSnkR1vxMGY8ifvVgkm5bmpk6C6QQ57buf2WHSgQLEJwR4kvnQcC4xXYhH17Qh3lPGlu99RqiA64KCuNR2up1B2p7RdI5dNHpOsHzS6PG7KUyQu/s4gbAB8dcoDJAIjqzhd1988Pv3WTrzpg8vtXrTHUBXLdZ5ow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=4Pw7byDgk/+Jxuc/fzwu/j1NGienyRfKY3Skzg8UAQc=; b=ln4Ta9NedDfobz7XizLDjzk0onaYqaJLQz5Nc5t/o3m7S1X5nTGOCm43TE6+Af3t+t87Z8akrZAwNzqUdLujJcWY5Ta83e108iTmdAJKJYj14SeldDhWgjmvBLST2FQHh9wTxeRrBsg+tDczBn05SatvMnRlHCLzpZL6R/aTXOkJE08js6Sm5WqZ32hO2VN3LrD78rxA3dtl0Nerz6r+GnEdqUQkGesFeIU0obz5ZzsJ12I/19A9IZPCJ+HV/Q2l7KUBmweXRFC4uFAjOTBZKBO31aiM1mzWhavNC7FXgMBPRB+DXWbPqZt9wZk4PQGk+kVbcb0ECPtzMFAmq3gXAQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=htecgroup.com; dmarc=pass action=none header.from=htecgroup.com; dkim=pass header.d=htecgroup.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=htecgroup.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4Pw7byDgk/+Jxuc/fzwu/j1NGienyRfKY3Skzg8UAQc=; b=hqBVKH0mBxqN8jOSkxUmfzBeDQ1eroGCKCQWdYEz3zUrUjTqXe68pIxH1sU70/eOGQ2feB3Qm7piydGUlVVM8oY6ZpVvJFbG7/UCqnrfv0LNG/L+4f2MPgEd8yKy9jUkoglVvepPFtohGnOKrxY5tgaQl9lkXaGUwHMhVHVILZ53erSauObNbPkmSJ7BWTrYxuGibIBlO4FO+4uC/CZ/6A0euBvHtc26LKPGDoqOzemGto8GTW5B6TzIy/LsR1VGlTYRa30XPz0ew42DHZz0Fo5wXmkFsQVrvEkiilTFBaJ56Hd69leAiPfjoWdEPSpxKE6ziupNFE9bA7o42zqV1g== Received: from AM9PR09MB4851.eurprd09.prod.outlook.com (2603:10a6:20b:2d4::13) by AS2PR09MB6191.eurprd09.prod.outlook.com (2603:10a6:20b:5f6::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8069.18; Fri, 18 Oct 2024 13:20:39 +0000 Received: from AM9PR09MB4851.eurprd09.prod.outlook.com ([fe80::2fed:370:dd45:13a2]) by AM9PR09MB4851.eurprd09.prod.outlook.com ([fe80::2fed:370:dd45:13a2%6]) with mapi id 15.20.8069.020; Fri, 18 Oct 2024 13:20:39 +0000 From: Aleksandar Rakic To: "qemu-devel@nongnu.org" CC: Djordje Todorovic , "cfu@mips.com" , "arikalo@gmail.com" , "peter.maydell@linaro.org" Subject: [PATCH v2 6/8] Revert use of clock_gettime for benchmarking Thread-Topic: [PATCH v2 6/8] Revert use of clock_gettime for benchmarking Thread-Index: AQHbIV5yGIypzXaEQ0yci6Mb3PT1Lw== Date: Fri, 18 Oct 2024 13:20:38 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=htecgroup.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM9PR09MB4851:EE_|AS2PR09MB6191:EE_ x-ms-office365-filtering-correlation-id: a696e74d-acc3-4ca9-c05c-08dcef77a8ae x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?q?b4YjCEKvGMnYkZKUqkX+oY7DXe?= =?iso-8859-1?q?M5M7BkEsBillBmSUGR6SmYObgIR9LcbU+aJaKPokiR9UcCOC9SUmCC0AsSrQ?= =?iso-8859-1?q?VYL3rsEIjhTrZQj/t5FVWkIXJoQKJPE/Qx56DAULO9xeihEu8Sm8XoQbXFfj?= =?iso-8859-1?q?+IApVSiKCCjQvgbxcORCuOVR/y7CkroUoq26TUjM9OzIztmvXbD9k2pFH70+?= =?iso-8859-1?q?F+dcI9klXgJJUlWgw5Bgyu+PyvcPhjI1t3VD8DlUKyFhK57nLRGoZY8aMISF?= =?iso-8859-1?q?No2FbQMgtiCRXmY2Oq2bKIgW4Hi0Qcee6z/vtrpXAk9SVYOy7E7T/yJ18jzs?= =?iso-8859-1?q?Bdx6suvUBDL9oNliBGIK4K6NyUm4+3BBMpcCqKlNK56hs5KW8Z/9sMxm8KK7?= =?iso-8859-1?q?Rz8U5+AuIBgMx66ADLHAvS8GxvV8CPW+3BpyAQRcx94ZvgCRW+qIIcxtkjPC?= =?iso-8859-1?q?wFsYNYY4AD46OLaMFibx4n3IRgOpiIwxjaXavUGkXY6XvIEgPTeT2fRXlqYD?= =?iso-8859-1?q?9lBMMg8dkXX4fYl4/9uALPcVDvhEERGEyf8QxDKmegCXEmE5KtAf6W1Mynu/?= =?iso-8859-1?q?uDTJ2yul0FX1z8R/nDOHTN08fuVHH+TWiU4QyDhjTwisXfXhTkhEsMhWHLLj?= =?iso-8859-1?q?jXx+6a+hOizMLXB2Mrx0gBuAQCkwGFDligVQVWXO5948drfx5G1npoOR5Hf7?= =?iso-8859-1?q?VDDGudczb00edCmPpvQrtzEnXQ+WcHG2kh2EPcFyVv6la4YTu61peLieqZYo?= =?iso-8859-1?q?R5BhRCzrXfzr/Bnyt61LUS8+0PHxp4dhCURiePRhE7Nb+/AShCqLcY1XIQ9T?= =?iso-8859-1?q?vQpkYZ3c59B0rhuR0Qcx4WRDsBiaGwLwvth8lW8HxvCJVSScJdzVHVhgTAfp?= =?iso-8859-1?q?efxcJQtTMd+4ywm0H5sRFBYUh9XkQGXaWmT2JgwiPulQxUY5/qlE4RdJ4etx?= =?iso-8859-1?q?UMkPooGKJij60SJdRYpW0QN+prg5lHoXM/7cKHiTaTUS2D3GrBxTNVE3ExLn?= =?iso-8859-1?q?HsXtSDVWx/u9RPKA6UhRVeZEpIOt1jNKX2L4uGS9gils6Wvnv/wUh3+VtWe1?= =?iso-8859-1?q?xELRM4vfLYqx6oXB6gLiS153Jdol08cFILfcFp9hzza9EKWl54ooO8IWwb3w?= =?iso-8859-1?q?680RR+NSels3xAvBou1arx3Page4+vUDQrItFvOehrb4/UUWEZSGjAi7OA5U?= =?iso-8859-1?q?kGA6bshPoGBuOF+Tbwj5zTUHa9NOH/kXJlzxAc6ltH8PUt3gaXzB+VbRUUKK?= =?iso-8859-1?q?In9tjca06SBybUjE3Wg7w67qO3RgwyIVIvQFjmyNeygwMKBoS/zhWhcn/7h/?= =?iso-8859-1?q?/42lmFaIvqmKCCkqplEWH2RympefFcGL+kh1BQ4w5YvIMywzvDOlD9+tPUpY?= =?iso-8859-1?q?+J914v41TUiykpclL038RcvzyEm0WM2UwmbRIYh3g2RsAt9aEJgn8drzZ/D1?= =?iso-8859-1?q?ol?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM9PR09MB4851.eurprd09.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(38070700018); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?T3lzjiQrA0hLKASJUURpC2w?= =?iso-8859-1?q?aIdS6fQuyQRq2mNJnZpB3OBVXv2X1BK2QfWeCsL4F7UHZ3qSuYjGz6dAJsz6?= =?iso-8859-1?q?Ya+v+946NR7cNE8VXgzVLOR/uY/9irszPkrRT+zKeGuB/sbW/ecjJIfEvbNP?= =?iso-8859-1?q?6HOJ0uuNR/LPopGjspXEW1BZ0+MgLrQXWyz1ZJJXkAE/7/qEJ5Ar7uWNnGAd?= =?iso-8859-1?q?AJ7akpweA4+Kat+joLuM5MjF62YPNVmlcBteOWvf3eLQef6Bm4jJaj5qUNpI?= =?iso-8859-1?q?bQg62YAMnE608OKe+y3YcuEF2f2cWS4yOrVYV1+ejwnlP0pgAWK7QypZ2LaD?= =?iso-8859-1?q?S2hcf8rgO0oilhk6Kb481SpHEsDw8ZzU/tF1qysf4q9KRhmO9d8Z0TO8L1id?= =?iso-8859-1?q?uHd+biKC1qyokl7HBxdHpHNkrfz0JjXMF/qPArbs5ON2Sg2x9lW1InQ3CBPY?= =?iso-8859-1?q?quzIzJnCA1erBPdiKku/9ILpeoIHRDoWG0VYXTMPzSr/DNSvXjjwIM9ISMsM?= =?iso-8859-1?q?P9KgdyLrB416qc06x+taEELw8qgxiKFNakhm3NEWWwlZO7kYGQiiX6cMGqqO?= =?iso-8859-1?q?GR3yzl1EdlrYQ9QhjI0d6FTh1uhIuyzog5QCaCRipRosgVqNnn/Sol+vPLT8?= =?iso-8859-1?q?9tGnKuGou8NDTT6MBa1lxvAkQbRrCqn12HGj7zGP+sMSSItfgGj9FGMuQeAN?= =?iso-8859-1?q?QH+3XILwkdv/ffdF42pwGWOr6L1454HE3XwXHynw+1UljglKv90hbd764ZU7?= =?iso-8859-1?q?Cp4/sEpauYSmso1hR2cJWgmT1sJheduw5s7cqKBEKh7sxUGTVaFRXhi2OAqj?= =?iso-8859-1?q?ks/Xg/djkI6pbjxkxHmlApnEJpgH3V+INrXNQxlLpJPDiAJ1yrg2AB2vJHUO?= =?iso-8859-1?q?jcMfpRZncCpGkWa6FBOs+HjFzOQJPyh5WrEAFPco+k3h2ztkRDZjhUPSKXsb?= =?iso-8859-1?q?IagzdJLQAEbQZJFO3A1JcwFK9kPSFe8KSpzmCLBAw0v0QQ2guRcP4C8yix+f?= =?iso-8859-1?q?kdD1TR0Ak5Jn4xFQO6pw9fZ5tsLk0dfCM13PG4MhjlOassafzJGdZWvXjJ32?= =?iso-8859-1?q?4NxsASy6dAlA6jEXZZ7AjvcF5TOcoP/16oR8wEkjqkzLus+Bsnv4g6rlNFLk?= =?iso-8859-1?q?o85+jKmZFZyP/LE2X+zt24/QFVKtllN6pVpVxKfmcckitLkq9fVxg7VKcIKZ?= =?iso-8859-1?q?M5ePwiU7X/JULfoRJPdtFoJN3m6DERY2Du0j9XQNGnFD6z32f2OMnIM5cUNf?= =?iso-8859-1?q?4LV/20X9Y7cLAkxDpnVX4jFjolXhsZ37sJX8CRt+e70Eekkqs5J569ze5dmF?= =?iso-8859-1?q?DUR+/Wyn/vLu1vdqeKuc3+xzHqM7ZWXIsO3la3xzgGc3sLJHhbBK3n9qVdzv?= =?iso-8859-1?q?pS+uTL779vf1G3IlpIF7LMp/d+vh3vwVLy0/oZbzgL1Ddo4wcpR2fnIv2dKd?= =?iso-8859-1?q?bsQzLOg3wp9GR5N3vxAnVHiMeV6lxS1XG67j53dyGmIcIHf5InZKcvwOPpXS?= =?iso-8859-1?q?KGpJzkyQlk6VBVBrbRScugN95oz/UG1Lkayx6CZ7nAf5toPEYTaAb7hE4sBf?= =?iso-8859-1?q?lcMMWsN2IClOcSZJR/+lYL2qt3H/XptaoiSdoRZW1ImXu7O9uR0+dsmcqW/+?= =?iso-8859-1?q?X/oiU3Cs5frU09juCdejCxw56uNPaisqeKDN3zA=3D=3D?= MIME-Version: 1.0 X-OriginatorOrg: htecgroup.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM9PR09MB4851.eurprd09.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a696e74d-acc3-4ca9-c05c-08dcef77a8ae X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Oct 2024 13:20:38.9445 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 9f85665b-7efd-4776-9dfe-b6bfda2565ee X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: jmimBcbzikTjV2hcMadDylZRSjiXWVcjl255MnVr4YkZxTkrzJvAPSBSxDRDXBuHC9RptNB4LWC4gSU4NWDH/i08E+LAMwcLmXAwjYEjahY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR09MB6191 Received-SPF: pass client-ip=2a01:111:f403:2614::70c; envelope-from=aleksandar.rakic@htecgroup.com; helo=EUR05-DB8-obe.outbound.protection.outlook.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org This patch reverts the commit (with SHA 50290c002c045280f8defad911901e16bfb52884 from https://github.com/MIPS/gnutools-qemu) that breaks for mingw builds, where clock_gettime and CLOCK_MONOTONIC are not available. Cherry-picked d57c735e1af1ca719dbd0c3a904ad70c9c31cbb7 from https://github.com/MIPS/gnutools-qemu Signed-off-by: Faraz Shahbazker Signed-off-by: Aleksandar Rakic --- qemu-io-cmds.c | 77 +++++++++++++++++++++++++------------------------- 1 file changed, 39 insertions(+), 38 deletions(-) diff --git a/qemu-io-cmds.c b/qemu-io-cmds.c index e2fab57183..a846746553 100644 --- a/qemu-io-cmds.c +++ b/qemu-io-cmds.c @@ -259,21 +259,20 @@ static void cvtstr(double value, char *str, size_t size) -static struct timespec tsub(struct timespec t1, struct timespec t2) +static struct timeval tsub(struct timeval t1, struct timeval t2) { - t1.tv_nsec -= t2.tv_nsec; - if (t1.tv_nsec < 0) { - t1.tv_nsec += NANOSECONDS_PER_SECOND; + t1.tv_usec -= t2.tv_usec; + if (t1.tv_usec < 0) { + t1.tv_usec += 1000000; t1.tv_sec--; } t1.tv_sec -= t2.tv_sec; return t1; } -static double tdiv(double value, struct timespec tv) +static double tdiv(double value, struct timeval tv) { - double seconds = tv.tv_sec + (tv.tv_nsec / 1e9); - return value / seconds; + return value / ((double)tv.tv_sec + ((double)tv.tv_usec / 1000000.0)); } #define HOURS(sec) ((sec) / (60 * 60)) @@ -286,27 +285,29 @@ enum { VERBOSE_FIXED_TIME = 0x2, }; -static void timestr(struct timespec *tv, char *ts, size_t size, int format) +static void timestr(struct timeval *tv, char *ts, size_t size, int format) { - double frac_sec = tv->tv_nsec / 1e9; + double usec = (double)tv->tv_usec / 1000000.0; if (format & TERSE_FIXED_TIME) { if (!HOURS(tv->tv_sec)) { - snprintf(ts, size, "%u:%05.2f", - (unsigned int) MINUTES(tv->tv_sec), - SECONDS(tv->tv_sec) + frac_sec); + snprintf(ts, size, "%u:%02u.%02u", + (unsigned int) MINUTES(tv->tv_sec), + (unsigned int) SECONDS(tv->tv_sec), + (unsigned int) (usec * 100)); return; } format |= VERBOSE_FIXED_TIME; /* fallback if hours needed */ } if ((format & VERBOSE_FIXED_TIME) || tv->tv_sec) { - snprintf(ts, size, "%u:%02u:%05.2f", + snprintf(ts, size, "%u:%02u:%02u.%02u", (unsigned int) HOURS(tv->tv_sec), (unsigned int) MINUTES(tv->tv_sec), - SECONDS(tv->tv_sec) + frac_sec); + (unsigned int) SECONDS(tv->tv_sec), + (unsigned int) (usec * 100)); } else { - snprintf(ts, size, "%05.2f sec", frac_sec); + snprintf(ts, size, "0.%04u sec", (unsigned int) (usec * 10000)); } } @@ -467,7 +468,7 @@ static void dump_buffer(const void *buffer, int64_t offset, int64_t len) } } -static void print_report(const char *op, struct timespec *t, int64_t offset, +static void print_report(const char *op, struct timeval *t, int64_t offset, int64_t count, int64_t total, int cnt, bool Cflag) { char s1[64], s2[64], ts[64]; @@ -707,7 +708,7 @@ static const cmdinfo_t read_cmd = { static int read_f(BlockBackend *blk, int argc, char **argv) { - struct timespec t1, t2; + struct timeval t1, t2; bool Cflag = false, qflag = false, vflag = false; bool Pflag = false, sflag = false, lflag = false, bflag = false; int c, cnt, ret; @@ -825,13 +826,13 @@ static int read_f(BlockBackend *blk, int argc, char **argv) buf = qemu_io_alloc(blk, count, 0xab, flags & BDRV_REQ_REGISTERED_BUF); - clock_gettime(CLOCK_MONOTONIC, &t1); + gettimeofday(&t1, NULL); if (bflag) { ret = do_load_vmstate(blk, buf, offset, count, &total); } else { ret = do_pread(blk, buf, offset, count, flags, &total); } - clock_gettime(CLOCK_MONOTONIC, &t2); + gettimeofday(&t2, NULL); if (ret < 0) { printf("read failed: %s\n", strerror(-ret)); @@ -904,7 +905,7 @@ static const cmdinfo_t readv_cmd = { static int readv_f(BlockBackend *blk, int argc, char **argv) { - struct timespec t1, t2; + struct timeval t1, t2; bool Cflag = false, qflag = false, vflag = false; int c, cnt, ret; char *buf; @@ -964,9 +965,9 @@ static int readv_f(BlockBackend *blk, int argc, char **argv) return -EINVAL; } - clock_gettime(CLOCK_MONOTONIC, &t1); + gettimeofday(&t1, NULL); ret = do_aio_readv(blk, &qiov, offset, flags, &total); - clock_gettime(CLOCK_MONOTONIC, &t2); + gettimeofday(&t2, NULL); if (ret < 0) { printf("readv failed: %s\n", strerror(-ret)); @@ -1047,7 +1048,7 @@ static const cmdinfo_t write_cmd = { static int write_f(BlockBackend *blk, int argc, char **argv) { - struct timespec t1, t2; + struct timeval t1, t2; bool Cflag = false, qflag = false, bflag = false; bool Pflag = false, zflag = false, cflag = false, sflag = false; BdrvRequestFlags flags = 0; @@ -1190,7 +1191,7 @@ static int write_f(BlockBackend *blk, int argc, char **argv) } } - clock_gettime(CLOCK_MONOTONIC, &t1); + gettimeofday(&t1, NULL); if (bflag) { ret = do_save_vmstate(blk, buf, offset, count, &total); } else if (zflag) { @@ -1200,7 +1201,7 @@ static int write_f(BlockBackend *blk, int argc, char **argv) } else { ret = do_pwrite(blk, buf, offset, count, flags, &total); } - clock_gettime(CLOCK_MONOTONIC, &t2); + gettimeofday(&t2, NULL); if (ret < 0) { printf("write failed: %s\n", strerror(-ret)); @@ -1260,7 +1261,7 @@ static const cmdinfo_t writev_cmd = { static int writev_f(BlockBackend *blk, int argc, char **argv) { - struct timespec t1, t2; + struct timeval t1, t2; bool Cflag = false, qflag = false; BdrvRequestFlags flags = 0; int c, cnt, ret; @@ -1317,9 +1318,9 @@ static int writev_f(BlockBackend *blk, int argc, char **argv) return -EINVAL; } - clock_gettime(CLOCK_MONOTONIC, &t1); + gettimeofday(&t1, NULL); ret = do_aio_writev(blk, &qiov, offset, flags, &total); - clock_gettime(CLOCK_MONOTONIC, &t2); + gettimeofday(&t2, NULL); if (ret < 0) { printf("writev failed: %s\n", strerror(-ret)); @@ -1355,15 +1356,15 @@ struct aio_ctx { BlockAcctCookie acct; int pattern; BdrvRequestFlags flags; - struct timespec t1; + struct timeval t1; }; static void aio_write_done(void *opaque, int ret) { struct aio_ctx *ctx = opaque; - struct timespec t2; + struct timeval t2; - clock_gettime(CLOCK_MONOTONIC, &t2); + gettimeofday(&t2, NULL); if (ret < 0) { @@ -1394,9 +1395,9 @@ out: static void aio_read_done(void *opaque, int ret) { struct aio_ctx *ctx = opaque; - struct timespec t2; + struct timeval t2; - clock_gettime(CLOCK_MONOTONIC, &t2); + gettimeofday(&t2, NULL); if (ret < 0) { printf("readv failed: %s\n", strerror(-ret)); @@ -1537,7 +1538,7 @@ static int aio_read_f(BlockBackend *blk, int argc, char **argv) return -EINVAL; } - clock_gettime(CLOCK_MONOTONIC, &ctx->t1); + gettimeofday(&ctx->t1, NULL); block_acct_start(blk_get_stats(blk), &ctx->acct, ctx->qiov.size, BLOCK_ACCT_READ); blk_aio_preadv(blk, ctx->offset, &ctx->qiov, ctx->flags, aio_read_done, @@ -1692,7 +1693,7 @@ static int aio_write_f(BlockBackend *blk, int argc, char **argv) return -EINVAL; } - clock_gettime(CLOCK_MONOTONIC, &ctx->t1); + gettimeofday(&ctx->t1, NULL); block_acct_start(blk_get_stats(blk), &ctx->acct, ctx->qiov.size, BLOCK_ACCT_WRITE); @@ -2159,7 +2160,7 @@ static const cmdinfo_t discard_cmd = { static int discard_f(BlockBackend *blk, int argc, char **argv) { - struct timespec t1, t2; + struct timeval t1, t2; bool Cflag = false, qflag = false; int c, ret; int64_t offset, bytes; @@ -2200,9 +2201,9 @@ static int discard_f(BlockBackend *blk, int argc, char **argv) return -EINVAL; } - clock_gettime(CLOCK_MONOTONIC, &t1); + gettimeofday(&t1, NULL); ret = blk_pdiscard(blk, offset, bytes); - clock_gettime(CLOCK_MONOTONIC, &t2); + gettimeofday(&t2, NULL); if (ret < 0) { printf("discard failed: %s\n", strerror(-ret));