2005-11-16 13:09:08

by Ph. Marek

[permalink] [raw]
Subject: [PATCH] optional use "gzip --rsyncable" for bzImage

Hello everybody!


As (at least in debian) gzip has the "--rsyncable" parameter included,
I'd like to suggest this patch to (configurable) use this for bzImage creation.

The default is "N" to stay compatible with current behaviour.


I didn't find an entry in MAINTAINERS; and according to git a lot of people
touch arch/i386/Kconfig, so I just send to the l-k.

Andrew, how about an -mm inclusion? Or is the patch too small to warrant that?



Regards,

Phil



From: [email protected]

diff -urN linux-2.6.12.orig/arch/i386/boot/compressed/Makefile linux-2.6.12/arch/i386/boot/compressed
/Makefile
--- linux-2.6.12.orig/arch/i386/boot/compressed/Makefile 2005-06-17 21:48:29.000000000 +0200
+++ linux-2.6.12/arch/i386/boot/compressed/Makefile 2005-11-16 13:44:34.000000000 +0100
@@ -4,6 +4,12 @@
# create a compressed vmlinux image from the original vmlinux
#

+ifdef CONFIG_RSYNCABLE
+GZIP_OPT := --rsyncable
+else
+GZIP_OPT :=
+endif
+
targets := vmlinux vmlinux.bin vmlinux.bin.gz head.o misc.o piggy.o
EXTRA_AFLAGS := -traditional

@@ -17,7 +23,7 @@
$(call if_changed,objcopy)

$(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE
- $(call if_changed,gzip)
+ $(call if_changed,gzip $(CONFIG_RSYNCABLE))

LDFLAGS_piggy.o := -r --format binary --oformat elf32-i386 -T

diff -urN linux-2.6.12.orig/arch/i386/Kconfig linux-2.6.12/arch/i386/Kconfig
--- linux-2.6.12.orig/arch/i386/Kconfig 2005-06-17 21:48:29.000000000 +0200
+++ linux-2.6.12/arch/i386/Kconfig 2005-11-16 13:27:12.000000000 +0100
@@ -922,6 +922,17 @@
generate incorrect output with certain kernel constructs when
-mregparm=3 is used.

+config RSYNCABLE
+ bool "Make bzImage better rsyncable (EXPERIMENTAL)"
+ depends on EXPERIMENTAL
+ default n
+ help
+ Compresses the kernel with "gzip --rsyncable". This makes the kernel
+ slightly larger (1-2%), but allows rsync to synchronize.
+
+
config SECCOMP
bool "Enable seccomp to safely compute untrusted bytecode"
depends on PROC_FS


2005-11-17 01:54:38

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH] optional use "gzip --rsyncable" for bzImage

"Ph. Marek" <[email protected]> wrote:
>
> As (at least in debian) gzip has the "--rsyncable" parameter included,
> I'd like to suggest this patch to (configurable) use this for bzImage creation.

I'd doubt if this works with a compressed a.out. Most changes one would
make to a kernel at the source level will cause changes all over the
generated binary, so rsync will send the whole compressed file anyway.

For example, a few-byte change in size of a function will cause a huge
number of `call xxxxxxxx' opcodes to turn into `call xxxxxxxx+N'.

So I'll need some convincing. But even if convinced, this seems like an
exceedingly obscure thing that not many people would be interested in.

echo `/usr/bin/gzip --rsyncable $*' > ~/bin/gzip ;)

2005-11-19 00:35:07

by Alistair John Strachan

[permalink] [raw]
Subject: Re: [PATCH] optional use "gzip --rsyncable" for bzImage

On Thursday 17 November 2005 01:54, Andrew Morton wrote:
> "Ph. Marek" <[email protected]> wrote:
> > As (at least in debian) gzip has the "--rsyncable" parameter included,
> > I'd like to suggest this patch to (configurable) use this for bzImage
> > creation.
>
> I'd doubt if this works with a compressed a.out. Most changes one would
> make to a kernel at the source level will cause changes all over the
> generated binary, so rsync will send the whole compressed file anyway.
>
> For example, a few-byte change in size of a function will cause a huge
> number of `call xxxxxxxx' opcodes to turn into `call xxxxxxxx+N'.
>
> So I'll need some convincing. But even if convinced, this seems like an
> exceedingly obscure thing that not many people would be interested in.

Sounds like a patch for the debian kernel team, since GNU's latest alpha gzip
version doesn't support --rsyncable.

[alistair] 00:34 [~] gzip --rsyncable
gzip: unrecognized option `--rsyncable'
gzip 1.3.5

--
Cheers,
Alistair.

'No sense being pessimistic, it probably wouldn't work anyway.'
Third year Computer Science undergraduate.
1F2 55 South Clerk Street, Edinburgh, UK.