2019-06-03 17:50:33

by Pawel Dembicki

[permalink] [raw]
Subject: [PATCH] powerpc: Enable kernel XZ compression option on PPC_85xx

Enable kernel XZ compression option on PPC_85xx. Tested with
simpleImage on TP-Link TL-WDR4900 (Freescale P1014 processor).

Suggested-by: Christian Lamparter <[email protected]>
Signed-off-by: Pawel Dembicki <[email protected]>
---
arch/powerpc/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 8c1c636308c8..daf4cb968922 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -196,7 +196,7 @@ config PPC
select HAVE_IOREMAP_PROT
select HAVE_IRQ_EXIT_ON_IRQ_STACK
select HAVE_KERNEL_GZIP
- select HAVE_KERNEL_XZ if PPC_BOOK3S || 44x
+ select HAVE_KERNEL_XZ if PPC_BOOK3S || 44x || PPC_85xx
select HAVE_KPROBES
select HAVE_KPROBES_ON_FTRACE
select HAVE_KRETPROBES
--
2.20.1


2019-06-13 15:28:16

by Michael Ellerman

[permalink] [raw]
Subject: Re: [PATCH] powerpc: Enable kernel XZ compression option on PPC_85xx

Daniel Axtens <[email protected]> writes:
> Pawel Dembicki <[email protected]> writes:
>
>> Enable kernel XZ compression option on PPC_85xx. Tested with
>> simpleImage on TP-Link TL-WDR4900 (Freescale P1014 processor).
>>
>> Suggested-by: Christian Lamparter <[email protected]>
>> Signed-off-by: Pawel Dembicki <[email protected]>
>> ---
>> arch/powerpc/Kconfig | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
>> index 8c1c636308c8..daf4cb968922 100644
>> --- a/arch/powerpc/Kconfig
>> +++ b/arch/powerpc/Kconfig
>> @@ -196,7 +196,7 @@ config PPC
>> select HAVE_IOREMAP_PROT
>> select HAVE_IRQ_EXIT_ON_IRQ_STACK
>> select HAVE_KERNEL_GZIP
>> - select HAVE_KERNEL_XZ if PPC_BOOK3S || 44x
>> + select HAVE_KERNEL_XZ if PPC_BOOK3S || 44x || PPC_85xx
>
> (I'm not super well versed in the compression stuff, so apologies if
> this is a dumb question.) If it's this simple, is there any reason we
> can't turn it on generally, or convert it to a blacklist of platforms
> known not to work?

For some platforms enabling XZ requires that your u-boot has XZ support,
and I'm not very clear on when that support landed in u-boot and what
boards have it. And there are boards out there with old/custom u-boots
that effectively can't be updated.

But as a server guy I don't really know the details of all that very
well. So if someone tells me that we should enable XZ for everything, or
as you say just black list some platforms, then that's fine by me.

cheers

2019-06-13 16:53:32

by Daniel Axtens

[permalink] [raw]
Subject: Re: [PATCH] powerpc: Enable kernel XZ compression option on PPC_85xx

Pawel Dembicki <[email protected]> writes:

> Enable kernel XZ compression option on PPC_85xx. Tested with
> simpleImage on TP-Link TL-WDR4900 (Freescale P1014 processor).
>
> Suggested-by: Christian Lamparter <[email protected]>
> Signed-off-by: Pawel Dembicki <[email protected]>
> ---
> arch/powerpc/Kconfig | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
> index 8c1c636308c8..daf4cb968922 100644
> --- a/arch/powerpc/Kconfig
> +++ b/arch/powerpc/Kconfig
> @@ -196,7 +196,7 @@ config PPC
> select HAVE_IOREMAP_PROT
> select HAVE_IRQ_EXIT_ON_IRQ_STACK
> select HAVE_KERNEL_GZIP
> - select HAVE_KERNEL_XZ if PPC_BOOK3S || 44x
> + select HAVE_KERNEL_XZ if PPC_BOOK3S || 44x || PPC_85xx

(I'm not super well versed in the compression stuff, so apologies if
this is a dumb question.) If it's this simple, is there any reason we
can't turn it on generally, or convert it to a blacklist of platforms
known not to work?

Regards,
Daniel

> select HAVE_KPROBES
> select HAVE_KPROBES_ON_FTRACE
> select HAVE_KRETPROBES
> --
> 2.20.1

2019-06-14 10:07:22

by Christophe Leroy

[permalink] [raw]
Subject: Re: [PATCH] powerpc: Enable kernel XZ compression option on PPC_85xx



