From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80082.outbound.protection.outlook.com [40.107.8.82]) by sourceware.org (Postfix) with ESMTPS id 48A2A3858400 for ; Mon, 18 Oct 2021 15:20:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 48A2A3858400 Received: from AM6PR10CA0007.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:89::20) by HE1PR0802MB2315.eurprd08.prod.outlook.com (2603:10a6:3:ce::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4608.17; Mon, 18 Oct 2021 15:20:05 +0000 Received: from VE1EUR03FT021.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:89:cafe::f8) by AM6PR10CA0007.outlook.office365.com (2603:10a6:209:89::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4608.15 via Frontend Transport; Mon, 18 Oct 2021 15:20:05 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; sourceware.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;sourceware.org; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VE1EUR03FT021.mail.protection.outlook.com (10.152.18.117) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4608.15 via Frontend Transport; Mon, 18 Oct 2021 15:20:05 +0000 Received: ("Tessian outbound b9598e0ead92:v103"); Mon, 18 Oct 2021 15:20:05 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: d6ddfcf475bcb689 X-CR-MTA-TID: 64aa7808 Received: from 6086365deb62.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id C23E5092-C470-433E-BF13-CFA02C8E9DF9.1; Mon, 18 Oct 2021 15:19:58 +0000 Received: from EUR05-DB8-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 6086365deb62.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Mon, 18 Oct 2021 15:19:58 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TbB/ukPWUQC+GV3hQmjmgcjV0ZVn1GbmHtSJRXSfLMbX08WUyZgXdBkiXhf8jRVP/ttCLGwx635vMqZ3fY/LRv/yDgyRrg0BYJb+ySTMAMAg+6UnvRjP/T64qGHmdLwqa90qbJ60cPhZcfr3X5UFjNS5uFtdQLaAH4lCYbMjuLgpB/kXqQPlhes9c1XUV9xmLM8xuWoZkBbvQDwazGOKfO//CrTnR484UNvYRbfIgPrGlyGUahd1zsd/9VXBX3YJP6LuhH8HnB4GKbmFW24NIYW12ubpzgmuPN13vn/YkWMKEQdc0nJPj+YMTOMTi4dQl8HydV43+Dd7WYgfXSkWlg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=XLOCFR9H2qCXZfgc+hXOyKhCkwk5FPA2oLn6lo32KXA=; b=fl6Ts0siFKpfb6gu24kJGTqD1SctDtwAo6ogMFGVC6i8l0l3XDPGq3lMbpGWXXZlv+QIzmyjj1D/hrolOi9YDzdr38UMmCP8qUVtMV072z4EUk25x+//Rxwb6x37zmr8ymjLF+wu9gtovXL9EbzeKeblQrGl1apEwpCVw0DP8aInLGvPqZ2vIiNRThdD2rYtARxHp4eN65AzNMRg3vKHYoPM6z3uM6oNkHG2R2+LZTDU1GoR99uUYICPIjkFQSmgK3WcutjbVVgsIWcvToL+hrQO2wlEexMbOWvyxW2hNb+CE6PIsC3nZNrHDc0huqOHqSxdgR8SwnPCYZQDlZg3/w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Received: from VE1PR08MB5599.eurprd08.prod.outlook.com (2603:10a6:800:1a1::12) by VI1PR08MB4224.eurprd08.prod.outlook.com (2603:10a6:803:bc::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4608.17; Mon, 18 Oct 2021 15:19:56 +0000 Received: from VE1PR08MB5599.eurprd08.prod.outlook.com ([fe80::281b:cded:83ff:1856]) by VE1PR08MB5599.eurprd08.prod.outlook.com ([fe80::281b:cded:83ff:1856%3]) with mapi id 15.20.4608.018; Mon, 18 Oct 2021 15:19:55 +0000 From: Wilco Dijkstra To: 'GNU C Library' Subject: [PATCH] Benchtests: Improve bench-memcpy-random Thread-Topic: [PATCH] Benchtests: Improve bench-memcpy-random Thread-Index: AQHXxDK/J8lkYv4VokO2ZJZiSlgckw== Date: Mon, 18 Oct 2021 15:19:55 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: suggested_attachment_session_id: fec6cc27-0170-9766-7f74-3e048935bfbb Authentication-Results-Original: sourceware.org; dkim=none (message not signed) header.d=none;sourceware.org; dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 1b3a0721-763b-415b-e5a9-08d9924ac39c x-ms-traffictypediagnostic: VI1PR08MB4224:|HE1PR0802MB2315: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:534;OLM:534; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: RdzpVxydOazF9dow2nlqSSKJRQIEKQr6e8Vhup7xa4W5raWxiOC+7Eap6kC5V3QnqHK+apTK7PILql3V+cxR10uxMtSwCqUIhzwW9MDJMFd0Ir7DdIBxhnp5Gp9Xs6o7uTGSyGeUKzGRiqx6Y9xV3TYGWMA8LsDTMar2xNF8TKxOuUqgK9f2pe+dlaaeje+CvW4eOQ0pqRC6RK1lZd++b+9gM2mW4JuXspWBie88oFDwADGW/BD9OtOBsSVBxjeLjW2mww7j5DHBaWOR70aSdCQIy4d0A18Mq9pYL3MgwGqHTmvKqd5Hqa8D6W7jStIok2cOexGEDfp4uMgu/3vtOZ0d8lyVzOXr/dKTBJ34UrjCGM///2wxbULssBvphVJTyLoebB40xjCVEQsPAS3ApzMbgf8avPlM6ElgV1lT7MT3OplvsWs2eJwx9w2Y5lx3MZQSl7rzvdTi1NEGWUjIk0Igob+v0IxTjh5qWOeoS5+EYNPZly9Y9bBS0RRvRg8DsVnk9Qfdzjtv/XO/TLdtNRNLTbFMZ80yvqxxCbiuOdPFMjsnRqOn5AdPeT663xVki+9mi9CHD89lW5AyNcbVoNfUAdmKpbZ8eoMK+VHr+cF+E/xG3bOiyxUAO+1Y8A4mj67sDHi9WE3RkiaI28j7T80Plk20mKp85OC6LRoI0HvpMW2SGqtuOLr87JOx9XOEbP26EPniTaOUBqxB+Qg1uPZgI/LZkkB5R/6sRWmOuMod7wxObFQURcF4kyEhAZg+TDvD9XzOXgUA2BI1bfk0w21lk3BoB2BJEMLfCJ9jzh0= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VE1PR08MB5599.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(52536014)(86362001)(5660300002)(2906002)(38070700005)(8936002)(7696005)(6916009)(71200400001)(6506007)(9686003)(55016002)(26005)(66556008)(66476007)(64756008)(33656002)(76116006)(122000001)(91956017)(40140700001)(66446008)(316002)(66946007)(186003)(508600001)(8676002)(38100700002); DIR:OUT; SFP:1101; x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB4224 Original-Authentication-Results: sourceware.org; dkim=none (message not signed) header.d=none; sourceware.org; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT021.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: e253454f-cfa0-46e4-ffac-08d9924abdbd X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NG5oXYHdH4/QJaKtrZ/jASa4XpK2PnPDSxB++3BcXVvJk2tf4HiSLzSY7NlW87DuAHIYmVJdFKhue2wawgqaB0zD45NkVPAjMNSxID8IsfNHuk+0SkVe5poO/V+4Oa2QfxTnZmoX5YuKzFCpYGq9KChkcOJ26wLeJYuRLRzd2cKcGm0z04m17/2YyCxgBXXdpVSYXQI45wO0vAJvUk9I1Drr0ZiVORJJFUMEiG6H1UvM8oFpaEl8ooJ0Tuaj5kqD0aSIOOG9y8Fu7+maplNvN+t2Co7jQ64Bk6z12Q1KXfdJ8APwcPAsRFDYDDtf+1bRl6hJYnwQfx+X6S6bXpPr7oyTN7CzK4rOGnGygPJZZYcLGNUCctmj2Xw9sIfoCAazBSuGD6H9PADBWkUGQukvk37WQTORTO0P0aJVVBRS/Rz7euE6auVnYvHjueTvJTM2H35eIzMMnoL3I79h2usK5OR3idCowOR+OEQz2bgPCFSvfB78w+v2lD1+vTlZTWx8C4Tahfep19CrfupxlVzeP2vghotfpc1ATZ3Zx57cyTECtW5YuGyeqdx7yPfyoNfIUDPMX6TIzBl+JUGK4IAYkV/JWnn8DqNVek9IzdhJfT5RcSI+fX1fLhRxjkXlDb85ZqjFrO9G9BSqzEULEin0n31Pzwc8Vwyvf4mSkzP0KP/FcsxEf324KxyWESxZeAaG/NoojrYFtxSIQ+FuZc9/SRc7Qo6JSGrMT/IMjrpTKAi7i/yQ7Uva4dfRGF1d7CxoEe1oID9yOq3HETGOoHeArqkJF195nuwzv5V7EwYQjl8= X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(46966006)(36840700001)(26005)(356005)(186003)(82310400003)(40140700001)(70586007)(6916009)(81166007)(6506007)(70206006)(7696005)(52536014)(86362001)(9686003)(33656002)(47076005)(55016002)(508600001)(316002)(8676002)(36860700001)(2906002)(8936002)(336012)(5660300002); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Oct 2021 15:20:05.5331 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1b3a0721-763b-415b-e5a9-08d9924ac39c X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: VE1EUR03FT021.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0802MB2315 X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Oct 2021 15:20:10 -0000 Improve the random memcpy benchmark. Double the number of tests and increas= e=0A= the size of the memory region to test between 32KB and 1024KB. This improve= s=0A= accuracy on modern cores. Clean up formatting of the frequency array.=0A= =0A= OK for commit?=0A= =0A= ---=0A= =0A= diff --git a/benchtests/bench-memcpy-random.c b/benchtests/bench-memcpy-ran= dom.c=0A= index c490b73ed07bfb8287ab7a41ac2cfb7c43d1d545..b2edd8b7e3d5503953f22365ba2= a6fd0eace6fbc 100644=0A= --- a/benchtests/bench-memcpy-random.c=0A= +++ b/benchtests/bench-memcpy-random.c=0A= @@ -16,15 +16,17 @@=0A= License along with the GNU C Library; if not, see=0A= . */=0A= =0A= -#define MIN_PAGE_SIZE (512*1024+getpagesize())=0A= +#define MIN_SIZE 32768=0A= +#define MAX_SIZE (1024*1024)=0A= +#define NUM_TESTS 16384=0A= +=0A= +#define MIN_PAGE_SIZE (MAX_SIZE + getpagesize())=0A= #define TEST_MAIN=0A= #define TEST_NAME "memcpy"=0A= #include "bench-string.h"=0A= #include =0A= #include "json-lib.h"=0A= =0A= -#define MAX_COPIES 8192=0A= -=0A= IMPL (memcpy, 1)=0A= =0A= typedef struct { uint16_t size; uint16_t freq; } freq_data_t;=0A= @@ -37,36 +39,36 @@ static uint8_t size_arr[SIZE_NUM];=0A= /* Frequency data for memcpy of less than 4096 bytes based on SPEC2017. *= /=0A= static freq_data_t size_freq[] =3D=0A= {=0A= -{ 32, 22320}, { 16, 9554}, { 8, 8915}, {152, 5327}, { 4, 2159}, {292, 20= 35},=0A= -{ 12, 1608}, { 24, 1343}, {1152, 895}, {144, 813}, {884, 733}, {284, 721},= =0A= +{32,22320}, { 16,9554}, { 8,8915}, {152,5327}, { 4,2159}, {292,2035},=0A= +{ 12,1608}, { 24,1343}, {1152,895}, {144, 813}, {884, 733}, {284, 721},=0A= {120, 661}, { 2, 649}, {882, 550}, { 5, 475}, { 7, 461}, {108, 460},=0A= -{ 10, 361}, { 9, 361}, { 6, 334}, { 3, 326}, {464, 308}, {2048, 303},= =0A= +{ 10, 361}, { 9, 361}, { 6, 334}, { 3, 326}, {464, 308}, {2048,303},=0A= { 1, 298}, { 64, 250}, { 11, 197}, {296, 194}, { 68, 187}, { 15, 185},=0A= -{192, 184}, {1764, 183}, { 13, 173}, {560, 126}, {160, 115}, {288, 96},= =0A= -{104, 96}, {1144, 83}, { 18, 80}, { 23, 78}, { 40, 77}, { 19, 68},= =0A= -{ 48, 63}, { 17, 57}, { 72, 54}, {1280, 51}, { 20, 49}, { 28, 47},= =0A= +{192, 184}, {1764,183}, { 13, 173}, {560, 126}, {160, 115}, {288, 96},=0A= +{104, 96}, {1144, 83}, { 18, 80}, { 23, 78}, { 40, 77}, { 19, 68},=0A= +{ 48, 63}, { 17, 57}, { 72, 54}, {1280, 51}, { 20, 49}, { 28, 47},=0A= { 22, 46}, {640, 45}, { 25, 41}, { 14, 40}, { 56, 37}, { 27, 35},=0A= -{ 35, 33}, {384, 33}, { 29, 32}, { 80, 30}, {4095, 22}, {232, 22},= =0A= +{ 35, 33}, {384, 33}, { 29, 32}, { 80, 30}, {4095, 22}, {232, 22},=0A= { 36, 19}, {184, 17}, { 21, 17}, {256, 16}, { 44, 15}, { 26, 15},=0A= -{ 31, 14}, { 88, 14}, {176, 13}, { 33, 12}, {1024, 12}, {208, 11},= =0A= +{ 31, 14}, { 88, 14}, {176, 13}, { 33, 12}, {1024, 12}, {208, 11},=0A= { 62, 11}, {128, 10}, {704, 10}, {324, 10}, { 96, 10}, { 60, 9},=0A= -{136, 9}, {124, 9}, { 34, 8}, { 30, 8}, {480, 8}, {1344, 8},= =0A= +{136, 9}, {124, 9}, { 34, 8}, { 30, 8}, {480, 8}, {1344, 8},=0A= {273, 7}, {520, 7}, {112, 6}, { 52, 6}, {344, 6}, {336, 6},=0A= {504, 5}, {168, 5}, {424, 5}, { 0, 4}, { 76, 3}, {200, 3},=0A= {512, 3}, {312, 3}, {240, 3}, {960, 3}, {264, 2}, {672, 2},=0A= { 38, 2}, {328, 2}, { 84, 2}, { 39, 2}, {216, 2}, { 42, 2},=0A= -{ 37, 2}, {1608, 2}, { 70, 2}, { 46, 2}, {536, 2}, {280, 1},= =0A= -{248, 1}, { 47, 1}, {1088, 1}, {1288, 1}, {224, 1}, { 41, 1},= =0A= +{ 37, 2}, {1608, 2}, { 70, 2}, { 46, 2}, {536, 2}, {280, 1},=0A= +{248, 1}, { 47, 1}, {1088, 1}, {1288, 1}, {224, 1}, { 41, 1},=0A= { 50, 1}, { 49, 1}, {808, 1}, {360, 1}, {440, 1}, { 43, 1},=0A= { 45, 1}, { 78, 1}, {968, 1}, {392, 1}, { 54, 1}, { 53, 1},=0A= { 59, 1}, {376, 1}, {664, 1}, { 58, 1}, {272, 1}, { 66, 1},=0A= -{2688, 1}, {472, 1}, {568, 1}, {720, 1}, { 51, 1}, { 63, 1},= =0A= +{2688, 1}, {472, 1}, {568, 1}, {720, 1}, { 51, 1}, { 63, 1},=0A= { 86, 1}, {496, 1}, {776, 1}, { 57, 1}, {680, 1}, {792, 1},=0A= {122, 1}, {760, 1}, {824, 1}, {552, 1}, { 67, 1}, {456, 1},=0A= {984, 1}, { 74, 1}, {408, 1}, { 75, 1}, { 92, 1}, {576, 1},=0A= {116, 1}, { 65, 1}, {117, 1}, { 82, 1}, {352, 1}, { 55, 1},=0A= {100, 1}, { 90, 1}, {696, 1}, {111, 1}, {880, 1}, { 79, 1},=0A= -{488, 1}, { 61, 1}, {114, 1}, { 94, 1}, {1032, 1}, { 98, 1},= =0A= +{488, 1}, { 61, 1}, {114, 1}, { 94, 1}, {1032, 1}, { 98, 1},=0A= { 87, 1}, {584, 1}, { 85, 1}, {648, 1}, {0, 0}=0A= };=0A= =0A= @@ -94,7 +96,7 @@ typedef struct=0A= uint64_t len : 16;=0A= } copy_t;=0A= =0A= -static copy_t copy[MAX_COPIES];=0A= +static copy_t test_arr[NUM_TESTS];=0A= =0A= typedef char *(*proto_t) (char *, const char *, size_t);=0A= =0A= @@ -150,13 +152,13 @@ do_test (json_ctx_t *json_ctx, size_t max_size)=0A= =0A= /* Create a random set of copies with the given size and alignment=0A= distributions. */=0A= - for (i =3D 0; i < MAX_COPIES; i++)=0A= + for (i =3D 0; i < NUM_TESTS; i++)=0A= {=0A= - copy[i].dst =3D (rand () & (max_size - 1));=0A= - copy[i].dst &=3D ~dst_align_arr[rand () & ALIGN_MASK];=0A= - copy[i].src =3D (rand () & (max_size - 1));=0A= - copy[i].src &=3D ~src_align_arr[rand () & ALIGN_MASK];=0A= - copy[i].len =3D size_arr[rand () & SIZE_MASK];=0A= + test_arr[i].dst =3D (rand () & (max_size - 1));=0A= + test_arr[i].dst &=3D ~dst_align_arr[rand () & ALIGN_MASK];=0A= + test_arr[i].src =3D (rand () & (max_size - 1));=0A= + test_arr[i].src &=3D ~src_align_arr[rand () & ALIGN_MASK];=0A= + test_arr[i].len =3D size_arr[rand () & SIZE_MASK];=0A= }=0A= =0A= json_element_object_begin (json_ctx);=0A= @@ -164,7 +166,7 @@ do_test (json_ctx_t *json_ctx, size_t max_size)=0A= json_array_begin (json_ctx, "timings");=0A= =0A= FOR_EACH_IMPL (impl, 0)=0A= - do_one_test (json_ctx, impl, (char *) buf2, (char *) buf1, copy, i);= =0A= + do_one_test (json_ctx, impl, (char *) buf2, (char *) buf1, test_arr, i= );=0A= =0A= json_array_end (json_ctx);=0A= json_element_object_end (json_ctx);=0A= @@ -193,8 +195,8 @@ test_main (void)=0A= json_array_end (&json_ctx);=0A= =0A= json_array_begin (&json_ctx, "results");=0A= - for (int i =3D 4; i <=3D 512; i =3D i * 2)=0A= - do_test (&json_ctx, i * 1024);=0A= + for (int i =3D MIN_SIZE; i <=3D MAX_SIZE; i =3D i * 2)=0A= + do_test (&json_ctx, i);=0A= =0A= json_array_end (&json_ctx);=0A= json_attr_object_end (&json_ctx);=0A=