[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20120510033551.GA25138@richard>
Date: Thu, 10 May 2012 11:35:51 +0800
From: Richard Yang <weiyang@...ux.vnet.ibm.com>
To: Yinghai Lu <yinghai@...nel.org>
Cc: Richard Yang <weiyang@...ux.vnet.ibm.com>,
Wei Yang <weiyang.kernel@...il.com>, linux-pci@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: One problem in reassign pci bus number?
On Mon, May 07, 2012 at 08:42:59PM -0700, Yinghai Lu wrote:
>>>no, probe_resource will get from start if space is big enough.
>>>
>>>if not, it will try to extend top.
>>
>> Hmm... for example we still have this
>> parent[70-160]
>> brother1[70-80] res[90-150] brother2[151-160]
>> ->child[105-140]
>>
>> if we call probe_resource(res, new_res, 16, par, 1, 0xff,
>> IORESOURCE_PCI_FIXED);
>>
>> I think this call is used to allocate a res of size 16 under res.
>> When there is no enough free space, it will expend res, and res->parent.
>>
>> While in this situation, res doesn't have enough free space. so it need
>> to expend itself.
>>
>> In the probe_resource() it tries to extend res on the right side.
>> So even there is enough space between brother1 and res, I think the
>> probe_resource() will not return 0.
>>
>> Do you think my analysis is correct?
>
>it will reduce needed size one by one. so at last it will return
>[91, 104]
Yes, agree. This is the current behavior.
While in this case.
70-160]
brother1[70-80] res[90-150] brother151-160]
->child
There is free space between 81-89, and 90-104. These two free range add
up to 25, which is more than the required space, 16.
If we have this resource tree.
parent[70-180]
brother1[70-80] re[90-150] brothr2[170-180]
d[105-140]
There are enough free space between res and brother2.
Then probe_resource will return [141-156] with size 16.
And also expend res.
So I mean this is the design decision to not count in the free space on
the left? Even there is enough free space?
>
>Yinghai
--
Richard Yang
Help you, Help me
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists