* [PATCH v2] defaultenv: use a compressed version when embedded in barebox
@ 2011-12-14 17:47 Jean-Christophe PLAGNIOL-VILLARD
2011-12-14 19:10 ` Eric Bénard
2011-12-14 20:01 ` Sascha Hauer
0 siblings, 2 replies; 4+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2011-12-14 17:47 UTC (permalink / raw)
To: barebox
with using gzip and the default env we can save 5.2KiB (5,352 bytes)
tested on sam9g20ek
before
-rwxr-xr-x 1 root root 265748 Dec 14 00:42 barebox.bin
after
-rwxr-xr-x 1 root root 260396 Dec 14 00:42 barebox.bin
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
---
v2:
fix the comment
Best Regards,
J.
common/Kconfig | 1 +
common/Makefile | 6 +++++-
common/startup.c | 23 +++++++++++++++++++++--
3 files changed, 27 insertions(+), 3 deletions(-)
diff --git a/common/Kconfig b/common/Kconfig
index 27464d1..ef5bba7 100644
--- a/common/Kconfig
+++ b/common/Kconfig
@@ -423,6 +423,7 @@ config PARTITION_DISK_DOS
config DEFAULT_ENVIRONMENT
bool
default y
+ select ZLIB
prompt "Compile in default environment"
help
Enabling this option will give you a default environment when
diff --git a/common/Makefile b/common/Makefile
index 9bce479..5cbaa1d 100644
--- a/common/Makefile
+++ b/common/Makefile
@@ -52,5 +52,9 @@ endif # ifdef CONFIG_DEFAULT_ENVIRONMENT
barebox_default_env: $(ENV_FILES)
$(Q)$(srctree)/scripts/genenv $(srctree) $(objtree) $(DEFAULT_ENVIRONMENT_PATH)
-include/generated/barebox_default_env.h: barebox_default_env
+barebox_default_env.gz: barebox_default_env FORCE
+ $(call if_changed,gzip)
+
+include/generated/barebox_default_env.h: barebox_default_env.gz
$(Q)cat $< | $(objtree)/scripts/bin2c default_environment > $@
+ echo "const int default_environment_uncompress_size=`stat -c%s barebox_default_env`;" >> $@
diff --git a/common/startup.c b/common/startup.c
index 13783fb..c68ac8b 100644
--- a/common/startup.c
+++ b/common/startup.c
@@ -63,11 +63,30 @@ static void display_meminfo(void)
#ifdef CONFIG_DEFAULT_ENVIRONMENT
#include <generated/barebox_default_env.h>
+#include <uncompress.h>
+
+void *defaultenv;
static int register_default_env(void)
{
- add_mem_device("defaultenv", (unsigned long)default_environment,
- sizeof(default_environment),
+ int ret;
+ void *tmp;
+
+ tmp = xzalloc(default_environment_size);
+ memcpy(tmp, default_environment, default_environment_size);
+
+ defaultenv = xzalloc(default_environment_uncompress_size);
+
+ ret = uncompress(tmp, default_environment_size, NULL, NULL,
+ defaultenv, NULL, uncompress_err_stdout);
+
+ free(tmp);
+
+ if (ret)
+ return ret;
+
+ add_mem_device("defaultenv", (unsigned long)defaultenv,
+ default_environment_uncompress_size,
IORESOURCE_MEM_WRITEABLE);
return 0;
}
--
1.7.7
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2] defaultenv: use a compressed version when embedded in barebox
2011-12-14 17:47 [PATCH v2] defaultenv: use a compressed version when embedded in barebox Jean-Christophe PLAGNIOL-VILLARD
@ 2011-12-14 19:10 ` Eric Bénard
2011-12-15 13:52 ` Jean-Christophe PLAGNIOL-VILLARD
2011-12-14 20:01 ` Sascha Hauer
1 sibling, 1 reply; 4+ messages in thread
From: Eric Bénard @ 2011-12-14 19:10 UTC (permalink / raw)
To: barebox
Hi,
Le 14/12/2011 18:47, Jean-Christophe PLAGNIOL-VILLARD a écrit :
> with using gzip and the default env we can save 5.2KiB (5,352 bytes)
>
> tested on sam9g20ek
> before
> -rwxr-xr-x 1 root root 265748 Dec 14 00:42 barebox.bin
> after
> -rwxr-xr-x 1 root root 260396 Dec 14 00:42 barebox.bin
>
what is the consequence on the boottime ?
Eric
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2] defaultenv: use a compressed version when embedded in barebox
2011-12-14 17:47 [PATCH v2] defaultenv: use a compressed version when embedded in barebox Jean-Christophe PLAGNIOL-VILLARD
2011-12-14 19:10 ` Eric Bénard
@ 2011-12-14 20:01 ` Sascha Hauer
1 sibling, 0 replies; 4+ messages in thread
From: Sascha Hauer @ 2011-12-14 20:01 UTC (permalink / raw)
To: Jean-Christophe PLAGNIOL-VILLARD; +Cc: barebox
On Wed, Dec 14, 2011 at 06:47:21PM +0100, Jean-Christophe PLAGNIOL-VILLARD wrote:
> with using gzip and the default env we can save 5.2KiB (5,352 bytes)
>
> tested on sam9g20ek
> before
> -rwxr-xr-x 1 root root 265748 Dec 14 00:42 barebox.bin
> after
> -rwxr-xr-x 1 root root 260396 Dec 14 00:42 barebox.bin
>
> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
> ---
> v2:
>
> fix the comment
Appearently you haven't read my mail. So to repeat myself:
> zlib is bigger than the uncompressed defaultenv.
This means that this step is only worth doing when zlib is selected
anyway. Otherwise you end up with 5Kb more: 10Kb zlib binary space + 3Kb
compressed env is bigger than 8Kb uncompressed defaultenv.
So my suggestion was:
> How about a
> config DEFAULT_ENVIRONMENT_COMPRESSED
> default y if ZLIB
> instead?
>
> -include/generated/barebox_default_env.h: barebox_default_env
> +barebox_default_env.gz: barebox_default_env FORCE
And also I asked:
> Do we need this FORCE? It triggers a new build everytime even when
> nothing has changed.
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2] defaultenv: use a compressed version when embedded in barebox
2011-12-14 19:10 ` Eric Bénard
@ 2011-12-15 13:52 ` Jean-Christophe PLAGNIOL-VILLARD
0 siblings, 0 replies; 4+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2011-12-15 13:52 UTC (permalink / raw)
To: Eric Bénard; +Cc: barebox
On 20:10 Wed 14 Dec , Eric Bénard wrote:
> Hi,
>
> Le 14/12/2011 18:47, Jean-Christophe PLAGNIOL-VILLARD a écrit :
> >with using gzip and the default env we can save 5.2KiB (5,352 bytes)
> >
> >tested on sam9g20ek
> >before
> >-rwxr-xr-x 1 root root 265748 Dec 14 00:42 barebox.bin
> >after
> >-rwxr-xr-x 1 root root 260396 Dec 14 00:42 barebox.bin
> >
> what is the consequence on the boottime ?
no difference nearly I've seen the same boot time
I've seen over 10 boots sometime 100ms differences (3 times)
but it manual check and my chrono can not be more preceise than 100ms
I've no scope to be more precise
Best Regards,
J.
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2011-12-15 13:56 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-12-14 17:47 [PATCH v2] defaultenv: use a compressed version when embedded in barebox Jean-Christophe PLAGNIOL-VILLARD
2011-12-14 19:10 ` Eric Bénard
2011-12-15 13:52 ` Jean-Christophe PLAGNIOL-VILLARD
2011-12-14 20:01 ` Sascha Hauer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox