Re: [PATCH] initramfs: Support initrd that is bigger then 2G.

H. Peter Anvin
2014-06-20T05:07:21Z

On 06/19/2014 10:02 PM, Yinghai Lu wrote:
> On Thu, Jun 19, 2014 at 9:29 PM, H. Peter Anvin <hpa@zytor.com> wrote:
>> On 06/19/2014 07:12 PM, Yinghai Lu wrote:
>>>
>>> Also need to use that in write_buffer path for cpio that have file is
>>> more than file.
>>
>> That sentence doesn't make sense.
>
> I mean this path:
> unpack_to_rootfs ===> write_buffer ===> actions[].../do_copy
> and image is uncompressed cpio, and there is one big file (>2G) in that cpio.

Don't tell me, make the description clear so someone can understand it
10 years from now.
>>
>> 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.
>
> for initramfs, it is from ramdisk_image/ramdisk_size to tmpfs directly.
> and ramdisk_image/ramdisk_size get freed.
>
> for initrd, it is transferred to /initrd.image in tmpfs at first, and
> ramdisk_image/ramdisk_size
> get freed, at last /initrd.image is decompressed/copied to /dev/ram0
> and get removed
> from tempfs.
>
> So what do you mean "free the memory"?
>

For each of those transfers, we don't free the source memory until the
very end. We could free that memory as we process the input, requiring
less total memory.

-hpa