From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754742AbbI3XBr (ORCPT ); Wed, 30 Sep 2015 19:01:47 -0400 Received: from mail-bl2on0093.outbound.protection.outlook.com ([65.55.169.93]:59185 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754457AbbI3XB3 (ORCPT ); Wed, 30 Sep 2015 19:01:29 -0400 X-Greylist: delayed 82390 seconds by postgrey-1.27 at vger.kernel.org; Wed, 30 Sep 2015 19:01:29 EDT Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=David.Daney@caviumnetworks.com; Message-ID: <560C69BF.6000205@caviumnetworks.com> Date: Wed, 30 Sep 2015 16:01:19 -0700 From: David Daney User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130625 Thunderbird/17.0.7 MIME-Version: 1.0 To: "Sean O. Stalley" CC: David Daney , , , Bjorn Helgaas , "Michael S. Tsirkin" , =?UTF-8?B?UmFmYcWCIE1pxYJlY2tp?= , , , , , David Daney Subject: Re: [PATCH v3 2/2] PCI: Add support for Enhanced Allocation devices References: <1443485439-12081-1-git-send-email-ddaney.cavm@gmail.com> <1443485439-12081-3-git-send-email-ddaney.cavm@gmail.com> <20150929192737.GA2517@sean.stalley.intel.com> <560AF3D7.80908@gmail.com> <20150929224727.GB2517@sean.stalley.intel.com> <560B2470.9080100@caviumnetworks.com> <20150930225011.GA4244@sean.stalley.intel.com> In-Reply-To: <20150930225011.GA4244@sean.stalley.intel.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [64.2.3.194] X-ClientProxiedBy: SN1PR0701CA0059.namprd07.prod.outlook.com (25.163.126.27) To CY1PR07MB2134.namprd07.prod.outlook.com (25.164.112.12) X-Microsoft-Exchange-Diagnostics: 1;CY1PR07MB2134;2:0049bmqs4MZ6kxHpH//AE/FbVJMkahjcXy9SngkEU5VGnpmI2wDKkqwDyzTW6+yh0IZouAQp++ww+c/5JfFZY+UAJaQZmaDPuNJDOWbWv1NaD+lrcvyD4luyCkHo9PP2tINiloBbLwdX2FN7BEvtGF0FBYzVfCUDKpzHKHFL6tQ=;3:bqq5e1txklLMSLjPlH8hxAG/Beg23ZzYCzrSIcqibPgrlFcIfLGuI+h/qGuWDiBOOeofPTBoBYlMeWEKgz0BOVnyvF99kCFB9+fOiDZN0Nbye9ZtKMgYQiA19VVn4Vw6hJFpljmTrBGmbAIx0QJxqw==;25:l5PYIEtkpUtGSbzXSz+ICSC83BGR08ZZhRJXtkaelu92mcl/tRjVMCY/7waOdZvpJB2nYZiUJrZdyqhiKyPJf9130qvGJSJgcHa+kkCYuWufvAEooONVm8c/tJCkned/V0ilFPp2W2iBMiAnjWpnGMbdY/T+cdUf04FsQCT5RVv3iSkkdDpgPwVlmhUdB5sTUkhhOCF+EBxO5cY6x326PNHTetykM/MB4kjWK0C2hqOb0EluZbn96t2xe7hOAbe7 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR07MB2134; X-Microsoft-Exchange-Diagnostics: 1;CY1PR07MB2134;20:I2twN7UTvkA99LuZAFJN+4pHoJNFod6lld30+37EQYYzsgUcKbdN7SrE2rQNKrzWV6so4gNJWJz6gMa7YthgWyRdmjVcBjUowbQj2ViplNuURFNQGxf3JOqbezXm8d8Kp9J/DbHNu1i6Z0XBea40dAaS3SsjV0dEIYVUkfVNX8V14ekvqpk00rzA3dHlCfVGuEEonbhB/jXHauv7Xgj/Rvt/sPKbGLWo4B48N6iXw7sVNglPx/sXomDyaHOT7dJadKtRvmTAL7W7x5GVBAmKeRWAQiE9IU7Wo5Sugfkt+KIBdZvcFZ/2WGXwdHyj7TjNRzqrDolXwGcRBkGl6dU36CqFTu4v8sP3XMW4exPygEUPdGGQSTqnV00fv49zPFKpdtsqqRIhS2O0Zk8Mq9B6RQ9YjzWmxakp22piHuxdMu3h1ZN7PHqcFaDsblDDz0gNKhEKS6zUqtDH0uMtY1xIB5y3PQU+M6qrBpEQsVaKj5Fywu/y1OObGsXCm+syYcyOiXtY78K09idtqNJ3qhvpMrKhmbjTVVq5JxLLmLv1R72jPAwtEq8GQIbbra7dM8+qPWPQzCyue07O317GrwqB5661mKtIYBjwqtyKyuLfzA0= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(520078)(8121501046)(5005006)(3002001);SRVR:CY1PR07MB2134;BCL:0;PCL:0;RULEID:;SRVR:CY1PR07MB2134; X-Microsoft-Exchange-Diagnostics: 1;CY1PR07MB2134;4:lD74MHNYsB1paUkd5x0paD5u2Kk+keGMZhEW5mXeEiov4/EzWk/dro4fGa14Buazz5DW1E2t2fyO5RamHL2mGkPFUbfaJx4359EWm9ORoPQ5/sa71258L6LTFdtj8cNaDfn0Hqa9wjYFdLg6Hcm2wKlpSSQTDiGjPfhmbtaN3x94LKGOH7Sz4kELZ9ZFBOBnUd05fAaYYcGDrANUfTeIhBcVIG2GvZmlAWjWxPm0KZPzlMd6InLPD2MLDG8D/O3Ih6lmE0APzfoDOSm6HQ63MHjqJ1pFJKtQpN/HK42Fj8jrUOE9fbYGdRSASGqMgO8jHkrewtoX2pVnxEj6QQ2ft1cW9EcxhxBgN8S8GCP5NKg= X-Forefront-PRVS: 071518EF63 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(377454003)(24454002)(479174004)(199003)(189002)(77156002)(4001540100001)(4001350100001)(23676002)(42186005)(83506001)(2950100001)(50466002)(69596002)(106356001)(97736004)(122386002)(68736005)(92566002)(105586002)(5008740100001)(81156007)(5001830100001)(77096005)(59896002)(40100003)(5001960100002)(65806001)(101416001)(46102003)(64706001)(93886004)(5001860100001)(5004730100002)(53416004)(87976001)(62966003)(66066001)(47776003)(110136002)(80316001)(5007970100001)(50986999)(64126003)(76176999)(33656002)(36756003)(65816999)(54356999)(87266999)(65956001)(189998001);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR07MB2134;H:dl.caveonetworks.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTFQUjA3TUIyMTM0OzIzOm9lUGlERFVKa0cxaUg2WndsU3lxbXZWRE10?= =?utf-8?B?TTlWdWJXQ1Rza1dza3BXUnE1TGI5VmRnN2M4OVhhSldQWDhNU0w0ODNxWGNT?= =?utf-8?B?bnFUOGNmaStxSFpXdWdMNEtDbEtJRDZxMEYxVkdFaytKRlp2Y0VNOVFCWFFQ?= =?utf-8?B?UkhEWGFvRTIrcmMzV1RMNEcwVjdsUzdxTWs5NlFuZERnNWExR1JDN3hzczFi?= =?utf-8?B?REFzRlJZSjJPNzRMdFVJWGZ5ZTBjTXdQUWFuS2tqamxHbEx4SHIzZFZpSjNh?= =?utf-8?B?UXJkWnE4ZHhBKzB6MGdJZ2dvRWx1SlNSa0R3THpjYTIydUs0YjFkYU1qREFJ?= =?utf-8?B?UXR2a1dsRG43ZVIyZGh0dXRDSHNmbkp5SWtKNnRWTTY3OTJWaEhDSkN1K0xT?= =?utf-8?B?dHBKUnUyY2hxeHNXbExiNkdqWWFONGZjaHorSldRTXpjUGRHT1FuOTZJWTU2?= =?utf-8?B?YWliM2wzbzRBaXR0SEF6NS9UWkM2UlJUNnZIRHZmTC80YmYxOGk1UDV0YnNn?= =?utf-8?B?NjJ6bHRLVmxUWFY0dFBqd2JmZnN1U1Z0OExVbC9mNFdRTEpua3B5cVRUWVQ2?= =?utf-8?B?ZXl5Zm1aTms3THQ4K3NQWEs4M3lGNytBWGpXSDFyZ29uYS93K2RkRUk0cnc3?= =?utf-8?B?Q2kxWDN0TDZWWEtjaUhMOEdJbnNRZXYvV1NKMkg2NDVaT0NWRXRRTDhNdEw1?= =?utf-8?B?MDBRWGUwR2JjTURacmR4dmhOTTNDeFNNVkx4cFVVNEpoNmUzd0tHNXNnWm9p?= =?utf-8?B?eUFsUzl2eWV2cEoreVhNT0p4dDliTjhxK2ErNHlrd2p0S0hFcGhDRWVhRFFp?= =?utf-8?B?WldPMFo4dVA5KzNHeWMzeDZBWWpOWXJjUExjNjNDVXN5YVVPMFg4YVhBSG81?= =?utf-8?B?N2g3bFBlVWlhRGtOQ0RlRE02U09taFV1NFJ2ZENmN3UwRzllMmZqZGZEWExj?= =?utf-8?B?SFZBalROZlBHSDNjaExacVE1dFpsa052MnZXOExzczdmYTFpdk91L2krYjFL?= =?utf-8?B?MGtndWlZbEJpRm9jWDhaNE9Ub3UxV2tXV2JuY0lmc1cvKzdENjkxaWxsYjVy?= =?utf-8?B?MHNQeHRUc3BKWUJBUldHNzF6OERRRTR5OXNXcEJmd015UVBGRVhnZUhtRUNk?= =?utf-8?B?MGhYZzlyMUYzakkyYlJWdVhRWUNrdWpuWGVmTlRZd21DTUFqNFdjYzMvd2FK?= =?utf-8?B?N1lNZDJnSFRQTHFaWitEdW5kREZFR1ErM0cybFpvYWpwZGxxbEVPKy9EaEI3?= =?utf-8?B?bUE4djlsN0ViYnMxU1pkWVBZdGI0TXY0VTRLV0U1Ylp3clpiSjVza2wwbE1H?= =?utf-8?B?eUE2bGRFTFV6aW9xNWQ1b21sZlc5cUpGbWRNVERNdzVmODY1emcvY3F4VGVV?= =?utf-8?B?MWM2WjFocytMTWVpVkQrQkI1djlpZzc3WHdkb1gwems1L0tyTHh4VUEzeXdh?= =?utf-8?B?UWxkZkRwTTA1L0FLaWRjZlBhSTdYZjNHaUI3YnV6SVlDUXJvbENsMks5VWlD?= =?utf-8?B?TDNxckZLVk9iUkM0TFhYMVB6SUhSUWYrUWt1VzNrMGFvNmlBOHh2RzFCU3pz?= =?utf-8?B?OHpwQzB4M28yMlZrOUFYR3VSSlNXcEdCNzdHZlljZ3FES3BJYmJCVEhodUI0?= =?utf-8?B?UVhjdEJCcVd1MjFYa1h6MzA1VkNpSXc3RU9mTUVyQU5nbERvNURSL2NUY0dU?= =?utf-8?B?dlJZYzJZWkxUVEx3Z3dNYzRtd1B4ZWZhMDRrQ2YwbVE5U3FCek4wcUU0QU56?= =?utf-8?B?di9kdTRuMW94ZlNJMUpVSGhidXdLWXRrVUI2dWNVSUx3TXhraWlMZFFheXph?= =?utf-8?B?Z2ppR3FySVAvV1NaM1hzRXhnNS9YRlJaL1JlV1EyNCtSUkUrUnQrU1Q5VS9M?= =?utf-8?Q?F2W+8cqnNqvY5LYM7BLtTK+X0B/Da1N3?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR07MB2134;5:1t3eIeiFdQ4s0PlULCUHaxsadVkyFlCeknb0jxIYUHjJmyM+oRTh8hTEDIxgt2FbRVS5W/DPHcKjwKsfZnvvR4yO4vu+Ah74E7+QF5emYBnpKq4g3RTVLre/uV8hYfXJLrvAUfKiuR9AKAJrozJ6iQ==;24:/c93qw6u/javlrwYvBisH0y077FIZ19waanba3k7YXS2VbatjsvQfPxbQXUU/HxqQo7KQIW4ScWLPFqFynCX9hf9dfk17gofrRgCYRYs2zk=;20:1j9kYhDmQKj7jeVaY2v0+KSTn4mXIb0ShGMu1Bm/S5O/w+qkvNHuOWuYVHKR8o5nu/gBP96YTySM4chi7OvSqA== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Sep 2015 23:01:23.6677 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR07MB2134 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 09/30/2015 03:50 PM, Sean O. Stalley wrote: > On Tue, Sep 29, 2015 at 04:53:20PM -0700, David Daney wrote: >> On 09/29/2015 03:47 PM, Sean O. Stalley wrote: >> [...] >>>>>> diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c >>>>>> index 6a9a111..7c60b16 100644 >>>>>> --- a/drivers/pci/pci.c >>>>>> +++ b/drivers/pci/pci.c >>>>>> @@ -2148,6 +2148,284 @@ void pci_pm_init(struct pci_dev *dev) >>>>>> } >>>>>> } >>>>>> >>>>>> +static unsigned long pci_ea_set_flags(struct pci_dev *dev, u8 prop) >>>>>> +{ >>>>>> + unsigned long flags = IORESOURCE_PCI_FIXED | IORESOURCE_SIZEALIGN; >>>>> >>>>> Why did you add the IORESOURCE_SIZEALIGN flag? EA allows for unaligned resources. >>>> >>>> pci_bus_assign_resources() fails causing the devices to be unusable >>>> if resource_alignment() returns zero. The easiest fix for this was >>>> to specify IORESOURCE_SIZEALIGN. >>>> >>>> An alternative would be to change the code in setup-bus.c so that >>>> for IORESOURCE_PCI_FIXED resources, it didn't barf. >>> >>> I would do this alternative, but with a IORESOURCE_PCI_EA flag. >>> >> >> I don't think we need IORESOURCE_PCI_EA. If a resource is tagged as >> IORESOURCE_PCI_FIXED that means that it cannot be changed, we >> shouldn't care why it is fixed (due to an EA capability for >> example). We just need to gracefully handle IORESOURCE_PCI_FIXED in >> the places where things currently go wrong. >> >> David Daney >> > > I agree that we need to make sure fixed things stay fixed, > regardless of if they are fixed by EA or something else. > > The question is: do we want to allow all fixed resources to be non-aligned, or just EA? The alignment should only be important if a new address is being calculated for a BAR or behind the bridge memory/io region. If the resource is fixed, I would almost say that "alignment" is an undefined concept. So, in the places were we need special treatment for IORESOURCE_PCI_FIXED, I would argue that we shouldn't be use the resource alignment information. David Daney > > -Sean >