On 04/04/11 18:54, Blue Swirl wrote:
> On Mon, Apr 4, 2011 at 5:53 PM, Jes Sorensen <jes.soren...@redhat.com> wrote:
>> I understand that what you are proposing seems to work well enough for
>> your problem at hand. What I am saying is that adding a mechanism like
>> that, can cause problems for adding a more generic mechanism that
>> handles more advanced boards in the future. I much prefer a generic
>> solution than a simple hack.
> 
> We could have "-device RAM,base=xxx,size=yyy,id=DIMM1 -numa
> nodeid=zzz,memory=DIMM1" for fine tuned control.
> 
> But asking users to list and bind the DIMMs needed just to have some
> amount of RAM is a bit too much. So we also need a simple case (-m)
> and a simple check for the max memory.

I totally agree, but the suggestion I proposed earlier doesn't in any
way prevent this. If we use a table of valid memory locations for a
given board, then it is really easy for each board to provide a
validation function which accepts the amount or rejects it.

>> As I pointed out before, this is not a theoretical problem, most numa
>> systems have this issue, including many x86 boxes. I can see the problem
>> also existing with mips boards like the sb1250 ones I worked on many
>> years ago.
>>
>> Having an a table of valid ram locations for a board, will also give you
>> a framework to validate against if you want to be able to specify chunks
>> of memory at different areas of a board. This could be useful for
>> testing behavior that is like it would be if you have a system where
>> installing different DIMMs would split the RAM up differently.
> 
> Maybe we could remove some of memory logic in pc.c with this approach.

I believe it would simplify things a great deal, and have the benefit
that we can emulate things much more realistically. The only issue is
that it takes a little more work up front, but it really isn't a big deal.

Cheers,
Jes

Reply via email to