From: Wei Yang <weiyang@linux.vnet.ibm.com>
To: Yinghai Lu <yinghai@kernel.org>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
David Miller <davem@davemloft.net>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Wei Yang <weiyang@linux.vnet.ibm.com>, TJ <linux@iam.tj>,
Yijing Wang <wangyijing@huawei.com>,
Andrew Morton <akpm@linux-foundation.org>,
linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 00/49] PCI: Resource allocation cleanup for v4.3
Date: Fri, 17 Jul 2015 09:51:34 +0800 [thread overview]
Message-ID: <20150717015134.GA9087@richard> (raw)
In-Reply-To: <1436914040-13206-1-git-send-email-yinghai@kernel.org>
Yinghai,
Tested your latest for for-pci-v4.3-next branch, it works fine on my P8
machine.
BTW, the SRIOV works fine too. Previously failure is based on my mistake, I
have disabled SRIOV :-(
On Tue, Jul 14, 2015 at 03:46:31PM -0700, Yinghai Lu wrote:
>Hi,
>
>After 5b28541552ef (PCI: Restrict 64-bit prefetchable bridge windows
>to 64-bit resources), we have several reports on resource allocation
>failure, and we try to fix the problem with resource clip, and get
>more problems.
>
>One is realloc fail with two graphics cards above 4G.
>One is from sparc that have problem with clip as we don't parse
>mem64 for it.
>
>Other report is about pci remove/rescan does not work on some setup
>when BIOS tend to allocate small bus size.
>
>This patchset enhance resource allocation to address those problems.
>1. optimize bus mmio alignment calculation.
>2. optimize bus mmio optional alignment calculation.
>3. add support for alt size to prefer small bus size to small bus alignment.
> when we have small resource window on parent bridges.
>4. treat ROM bar as optional resource.
>5. during allocation, will pick up just fit resource.
>6. parse MEM64 for sparc and other system with OF.
>7. treat non-pref mmio64 if parent bridges are all pcie.
>8. restore old pref allocation logic if hostbridge does not support mmio64 really.
>9. don't realloc resource if device firmware does not support bar change.
>10. add pci=assign_pref_bars to clear and assign pref bars.
>11. don't clear resource when allocation fails.
>
>I put latest copy at:
> git://git.kernel.org/pub/scm/linux/kernel/git/yinghai/linux-yinghai.git for-pci-v4.3-next
>
>That is based on kind of v4.2-rc2.
>
>v2:
> - fix resource_disabled allocation from powerpc
> - other warnings that were found by Fengguang's build robot.
> - io port alignment clean up.
> - rebased to v4.2-rc2
> - better for two alt_size support.
>
>Thanks
>
>Yinghai
>
>Yinghai Lu (49):
> PCI: Cleanup res_to_dev_res() printout for addon resources
> PCI: Reuse res_to_dev_res in reassign_resources_sorted
> PCI: Use correct align for optional only resources during sorting
> PCI: Optimize bus align/size calculation during sizing
> PCI: Optimize bus align/size calculation for optional during sizing
> PCI: Don't add too much optional size for hotplug bridge mmio
> PCI: Reorder resources list for must/optional resources
> PCI: Remove duplicated code for resource sorting
> PCI: Rename pdev_sort_resources to pdev_check_resources
> PCI: Treat ROM resource as optional during realloc
> PCI: Add debug printout during releasing partial assigned resources
> PCI: Simplify res reference using in __assign_resourcs_sorted
> PCI: Separate realloc list checking after allocation
> PCI: Add __add_to_list()
> PCI: Cache window alignment value
> PCI: Check if resource is allocated before pci_assign
> PCI: Separate out save_resources/restore_resource
> PCI: Move comment to pci_need_to_release()
> PCI: Separate must+optional assigning to another function
> PCI: Skip must+optional if there is no optional addon
> PCI: Move saved required resource list out of must+optional assigning
> PCI: Add alt_size allocation support
> PCI: Add support for more than two alt_size under same bridge
> PCI: Better support for two alt_size
> PCI: Don't add too much optional size for hotplug bridge io
> PCI: Move ISA ioport align out of calculate_iosize
> PCI: Unifiy calculate_size for io port and mmio
> PCI: Allow optional only io resource must size to be 0
> PCI: Unify skip_ioresource_align()
> PCI: Kill macro checking for bus io port sizing
> resources: Split out __allocate_resource()
> resources: Make allocate_resource return just fit resource
> PCI: Check pref compatible bit for mem64 resource of pcie device
> PCI: Only treat non-pef mmio64 as pref if all bridges has MEM_64
> PCI: Add has_mem64 for host_bridge
> PCI: Only treat non-pef mmio64 as pref if host-bridge has_mem64
> PCI: Restore pref mmio allocation logic for hostbridge without mmio64
> sparc/PCI: Add mem64 resource parsing for root bus
> sparc/PCI: Add IORESOURCE_MEM_64 for 64-bit resource in of parsing
> powerpc/PCI: Add IORESOURCE_MEM_64 for 64-bit resource in of parsing
> of/PCI: Add IORESOURCE_MEM_64 for 64-bit resource
> PCI: Treat optional as must in first try for bridge rescan
> PCI: Get new realloc size for bridge for last try
> PCI: Don't release sibiling bridge resources during hotplug
> PCI: Don't release fixed resource for realloc
> PCI: Set resource to FIXED for lsi devices
> PCI, x86: Add pci=assign_pref_bars to re-allocate pref bars
> PCI: Introduce resource_disabled()
> PCI: Don't set flags to 0 when assign resource fail
>
> arch/alpha/kernel/pci.c | 2 +-
> arch/ia64/pci/pci.c | 4 +-
> arch/microblaze/pci/pci-common.c | 23 +-
> arch/mn10300/unit-asb2305/pci-asb2305.c | 4 +-
> arch/mn10300/unit-asb2305/pci.c | 4 +-
> arch/powerpc/kernel/pci-common.c | 27 +-
> arch/powerpc/kernel/pci_of_scan.c | 4 +-
> arch/powerpc/platforms/powernv/pci-ioda.c | 12 +-
> arch/s390/pci/pci.c | 2 +-
> arch/sparc/kernel/of_device_32.c | 5 +-
> arch/sparc/kernel/of_device_64.c | 5 +-
> arch/sparc/kernel/pci.c | 9 +-
> arch/sparc/kernel/pci_common.c | 15 +-
> arch/sparc/kernel/pci_impl.h | 1 +
> arch/x86/include/asm/pci_x86.h | 2 +-
> arch/x86/pci/common.c | 7 +-
> arch/x86/pci/i386.c | 72 +-
> arch/xtensa/kernel/pci.c | 4 +-
> drivers/iommu/intel-iommu.c | 3 +-
> drivers/of/address.c | 4 +-
> drivers/pci/bus.c | 6 +-
> drivers/pci/host/pcie-rcar.c | 2 +-
> drivers/pci/hotplug/acpiphp_glue.c | 1 +
> drivers/pci/iov.c | 2 +-
> drivers/pci/pci.c | 3 +-
> drivers/pci/pci.h | 4 +
> drivers/pci/probe.c | 44 +-
> drivers/pci/quirks.c | 20 +
> drivers/pci/rom.c | 2 +-
> drivers/pci/setup-bus.c | 1302 +++++++++++++++++++++--------
> drivers/pci/setup-res.c | 18 +-
> include/asm-generic/pci-bridge.h | 2 +
> include/linux/ioport.h | 6 +-
> include/linux/pci.h | 2 +
> kernel/resource.c | 175 +++-
> 35 files changed, 1325 insertions(+), 473 deletions(-)
>
>--
>1.8.4.5
--
Richard Yang
Help you, Help me
next prev parent reply other threads:[~2015-07-17 1:51 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-14 22:46 [PATCH v2 00/49] PCI: Resource allocation cleanup for v4.3 Yinghai Lu
2015-07-14 22:46 ` [PATCH v2 01/49] PCI: Cleanup res_to_dev_res() printout for addon resources Yinghai Lu
2015-07-14 22:46 ` [PATCH v2 02/49] PCI: Reuse res_to_dev_res in reassign_resources_sorted Yinghai Lu
2015-07-14 22:46 ` [PATCH v2 03/49] PCI: Use correct align for optional only resources during sorting Yinghai Lu
2015-07-14 22:46 ` [PATCH v2 04/49] PCI: Optimize bus align/size calculation during sizing Yinghai Lu
2015-07-14 22:46 ` [PATCH v2 05/49] PCI: Optimize bus align/size calculation for optional " Yinghai Lu
2015-07-14 22:46 ` [PATCH v2 06/49] PCI: Don't add too much optional size for hotplug bridge mmio Yinghai Lu
2015-07-14 22:46 ` [PATCH v2 07/49] PCI: Reorder resources list for must/optional resources Yinghai Lu
2015-07-14 22:46 ` [PATCH v2 08/49] PCI: Remove duplicated code for resource sorting Yinghai Lu
2015-07-14 22:46 ` [PATCH v2 09/49] PCI: Rename pdev_sort_resources to pdev_check_resources Yinghai Lu
2015-07-14 22:46 ` [PATCH v2 10/49] PCI: Treat ROM resource as optional during realloc Yinghai Lu
2015-07-14 22:46 ` [PATCH v2 11/49] PCI: Add debug printout during releasing partial assigned resources Yinghai Lu
2015-07-14 22:46 ` [PATCH v2 12/49] PCI: Simplify res reference using in __assign_resourcs_sorted Yinghai Lu
2015-07-14 22:46 ` [PATCH v2 13/49] PCI: Separate realloc list checking after allocation Yinghai Lu
2015-07-14 22:46 ` [PATCH v2 14/49] PCI: Add __add_to_list() Yinghai Lu
2015-07-14 22:46 ` [PATCH v2 15/49] PCI: Cache window alignment value Yinghai Lu
2015-07-14 22:46 ` [PATCH v2 16/49] PCI: Check if resource is allocated before pci_assign Yinghai Lu
2015-07-14 22:46 ` [PATCH v2 17/49] PCI: Separate out save_resources/restore_resource Yinghai Lu
2015-07-14 22:46 ` [PATCH v2 18/49] PCI: Move comment to pci_need_to_release() Yinghai Lu
2015-07-14 22:46 ` [PATCH v2 19/49] PCI: Separate must+optional assigning to another function Yinghai Lu
2015-07-14 22:46 ` [PATCH v2 20/49] PCI: Skip must+optional if there is no optional addon Yinghai Lu
2015-07-14 22:46 ` [PATCH v2 21/49] PCI: Move saved required resource list out of must+optional assigning Yinghai Lu
2015-07-14 22:46 ` [PATCH v2 22/49] PCI: Add alt_size allocation support Yinghai Lu
2015-07-14 22:46 ` [PATCH v2 23/49] PCI: Add support for more than two alt_size under same bridge Yinghai Lu
2015-07-14 22:46 ` [PATCH v2 24/49] PCI: Better support for two alt_size Yinghai Lu
2015-07-14 22:46 ` [PATCH v2 25/49] PCI: Don't add too much optional size for hotplug bridge io Yinghai Lu
2015-07-14 22:46 ` [PATCH v2 26/49] PCI: Move ISA ioport align out of calculate_iosize Yinghai Lu
2015-07-14 22:46 ` [PATCH v2 27/49] PCI: Unifiy calculate_size for io port and mmio Yinghai Lu
2015-07-14 22:46 ` [PATCH v2 28/49] PCI: Allow optional only io resource must size to be 0 Yinghai Lu
2015-07-14 22:47 ` [PATCH v2 29/49] PCI: Unify skip_ioresource_align() Yinghai Lu
2015-07-14 22:47 ` [PATCH v2 30/49] PCI: Kill macro checking for bus io port sizing Yinghai Lu
2015-07-14 22:47 ` [PATCH v2 31/49] resources: Split out __allocate_resource() Yinghai Lu
2015-07-14 22:47 ` [PATCH v2 32/49] resources: Make allocate_resource return just fit resource Yinghai Lu
2015-07-14 22:47 ` [PATCH v2 33/49] PCI: Check pref compatible bit for mem64 resource of pcie device Yinghai Lu
2015-07-14 22:47 ` [PATCH v2 34/49] PCI: Only treat non-pef mmio64 as pref if all bridges has MEM_64 Yinghai Lu
2015-07-14 22:47 ` [PATCH v2 35/49] PCI: Add has_mem64 for host_bridge Yinghai Lu
2015-07-14 22:47 ` [PATCH v2 36/49] PCI: Only treat non-pef mmio64 as pref if host-bridge has_mem64 Yinghai Lu
2015-07-14 22:47 ` [PATCH v2 37/49] PCI: Restore pref mmio allocation logic for hostbridge without mmio64 Yinghai Lu
2015-07-14 22:47 ` [PATCH v2 38/49] sparc/PCI: Add mem64 resource parsing for root bus Yinghai Lu
2015-07-14 22:47 ` [PATCH v2 39/49] sparc/PCI: Add IORESOURCE_MEM_64 for 64-bit resource in of parsing Yinghai Lu
2015-07-14 22:47 ` [PATCH v2 40/49] powerpc/PCI: " Yinghai Lu
2015-07-14 22:47 ` [PATCH v2 41/49] of/PCI: Add IORESOURCE_MEM_64 for 64-bit resource Yinghai Lu
2015-07-14 22:47 ` [PATCH v2 42/49] PCI: Treat optional as must in first try for bridge rescan Yinghai Lu
2015-07-14 22:47 ` [PATCH v2 43/49] PCI: Get new realloc size for bridge for last try Yinghai Lu
2015-07-14 22:47 ` [PATCH v2 44/49] PCI: Don't release sibiling bridge resources during hotplug Yinghai Lu
2015-07-14 22:47 ` [PATCH v2 45/49] PCI: Don't release fixed resource for realloc Yinghai Lu
2015-07-14 22:47 ` [PATCH v2 46/49] PCI: Set resource to FIXED for lsi devices Yinghai Lu
2015-07-14 22:47 ` [PATCH v2 47/49] PCI, x86: Add pci=assign_pref_bars to re-allocate pref bars Yinghai Lu
2015-07-14 22:47 ` [PATCH v2 48/49] PCI: Introduce resource_disabled() Yinghai Lu
2015-07-14 22:47 ` [PATCH v2 49/49] PCI: Don't set flags to 0 when assign resource fail Yinghai Lu
2015-07-17 1:51 ` Wei Yang [this message]
2015-07-17 3:59 ` [PATCH v2 00/49] PCI: Resource allocation cleanup for v4.3 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=20150717015134.GA9087@richard \
--to=weiyang@linux.vnet.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=benh@kernel.crashing.org \
--cc=bhelgaas@google.com \
--cc=davem@davemloft.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux@iam.tj \
--cc=wangyijing@huawei.com \
--cc=yinghai@kernel.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;
as well as URLs for NNTP newsgroup(s).