public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Yinghai Lu <yinghai@kernel.org>
To: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	Alex Chiang <achiang@hp.com>,
	Bjorn Helgaas <bjorn.helgaas@hp.com>, Ingo Molnar <mingo@elte.hu>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Subject: Re: [PATCH 1/2] pci: release that leaf bridge' resource that is not big -v11
Date: Tue, 24 Nov 2009 15:18:05 -0800	[thread overview]
Message-ID: <4B0C69AD.3030106@kernel.org> (raw)
In-Reply-To: <4B0B3C13.9030502@jp.fujitsu.com>

Kenji Kaneshige wrote:
> Yinghai Lu wrote:
>> Kenji Kaneshige wrote:
>>> Hi,
>>>
>>> I tried v11 patches. This version seems to fix the problem I
>>> reported against previous version.
>>>
>>> I have no objection against the idea of resource allocation
>>> changes for PCI express hotplug slots.
>>
>> thanks
>>
>>> But I still have concern about changing resource allocation for
>>> other than PCI express hotplug slots. For example, some hotplug
>>> controller other than PCI express can have multiple slots under
>>> the same bus. If some hotplug slots are occupied and the others
>>> are empty at the boot time, I think your code try to shrink the
>>> bus resources for hotplug slots allocated by BIOS. It would break
>>> the hot-add on the empty slots due to the resource allocation
>>> failure.
>>
>> no,
>> it will not touch bridge resources that already assigned by BIOS except
>> some bridge resource is not big enough. and get big one for them.
>>
> 
> Ok, I understood that if the BIOS assigns enough resources to the
> bridge, it has no impact.
> 
> One question. I thought your patch shrinks the bridge resource to
> allocate enough resource for sibling bridge. But it actually doesn't.
> Right?

please check if this one could fix the shrinking bridge resource problem...

[PATCH] pci: don't shrink bridge resources

when we are clearing leaf bridge resource and try to get big one, we could shrink the bridge if
there resource under it.

let check with old resource size and make sure we are trying to get big one.

Signed-off-by: Yinghai Lu <yinghai@kernel.org>

---
 drivers/pci/setup-bus.c |   22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

