From: Casey Leedom <leedom@chelsio.com>
To: "Luis R. Rodriguez" <mcgrof@suse.com>
Cc: "Benjamin Herrenschmidt" <benh@kernel.crashing.org>,
"Arnd Bergmann" <arnd@arndb.de>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Bjorn Helgaas" <bhelgaas@google.com>,
"Toshi Kani" <toshi.kani@hp.com>,
"Andy Lutomirski" <luto@amacapital.net>,
"Juergen Gross" <jgross@suse.com>,
"Tomi Valkeinen" <tomi.valkeinen@ti.com>,
"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
linux-fbdev <linux-fbdev@vger.kernel.org>,
"Suresh Siddha" <sbsiddha@gmail.com>,
"Ingo Molnar" <mingo@elte.hu>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Daniel Vetter" <daniel.vetter@ffwll.ch>,
"Dave Airlie" <airlied@redhat.com>,
"Antonino Daplas" <adaplas@gmail.com>,
"Jean-Christophe Plagniol-Villard" <plagnioj@jcrosoft.com>,
"Dave Hansen" <dave.hansen@linux.intel.com>,
"venkatesh.pallipadi@intel.com" <venkatesh.pallipadi@intel.com>,
"Stefan Bader" <stefan.bader@canonical.com>,
"ville.syrjala@linux.intel.com" <ville.syrjala@linux.intel.com>,
"David Vrabel" <david.vrabel@citrix.com>,
"Jan Beulich" <jbeulich@suse.com>,
"Roger Pau Monné" <roger.pau@citrix.com>
Subject: Re: [PATCH v7 5/9] PCI: Add pci_iomap_wc() variants
Date: Thu, 2 Jul 2015 17:14:06 -0700 [thread overview]
Message-ID: <6530C037-E976-42B0-B719-4171657E45A9@chelsio.com> (raw)
In-Reply-To: <20150702184904.GA7021@wotan.suse.de>
> On Jul 2, 2015, at 11:49 AM, Luis R. Rodriguez <mcgrof@suse.com> wrote:
>
> On Sat, Jun 27, 2015 at 08:00:48AM +1000, Benjamin Herrenschmidt wrote:
>> On Fri, 2015-06-26 at 16:24 +0000, Casey Leedom wrote:
>>> Thanks for looking into this Ben. As it stands now, it seems as
>>> if Write Combined mappings simply aren't supported and/or all
>>> driver writers trying to utilize Write Combined mappings have to
>>> "hand roll" their own solutions which really isn't supportable.
>>>
>>> One thing that might be considered is simply to treat the desire
>>> to utilize the Write Combining hardware as a separate issue and
>>> develop writel_wc(), writeq_wc(), etc.
>
> That seems rather sloppy and cumbersome, its best to just provide the
> infrastructure for initial mapping for an area and let the hardware do it for
> you. With the current design drivers would just use regular read/write on all
> areas and the only thing that will set them apart will be the mapping. With
> what you propose we'd end up having to shift a whole bunch of reads/writes for
> just the purpose of adding WC to an area that didn't have wc before. That's
> a waste of code and time.
>
>>> Those could be defined
>>> as legal only for Write Combined Mappings and would "do the
>>> right thing" for each architecture.
>
> Yuck.
Yeah, probably. But it sounds like from Ben’s response, we should really use write_relaxed() as an already existing API for this. But most of the architectures just define this as writel() so some work would need to be done to get it to work.
>> The question then is what is "the right thing". In the powerpc case,
>> we'll have a non-garded mapping, which means we also get no ordering
>> between load and stores.
>
> I don't follow, you *ordering* between load and stores for WC? We should
> not need that for WC, its why WC is used for only very specific things
> such as framebuffer and PIO (which BTw I still don't quite get all this
> use case for infiniband to be honest, and I will note I do see some
> proprietary hardware extensions like bursts but nothing covering all
> this in a general doc, I think I think it all just has to do that this
> is a hardware hack in reality, which we sell as a feature).
I was talking about the work that our drivers (cxgb4, cxgb4vf, etc.) do to ensure correct ordering between writes to memory and I/O space. For instance, issuing a wmb() between writes to a DMA buffer and the write to a register telling the hardware that the data is available. This isn’t necessary on the Strongly Ordered Intel architectures but is necessary on other architectures.
Casey
next prev parent reply other threads:[~2015-07-03 0:16 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-19 22:08 [PATCH v7 0/9] pci: add pci_iomap_wc() and pci_ioremap_wc_bar() Luis R. Rodriguez
2015-06-19 22:08 ` [PATCH v7 1/9] pci: add pci_ioremap_wc_bar() Luis R. Rodriguez
2015-06-19 22:08 ` [PATCH v7 2/9] video: fbdev: i740fb: use arch_phys_wc_add() and pci_ioremap_wc_bar() Luis R. Rodriguez
2015-06-19 22:08 ` [PATCH v7 3/9] video: fbdev: kyrofb: " Luis R. Rodriguez
2015-06-19 22:08 ` [PATCH v7 4/9] video: fbdev: gxt4500: use pci_ioremap_wc_bar() for framebuffer Luis R. Rodriguez
2015-06-19 22:08 ` [PATCH v7 5/9] PCI: Add pci_iomap_wc() variants Luis R. Rodriguez
2015-06-23 22:42 ` Benjamin Herrenschmidt
2015-06-24 16:38 ` Luis R. Rodriguez
2015-06-24 22:05 ` Benjamin Herrenschmidt
2015-06-24 22:29 ` Luis R. Rodriguez
2015-06-24 23:38 ` Benjamin Herrenschmidt
2015-06-25 0:08 ` Luis R. Rodriguez
2015-06-25 0:52 ` Benjamin Herrenschmidt
2015-06-25 0:58 ` [Xen-devel] " Luis R. Rodriguez
2015-06-25 1:12 ` Benjamin Herrenschmidt
2015-06-25 15:01 ` Casey Leedom
2015-06-25 20:44 ` Arnd Bergmann
2015-06-25 21:40 ` Casey Leedom
2015-06-25 22:51 ` Benjamin Herrenschmidt
2015-06-26 19:31 ` Luis R. Rodriguez
2015-06-26 22:04 ` Benjamin Herrenschmidt
[not found] ` <CAB=NE6XwczF6FYXV=RHyK=7ikVk_tGp+h9ouWPyORNENq4+=Kw@mail.gmail.com>
2015-06-26 23:54 ` [Xen-devel] " Benjamin Herrenschmidt
2015-06-27 1:16 ` Luis R. Rodriguez
2015-06-26 2:02 ` Benjamin Herrenschmidt
2015-06-26 16:24 ` Casey Leedom
2015-06-26 22:00 ` Benjamin Herrenschmidt
2015-07-02 18:49 ` Luis R. Rodriguez
2015-07-02 22:26 ` Benjamin Herrenschmidt
2015-07-03 0:14 ` Casey Leedom [this message]
2015-06-19 22:08 ` [PATCH v7 6/9] lib: devres: add pcim_iomap_wc() variants Luis R. Rodriguez
2015-06-19 22:08 ` [PATCH v7 7/9] video: fbdev: arkfb: use arch_phys_wc_add() and pci_iomap_wc() Luis R. Rodriguez
2015-06-19 22:08 ` [PATCH v7 8/9] video: fbdev: s3fb: " Luis R. Rodriguez
2015-06-19 22:08 ` [PATCH v7 9/9] video: fbdev: vt8623fb: " Luis R. Rodriguez
2015-06-23 10:53 ` [PATCH v7 0/9] pci: add pci_iomap_wc() and pci_ioremap_wc_bar() Arnd Bergmann
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=6530C037-E976-42B0-B719-4171657E45A9@chelsio.com \
--to=leedom@chelsio.com \
--cc=adaplas@gmail.com \
--cc=airlied@redhat.com \
--cc=arnd@arndb.de \
--cc=benh@kernel.crashing.org \
--cc=bhelgaas@google.com \
--cc=daniel.vetter@ffwll.ch \
--cc=dave.hansen@linux.intel.com \
--cc=david.vrabel@citrix.com \
--cc=jbeulich@suse.com \
--cc=jgross@suse.com \
--cc=linux-fbdev@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=luto@amacapital.net \
--cc=mcgrof@suse.com \
--cc=mingo@elte.hu \
--cc=mst@redhat.com \
--cc=plagnioj@jcrosoft.com \
--cc=roger.pau@citrix.com \
--cc=sbsiddha@gmail.com \
--cc=stefan.bader@canonical.com \
--cc=tglx@linutronix.de \
--cc=tomi.valkeinen@ti.com \
--cc=toshi.kani@hp.com \
--cc=venkatesh.pallipadi@intel.com \
--cc=ville.syrjala@linux.intel.com \
--cc=xen-devel@lists.xensource.com \
/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).