Re: [PATCH 1/2 v2] x86: add max_addr boot option

Kamezawa Hiroyuki
2012-06-14T02:09:28Z

(2012/06/13 13:59), Rob Landley wrote:
> On 06/12/2012 08:55 PM, Kamezawa Hiroyuki wrote:
>>>> Currently, I only need to ignore the memory. If we need to ignore a
>>>> node,
>>>> "numa_node=" or similar parameter is a better choice.
>>>
>>> Doesn't the end user have to know the memory map of the system to use
>>> "max_addr="? How do you know what value to supply? Do you have to
>>> attempt a boot once to discover the highest address on node 0? What
>>> if node 0 and node 1 memory are interleaved, so there's some node 1
>>> memory below the highest node 0 address?
>>
>> Current our plan is to avoid asking end-user to fix their boot option by
>> hand even if memory size per node is changed. We'll ship a hardware, which has
>> _fixed_ physical address range per each node regardless of equipped
>> memory size.
>
> I.E. you'll be configuring this yourself when you ship hardware.
>

yes.

> You're adding an option because you consider it less confusing for your
> end users who are digging into kernel parameters, but you will set this
> new option for your users because they haven't got the information to
> set it themselves?
>

My users don't need to know about hardware settings and the meaning of
kernel params. They'll just do as we ask to do.

>> Problem happens => reboot (disable some DIMM) => remove memmap= option
>> for avoiding
>> trouble => check memory layout again =>fix mem_map= => reboot again.
>> This reboot takes much time because the system which have
>> Dynamic-partitioning tends to
>> be big....so, we'd like to have some _relaxed_ way to specify the region
>> of memory.
>>
>> Problem happens => reboot (disable some DIMM) => no changes required
>> (because we have enough memory hole between Node0 and Node1.)
>
> I'm guessing the above means "or you'll be providing some tool that does
> it when they install/remove memory in the hardware"...
>
>> BTW, how do you think about mem= boot option which works as max_addr=,
>> now ?
>> This caused troubles some times on our support-desk, saying
>> Q. I specified mem=8G boot option but it seems the system has only 7GB....
>> A. it's because of PCI configuration area on 3G-4G address range...
>
> So you're saying there are already two ways to do this, but you want to
> add a third to be less confusing for end users who are modifying the
> linux kernel boot parameters by hand using information only you can
> supply to them?
>
> I'm confused...
>

I'm just saying current mem= implemenation seems buggy because spec. and
impl. doesn't match. So, we're just afraid that someone other than us
will fix it and break our assumption how mem= works. It's dangerous to
build a production on a feature where spec. and impl. doesn't match.
So, we proposed to add max_addr= option for avoiding that situation.

Reading threads, it seems Maintainers says that current 'mem=' have been working
for many years and it's not buggy, it works as expected. It seems no one
will be able to change the implementation. Then, we're okay with using mem=.
We'll just implement mem= option for efi environment. And try to fix the spec.
if possible.

Thanks,
-Kame