From: leizhen <thunder.leizhen@huawei.com>
To: Andrew Morton <akpm@linux-foundation.org>,
Geert Uytterhoeven <geert@linux-m68k.org>,
Josh Triplett <josh@joshtriplett.org>,
Peter Zijlstra <peterz@infradead.org>,
Paul Gortmaker <paul.gortmaker@windriver.com>,
"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
linux-kernel <linux-kernel@vger.kernel.org>
Cc: Zefan Li <lizefan@huawei.com>, Xinwei Hu <huxinwei@huawei.com>,
Zhen Lei <thunder.leizhen@huawei.com>
Subject: Fwd: [PATCH 1/1] init:add boot option "initramfs_packnum"
Date: Fri, 21 Nov 2014 11:46:42 +0800 [thread overview]
Message-ID: <546EB5A2.5050604@huawei.com> (raw)
In-Reply-To: <1415670134-8016-1-git-send-email-thunder.leizhen@huawei.com>
Hi erverbody! What about your opinion?
I run "scripts/get_maintainer.pl -f init/", but it displays no maintainer.
So this time, I added all people the result listed and added famous Linus Torvalds.
This patch is useful and no harmful.
-------- Original Message --------
Subject: [PATCH 1/1] init:add boot option "initramfs_packnum"
Date: Tue, 11 Nov 2014 09:42:14 +0800
From: Zhen Lei <thunder.leizhen@huawei.com>
To: Andrew Morton <akpm@linux-foundation.org>, Yinghai Lu <yinghai@kernel.org>, Mark Rustad <mark.d.rustad@intel.com>, linux-kernel <linux-kernel@vger.kernel.org>
CC: Zefan Li <lizefan@huawei.com>, Xinwei Hu <huxinwei@huawei.com>, Zhen Lei <thunder.leizhen@huawei.com>
During the development phase, we usually enlarge initrd-end to reserve more
memory than the initfs zip exactly occupied. Then we can easily add or delete
files in zip package, without generate fdt again and again. But unfortunately,
if too many zeros followed initfs zip, it will take a long time to break the
loop.
while (!message && len) {
... ...
if (!*buf) {
buf++;
... ...
continue;
}
So, use the boot option "initramfs_packnum" to specify how many zip packages
in each initrd area. When the specified number of packages decompressed in one
area, immediately terminate the loop. Have no impact on current use by default.
Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
---
init/initramfs.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/init/initramfs.c b/init/initramfs.c
index ad1bd77..356764f 100644
--- a/init/initramfs.c
+++ b/init/initramfs.c
@@ -446,12 +446,24 @@ static unsigned long my_inptr; /* index of next byte to be processed in inbuf */
#include <linux/decompress/generic.h>
+/* zero and negative means packages number is unlimited */
+static int initramfs_packnum __initdata;
+
+static __init int setup_initramfs_packnum(char *str)
+{
+ get_option(&str, &initramfs_packnum);
+
+ return 0;
+}
+early_param("initramfs_packnum", setup_initramfs_packnum);
+
static char * __init unpack_to_rootfs(char *buf, unsigned long len)
{
long written;
decompress_fn decompress;
const char *compress_name;
static __initdata char msg_buf[64];
+ int packnum = initramfs_packnum;
header_buf = kmalloc(110, GFP_KERNEL);
symlink_buf = kmalloc(PATH_MAX + N_ALIGN(PATH_MAX) + 1, GFP_KERNEL);
@@ -500,6 +512,9 @@ static char * __init unpack_to_rootfs(char *buf, unsigned long len)
this_header = saved_offset + my_inptr;
buf += my_inptr;
len -= my_inptr;
+
+ if (!(--packnum))
+ break;
}
dir_utime();
kfree(name_buf);
--
1.8.0
.
next prev parent reply other threads:[~2014-11-21 3:47 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-11 1:42 [PATCH 1/1] init:add boot option "initramfs_packnum" Zhen Lei
2014-11-21 3:46 ` leizhen [this message]
2014-11-21 4:02 ` Fwd: " Josh Triplett
2014-11-21 6:27 ` leizhen
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=546EB5A2.5050604@huawei.com \
--to=thunder.leizhen@huawei.com \
--cc=akpm@linux-foundation.org \
--cc=geert@linux-m68k.org \
--cc=huxinwei@huawei.com \
--cc=josh@joshtriplett.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lizefan@huawei.com \
--cc=paul.gortmaker@windriver.com \
--cc=paulmck@linux.vnet.ibm.com \
--cc=peterz@infradead.org \
--cc=torvalds@linux-foundation.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox