Re: [PATCH] x86: Fix DMI out of memory problems

From: Andi Kleen
Date: Fri Dec 21 2007 - 08:41:28 EST


On Tue, Dec 18, 2007 at 07:33:00PM -0500, Parag Warudkar wrote:
>
> People with HP Desktops (including me) encounter couple of DMI errors
> during boot - dmi_save_oem_strings_devices: out of memory and dmi_string:
> out of memory.
>
> On some HP desktops the DMI data include OEM strings (type 11) out of which
> only few are meaningful and most other are empty. DMI code religiously
> creates copies of these 27 strings (65ytes each in my case) and goes OOM
> in dmi_string().
>
> If DMI_MAX_DATA is bumped up a little then it goes and fails in
> dmi_save_oem_strings while allocating dmi_devices of sizeof(struct
> dmi_device) corresponding to these strings.
>
> On x86_64 since we cannot use alloc_bootmem this early, the code uses a

FWIW the ff tree has patches to allow "really early allocation" now.
They could be used for this. I didn't implement that for i386 though,
so that would still need some variant of your patch.

Disadvantage right now: e820 memory allocation currently rounds to pages
always. I intend to fix that though because it also wastes memory
with the memnodemap for once.

The forced page rounding was recently added as another bugfix, but that needs
to be reworked.

-Andi

ftp://ftp.firstfloor.org/pub/ak/quilt/patches/early-reserve
ftp://ftp.firstfloor.org/pub/ak/quilt/patches/early-alloc

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