All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lasse Collin <lasse.collin@tukaani.org>
To: Jubin Zhong <zhongjubin@huawei.com>
Cc: <akpm@linux-foundation.org>, <wangfangpeng1@huawei.com>,
	<liaohua4@huawei.com>, <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] kbuild: Enable armthumb BCJ filter for Thumb-2 kernel
Date: Fri, 19 Nov 2021 21:46:47 +0200	[thread overview]
Message-ID: <20211119214647.12932e5c@kaneli> (raw)
In-Reply-To: <1637323647-19988-1-git-send-email-zhongjubin@huawei.com>

On 2021-11-19 Jubin Zhong wrote:
> xz_wrap.sh use $SRCARCH to detect the BCJ filter. However, assigning
> arm BCJ filter to Thumb-2 kernel is not optimal. In my case, about 5%
> decrease of image size is observed with armthumb BCJ filter:
> 
> Test results:
>   hardware:      QEMU emulator version 3.1.0
>   config:        vexpress_defconfig with THUMB2_KERNEL & KERNEL_XZ on
>   arm BCJ:       4029808
>   armthumb BCJ:  3827280
> 
> Choose armthumb BCJ filter for Thumb-2 kernel to make smaller images.

I didn't test the patch but it looks reasonable to me. Below are a small
optimization idea and two very minor style suggestions.

> --- a/lib/decompress_unxz.c
> +++ b/lib/decompress_unxz.c
> @@ -131,6 +131,9 @@
>  #ifdef CONFIG_ARM
>  #	define XZ_DEC_ARM
>  #endif
> +#ifdef CONFIG_THUMB2_KERNEL
> +#	define XZ_DEC_ARMTHUMB
> +#endif
>  #ifdef CONFIG_IA64
>  #	define XZ_DEC_IA64
>  #endif

If a Thumb-2 kernel will always use the ARM-Thumb BCJ filter, one can
save a few bytes from the pre-boot code by omitting the ARM BCJ filter:

--- a/lib/decompress_unxz.c
+++ b/lib/decompress_unxz.c
@@ -129,7 +129,11 @@
 #	define XZ_DEC_POWERPC
 #endif
 #ifdef CONFIG_ARM
-#	define XZ_DEC_ARM
+#	ifdef CONFIG_THUMB2_KERNEL
+#		define XZ_DEC_ARMTHUMB
+#	else
+#		define XZ_DEC_ARM
+#	endif
 #endif
 #ifdef CONFIG_IA64
 #	define XZ_DEC_IA64

> --- a/scripts/xz_wrap.sh
> +++ b/scripts/xz_wrap.sh
> @@ -8,6 +8,7 @@
>  # This file has been put into the public domain.
>  # You can do whatever you want with this file.
>  #
> +. include/config/auto.conf

I suggest adding an empty line before this new line so that it is
clearly separated from the header comment.

> +if [ -n "${CONFIG_THUMB2_KERNEL}" ];then

I suggest adding a space after the semi-colon: ]; then

With or without the above modifications:

Acked-by: Lasse Collin <lasse.collin@tukaani.org>

-- 
Lasse Collin

  reply	other threads:[~2021-11-19 19:56 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-19 12:07 [PATCH] kbuild: Enable armthumb BCJ filter for Thumb-2 kernel Jubin Zhong
2021-11-19 19:46 ` Lasse Collin [this message]
2021-11-20  3:18   ` Jubin Zhong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211119214647.12932e5c@kaneli \
    --to=lasse.collin@tukaani.org \
    --cc=akpm@linux-foundation.org \
    --cc=liaohua4@huawei.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=wangfangpeng1@huawei.com \
    --cc=zhongjubin@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.