Index: linux-2.6/drivers/pci/setup-bus.c
===================================================================
--- linux-2.6.orig/drivers/pci/setup-bus.c
+++ linux-2.6/drivers/pci/setup-bus.c
@@ -432,7 +432,7 @@ static void pbus_size_io(struct pci_bus
 {
 	struct pci_dev *dev;
 	struct resource *b_res = find_free_bus_resource(bus, IORESOURCE_IO);
-	unsigned long size = 0, size1 = 0;
+	unsigned long size = 0, size1 = 0, old_size;
 
 	if (!b_res)
  		return;
@@ -457,17 +457,18 @@ static void pbus_size_io(struct pci_bus
 	}
 	if (size < min_size)
 		size = min_size;
+	old_size = resource_size(b_res);
+	if (old_size == 1)
+		old_size = 0;
 /* To be fixed in 2.5: we should have sort of HAVE_ISA
    flag in the struct pci_bus. */
 #if defined(CONFIG_ISA) || defined(CONFIG_EISA)
 	size = (size & 0xff) + ((size & ~0xffUL) << 2);
 #endif
 	size = ALIGN(size + size1, 4096);
+	if (size < old_size)
+		size = old_size;
 	if (!size) {
-		if (b_res->start || b_res->end)
-			dev_info(&bus->self->dev, "disabling bridge window "
-				 "%pR to [bus %02x-%02x] (unused)\n", b_res,
-				 bus->secondary, bus->subordinate);
 		b_res->flags = 0;
 		return;
 	}
@@ -483,7 +484,7 @@ static int pbus_size_mem(struct pci_bus
 			 unsigned long type, resource_size_t min_size)
 {
 	struct pci_dev *dev;
-	resource_size_t min_align, align, size;
+	resource_size_t min_align, align, size, old_size;
 	resource_size_t aligns[12];	/* Alignments from 1Mb to 2Gb */
 	int order, max_order;
 	struct resource *b_res = find_free_bus_resource(bus, type);
@@ -533,6 +534,11 @@ static int pbus_size_mem(struct pci_bus
 	}
 	if (size < min_size)
 		size = min_size;
+	old_size = resource_size(b_res);
+	if (old_size == 1)
+		old_size = 0;
+	if (size < old_size)
+		size = old_size;
 
 	align = 0;
 	min_align = 0;
@@ -549,10 +555,6 @@ static int pbus_size_mem(struct pci_bus
 	}
 	size = ALIGN(size, min_align);
 	if (!size) {
-		if (b_res->start || b_res->end)
-			dev_info(&bus->self->dev, "disabling bridge window "
-				 "%pR to [bus %02x-%02x] (unused)\n", b_res,
-				 bus->secondary, bus->subordinate);
 		b_res->flags = 0;
 		return 1;
 	}

  parent reply	other threads:[~2009-11-24 23:19 UTC|newest]

Thread overview: 129+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-21  7:19 [PATCH] pci: pciehp update the slot bridge res to get big range for pcie devices Yinghai Lu
2009-10-21 18:57 ` Alex Chiang
2009-10-22  0:29   ` [PATCH] pci: pciehp update the slot bridge res to get big range for pcie devices - v2 Yinghai Lu
2009-10-26  4:54 ` [PATCH] pci: pciehp update the slot bridge res to get big range for pcie devices Kenji Kaneshige
2009-10-26  5:49   ` Yinghai Lu
2009-10-26  7:48     ` Kenji Kaneshige
2009-10-26  8:25       ` Yinghai Lu
2009-10-26 10:27         ` Kenji Kaneshige
2009-10-26 17:59           ` Yinghai Lu
2009-10-26 18:52             ` Yinghai Lu
2009-10-28  8:31               ` Kenji Kaneshige
2009-10-28 17:44                 ` Yinghai Lu
2009-10-28 17:52                   ` Bjorn Helgaas
2009-10-28 18:37                     ` Yinghai Lu
2009-10-28 19:00                   ` Eric W. Biederman
2009-10-28 19:12                     ` Yinghai Lu
2009-10-28 19:36                       ` Eric W. Biederman
2009-10-28 19:50                         ` Yinghai Lu
2009-10-28 21:30                           ` Eric W. Biederman
2009-10-28 21:39                             ` Yinghai Lu
2009-10-28 22:25                               ` Yinghai Lu
2009-10-28 22:26                                 ` Yinghai Lu
2009-10-29  8:16                                 ` Eric W. Biederman
2009-10-29  9:03                                   ` Yinghai Lu
2009-10-29 15:43                                     ` Eric W. Biederman
2009-10-29 17:00                                       ` Yinghai Lu
2009-10-29 19:48                                         ` Eric W. Biederman
2009-10-29 19:55                                           ` Yinghai Lu
2009-10-30  8:36                                           ` [PATCH 1/2] pci: release that leaf bridge' resource that is not big -v8 Yinghai Lu
2009-10-30  8:37                                             ` [PATCH 2/2] pci: pciehp update the slot bridge res to get big range for pcie devices - v8 Yinghai Lu
2009-11-10  8:00                                             ` [PATCH 1/2] pci: release that leaf bridge' resource that is not big -v8 Kenji Kaneshige
2009-10-29 13:21                                   ` [PATCH] pci: pciehp update the slot bridge res to get big range for pcie devices Bjorn Helgaas
2009-10-29 15:13                                     ` Eric W. Biederman
2009-10-29 15:43                                       ` Bjorn Helgaas
2009-10-29 19:28                                         ` Eric W. Biederman
2009-10-29 19:36                                           ` Bjorn Helgaas
     [not found]                     ` <4AE89933.8030809@kernel.org>
2009-10-28 19:20                       ` [PATCH 2/2] pci: only release that resource index is less than 3 -v5 Yinghai Lu
2009-10-29  6:34                         ` Kenji Kaneshige
2009-10-29  9:03                           ` Yinghai Lu
2009-10-28 19:21                     ` [PATCH 1/2] pci: pciehp update the slot bridge res to get big range for pcie devices - v4 Yinghai Lu
2009-10-29  8:28                       ` Kenji Kaneshige
2009-10-29  8:30                         ` Yinghai Lu
2009-10-29  8:55                           ` Kenji Kaneshige
2009-10-29  8:57                             ` Yinghai Lu
2009-10-29  9:52                             ` [PATCH 1/2] pci: release that leaf bridge' resource index is not used -v6 Yinghai Lu
2009-10-29 16:31                               ` Jesse Barnes
2009-10-29 17:10                                 ` Yinghai Lu
2009-10-29 17:51                                   ` Jesse Barnes
     [not found]                             ` <4AE9657F.7010302@kernel.org>
2009-10-29  9:52                               ` [PATCH 2/2] pci: pciehp update the slot bridge res to get big range for pcie devices - v5 Yinghai Lu
2009-11-04 17:30                                 ` Jesse Barnes
2009-11-04 18:52                                   ` Yinghai Lu
2009-11-05  1:40                                     ` [PATCH 1/2] pci: release that leaf bridge' resource that is not big -v9 Yinghai Lu
2009-11-05  1:40                                       ` [PATCH 2/2] pci: pciehp update the slot bridge res to get big range for pcie devices - v9 Yinghai Lu
2009-11-05 20:47                                         ` Alex Chiang
2009-11-05 21:06                                           ` Yinghai Lu
2009-11-07  5:41                                         ` [PATCH 2/2] pci: pciehp update the slot bridge res to get big range for pcie devices - v10 Yinghai Lu
2009-11-07  5:43                                         ` Yinghai Lu
2009-11-10  8:07                                           ` Kenji Kaneshige
2009-11-10  9:48                                             ` Yinghai Lu
2009-11-13  6:08                                               ` Kenji Kaneshige
2009-11-13  6:26                                                 ` Yinghai Lu
2009-11-13  8:33                                                   ` Kenji Kaneshige
2009-11-14  8:50                                                     ` [PATCH 1/2] pci: release that leaf bridge' resource that is not big -v11 Yinghai Lu
2009-11-24  1:08                                                       ` Kenji Kaneshige
2009-11-24  1:14                                                         ` Yinghai Lu
     [not found]                                                           ` <4B0B3C13.9030502@jp.fujit! su.com>
2009-11-24  1:51                                                           ` Kenji Kaneshige
2009-11-24  2:32                                                             ` Yinghai Lu
2009-11-24 23:18                                                             ` Yinghai Lu [this message]
2009-11-25 11:24                                                               ` Kenji Kaneshige
2009-11-25 11:25                                                                 ` [PATCH 1/2] pciehp: remove redundancy in bridge resource allocation Kenji Kaneshige
2009-11-25 17:37                                                                   ` Yinghai Lu
2009-11-25 11:27                                                                 ` [PATCH 2/2] pciehp: add support for bridge resource reallocation Kenji Kaneshige
2009-11-25 17:44                                                                 ` [PATCH 1/2] pci: release that leaf bridge' resource that is not big -v11 Yinghai Lu
2009-11-26  6:43                                                                   ` Kenji Kaneshige
2009-11-26  7:30                                                                     ` Yinghai
2009-11-27  7:12                                                                       ` Kenji Kaneshige
2009-11-27  7:52                                                                         ` Yinghai Lu
2009-11-27  8:26                                                                           ` Kenji Kaneshige
2009-11-27 23:13                                                                             ` Yinghai Lu
2009-11-25 19:58                                                                 ` [PATCH 0/9] pci: update pci bridge resource to get more big range for devices under it - v12 Yinghai Lu
     [not found]                                                                 ` <4B0D88A4.5050904@kerne! l.org>
     [not found]                                                                   ` <4B0D88A4.5050904@kernel.org>
2009-11-25 19:59                                                                     ` [PATCH 1/9] pci: separate pci_setup_bridge to small functions Yinghai Lu
2009-11-25 19:59                                                                     ` [PATCH 2/9] pci: add pci_bridge_release_unused_res and pci_bus_release_unused_bridge_res Yinghai Lu
2009-11-25 19:59                                                                     ` [PATCH 3/9] pci: don't dump it when bus resource flags is not set Yinghai Lu
2009-11-25 19:59                                                                     ` [PATCH 4/9] pci: add failed_list to record failed one for pci_bus_assign_resources Yinghai Lu
2009-11-25 19:59                                                                     ` [PATCH 5/9] pci: update leaf bridge res to get more big range in pci assign unssign Yinghai Lu
2009-11-25 19:59                                                                     ` [PATCH 6/9] pci: don't shrink bridge resources Yinghai Lu
2009-11-25 19:59                                                                     ` [PATCH 7/9] pci: introduce pci_assign_unassigned_bridge_resources Yinghai Lu
2009-11-25 19:59                                                                     ` [PATCH 8/9] pci: pciehp clean flow in pciehp_configure_device Yinghai Lu
2009-11-25 19:59                                                                     ` [PATCH 9/9] pci: pciehp second try to get big range for pcie devices Yinghai Lu
2009-11-28  7:34                                                                 ` [PATCH 0/9] pci: update pci bridge resource to get more big range for devices under it - v13 Yinghai Lu
2009-11-28  8:15                                                                   ` Yinghai Lu
2009-11-30  7:10                                                                   ` Kenji Kaneshige
2009-11-30  7:14                                                                     ` Yinghai Lu
2009-11-30  7:26                                                                       ` Kenji Kaneshige
2009-11-30  7:43                                                                         ` Yinghai Lu
2009-11-30  8:19                                                                         ` Yinghai Lu
2009-11-30  8:44                                                                           ` Kenji Kaneshige
2009-12-16 20:54                                                                   ` Jesse Barnes
2009-12-16 21:11                                                                     ` Alex Chiang
2009-12-16 22:21                                                                       ` Yinghai Lu
2009-12-16 22:27                                                                       ` Yinghai Lu
2009-12-16 22:44                                                                         ` Alex Chiang
     [not found]                                                                 ` <4B10D084.8070608@kerne! l.org>
     [not found]                                                                   ` <4B10D084.8070608@kernel.org>
2009-11-28  7:34                                                                     ` [PATCH 1/9] pci: separate pci_setup_bridge to small functions Yinghai Lu
2009-12-16 20:41                                                                       ` Jesse Barnes
2009-12-17 11:03                                                                         ` Rolf Eike Beer
2009-11-28  7:35                                                                     ` [PATCH 2/9] pci: add pci_bridge_release_unused_res and pci_bus_release_unused_bridge_res Yinghai Lu
2009-12-16 20:49                                                                       ` Jesse Barnes
2009-12-16 22:19                                                                         ` Yinghai Lu
2009-11-28  7:35                                                                     ` [PATCH 3/9] pci: don't dump it when bus resource flags is not used Yinghai Lu
2009-12-16 20:50                                                                       ` Jesse Barnes
2009-12-16 22:20                                                                         ` Yinghai Lu
2009-11-28  7:35                                                                     ` [PATCH 4/9] pci: add failed_list to record failed one for pci_bus_assign_resources -v2 Yinghai Lu
2009-11-28  7:35                                                                     ` [PATCH 5/9] pci: update leaf bridge res to get more big range in pci assign unssign -v2 Yinghai Lu
2009-11-30 21:55                                                                       ` [PATCH 5/9] pci: update leaf bridge res to get more big range in pci assign unssign -v3 Yinghai Lu
2009-11-28  7:36                                                                     ` [PATCH 6/9] pci: don't shrink bridge resources Yinghai Lu
2009-11-28  7:36                                                                     ` [PATCH 7/9] pci: introduce pci_assign_unassigned_bridge_resources -v2 Yinghai Lu
2009-11-28  7:36                                                                     ` [PATCH 8/9] pci: pciehp clean flow in pciehp_configure_device Yinghai Lu
2009-11-28  7:36                                                                     ` [PATCH 9/9] pci: pciehp second try to get big range for pcie devices -v2 Yinghai Lu
2009-12-01  1:19                                                                       ` [PATCH 1/2] pci: pci_bridge_release_res Yinghai Lu
2009-12-07 21:42                                                                         ` Patrick Keller
2009-12-07 21:57                                                                           ` Yinghai Lu
2009-12-01  1:21                                                                       ` [PATCH 2/2] pciehp: add support for bridge resource reallocation -v2 Yinghai Lu
2009-11-14  8:51                                                     ` [PATCH 2/2] pci: pciehp update the slot bridge res to get big range for pcie devices - v11 Yinghai Lu
2009-10-26  8:27       ` [PATCH] pci: pciehp update the slot bridge res to get big range for pcie devices - v3 Yinghai Lu
2009-10-27  8:09         ` [PATCH 1/4] pci: pciehp update the slot bridge res to get big range for pcie devices - v4 Yinghai Lu
     [not found]         ` <4AE6A9CA.4060106@kernel.org>
2009-10-27  8:09           ` [PATCH 2/4] pci: revert "get larger bridge ranges when space is available" Yinghai Lu
2009-10-27  8:10           ` [PATCH 3/4] pci: only release that resource index is less than 3 -v3 Yinghai Lu
2009-10-27  8:10           ` [PATCH 4/4] pci: remove min_size for hotplug bridge Yinghai Lu
2009-10-27  9:20             ` Eric W. Biederman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4B0C69AD.3030106@kernel.org \
    --to=yinghai@kernel.org \
    --cc=achiang@hp.com \
    --cc=bjorn.helgaas@hp.com \
    --cc=ebiederm@xmission.com \
    --cc=ink@jurassic.park.msu.ru \
    --cc=jbarnes@virtuousgeek.org \
    --cc=kaneshige.kenji@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=mingo@elte.hu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox