[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <53A3B8B7.70806@zytor.com>
Date: Thu, 19 Jun 2014 21:29:43 -0700
From: "H. Peter Anvin" <hpa@...or.com>
To: Yinghai Lu <yinghai@...nel.org>,
Andrew Morton <akpm@...ux-foundation.org>,
Ingo Molnar <mingo@...e.hu>
CC: Tetsuo Handa <penguin-kernel@...ove.sakura.ne.jp>,
"Daniel M. Weeks" <dan@...weeks.net>, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] initramfs: Support initrd that is bigger then 2G.
On 06/19/2014 07:12 PM, Yinghai Lu wrote:
> When initrd (compressed or not) is used, kernel report data corrupted
> with /dev/ram0.
>
> The root cause:
> During initramfs checking, if it is initrd, it will be transferred to
> /initrd.image with sys_write.
> sys_write only support 2G-4K write, so if the initrd ram is more than
> that, /initrd.image will not complete at all.
>
> Add local sys_write_large to loop calling sys_write to workaround the
> problem.
>
> Also need to use that in write_buffer path for cpio that have file is
> more than file.
That sentence doesn't make sense.
> At the same time, we don't need to worry about sys_read/sys_write in
> do_mounts_rd.c::crd_load. As decompressor will have fill/flush that
> means it will allocate buffer and buffer is smaller than 2G.
>
> Test with uncompressed initrd, and compressed with gz, bz2, lzma,xz,
> lzop.
>
> Signed-off-by: Yinghai Lu <yinghai@...nel.org>
I would call this function xwrite(), which is usually called in userspace.
It would be nice in order to support very large initrd/initramfs, to
free the memory as it becomes available instead of requiring two copies
of the data in memory at the same time.
Otherwise,
Acked-by: H. Peter Anvin <hpa@...or.com>
-hpa
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists