From: Yinghai Lu <yinghai@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>,
Ingo Molnar <mingo@elte.hu>,
Ivan Kokshaysky <ink@jurassic.park.msu.ru>,
Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>,
Alex Chiang <achiang@hp.com>,
Bjorn Helgaas <bjorn.helgaas@hp.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>
Subject: Re: [PATCH 2/12] pci: add pci_bridge_release_unused_res and pci_bus_release_unused_bridge_res -v2
Date: Fri, 18 Dec 2009 17:20:35 -0800 [thread overview]
Message-ID: <4B2C2A63.9000408@kernel.org> (raw)
In-Reply-To: <alpine.LFD.2.00.0912181635170.3712@localhost.localdomain>
Linus Torvalds wrote:
>
> On Fri, 18 Dec 2009, Yinghai Lu wrote:
>> ok, please check attached is right or not
>>
>> +static void __release_child_resources(struct resource *r)
>> +{
>> + struct resource *tmp, *p;
>> + resource_size_t size;
>> +
>> + p = r->child;
>> + r->child = NULL;
>> + while (p) {
>> + tmp = p;
>> + p = p->sibling;
>> +
>> + tmp->parent = NULL;
>> + tmp->sibling = NULL;
>> + __release_child_resources(tmp);
>> +
>> + printk(KERN_DEBUG "release child resource %pR\n", tmp);
>> + /* need to restore size, and keep flags */
>> + size = resource_size(tmp);
>> + tmp->start = 0;
>> + tmp->end = size - 1;
>> + }
>> +}
>
> Ok, this looks mostly right. I do worry about the alignment information:
> you lose that thing for any resource that had IORESOURCE_STARTALIGN set
> when you do this thing. That's pretty fundamental to the whole resource
> code, I suspect we should just finally add a 'alignment' field to the
> resource struct, so that alignment doesn't get lost when a resource is
> allocated.
>
> (Do a "git grep IORESOURCE_.*ALIGN" to see the kind of stuff I'm talking
> about, and look at he PCI 'setup-bus.c' code that sets that STARTALIGN
> thing).
>
> So a preliminary ack on the resource.c parts. The rest I'm still a bit
> dubious about, and the whole "we've lost alignment on the resources" is
> probably indicative of how none of the resource code has ever really been
> designed for this kind of "tear down and build back up again" behavior.
arch/powerpc/kernel/pci_of_scan.c: flags |= IORESOURCE_SIZEALIGN;
drivers/pci/probe.c: res->flags |= pci_calc_resource_flags(l) | IORESOURCE_SIZEALIGN;
drivers/pci/probe.c: IORESOURCE_SIZEALIGN;
drivers/pci/setup-bus.c: b_res->flags |= IORESOURCE_STARTALIGN;
drivers/pci/setup-bus.c: b_res->flags |= IORESOURCE_STARTALIGN;
drivers/pci/setup-bus.c: b_res[0].flags |= IORESOURCE_IO | IORESOURCE_SIZEALIGN;
drivers/pci/setup-bus.c: b_res[1].flags |= IORESOURCE_IO | IORESOURCE_SIZEALIGN;
drivers/pci/setup-bus.c: b_res[2].flags |= IORESOURCE_MEM | IORESOURCE_PREFETCH | IORESOURCE_SIZEALIGN;
drivers/pci/setup-bus.c: b_res[3].flags |= IORESOURCE_MEM | IORESOURCE_SIZEALIGN;
drivers/pci/setup-bus.c: b_res[3].flags |= IORESOURCE_MEM | IORESOURCE_SIZEALIGN;
drivers/pci/setup-res.c: res->flags &= ~IORESOURCE_STARTALIGN;
drivers/staging/b3dfg/b3dfg.c: != (IORESOURCE_MEM | IORESOURCE_SIZEALIGN)) {
include/linux/ioport.h:#define IORESOURCE_SIZEALIGN 0x00020000 /* size indicates alignment */
include/linux/ioport.h:#define IORESOURCE_STARTALIGN 0x00040000 /* start field is alignment */
kernel/resource.c: switch (res->flags & (IORESOURCE_SIZEALIGN | IORESOURCE_STARTALIGN)) {
kernel/resource.c: case IORESOURCE_SIZEALIGN:
kernel/resource.c: case IORESOURCE_STARTALIGN:
looks like IORESOURCE_SIZEALIGN is only used by bridge.
and next round. pbus_size_mem will add that back again.
YH
next prev parent reply other threads:[~2009-12-19 1:21 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <4B2BE9DD.3040504@kernel.org>
2009-12-18 20:54 ` [PATCH 1/12] pci: separate pci_setup_bridge to small functions Yinghai Lu
2009-12-18 21:15 ` Linus Torvalds
2009-12-18 20:54 ` [PATCH 2/12] pci: add pci_bridge_release_unused_res and pci_bus_release_unused_bridge_res -v2 Yinghai Lu
2009-12-18 21:24 ` Linus Torvalds
2009-12-18 21:43 ` Jesse Barnes
2009-12-19 0:26 ` Yinghai Lu
2009-12-19 0:40 ` Linus Torvalds
2009-12-19 1:20 ` Yinghai Lu [this message]
2009-12-21 0:04 ` Bjorn Helgaas
2009-12-21 1:56 ` Yinghai Lu
2009-12-20 23:59 ` Bjorn Helgaas
2009-12-18 20:55 ` [PATCH 3/12] pci: don't dump it when bus resource flags is not used Yinghai Lu
2009-12-18 20:55 ` [PATCH 4/12] pci: add failed_list to record failed one for pci_bus_assign_resources -v2 Yinghai Lu
2009-12-20 23:45 ` Bjorn Helgaas
2009-12-21 1:44 ` Yinghai Lu
2009-12-18 20:55 ` [PATCH 5/12] pci: update leaf bridge res to get more big range in pci assign unssign -v3 Yinghai Lu
2009-12-18 20:55 ` [PATCH 6/12] pci: don't shrink bridge resources Yinghai Lu
2009-12-18 20:55 ` [PATCH 7/12] pci: introduce pci_assign_unassigned_bridge_resources -v2 Yinghai Lu
2009-12-18 20:55 ` [PATCH 8/12] pci: pciehp clean flow in pciehp_configure_device Yinghai Lu
2009-12-18 20:55 ` [PATCH 9/12] pci: pciehp second try to get big range for pcie devices -v2 Yinghai Lu
2009-12-18 20:55 ` [PATCH 10/12] pci: pci_bridge_release_res -v2 Yinghai Lu
2009-12-18 20:55 ` [PATCH 11/12] pciehp: add support for bridge resource reallocation -v2 Yinghai Lu
2009-12-18 20:55 ` [PATCH 12/12] pci: set PCI_PREF_RANGE_TYPE_64 in pci_bridge_check_ranges Yinghai Lu
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=4B2C2A63.9000408@kernel.org \
--to=yinghai@kernel.org \
--cc=achiang@hp.com \
--cc=bjorn.helgaas@hp.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 \
--cc=torvalds@linux-foundation.org \
/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