All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexander Duyck <alexander.h.duyck@intel.com>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: "Allan, Bruce W" <bruce.w.allan@intel.com>,
	"e1000-devel@lists.sourceforge.net"
	<e1000-devel@lists.sourceforge.net>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	"Brandeburg, Jesse" <jesse.brandeburg@intel.com>,
	Daniel Santos <daniel.santos@pobox.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	"Wu, Fengguang" <fengguang.wu@intel.com>
Subject: Re: [E1000-devel] [next:akpm 16/587] drivers/net/ethernet/intel/igb/igb_main.c:6231:2: error: call to '__compiletime_assert_6235' declared with attribute error: BUILD_BUG_ON failed: SKB_WITH_OVERHEAD(IGB_RX_BUFSZ) < (NET_SKB_PAD + NET_IP_ALIGN + IGB_TS_HDR_LEN + ETH...
Date: Wed, 20 Feb 2013 14:47:19 -0800	[thread overview]
Message-ID: <51255277.2020005@intel.com> (raw)
In-Reply-To: <1361396560.19353.226.camel@edumazet-glaptop>

On 02/20/2013 01:42 PM, Eric Dumazet wrote:
> On Wed, 2013-02-20 at 13:23 -0800, Alexander Duyck wrote:
>
>> NET_SKB_PAD is defined for the s390.  It is already 32.  If you look it
>> up we only have 2 definitions for NET_SKB_PAD, one specific to the s390
>> architecture and the other one in skbuff.h.
>>
> Andrew traces disagree, as they were :
>
>>>> s390 allmodconfig:
>>>>
>>>> bool __cond = !(!(((2048) - (((sizeof(struct skb_shared_info)) + (256 - 1)) &
>>>> ~(256 - 1))) < (32 + 2 + 16 + 1514 + 4)));
>>>>
> So it might be only a cross-compile environment issue, I dont know.

Huh?  I'm not seeing what you are saying.  The NET_SKB_PAD is the value
that is in the last set of parenthesis since it was:
(NET_SKB_PAD + NET_IP_ALIGN + IGB_TS_HDR_LEN + ETH_FRAME_LEN + ETH_FCS_LEN)
    that is the bit that became:
(32 + 2 + 16 + 1514 + 4)

The problem is the skb_shared_info bit rounds up to 512 reducing the
available space to 1536.  If you add up all of the other bits ignoring
the NET_SKB_PAD value you end up with exactly 1536 meaning the only
value for NET_SKB_PAD that would work is 0.

>> From what I can tell we would have to drop the NET_SKB_PAD to 0 in order
>> to not trigger this error with igb since we still have to add 22 bytes
>> for igb's per packet timestamp header, IP alignment, and CRC.
>>
>> The simple fix is for us just to drop the BUILD_BUG_ON check for igb
>> since we already had a check for size check in igb_set_rx_buffer_len. 
>> It just means that build_skb won't be available for standard MTU sizes
>> on s390.
> Yeah, probably nobody will notice ;)

Yeah, it is only a few percentage points difference and only really
impacts small packets anyway.  :-)

Thanks,

Alex

  reply	other threads:[~2013-02-20 22:47 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <5122101a.nBjTqFyZXZ+WuzPr%fengguang.wu@intel.com>
2013-02-19 22:27 ` [next:akpm 16/587] drivers/net/ethernet/intel/igb/igb_main.c:6231:2: error: call to '__compiletime_assert_6235' declared with attribute error: BUILD_BUG_ON failed: SKB_WITH_OVERHEAD(IGB_RX_BUFSZ) < (NET_SKB_PAD + NET_IP_ALIGN + IGB_TS_HDR_LEN + ETH_FRAME_LEN + ETH_FCS_LEN) Andrew Morton
2013-02-19 22:30   ` [next:akpm 16/587] drivers/net/ethernet/intel/igb/igb_main.c:6231:2: error: call to '__compiletime_assert_6235' declared with attribute error: BUILD_BUG_ON failed: SKB_WITH_OVERHEAD(IGB_RX_BUFSZ) < (NET_SKB_PAD + NET_IP_ALIGN + IGB_TS_HDR_LEN + ETH Allan, Bruce W
2013-02-20  1:09     ` Eric Dumazet
2013-02-20 18:16       ` [E1000-devel] " Alexander Duyck
2013-02-20 19:22         ` Eric Dumazet
2013-02-20 21:23           ` Alexander Duyck
2013-02-20 21:42             ` Eric Dumazet
2013-02-20 22:47               ` Alexander Duyck [this message]
2013-02-20 23:02                 ` Eric Dumazet
2013-02-21  9:42           ` [E1000-devel] [next:akpm 16/587] drivers/net/ethernet/intel/igb/igb_main.c:6231:2: error: call to '__compiletime_assert_6235' declared with attribute error: BUILD_BUG_ON failed: SKB_WITH_OVERHEAD(IGB_RX_BUFSZ) < (NET_SKB_PAD + NET_IP_ALIGN + IGB_TS_HD David Laight
2013-02-19 23:02   ` [next:akpm 16/587] drivers/net/ethernet/intel/igb/igb_main.c:6231:2: error: call to '__compiletime_assert_6235' declared with attribute error: BUILD_BUG_ON failed: SKB_WITH_OVERHEAD(IGB_RX_BUFSZ) < (NET_SKB_PAD + NET_IP_ALIGN + IGB_TS_HDR_LEN + ETH Wyborny, Carolyn

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=51255277.2020005@intel.com \
    --to=alexander.h.duyck@intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=bruce.w.allan@intel.com \
    --cc=daniel.santos@pobox.com \
    --cc=e1000-devel@lists.sourceforge.net \
    --cc=eric.dumazet@gmail.com \
    --cc=fengguang.wu@intel.com \
    --cc=jesse.brandeburg@intel.com \
    --cc=netdev@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.