Re: Build regressions/improvements in v3.10-rc1 (s390)

From: Ben Hutchings
Date: Mon May 13 2013 - 12:41:59 EST


On Mon, 2013-05-13 at 09:41 +0200, Heiko Carstens wrote:
> On Sun, May 12, 2013 at 10:50:45PM +0200, Geert Uytterhoeven wrote:
> > On Sun, 12 May 2013, Geert Uytterhoeven wrote:
> > > However, the full list of errors isn't that unmanageable, so I'm following
> > > up with a digested list...
> >
> > drivers/net/ethernet/sfc/efx.c:646:3: error: call to '__compiletime_assert_648' declared with attribute error: BUILD_BUG_ON failed: sizeof(struct efx_rx_page_state) + EFX_PAGE_IP_ALIGN + EFX_RX_USR_BUF_SIZE > PAGE_SIZE / 2: 2 errors in 2 logs
> > v3.10-rc1/s390x/s390-allyesconfig v3.10-rc1/s390x/s390-allmodconfig
>
> that seems to a BUILD_BUG_ON that only triggers on s390, because we have
> L1_CACHE_BYTES defined with 256 bytes... which seems to be more than any
> other architecture has.
> There was a different network driver that had a similar BUILD_BUG_ON, but
> it got removed.
>
> Right, it was the igb driver:
> http://comments.gmane.org/gmane.linux.network/261378

The critical value here is EFX_RX_USR_BUF_SIZE. The hardware constrains
it to be a multiple of 32, but for performance reasons it also ought to
be a multiple of the cache line size(s). In our internal development
branch it has already been reduced to 1792, which is a multiple of 256
and should satisfy the BUILD_BUG_ON check. I'll post a patch shortly.

Ben.

--
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/