Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752236AbdC2Oij convert rfc822-to-8bit (ORCPT ); Wed, 29 Mar 2017 10:38:39 -0400 Received: from smtp-out6.electric.net ([192.162.217.193]:60848 "EHLO smtp-out6.electric.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751254AbdC2Oih (ORCPT ); Wed, 29 Mar 2017 10:38:37 -0400 From: David Laight To: "'Robin Murphy'" , Mason CC: Marc Gonzalez , Bjorn Helgaas , Marc Zyngier , Thomas Gleixner , Lorenzo Pieralisi , "Liviu Dudau" , linux-pci , Linux ARM , Thibaud Cornic , Phuong Nguyen , LKML , DT Subject: RE: [PATCH v3 2/2] PCI: Add tango PCIe host bridge support Thread-Topic: [PATCH v3 2/2] PCI: Add tango PCIe host bridge support Thread-Index: AQHSqICVE4FqPc8Ciky10f5IjfQvHaGrq7gAgAAJhYCAABvtAIAAEcVA Date: Wed, 29 Mar 2017 14:38:28 +0000 Message-ID: <063D6719AE5E284EB5DD2968C1650D6DCFFC1507@AcuExch.aculab.com> References: <5309e718-5813-5b79-db57-9d702b50d0f9@sigmadesigns.com> <65114e62-7458-b6f7-327c-f07a5096a452@sigmadesigns.com> <01516ad9-e187-4bac-7c65-a7a90c576ce2@arm.com> <96da696c-141a-3e8d-1fb7-2c024a295f58@free.fr> <84a8b26d-7d24-df29-3959-45fce880916d@arm.com> In-Reply-To: <84a8b26d-7d24-df29-3959-45fce880916d@arm.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.202.99.200] Content-Type: text/plain; charset="iso-8859-15" Content-Transfer-Encoding: 8BIT MIME-Version: 1.0 X-Outbound-IP: 213.249.233.130 X-Env-From: David.Laight@ACULAB.COM X-Proto: esmtps X-Revdns: X-HELO: AcuExch.aculab.com X-TLS: TLSv1:AES128-SHA:128 X-Authenticated_ID: X-PolicySMART: 3396946, 3397078 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 956 Lines: 19 > > For my education, what is the API to send an IPI? > > And the API to handle an IPI? > > There are a few ways you could implement some custom cross-call, > although in this case I think stop_machine() would probably be the most > appropriate candidate. However, you're right that in general it may not > actually help enough to be worthwhile - a DSB SY would ensure that > in-flight transactions have at least been observed by the CPUs and any > other coherent masters, but for any writes with a memory type allowing > early acknowledgement (i.e. a Normal or Device mapping of a BAR) that > doesn't necessarily correlate with them having reached their ultimate > destination. For a PCI destination in particular, I think the normal way > to ensure all posted writes have completed would be to read from config > space; ah... He almost certainly doesn't need to wait for the cycle to complete, just long enough for the cycle to have been sent. David