From mboxrd@z Thu Jan 1 00:00:00 1970 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id B3EC7C001DB for ; Fri, 4 Aug 2023 09:11:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7AA522802D4; Fri, 4 Aug 2023 05:11:53 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 759362802DE; Fri, 4 Aug 2023 05:11:53 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5FACB2802D4; Fri, 4 Aug 2023 05:11:53 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 390F32802DE for ; Fri, 4 Aug 2023 05:11:53 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id E116E81365 for ; Fri, 4 Aug 2023 09:11:52 +0000 (UTC) X-FDA: 81085854864.02.751C208 Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51]) by imf20.hostedemail.com (Postfix) with ESMTP id C3F991C0026 for ; Fri, 4 Aug 2023 09:11:49 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=none; dmarc=none; spf=none (imf20.hostedemail.com: domain of thunder.leizhen@huaweicloud.com has no SPF policy when checking 45.249.212.51) smtp.mailfrom=thunder.leizhen@huaweicloud.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1691140311; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hsvgL1kadpGVlOZOHKyBxkp4sqmDpl1IRauto+yEIyg=; b=aocPvAOmMG2ObVsrm3d1+I+oxuSIxA05y4zbPjjyzPQvLsGyEmHx2qocxq/BfAStJ7seQa 86vrPBnsoiSPUx7zUWqXlSdP55J8saOCwnFHnGWjmIn+ouf9QoPZeeOAizZzYiPGGw6qSP YOfJKQmDmnOevCIumisakjeIVsBJV40= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=none; dmarc=none; spf=none (imf20.hostedemail.com: domain of thunder.leizhen@huaweicloud.com has no SPF policy when checking 45.249.212.51) smtp.mailfrom=thunder.leizhen@huaweicloud.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1691140311; a=rsa-sha256; cv=none; b=8poZ44ewdmDoVVVYuNp2X1qtb3vvQhas74yk/Rw9p3Py40fHmI+EWf157rzhwHBtUq2sGV 46Av1bbWqXQlFLvDsI7Wti9+k3ojsB5R+tJcjPH3lz05TlvIonKa3He/jTE/T0U4+Lxyy7 I2MPOBtjU8Fj/Yq2W1+JQottHjC14hw= Received: from mail02.huawei.com (unknown [172.30.67.143]) by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4RHKhw6QJYz4f3l1D for ; Fri, 4 Aug 2023 17:11:44 +0800 (CST) Received: from huaweicloud.com (unknown [10.174.178.55]) by APP4 (Coremail) with SMTP id gCh0CgBH_rHLwMxk2KskPg--.58335S6; Fri, 04 Aug 2023 17:11:45 +0800 (CST) From: thunder.leizhen@huaweicloud.com To: Petr Mladek , Sergey Senozhatsky , Steven Rostedt , John Ogness , Christoph Lameter , Pekka Enberg , David Rientjes , Joonsoo Kim , Andrew Morton , Vlastimil Babka , Roman Gushchin , Hyeonggon Yoo <42.hyeyoo@gmail.com>, linux-mm@kvack.org, "Paul E . McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Mathieu Desnoyers , Lai Jiangshan , Zqiang , rcu@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Zhen Lei Subject: [PATCH v6 2/5] hexdump: minimize the output width of the offset Date: Fri, 4 Aug 2023 17:11:32 +0800 Message-Id: <20230804091136.1177-3-thunder.leizhen@huaweicloud.com> X-Mailer: git-send-email 2.37.3.windows.1 In-Reply-To: <20230804091136.1177-1-thunder.leizhen@huaweicloud.com> References: <20230804091136.1177-1-thunder.leizhen@huaweicloud.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CM-TRANSID:gCh0CgBH_rHLwMxk2KskPg--.58335S6 X-Coremail-Antispam: 1UD129KBjvJXoW7Kr1fZw1kGw45uw18Zr1rtFb_yoW8uFyxpF nxK34YgFZ7Jr1Ikr17Ar10gF1YkFyUA3W0yFWqk34qqF4UWF15JrWkKFW3tFy5Jr4qqrsx Jr9rtw1Fyr17GaUanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUBEb4IE77IF4wAFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6r1S6rWUM7CIcVAFz4kK6r1j6r18M28IrcIa0xkI8VA2jI8067AKxVWUXw A2048vs2IY020Ec7CjxVAFwI0_Xr0E3s1l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxS w2x7M28EF7xvwVC0I7IYx2IY67AKxVW7JVWDJwA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxV W8Jr0_Cr1UM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v2 6rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMc Ij6xIIjxv20xvE14v26r1j6r18McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_ Jr0_Gr1lF7xvr2IYc2Ij64vIr41lFIxGxcIEc7CjxVA2Y2ka0xkIwI1lw4CEc2x0rVAKj4 xxMxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_ Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVW8ZVWrXwCIc40Y0x 0EwIxGrwCI42IY6xIIjxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x0267AKxVWx JVW8Jr1lIxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r1j6r4UMI IF0xvEx4A2jsIEc7CjxVAFwI0_Gr0_Gr1UYxBIdaVFxhVjvjDU0xZFpf9x07UtR67UUUUU = X-CM-SenderInfo: hwkx0vthuozvpl2kv046kxt4xhlfz01xgou0bp/ X-CFilter-Loop: Reflected X-Rspam-User: X-Stat-Signature: jzko8eqpmenqpht6odpruekcig54d7pa X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: C3F991C0026 X-HE-Tag: 1691140309-720436 X-HE-Meta: U2FsdGVkX18Ge4zeTJ/wy/PosXnROcHcgoJEvNkvpsJT9qE4nvCH3vyP73ELhQyuJNUzjF9RP1BeOWGASV76GAh0Zfe5o3jioYwdgzfuwfaQt/01lNhcXjSNK+Uue2iAgWP6SEVOrk9IsnXzZ6p+788sXTpaGL/No+S2WVW5XfZ0Dcs2atqHl1cXmr9DR3zREuaU5Np/Md1utfGjo1gHyBGqcqz3W8FMNobiF+AhvLX/1Xw+PuaZfLLdUNLQGduHDa9pPPCiVYu0FXUtg3DQwQHY55VgoXtazvqldVWf9MuXipvdvmOgXqDa084OebSkHYzMHfQEP44JWWw86Xlq+vqetK+Bd31GoGZ/9YuKbIfVi5UfQr/ysyCcW4util2Ij5GTp3G8M3lTdoFMXNqVtW5f557wWx9IzQlA5tagNqAqteGm6nssutJEzs39hs/q1tXoSHjZOn1YxIsHlwn9BfuVrafmzTS9SGH/f10nZbIlvY4N+yAmRVyn9cPUvzO16oSTyIyiH0HLryJaFwNJjIPS0FXdN75OMjVVdkqtMqaoPUI+VpPu306fFmhFYnwMhySAY5rXAptp7b//6X6uK+AjhKY2TfsmuFC6/GagFu0MItjP7mctMN2ODTFIPGtO9zd7uQG0aaspvF/NOFXkHDOV1XshCprlcTGXVaRXOTZkt+6TMz7J0aJ1vtWn5bU8CyXXJtcmGOSeG7k0zSR5AOVWhp6crY9zoD02KNqgwjoFQZvBcpC0tUM9vBB2lBu8ZLmSptDqOZEzw1P8mhWUxVORb/mptaMswM5Kh2x2fQs2+OJ5xl2fi6u7nlZ99XYhqMF2/QyMK9WgjJ90YodC7yCrYtI/MvWWnzeGhXWrnYvVfw677S8nHDUZzcCq1H4bXdCrC1wIH9Sm395+Px5mUxpA3B077rf1PkitD97EallLBrsd5AQWeoV+9W0Ld0ChwhlyPGBEsjRbzKsGsUz 6CjdPM/b OEFRamECHLLcOPS2aYkKkIiJ3b0e6hQedy2h3b5PP80THEleuo/xojMr7KvsEx6mjy+6fw7rD6Wu5dfCwsKdV7LguqPe4mIvN3SIdWJcobTcZ2aITPRyvqX1X4EzED4aZScJ5sieRxx/Yp3KDQiS70XBzqWAZiLEVmC2fGbLrTzm70FScIJLF5fkcb+3UttxP0Er+7W747HO/TOqmUA9a5uSmd1OrM8/rWTx97iKFfI5247RD+0kS+v06Jv9HGTZG2Naed+UDkaj6bvg= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: From: Zhen Lei The offset of case DUMP_PREFIX_OFFSET always starts from 0. Currently, the output width is fixed to 8. Therefore, the high-order bits filled with zeros are meaningless except for increasing the number of characters to be printed. Let's minimize the output width of the offset to improve readability. Before: dump_size=36: 00000000: c0 ba 8c 80 00 80 ff ff 6c 93 ee 2f ee bf ff ff 00000010: 00 50 1e 98 ff 27 ff ff 01 00 00 00 00 00 00 00 00000020: 80 ca 2f 98 After: dump_size=8: 0: c0 ba 89 80 00 80 ff ff dump_size=36: 00: c0 3a 91 80 00 80 ff ff 6c 93 ae 76 30 ce ff ff 10: 00 60 cd 60 7d 4e ff ff 01 00 00 00 00 00 00 00 20: 40 9e 29 40 dump_size=300: 000: c0 ba 8d 80 00 80 ff ff 6c 93 ce d4 78 a7 ff ff 010: 00 00 16 18 0c 40 ff ff 01 00 00 00 00 00 00 00 020: 01 00 00 00 00 00 00 00 e8 bc 8d 80 00 80 ff ff ... ... 110: 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 120: 00 08 12 01 0c 40 ff ff 00 00 01 00 Signed-off-by: Zhen Lei --- lib/hexdump.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/hexdump.c b/lib/hexdump.c index 247c8765cc7ca3f..d3c5b7bb1b8813b 100644 --- a/lib/hexdump.c +++ b/lib/hexdump.c @@ -263,12 +263,21 @@ void print_hex_dump(const char *level, const char *prefix_str, int prefix_type, const void *buf, size_t len, bool ascii) { const u8 *ptr = buf; - int i, linelen, remaining = len; + int i, linelen, width = 0, remaining = len; unsigned char linebuf[32 * 3 + 2 + 32 + 1]; if (rowsize != 16 && rowsize != 32) rowsize = 16; + if (prefix_type == DUMP_PREFIX_OFFSET) { + unsigned long tmp = len; + + do { + width++; + tmp >>= 4; + } while (tmp); + } + for (i = 0; i < len; i += rowsize) { linelen = min(remaining, rowsize); remaining -= rowsize; @@ -286,7 +295,7 @@ void print_hex_dump(const char *level, const char *prefix_str, int prefix_type, prefix_str, 0xffff & (unsigned long)(ptr + i), linebuf); break; case DUMP_PREFIX_OFFSET: - printk("%s%s%.8x: %s\n", level, prefix_str, i, linebuf); + printk("%s%s%0*x: %s\n", level, prefix_str, width, i, linebuf); break; default: printk("%s%s%s\n", level, prefix_str, linebuf); -- 2.34.1