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

From: H. Peter Anvin
Date: Tue Dec 13 2011 - 13:26:22 EST


On 12/12/2011 03:10 PM, H. Peter Anvin wrote:
> 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.
>

One more thing, Maarten: could you please provide the full DMI
information of the affected system?

-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/