On 04/04/11 16:42, Peter Maydell wrote:
> On 4 April 2011 15:29, Jes Sorensen <jes.soren...@redhat.com> wrote:
>>> Yes, I agree, so we shouldn't try to specify some complicated
>>> set of static data that still won't be good enough.
>>>
>>> I'm trying to make it easy for boards to avoid crashing horribly
>>> when the user passes a bad value; that's all.
>>
>> If you don't validate properly, is there really a point in introducing
>> that value anyway? From what you write, it sounds like it can still fail
>> for some limits of the memory valid if the config is wrong?
> 
> For the boards I care about (the ARM ones), the only validation
> requirement is that we don't allow the user to specify so much
> ram that we overlap physical RAM with I/O space. So ram_size is
> good enough. For the sun4m boards we can assume that the only
> validation they need is a ram_size check, because that's all they
> do at the moment and nobody's complaining that I know of.

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.

>> It still seems to me it would be better to have the boards present a
>> table of valid memory ranges so we can do a proper validation of the valud?
> 
> If you have a concrete example of multiple boards which we currently model
> and which require this level of flexibility to avoid odd misbehaviour trying
> to run a guest, then please point them out and I'll look at expanding the
> patch to cover their requirements.
> 
> If this is just a theoretical issue, then I think we should only add the
> extra generic framework code if and when we turn out to need 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.

Jes

Reply via email to