RE: [PATCH][RFC] mm: Introduce kernelcore=reliable option

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> I understand if the mirrored regions are always at the start of the zone
> today, but is that somehow guaranteed going forward on all future hardware?
>
> I think it's important to at least consider what we would do if DMA32
> turned out to be non-reliable.

Current hardware can map one mirrored region from each memory controller.
We have two memory controllers per socket.  So on a 4-socket machine we will
usually have 8 separate mirrored ranges. Two per NUMA node (assuming
cluster on die is not enabled).

Practically I think it is safe to assume that any sane configuration will always
choose to mirror the <4GB range:

1) It's a trivial percentage of total memory on a system that supports mirror
(2GB[1] out of my, essentially minimal, 512GB[2] machine). So 0.4% ... why would
you not mirror it?
2) It contains a bunch of things that you are likely to want mirrored. Currently
our boot loaders put the kernel there (don't they??). All sorts of BIOS space that
might be accessed at any time by SMI is there.

BUT ... we might want the kernel to ignore its mirrored status precisely because
we want to make sure that anyone who really needs DMA or DMA32 allocations
is not prevented from using it.

-Tony

[*] 2GB-4GB is MMIO space, so only 2GB of actual memory below the 4GB line.
[2] Big servers should always have at least one DIMM populated in every channel
to provide enough memory bandwidth to feed all the cores. This machine has
4 sockets * 2 memory controllers * 4 channels = 32 total. Fill them with a single
16GB DIMM each gives 512G. Big systems can use larger DIMMs, and fill up to
3 DIMMS on each channel.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]