* [PATCH net 0/2] qlcnic: Bug fixes
@ 2013-10-25 14:38 Shahed Shaikh
2013-10-25 14:38 ` [PATCH net 1/2] qlcnic: Do not force adapter to perform LRO without destination IP check Shahed Shaikh
` (2 more replies)
0 siblings, 3 replies; 13+ messages in thread
From: Shahed Shaikh @ 2013-10-25 14:38 UTC (permalink / raw)
To: davem; +Cc: netdev, Dept_NX_Linux_NIC_Driver, Shahed Shaikh
From: Shahed Shaikh <shahed.shaikh@qlogic.com>
This patch series contains following fixes-
* Performace drop because driver was forcing adapter not to check
destination IP for LRO.
* driver was not issuing qlcnic_fw_cmd_set_drv_version() to 83xx adapter
becasue of improper handling of QLCNIC_FW_CAPABILITY_MORE_CAPS bit.
Please apply to net.
Thanks,
Shahed
Shahed Shaikh (2):
qlcnic: Do not force adapter to perform LRO without destination IP
check
qlcnic: Do not read QLCNIC_FW_CAPABILITY_MORE_CAPS bit for 83xx
adapter
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c | 6 +++---
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c | 7 ++-----
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 6 ++++--
3 files changed, 9 insertions(+), 10 deletions(-)
--
1.8.1.4
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH net 1/2] qlcnic: Do not force adapter to perform LRO without destination IP check
2013-10-25 14:38 [PATCH net 0/2] qlcnic: Bug fixes Shahed Shaikh
@ 2013-10-25 14:38 ` Shahed Shaikh
2013-10-26 4:17 ` Eric Dumazet
2013-10-25 14:38 ` [PATCH net 2/2] qlcnic: Do not read QLCNIC_FW_CAPABILITY_MORE_CAPS bit for 83xx adapter Shahed Shaikh
2013-10-26 4:05 ` [PATCH net 0/2] qlcnic: Bug fixes David Miller
2 siblings, 1 reply; 13+ messages in thread
From: Shahed Shaikh @ 2013-10-25 14:38 UTC (permalink / raw)
To: davem; +Cc: netdev, Dept_NX_Linux_NIC_Driver, Shahed Shaikh
From: Shahed Shaikh <shahed.shaikh@qlogic.com>
Forcing adapter to perform LRO without destination IP check
degrades the performance.
Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com>
---
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
index f8adc7b..b64e2be 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
@@ -785,8 +785,6 @@ void qlcnic_82xx_config_intr_coalesce(struct qlcnic_adapter *adapter)
#define QLCNIC_ENABLE_IPV4_LRO 1
#define QLCNIC_ENABLE_IPV6_LRO 2
-#define QLCNIC_NO_DEST_IPV4_CHECK (1 << 8)
-#define QLCNIC_NO_DEST_IPV6_CHECK (2 << 8)
int qlcnic_82xx_config_hw_lro(struct qlcnic_adapter *adapter, int enable)
{
@@ -806,11 +804,10 @@ int qlcnic_82xx_config_hw_lro(struct qlcnic_adapter *adapter, int enable)
word = 0;
if (enable) {
- word = QLCNIC_ENABLE_IPV4_LRO | QLCNIC_NO_DEST_IPV4_CHECK;
+ word = QLCNIC_ENABLE_IPV4_LRO;
if (adapter->ahw->extra_capability[0] &
QLCNIC_FW_CAP2_HW_LRO_IPV6)
- word |= QLCNIC_ENABLE_IPV6_LRO |
- QLCNIC_NO_DEST_IPV6_CHECK;
+ word |= QLCNIC_ENABLE_IPV6_LRO;
}
req.words[0] = cpu_to_le64(word);
--
1.8.1.4
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH net 1/2] qlcnic: Do not force adapter to perform LRO without destination IP check
2013-10-25 14:38 ` [PATCH net 1/2] qlcnic: Do not force adapter to perform LRO without destination IP check Shahed Shaikh
@ 2013-10-26 4:17 ` Eric Dumazet
2013-10-30 6:46 ` Shahed Shaikh
0 siblings, 1 reply; 13+ messages in thread
From: Eric Dumazet @ 2013-10-26 4:17 UTC (permalink / raw)
To: Shahed Shaikh; +Cc: davem, netdev, Dept_NX_Linux_NIC_Driver
On Fri, 2013-10-25 at 10:38 -0400, Shahed Shaikh wrote:
> From: Shahed Shaikh <shahed.shaikh@qlogic.com>
>
> Forcing adapter to perform LRO without destination IP check
> degrades the performance.
Hmm... the performance, or does it allow two packets belonging to
different flows being wrongly aggregated ?
It looks a critical bug fix, not only a performance issue.
^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: [PATCH net 1/2] qlcnic: Do not force adapter to perform LRO without destination IP check
2013-10-26 4:17 ` Eric Dumazet
@ 2013-10-30 6:46 ` Shahed Shaikh
0 siblings, 0 replies; 13+ messages in thread
From: Shahed Shaikh @ 2013-10-30 6:46 UTC (permalink / raw)
To: Eric Dumazet; +Cc: David Miller, netdev, Dept-NX Linux NIC Driver
> -----Original Message-----
> From: Eric Dumazet [mailto:eric.dumazet@gmail.com]
> Sent: Saturday, October 26, 2013 9:47 AM
> To: Shahed Shaikh
> Cc: David Miller; netdev; Dept-NX Linux NIC Driver
> Subject: Re: [PATCH net 1/2] qlcnic: Do not force adapter to perform LRO
> without destination IP check
>
> On Fri, 2013-10-25 at 10:38 -0400, Shahed Shaikh wrote:
> > From: Shahed Shaikh <shahed.shaikh@qlogic.com>
> >
> > Forcing adapter to perform LRO without destination IP check degrades
> > the performance.
>
>
> Hmm... the performance, or does it allow two packets belonging to different
> flows being wrongly aggregated ?
>
> It looks a critical bug fix, not only a performance issue.
Hi Eric,
That's not the case. When destination IP check is skipped, due to a firmware bug, some packets take a slower path leading to performance issues.
Once the firmware issue is resolved we will revert this change in the driver to skip the des tip check.
Thanks,
Shahed
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH net 2/2] qlcnic: Do not read QLCNIC_FW_CAPABILITY_MORE_CAPS bit for 83xx adapter
2013-10-25 14:38 [PATCH net 0/2] qlcnic: Bug fixes Shahed Shaikh
2013-10-25 14:38 ` [PATCH net 1/2] qlcnic: Do not force adapter to perform LRO without destination IP check Shahed Shaikh
@ 2013-10-25 14:38 ` Shahed Shaikh
2013-10-26 4:05 ` [PATCH net 0/2] qlcnic: Bug fixes David Miller
2 siblings, 0 replies; 13+ messages in thread
From: Shahed Shaikh @ 2013-10-25 14:38 UTC (permalink / raw)
To: davem; +Cc: netdev, Dept_NX_Linux_NIC_Driver, Shahed Shaikh
From: Shahed Shaikh <shahed.shaikh@qlogic.com>
Only 82xx adapter advertises QLCNIC_FW_CAPABILITY_MORE_CAPS bit.
Reading this bit from 83xx adapter causes the driver to skip
extra capabilities registers.
Because of this, driver was not issuing qlcnic_fw_cmd_set_drv_version()
for 83xx adapter.
This bug was introduced in commit 8af3f33db05c6d0146ad14905145a5c923770856
("qlcnic: Add support for 'set driver version' in 83XX").
Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com>
---
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c | 6 +++---
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 6 ++++--
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
index 3ca00e0..ace217c 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
@@ -2276,9 +2276,9 @@ int qlcnic_83xx_get_nic_info(struct qlcnic_adapter *adapter,
temp = (cmd.rsp.arg[8] & 0x7FFE0000) >> 17;
npar_info->max_linkspeed_reg_offset = temp;
}
- if (npar_info->capabilities & QLCNIC_FW_CAPABILITY_MORE_CAPS)
- memcpy(ahw->extra_capability, &cmd.rsp.arg[16],
- sizeof(ahw->extra_capability));
+
+ memcpy(ahw->extra_capability, &cmd.rsp.arg[16],
+ sizeof(ahw->extra_capability));
out:
qlcnic_free_mbx_args(&cmd);
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
index 9e61eb8..d8f4897 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
@@ -1131,7 +1131,10 @@ qlcnic_initialize_nic(struct qlcnic_adapter *adapter)
if (err == -EIO)
return err;
adapter->ahw->extra_capability[0] = temp;
+ } else {
+ adapter->ahw->extra_capability[0] = 0;
}
+
adapter->ahw->max_mac_filters = nic_info.max_mac_filters;
adapter->ahw->max_mtu = nic_info.max_mtu;
@@ -2159,8 +2162,7 @@ void qlcnic_set_drv_version(struct qlcnic_adapter *adapter)
else if (qlcnic_83xx_check(adapter))
fw_cmd = QLCNIC_CMD_83XX_SET_DRV_VER;
- if ((ahw->capabilities & QLCNIC_FW_CAPABILITY_MORE_CAPS) &&
- (ahw->extra_capability[0] & QLCNIC_FW_CAPABILITY_SET_DRV_VER))
+ if (ahw->extra_capability[0] & QLCNIC_FW_CAPABILITY_SET_DRV_VER)
qlcnic_fw_cmd_set_drv_version(adapter, fw_cmd);
}
--
1.8.1.4
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH net 0/2] qlcnic: Bug fixes
2013-10-25 14:38 [PATCH net 0/2] qlcnic: Bug fixes Shahed Shaikh
2013-10-25 14:38 ` [PATCH net 1/2] qlcnic: Do not force adapter to perform LRO without destination IP check Shahed Shaikh
2013-10-25 14:38 ` [PATCH net 2/2] qlcnic: Do not read QLCNIC_FW_CAPABILITY_MORE_CAPS bit for 83xx adapter Shahed Shaikh
@ 2013-10-26 4:05 ` David Miller
2013-10-30 6:44 ` Shahed Shaikh
2 siblings, 1 reply; 13+ messages in thread
From: David Miller @ 2013-10-26 4:05 UTC (permalink / raw)
To: shahed.shaikh; +Cc: netdev, Dept_NX_Linux_NIC_Driver
From: Shahed Shaikh <shahed.shaikh@qlogic.com>
Date: Fri, 25 Oct 2013 10:38:35 -0400
> From: Shahed Shaikh <shahed.shaikh@qlogic.com>
>
> This patch series contains following fixes-
> * Performace drop because driver was forcing adapter not to check
> destination IP for LRO.
> * driver was not issuing qlcnic_fw_cmd_set_drv_version() to 83xx adapter
> becasue of improper handling of QLCNIC_FW_CAPABILITY_MORE_CAPS bit.
>
> Please apply to net.
Applied, what exactly does that destination IP check do?
^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: [PATCH net 0/2] qlcnic: Bug fixes
2013-10-26 4:05 ` [PATCH net 0/2] qlcnic: Bug fixes David Miller
@ 2013-10-30 6:44 ` Shahed Shaikh
0 siblings, 0 replies; 13+ messages in thread
From: Shahed Shaikh @ 2013-10-30 6:44 UTC (permalink / raw)
To: David Miller; +Cc: netdev, Dept-NX Linux NIC Driver
> -----Original Message-----
> From: David Miller [mailto:davem@davemloft.net]
> Sent: Saturday, October 26, 2013 9:36 AM
> To: Shahed Shaikh
> Cc: netdev; Dept-NX Linux NIC Driver
> Subject: Re: [PATCH net 0/2] qlcnic: Bug fixes
>
> From: Shahed Shaikh <shahed.shaikh@qlogic.com>
> Date: Fri, 25 Oct 2013 10:38:35 -0400
>
> > From: Shahed Shaikh <shahed.shaikh@qlogic.com>
> >
> > This patch series contains following fixes-
> > * Performace drop because driver was forcing adapter not to check
> > destination IP for LRO.
> > * driver was not issuing qlcnic_fw_cmd_set_drv_version() to 83xx adapter
> > becasue of improper handling of QLCNIC_FW_CAPABILITY_MORE_CAPS
> bit.
> >
> > Please apply to net.
>
> Applied, what exactly does that destination IP check do?
When a destination IP is programmed, adapter will perform LRO only on TCP packets destined to the programmed IP address.
When the adapter is programmed to skip destination IP check, adapter performs LRO on TCP packets destined to all IP addresses.
Thanks,
Shahed
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH net 0/2] qlcnic: Bug fixes
@ 2014-01-09 17:41 Shahed Shaikh
2014-01-10 18:26 ` David Miller
0 siblings, 1 reply; 13+ messages in thread
From: Shahed Shaikh @ 2014-01-09 17:41 UTC (permalink / raw)
To: davem; +Cc: netdev, Dept_NX_Linux_NIC_Driver, Shahed Shaikh
From: Shahed Shaikh <shahed.shaikh@qlogic.com>
Hi David,
This patch series has couple of bug fixes related to statistics.
Please apply this series to net.
Thanks,
Shahed
Manish Chopra (1):
qlcnic: Fix bug in TX statistics
Shahed Shaikh (1):
qlcnic: Fix ethtool statistics length calculation
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h | 1 +
.../net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c | 41 ++++++++++++----------
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 3 ++
3 files changed, 26 insertions(+), 19 deletions(-)
--
1.8.1.4
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH net 0/2] qlcnic: Bug fixes
@ 2014-04-23 13:59 Shahed Shaikh
2014-04-24 17:31 ` David Miller
0 siblings, 1 reply; 13+ messages in thread
From: Shahed Shaikh @ 2014-04-23 13:59 UTC (permalink / raw)
To: davem; +Cc: netdev, Dept-HSGLinuxNICDev, Shahed Shaikh
From: Shahed Shaikh <shahed.shaikh@qlogic.com>
Hi David,
This patch series contains following fixes -
* Fix memory leak caused because of issuing mailbox
command which can not wait for its completion.
* Reset firmware API lock which might be in inconsistent state.
Please apply this series to net.
Thanks,
Shahed
Rajesh Borundia (1):
qlcnic: Fix memory leak.
Sony Chacko (1):
qlcnic: Reset firmware API lock at driver load time
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 9 +++++++++
.../ethernet/qlogic/qlcnic/qlcnic_sriov_common.c | 9 ++++++++-
2 files changed, 17 insertions(+), 1 deletions(-)
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH net 0/2] qlcnic: Bug fixes
2014-04-23 13:59 Shahed Shaikh
@ 2014-04-24 17:31 ` David Miller
0 siblings, 0 replies; 13+ messages in thread
From: David Miller @ 2014-04-24 17:31 UTC (permalink / raw)
To: shahed.shaikh; +Cc: netdev, Dept-HSGLinuxNICDev
From: Shahed Shaikh <shahed.shaikh@qlogic.com>
Date: Wed, 23 Apr 2014 09:59:54 -0400
> This patch series contains following fixes -
>
> * Fix memory leak caused because of issuing mailbox
> command which can not wait for its completion.
> * Reset firmware API lock which might be in inconsistent state.
>
> Please apply this series to net.
Series applied, thanks.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH net 0/2] qlcnic: Bug fixes
@ 2014-10-14 11:41 Rajesh Borundia
2014-10-14 21:06 ` David Miller
0 siblings, 1 reply; 13+ messages in thread
From: Rajesh Borundia @ 2014-10-14 11:41 UTC (permalink / raw)
To: davem; +Cc: netdev, Dept-HSGLinuxNICDev
This series fixes following issues.
* We were programming maximum number of arguments supported by
adapter instead of required in a command.
* Destroy tx command requires three arguments instead of two.
Please apply these patches to net.
Thanks,
Rajesh
Rajesh Borundia (2):
qlcnic: Fix programming number of arguments in a command.
qlcnic: Fix number of arguments in destroy tx context command
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH net 0/2] qlcnic: Bug fixes
2014-10-14 11:41 Rajesh Borundia
@ 2014-10-14 21:06 ` David Miller
0 siblings, 0 replies; 13+ messages in thread
From: David Miller @ 2014-10-14 21:06 UTC (permalink / raw)
To: rajesh.borundia; +Cc: netdev, Dept-HSGLinuxNICDev
From: Rajesh Borundia <rajesh.borundia@qlogic.com>
Date: Tue, 14 Oct 2014 07:41:44 -0400
> This series fixes following issues.
>
> * We were programming maximum number of arguments supported by
> adapter instead of required in a command.
> * Destroy tx command requires three arguments instead of two.
>
> Please apply these patches to net.
Series applied, thanks.
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2014-10-14 21:06 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-25 14:38 [PATCH net 0/2] qlcnic: Bug fixes Shahed Shaikh
2013-10-25 14:38 ` [PATCH net 1/2] qlcnic: Do not force adapter to perform LRO without destination IP check Shahed Shaikh
2013-10-26 4:17 ` Eric Dumazet
2013-10-30 6:46 ` Shahed Shaikh
2013-10-25 14:38 ` [PATCH net 2/2] qlcnic: Do not read QLCNIC_FW_CAPABILITY_MORE_CAPS bit for 83xx adapter Shahed Shaikh
2013-10-26 4:05 ` [PATCH net 0/2] qlcnic: Bug fixes David Miller
2013-10-30 6:44 ` Shahed Shaikh
-- strict thread matches above, loose matches on Subject: below --
2014-01-09 17:41 Shahed Shaikh
2014-01-10 18:26 ` David Miller
2014-04-23 13:59 Shahed Shaikh
2014-04-24 17:31 ` David Miller
2014-10-14 11:41 Rajesh Borundia
2014-10-14 21:06 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).