Jeff,

Here is a brief description:

The VF driver (ixgbevf) sometimes erroneously concludes that the PF driver has 
NACK'ed a request. The window where the problem occurs is that the VF driver 
sends a message to the PF driver, and the PF driver reads the message and sets 
the IXGBE_PFMAILBOX_ACK. This causes an interrupt on the VF, and in the 
ixgbevf_msix_mbx() function, we first read the ACK, and then proceed to read 
the mailbox for a message. Just prior to that, the PF driver acquires the lock 
on the mailbox to return the response message. The read operation in the VF 
driver fails because it cannot acquire the lock. An error is logged in the 
kernel logs.

Hope that suffices...

Since I am newbie, I have not created signed-off by. Please do me that favor.

Thanks,

Venu

-----Original Message-----
From: Jeff Kirsher [mailto:jeffrey.t.kirs...@intel.com] 
Sent: Wednesday, September 21, 2011 04:18 AM
To: Venugopal Busireddy
Cc: e1000-devel@lists.sourceforge.net
Subject: Re: [E1000-devel] [ixgbevf]: patch to fix incorrect PF NACK 
assertion...

On Tue, 2011-09-20 at 09:36 -0700, Venugopal Busireddy wrote:
> diff -r 194e296c8d2e ixgbevf_main.c
> --- a/ixgbevf_main.c    Thu Sep 15 10:46:23 2011 -0500
> +++ b/ixgbevf_main.c    Thu Sep 15 10:47:08 2011 -0500
> @@ -997,15 +997,18 @@
>         if (!hw->mbx.ops.check_for_ack(hw, 0)) 
>                 got_ack = true;
>  
> -       hw->mbx.ops.read(hw, &msg, 1, 0);
> -
> -       if ((msg & IXGBE_MBVFICR_VFREQ_MASK) == IXGBE_PF_CONTROL_MSG)
> -               mod_timer(&adapter->watchdog_timer,
> -                         round_jiffies(jiffies + 1));
> -
> -       if (msg & IXGBE_VT_MSGTYPE_NACK)
> -               DPRINTK(DRV, ERR, "Last Request of type %2.2x to PF Nacked\n",
> -                       msg & 0xFF);
> +       if (!hw->mbx.ops.check_for_msg(hw, 0)) {
> +               hw->mbx.ops.read(hw, &msg, 1, 0);
> +
> +               if ((msg & IXGBE_MBVFICR_VFREQ_MASK) == IXGBE_PF_CONTROL_MSG)
> +                       mod_timer(&adapter->watchdog_timer,
> +                                 round_jiffies(jiffies + 1));
> +
> +               if (msg & IXGBE_VT_MSGTYPE_NACK)
> +                       DPRINTK(DRV, ERR,
> +                               "Last Request of type %2.2x to PF Nacked\n",
> +                               msg & 0xFF);
> +       }
>  
>         /*  
>          * checking for the ack clears the PFACK bit.  Place


Thanks!  I have added the patch to my queue for ixgbevf.

Since there is no patch description & signed-off-by, do you mind if I
create one?  Since you are the author of this patch, I will set you as
the author and add you signed-off-by.
------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense.
http://p.sf.net/sfu/splunk-d2dcopy1
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel® Ethernet, visit 
http://communities.intel.com/community/wired

Reply via email to