Subject: Re: Face some error after applying commit 7dfa4b414d4(net/mlx4_en: Code cleanups in tx path)

From: Wei Yang <[email-masked]>
Date: Mon, 10 Nov 2014 13:40:10 +0800

On Sun, Nov 09, 2014 at 06:46:14PM -0800, Eric Dumazet wrote:
>On Mon, 2014-11-10 at 09:59 +0800, Wei Yang wrote:
>> On Fri, Nov 07, 2014 at 07:38:15PM -0800, Eric Dumazet wrote:
>> >On Fri, Nov 7, 2014 at 6:57 PM, Wei Yang <[email-masked]> wrote:
>> >> Eric and Amir
>> >>
>> >> I am testing the VF on PowerNV platform with 3.18-rc2.
>> >> After applying this patch I face some errors.
>> >>
>> >> First is the compiling error.
>> >>
>> >>     drivers/net/ethernet/mellanox/mlx4//en_tx.c: In function ‘mlx4_en_xmit’:
>> >>     drivers/net/ethernet/mellanox/mlx4//en_tx.c:802:8: error: ‘shinfo’ undeclared (first use in this function)
>> >>             shinfo->tx_flags & SKBTX_HW_TSTAMP)) {
>> >>             ^
>> >>     include/linux/compiler.h:160:42: note: in definition of macro ‘unlikely’
>> >>      # define unlikely(x) __builtin_expect(!!(x), 0)
>> >>                                               ^
>> >>     drivers/net/ethernet/mellanox/mlx4//en_tx.c:802:8: note: each undeclared identifier is reported only once for each function it appears in
>> >>             shinfo->tx_flags & SKBTX_HW_TSTAMP)) {
>> >>             ^
>> >>     include/linux/compiler.h:160:42: note: in definition of macro ‘unlikely’
>> >>      # define unlikely(x) __builtin_expect(!!(x), 0)
>> >>                                               ^
>> >>     make[1]: *** [drivers/net/ethernet/mellanox/mlx4//en_tx.o] Error 1
>> >>     make: *** [_module_drivers/net/ethernet/mellanox/mlx4/] Error 2
>> >>
>> >
>> >
>> >This compilation error seems strange.
>> >
>> >Are you sure your tree is pristine, not corrupted in any way ?
>> 
>> I believe I did the revert one by one with git revert.
>> 
>> >
>> >
>> >> I tried to fix this with following change:
>> >>
>> >>     [root@tian-lp1 3.18]# git diff
>> >>     diff --git a/drivers/net/ethernet/mellanox/mlx4/en_tx.c b/drivers/net/ethernet/m
>> >>     index eaf23eb..d2f06a7 100644
>> >>     --- a/drivers/net/ethernet/mellanox/mlx4/en_tx.c
>> >>     +++ b/drivers/net/ethernet/mellanox/mlx4/en_tx.c
>> >>     @@ -799,8 +799,8 @@ netdev_tx_t mlx4_en_xmit(struct sk_buff *skb, struct net_dev
>> >>              * set flag for further reference
>> >>              */
>> >>             if (unlikely(ring->hwtstamp_tx_type == HWTSTAMP_TX_ON &&
>> >>     -                    shinfo->tx_flags & SKBTX_HW_TSTAMP)) {
>> >>     -               shinfo->tx_flags |= SKBTX_IN_PROGRESS;
>> >>     +                    skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP)) {
>> >>     +               skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS;
>> >>                     tx_info->ts_requested = 1;
>> >>             }
>> >>
>> >> But seems to face another error.
>> >>
>> >
>> >I suspect your tree is not the official tree, I do not see how you got
>> >this compilation error.
>> 
>> 
>> I checked the upstream git tree again, and find this commit:
>> 
>> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=7dfa4b414d4eec8da56e44fb2b4aea3e549b092f
>> 
>> 
>> And I want to say the shinfo local variable is introduced in commit:
>> 
>> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=b9d8839a44092cb4268ef2813c34d5dbf3363603
>> 
>> And in my log tree, also checked the upstream, this one is applyed after the
>> first one. And the compiling error will disappear untill I apply this one.
>> 
>> So this compiling issue can't reproduced at your side? You have reset --hard
>> to the "Code cleanup" one, and can't see the error? That is strange.
>> 
>
>Okay, your message was not clear : I thought you had a compilation error
>on current tree.
>
>The true story of these patches is that Mellanox split an initial big
>chunk [1] I gave into multiple patches.
>
>Maybe they missed that one patch did not actually compile.
>
>[1] https://patchwork.ozlabs.org/patch/394256/
>
>Now, it is done, there is nothing we can do.
>
>I'll let Mellanox comment, but it looks like your hardware does not like
>something.
>
>Have you tried to disable Blue Frame ?
>

Yep, looks the PF works fine. But the current FW I can't just enable the PF.

How to disable Blue Frame? I am not clear about this.

-- 
Richard Yang
Help you, Help me