From mboxrd@z Thu Jan 1 00:00:00 1970 From: Benjamin Herrenschmidt Subject: Re: [PATCH] mlx4_en: fix transmit of packages when blue frame is enabled Date: Mon, 10 Oct 2011 12:18:33 +0200 Message-ID: <1318241913.29415.428.camel@pasglop> References: <1318145118.29415.371.camel@pasglop> <20111010084726.GM2681@mtldesk30> <1318237284.29415.422.camel@pasglop> <20111010091611.GN2681@mtldesk30> <1318238645.29415.426.camel@pasglop> <20111010092926.GO2681@mtldesk30> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Cc: David Laight , netdev@vger.kernel.org, Eli Cohen , linuxppc-dev@lists.ozlabs.org, Thadeu Lima de Souza Cascardo , Yevgeny Petrilin To: Eli Cohen Return-path: Received: from gate.crashing.org ([63.228.1.57]:37823 "EHLO gate.crashing.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753097Ab1JJKTA (ORCPT ); Mon, 10 Oct 2011 06:19:00 -0400 In-Reply-To: <20111010092926.GO2681@mtldesk30> Sender: netdev-owner@vger.kernel.org List-ID: On Mon, 2011-10-10 at 11:29 +0200, Eli Cohen wrote: > On Mon, Oct 10, 2011 at 11:24:05AM +0200, Benjamin Herrenschmidt wrote: > > On Mon, 2011-10-10 at 11:16 +0200, Eli Cohen wrote: > > > > > Until then I think we need to have the logic working right on ppc and > > > measure if blue flame buys us any improvement in ppc. If that's not > > > the case (e.g because write combining is not working), then maybe we > > > should avoid using blueflame in ppc. > > > Could any of the guys from IBM check this and give us feedback? > > > > I don't have the necessary hardware myself to test that but maybe Thadeu > > can. > > > > Note that for WC to work, things must be mapped non-guarded. You can do > > that by using ioremap_prot() with pgprot_noncached_wc(PAGE_KERNEL) or > > ioremap_wc() (dunno how "generic" the later is). > > I use the io mapping API: > > at driver statrt: > priv->bf_mapping = io_mapping_create_wc(bf_start, bf_len); > if (!priv->bf_mapping) > err = -ENOMEM; > > and then: > uar->bf_map = io_mapping_map_wc(priv->bf_mapping, uar->index << PAGE_SHIFT); > > > Will this work on ppc? That API has never been tested on ppc I suspect. We don't have CONFIG_HAVE_ATOMIC_IOMAP (mostly because we never needed it, it was designed and only ever used for Intel graphics before), so it will fallback to: static inline struct io_mapping * io_mapping_create_wc(resource_size_t base, unsigned long size) { return (struct io_mapping __force *) ioremap_wc(base, size); } Which should work (hopefully :-) Cheers, Ben.