Le 13/06/2019 à 13:42, Michael Ellerman a écrit :
> Daniel Axtens <[email protected]> writes:
>> Pawel Dembicki <[email protected]> writes:
>>
>>> Enable kernel XZ compression option on PPC_85xx. Tested with
>>> simpleImage on TP-Link TL-WDR4900 (Freescale P1014 processor).
>>>
>>> Suggested-by: Christian Lamparter <[email protected]>
>>> Signed-off-by: Pawel Dembicki <[email protected]>
>>> ---
>>> arch/powerpc/Kconfig | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
>>> index 8c1c636308c8..daf4cb968922 100644
>>> --- a/arch/powerpc/Kconfig
>>> +++ b/arch/powerpc/Kconfig
>>> @@ -196,7 +196,7 @@ config PPC
>>> select HAVE_IOREMAP_PROT
>>> select HAVE_IRQ_EXIT_ON_IRQ_STACK
>>> select HAVE_KERNEL_GZIP
>>> - select HAVE_KERNEL_XZ if PPC_BOOK3S || 44x
>>> + select HAVE_KERNEL_XZ if PPC_BOOK3S || 44x || PPC_85xx
>>
>> (I'm not super well versed in the compression stuff, so apologies if
>> this is a dumb question.) If it's this simple, is there any reason we
>> can't turn it on generally, or convert it to a blacklist of platforms
>> known not to work?
>
> For some platforms enabling XZ requires that your u-boot has XZ support,
> and I'm not very clear on when that support landed in u-boot and what
> boards have it. And there are boards out there with old/custom u-boots
> that effectively can't be updated.

I don't think that it has anything to do with u-boot.
AFAIK, today's mainline U-boot only supports GZIP (by default) and the
following optional ones: LZO, LZMA, LZ4.

If we want to set additional compression types for u-boot, it is not
enough to select HAVE_KERNEL_XXXX, we also have to update uImage
generation scripts.

See the series I sent some time ago:
https://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=104153
I'll resent it without bzip2 as today's uboot doesn't support bzip2 anymore.

>
> But as a server guy I don't really know the details of all that very
> well. So if someone tells me that we should enable XZ for everything, or
> as you say just black list some platforms, then that's fine by me.
>

I guess we first need to understand how this is used.

Christophe

2019-06-14 19:58:33

by Christian Lamparter

[permalink] [raw]
Subject: Re: [PATCH] powerpc: Enable kernel XZ compression option on PPC_85xx

On Friday, June 14, 2019 12:06:48 PM CEST Christophe Leroy wrote:
>
> Le 13/06/2019 ? 13:42, Michael Ellerman a ?crit :
> > Daniel Axtens <[email protected]> writes:
> >> Pawel Dembicki <[email protected]> writes:
> >>
> >>> Enable kernel XZ compression option on PPC_85xx. Tested with
> >>> simpleImage on TP-Link TL-WDR4900 (Freescale P1014 processor).
> >>>
> >>> Suggested-by: Christian Lamparter <[email protected]>
> >>> Signed-off-by: Pawel Dembicki <[email protected]>
> >>> ---
> >>> arch/powerpc/Kconfig | 2 +-
> >>> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>>
> >>> diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
> >>> index 8c1c636308c8..daf4cb968922 100644
> >>> --- a/arch/powerpc/Kconfig
> >>> +++ b/arch/powerpc/Kconfig
> >>> @@ -196,7 +196,7 @@ config PPC
> >>> select HAVE_IOREMAP_PROT
> >>> select HAVE_IRQ_EXIT_ON_IRQ_STACK
> >>> select HAVE_KERNEL_GZIP
> >>> - select HAVE_KERNEL_XZ if PPC_BOOK3S || 44x
> >>> + select HAVE_KERNEL_XZ if PPC_BOOK3S || 44x || PPC_85xx
> >>
> >> (I'm not super well versed in the compression stuff, so apologies if
> >> this is a dumb question.) If it's this simple, is there any reason we
> >> can't turn it on generally, or convert it to a blacklist of platforms
> >> known not to work?
> >
> > For some platforms enabling XZ requires that your u-boot has XZ support,
> > and I'm not very clear on when that support landed in u-boot and what
> > boards have it. And there are boards out there with old/custom u-boots
> > that effectively can't be updated.
>
> I don't think that it has anything to do with u-boot.
> AFAIK, today's mainline U-boot only supports GZIP (by default) and the
> following optional ones: LZO, LZMA, LZ4.
>
> If we want to set additional compression types for u-boot, it is not
> enough to select HAVE_KERNEL_XXXX, we also have to update uImage
> generation scripts.
>
> See the series I sent some time ago:
> https://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=104153
> I'll resent it without bzip2 as today's uboot doesn't support bzip2 anymore.
>
> >
> > But as a server guy I don't really know the details of all that very
> > well. So if someone tells me that we should enable XZ for everything, or
> > as you say just black list some platforms, then that's fine by me.
> >
>
> I guess we first need to understand how this is used.
>

to add to the confusion:

The powerpc arch is sort of special since it has the various targets have
different arch/powerpc/boot/wrapper for everyone unfamiliar (people from
ARM or other targets,) please look at:

https://www.kernel.org/doc/Documentation/powerpc/bootwrapper.txt

and see that this is very different from ARM, MIPS, x86, etc.

I think the cuImage*, dtbImage*, simpleImage, etc... wouldn't
be affected if the kernel is compressed by XZ, as in they should
still boot fine, altough XZ takes a bit longer to unpack of course.

However, for the uImage this could spell a problem, however "HAVE_KERNEL_XZ"
does not automatically entail that the wrapper script from above
compresses the generated uimage with LZMAd/xz. Instead this is controlled
by init/Kconfig and the "Kernel compression mode" setting there.
And currently that defaults to CONFIG_KERNEL_GZIP. So the wrapper script
currently gzipped uImages unless the target config overwrites it to
something else (and the target has the right
HAVE_KERNEL_XZ/BZIP2/LZMA/LZO/LZ4/... as well).

Regards,
Christian