Re: [PATCH] x86, efi: Break up large initrd reads

From: H. Peter Anvin
Date: Mon Dec 12 2011 - 18:10:56 EST


On 11/25/2011 12:48 AM, Matt Fleming wrote:
> On Fri, 2011-11-25 at 02:37 +0100, Maarten Lankhorst wrote:
>> The efi boot stub tries to read the entire initrd in 1 go,
>> however some efi implementations hang if too much if asked
>> to read too much data at the same time. After some
>> experimentation I found out that my asrock p67 board will
>> hang if asked to read chunks of 4mb, so use a safe value.
>>
>> From elilo source code:
>> /*
>> * We load by chunks rather than a single big read because
>> * early versions of EFI had troubles loading files
>> * from floppies in a single big request. Breaking
>> * the read down into chunks of 4KB fixed that
>> * problem. While this problem has been fixed, we still prefer
>> * this method because it tells us whether or not we're making
>> * forward progress.
>> */
>>
>> While the comment says 4KB, it's using 4 * EFI_PAGE_SIZE (16KB),
>> so I went by the safest route of following elilo here.
>>

I'm going to NAK this, because I think the performance impact is too
severe. I would like to set the cap at 1 MiB for now, unless we can
identify platforms where *that* is known to fail.

Maarten, would you be willing to rev your patch? Furthermore, please
make the maximum chunksize a define.

-hpa

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/