Re: [PATCH] mlx4_en: fix transmit of packages when blue frame is enabled
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2011-10-10 10:18:54
Also in:
netdev
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:quoted
On Mon, 2011-10-10 at 11:16 +0200, Eli Cohen wrote:quoted
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.