Cover Letter Detail
Show a cover letter.
GET /api/covers/818664/?format=api
{ "id": 818664, "url": "http://patchwork.ozlabs.org/api/covers/818664/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-pci/cover/20170926141720.25067-1-mika.westerberg@linux.intel.com/", "project": { "id": 28, "url": "http://patchwork.ozlabs.org/api/projects/28/?format=api", "name": "Linux PCI development", "link_name": "linux-pci", "list_id": "linux-pci.vger.kernel.org", "list_email": "linux-pci@vger.kernel.org", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20170926141720.25067-1-mika.westerberg@linux.intel.com>", "list_archive_url": null, "date": "2017-09-26T14:17:13", "name": "[0/7] PCI: Improvements for native PCIe hotplug", "submitter": { "id": 14534, "url": "http://patchwork.ozlabs.org/api/people/14534/?format=api", "name": "Mika Westerberg", "email": "mika.westerberg@linux.intel.com" }, "mbox": "http://patchwork.ozlabs.org/project/linux-pci/cover/20170926141720.25067-1-mika.westerberg@linux.intel.com/mbox/", "series": [ { "id": 5151, "url": "http://patchwork.ozlabs.org/api/series/5151/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-pci/list/?series=5151", "date": "2017-09-26T14:17:19", "name": "PCI: Improvements for native PCIe hotplug", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/5151/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/covers/818664/comments/", "headers": { "Return-Path": "<linux-pci-owner@vger.kernel.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org", "Authentication-Results": "ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=linux-pci-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)", "Received": [ "from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y1jl32Fgjz9t3B\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 27 Sep 2017 00:19:43 +1000 (AEST)", "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S967558AbdIZOTZ (ORCPT <rfc822;incoming@patchwork.ozlabs.org>);\n\tTue, 26 Sep 2017 10:19:25 -0400", "from mga05.intel.com ([192.55.52.43]:35551 \"EHLO mga05.intel.com\"\n\trhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP\n\tid S969428AbdIZORY (ORCPT <rfc822;linux-pci@vger.kernel.org>);\n\tTue, 26 Sep 2017 10:17:24 -0400", "from fmsmga003.fm.intel.com ([10.253.24.29])\n\tby fmsmga105.fm.intel.com with ESMTP; 26 Sep 2017 07:17:24 -0700", "from black.fi.intel.com ([10.237.72.28])\n\tby FMSMGA003.fm.intel.com with ESMTP; 26 Sep 2017 07:17:21 -0700", "by black.fi.intel.com (Postfix, from userid 1001)\n\tid 368F3E4; Tue, 26 Sep 2017 17:17:20 +0300 (EEST)" ], "X-ExtLoop1": "1", "X-IronPort-AV": "E=Sophos;i=\"5.42,441,1500966000\"; d=\"scan'208\";a=\"904000891\"", "From": "Mika Westerberg <mika.westerberg@linux.intel.com>", "To": "Bjorn Helgaas <bhelgaas@google.com>", "Cc": "Ashok Raj <ashok.raj@intel.com>, Keith Busch <keith.busch@intel.com>,\n\t\"Rafael J . Wysocki\" <rafael.j.wysocki@intel.com>,\n\tLukas Wunner <lukas@wunner.de>, Michael Jamet <michael.jamet@intel.com>,\n\tYehezkel Bernat <yehezkel.bernat@intel.com>, Mario.Limonciello@dell.com,\n\tMika Westerberg <mika.westerberg@linux.intel.com>,\n\tlinux-pci@vger.kernel.org, linux-kernel@vger.kernel.org", "Subject": "[PATCH 0/7] PCI: Improvements for native PCIe hotplug", "Date": "Tue, 26 Sep 2017 17:17:13 +0300", "Message-Id": "<20170926141720.25067-1-mika.westerberg@linux.intel.com>", "X-Mailer": "git-send-email 2.14.1", "Sender": "linux-pci-owner@vger.kernel.org", "Precedence": "bulk", "List-ID": "<linux-pci.vger.kernel.org>", "X-Mailing-List": "linux-pci@vger.kernel.org" }, "content": "Hi,\n\nCurrently when plugging PCIe device using native PCIe hotplug Linux PCI\ncore tries to allocate bus space and resources so that the newly enumerated\ntopology barely fits there. Now, if the PCIe topology that was just plugged\nin has more PCIe hotplug ports we will run out of bus space and resources\npretty quickly. There is a workaround for this by passing pci=hpbussize=N\nin the kernel command line but it runs to the same situation after next\nhotplug.\n\nA good example where this is a problem is Thunderbolt where each\nThunderbolt device includes PCIe switch and the topology can be extended up\nto 6 chained devices.\n\nFuture platforms will move from BIOS assisted (ACPI) hotplug from native\nPCIe hotplug because then it is possible to power down PCIe hotplug ports\nwithout confusing the SMI handler which is not necessary when native PCIe\nhotplug is used. Also Macs have been using native PCIe hotplug from the\nbeginning. The upcoming Windows already learned how to handle these complex\nPCIe topologies and we will reuse the same knowledge in Linux with this\npatch series.\n\nThe idea is to distribute available bus space and resources to hotplug PCIe\ndownstream ports so that the PCIe chain can be extended from those points.\nThe initial available space is configured by the BIOS to the root port in\nquestion.\n\nThis series first teaches the Linux PCI core to distribute available bus\nspace and resources if PCIe hotplug is used. Then following are fixes for\nissues found while testing.\n\nWith this series applied I can connect the maximum length Thunderbolt PCIe\nchain (6 devices) to a Macbook Pro as can be seen from the 'lspci -t'\noutput below:\n\n-[0000:00]-+-00.0\n +-02.0\n +-14.0\n +-16.0\n +-19.0\n +-1c.0-[01]----00.0\n +-1c.4-[03-78]----00.0-[04-78]--+-00.0-[05]----00.0\n | +-01.0-[07-3f]----00.0-[08-3f]--+-01.0-[09]----00.0\n | | \\-04.0-[0a-3f]----00.0-[0b-3f]--+-01.0-[0c]----00.0\n | | \\-04.0-[0d-3f]----00.0-[0e-3f]--+-01.0-[0f]--\n | | \\-04.0-[10-3f]----00.0-[11-3f]--+-01.0-[12]----00.0\n | | \\-04.0-[13-3f]----00.0-[14-3f]--+-01.0-[15]----00.0\n | | \\-04.0-[16-3f]----00.0-[17-3f]----00.0-[18-3f]----00.0\n | +-02.0-[06]----00.0\n | \\-04.0-[40-78]--\n +-1d.0-[79-ee]----00.0-[7a-ee]--+-00.0-[7b]----00.0\n | +-01.0-[7d-b5]--\n | +-02.0-[7c]----00.0\n | \\-04.0-[b6-ee]--\n +-1d.3-[02]----00.0\n +-1e.0\n +-1e.1\n +-1e.3\n +-1f.0\n +-1f.2\n +-1f.3\n \\-1f.4\n\nMika Westerberg (7):\n PCI: Do not allocate more buses than available in parent\n PCI: Introduce pcie_upstream_port()\n PCI: Distribute available buses to hotplug capable PCIe downstream ports\n PCI: Distribute available resources to hotplug capable PCIe downstream ports\n PCI: pciehp: Fix race condition handling surprise link down\n PCI: pciehp: Do not clear Presence Detect Changed during initialization\n PCI: pciehp: Check that the device is really present before touching it\n\n drivers/pci/hotplug-pci.c | 13 ++-\n drivers/pci/hotplug/pciehp_ctrl.c | 7 +-\n drivers/pci/hotplug/pciehp_hpc.c | 13 ++-\n drivers/pci/hotplug/pciehp_pci.c | 18 +++-\n drivers/pci/probe.c | 113 +++++++++++++++++++++----\n drivers/pci/setup-bus.c | 169 ++++++++++++++++++++++++++++++++++++++\n include/linux/pci.h | 30 ++++++-\n 7 files changed, 332 insertions(+), 31 deletions(-)" }