On 08/04/2011 12:32 AM, Geoff Levand wrote: > We need an explanation of this change.
I actually have a hard time understanding the reason for the existing behavior of hot-adding memory halfway through the boot process. Maybe you can shed some light on this? The reason for the change is that under the default GameOS LPAR, real mode memory is 16MB which is already tight for a kernel (under certain conditions) and runs out quickly as memory is allocated during kernel startup. Having region1 available sooner fixes this. Though, reviewing the code, I think I found a bug (that should already have a chance of happening as things stand now, though this patch might make it more likely): if storage bounce buffers or the ps3fb xdr happen to straddle the boundary between the regions, bad things will happen since they're not actually contiguous in LPAR space. This won't happen right now for ps3flash or ps3fb since those are allocated early out of bootmem, but it can currently happen for the other buffers (ps3disk, ps3vram, etc.) AFAICT. Maybe we should introduce a reserved or nonexistent page gap at the beginning of region1 to ensure that nothing will ever allocate contiguous memory across the boundary. That will probably prevent bootmem from grabbing region1 due to the gap, so early on memory will be tight. Can we get rid of the ps3flash and ps3fb preallocations to save bootmem and just allocate them during device init like the other drivers do? What is the reason for preallocating these? -- Hector Martin (hec...@marcansoft.com) Public Key: http://www.marcansoft.com/marcan.asc _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev