From: Maarten Lankhorst <m.b.lankhorst@gmail.com>
To: "H. Peter Anvin" <hpa@linux.intel.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>,
Matt Fleming <matt@console-pimps.org>,
Matthew Garrett <mjg@redhat.com>,
linux-kernel@vger.kernel.org, Ingo Molnar <mingo@elte.hu>,
Thomas Gleixner <tglx@linutronix.de>,
x86@kernel.org, Mike Waychison <mikew@google.com>,
Andi Kleen <andi@firstfloor.org>, Peter Jones <pjones@redhat.com>
Subject: Re: [PATCH] x86, efi: Break up large initrd reads
Date: Thu, 15 Dec 2011 00:33:54 +0100 [thread overview]
Message-ID: <4EE93262.2030206@gmail.com> (raw)
In-Reply-To: <4EE798CF.7080903@linux.intel.com>
Hey,
On 12/13/2011 07:26 PM, H. Peter Anvin wrote:
> 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?
>
When I was testing in increments of 1 mb, 4 mb was the magic number that caused a hang.
My system runs fine with 1mb and my original patch used that as blocksize.
What dmi information do you need? Top 2 entries from dmidecode, in case that's sufficient:
Handle 0x0001, DMI type 1, 27 bytes
System Information
Manufacturer: To Be Filled By O.E.M.
Product Name: To Be Filled By O.E.M.
Version: To Be Filled By O.E.M.
Serial Number: To Be Filled By O.E.M.
UUID: 03000200-0400-0500-0006-000700080009
Wake-up Type: Power Switch
SKU Number: To Be Filled By O.E.M.
Family: To Be Filled By O.E.M.
Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
Manufacturer: ASRock
Product Name: P67 Pro3
Version:
Serial Number:
Asset Tag:
Features:
Board is a hosting board
Board is replaceable
Location In Chassis:
Chassis Handle: 0x0003
Type: Motherboard
Contained Object Handles: 0
But I suspect the other p67 boards from asrock would be affected by the 4mb crash too.
~Maarten
next prev parent reply other threads:[~2011-12-14 23:34 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-17 10:40 [PATCH v5 00/10] x86 EFI boot stub Matt Fleming
2011-10-17 10:40 ` [PATCH 01/10] x86: Add missing bzImage fields to struct setup_header Matt Fleming
2011-10-17 10:40 ` [PATCH 02/10] x86, efi: Make efi_call_phys_prelog() CONFIG_RELOCATABLE-aware Matt Fleming
2011-10-17 10:40 ` [PATCH 03/10] x86: Don't use magic strings for EFI loader signature Matt Fleming
2011-10-17 10:40 ` [PATCH 04/10] efi.h: Add struct definition for boot time services Matt Fleming
2011-10-17 10:40 ` [PATCH v2 05/10] efi.h: Add efi_image_loaded_t Matt Fleming
2011-10-17 10:40 ` [PATCH 06/10] efi.h: Add allocation types for boottime->allocate_pages() Matt Fleming
2011-10-17 10:40 ` [PATCH v2 07/10] efi.h: Add graphics protocol guids Matt Fleming
2011-10-17 10:40 ` [PATCH 08/10] efi.h: Add boottime->locate_handle search types Matt Fleming
2011-10-17 10:40 ` [PATCH v2 09/10] efi: Add EFI file I/O data types Matt Fleming
2011-10-17 10:40 ` [PATCH v5 10/10] x86, efi: EFI boot stub support Matt Fleming
2011-10-17 16:39 ` Maarten Lankhorst
2011-10-17 18:28 ` Matt Fleming
2011-10-18 6:09 ` Ingo Molnar
2011-10-17 20:06 ` Maarten Lankhorst
2011-11-15 18:51 ` Matt Fleming
2011-11-23 0:44 ` Maarten Lankhorst
2011-11-23 19:27 ` Matt Fleming
2011-11-24 14:43 ` Maarten Lankhorst
2011-11-24 16:58 ` Maarten Lankhorst
2011-11-24 20:56 ` Matt Fleming
2011-11-24 21:07 ` Matthew Garrett
2011-11-24 21:31 ` Matt Fleming
2011-11-25 1:37 ` [PATCH] x86, efi: Break up large initrd reads Maarten Lankhorst
2011-11-25 8:48 ` Matt Fleming
2011-12-12 23:10 ` H. Peter Anvin
2011-12-13 18:26 ` H. Peter Anvin
2011-12-14 23:33 ` Maarten Lankhorst [this message]
2011-12-14 23:36 ` H. Peter Anvin
2011-12-16 12:30 ` [PATCH v2] " Maarten Lankhorst
2011-12-16 18:43 ` [tip:x86/efi] " tip-bot for Maarten Lankhorst
2011-12-10 2:37 ` [tip:x86/efi] x86: Add missing bzImage fields to struct setup_header tip-bot for Matt Fleming
2011-12-10 2:38 ` [tip:x86/efi] x86: Don't use magic strings for EFI loader signature tip-bot for Matt Fleming
2011-12-10 2:38 ` [tip:x86/efi] efi.h: Add struct definition for boot time services tip-bot for Matt Fleming
2011-12-10 2:39 ` [tip:x86/efi] efi.h: Add efi_image_loaded_t tip-bot for Matt Fleming
2011-12-10 2:40 ` [tip:x86/efi] efi.h: Add allocation types for boottime->allocate_pages() tip-bot for Matt Fleming
2011-12-10 2:41 ` [tip:x86/efi] efi.h: Add graphics protocol guids tip-bot for Matt Fleming
2011-12-10 2:42 ` [tip:x86/efi] efi.h: Add boottime->locate_handle search types tip-bot for Matt Fleming
2011-12-10 2:42 ` [tip:x86/efi] efi: Add EFI file I/O data types tip-bot for Matt Fleming
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=4EE93262.2030206@gmail.com \
--to=m.b.lankhorst@gmail.com \
--cc=andi@firstfloor.org \
--cc=hpa@linux.intel.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=matt@console-pimps.org \
--cc=mikew@google.com \
--cc=mingo@elte.hu \
--cc=mjg@redhat.com \
--cc=pjones@redhat.com \
--cc=tglx@linutronix.de \
--cc=x86@kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.