Skip to content

Commit

Permalink
ixgbe-3.18.7
Browse files Browse the repository at this point in the history
    d9797ab9fb538285f1ff123ab0c8deab  ixgbe-3.18.7.tar.gz
  • Loading branch information
intel-wired-lan committed Sep 30, 2013
1 parent dfc37bb commit 45fda91
Show file tree
Hide file tree
Showing 18 changed files with 1,909 additions and 982 deletions.
1,825 changes: 971 additions & 854 deletions README

Large diffs are not rendered by default.

94 changes: 47 additions & 47 deletions SUMS
Original file line number Diff line number Diff line change
@@ -1,47 +1,47 @@
06214 5 ixgbe-3.17.3/pci.updates
42124 3 ixgbe-3.17.3/scripts/set_irq_affinity
56763 8 ixgbe-3.17.3/ixgbe.7
57879 50 ixgbe-3.17.3/src/ixgbe_phy.c
00008 94 ixgbe-3.17.3/src/ixgbe_ethtool.c
53082 4 ixgbe-3.17.3/src/ixgbe_dcb_82598.h
54099 35 ixgbe-3.17.3/src/ixgbe_sriov.c
62024 3 ixgbe-3.17.3/src/ixgbe_x540.h
63396 2 ixgbe-3.17.3/src/ixgbe_82598.h
05259 38 ixgbe-3.17.3/src/ixgbe_82598.c
33520 40 ixgbe-3.17.3/src/kcompat.c
60142 119 ixgbe-3.17.3/src/ixgbe_common.c
03968 36 ixgbe-3.17.3/src/ixgbe_lib.c
20847 27 ixgbe-3.17.3/src/ixgbe_fcoe.c
00845 10 ixgbe-3.17.3/src/ixgbe_dcb_82598.c
07581 8 ixgbe-3.17.3/src/ixgbe_debugfs.c
64145 29 ixgbe-3.17.3/src/ixgbe_ptp.c
44945 130 ixgbe-3.17.3/src/ixgbe_type.h
40758 3 ixgbe-3.17.3/src/ixgbe_82599.h
15100 19 ixgbe-3.17.3/src/ixgbe_mbx.c
51252 7 ixgbe-3.17.3/src/ixgbe_common.h
54796 8 ixgbe-3.17.3/src/ixgbe_sysfs.c
46326 265 ixgbe-3.17.3/src/ixgbe_main.c
29654 113 ixgbe-3.17.3/src/kcompat.h
59291 6 ixgbe-3.17.3/src/ixgbe_phy.h
64248 5 ixgbe-3.17.3/src/ixgbe_dcb_82599.h
12190 1 ixgbe-3.17.3/src/Module.supported
21761 29 ixgbe-3.17.3/src/ixgbe_param.c
45888 34 ixgbe-3.17.3/src/ixgbe_api.c
47549 23 ixgbe-3.17.3/src/ixgbe_dcb_nl.c
23013 20 ixgbe-3.17.3/src/ixgbe_dcb.c
14283 25 ixgbe-3.17.3/src/ixgbe_procfs.c
15413 8 ixgbe-3.17.3/src/ixgbe_api.h
04799 6 ixgbe-3.17.3/src/ixgbe_dcb.h
57178 3 ixgbe-3.17.3/src/ixgbe_fcoe.h
56528 7 ixgbe-3.17.3/src/ixgbe_mbx.h
58060 29 ixgbe-3.17.3/src/ixgbe_x540.c
62176 71 ixgbe-3.17.3/src/ixgbe_82599.c
42081 16 ixgbe-3.17.3/src/ixgbe_dcb_82599.c
08693 32 ixgbe-3.17.3/src/ixgbe.h
15648 3 ixgbe-3.17.3/src/ixgbe_sriov.h
00002 6 ixgbe-3.17.3/src/ixgbe_osdep.h
39129 30 ixgbe-3.17.3/src/kcompat_ethtool.c
13721 12 ixgbe-3.17.3/src/Makefile
39773 19 ixgbe-3.17.3/COPYING
60135 10 ixgbe-3.17.3/ixgbe.spec
60866 43 ixgbe-3.17.3/README
03096 5 ixgbe-3.18.7/pci.updates
42124 3 ixgbe-3.18.7/scripts/set_irq_affinity
56763 8 ixgbe-3.18.7/ixgbe.7
16899 55 ixgbe-3.18.7/src/ixgbe_phy.c
52772 96 ixgbe-3.18.7/src/ixgbe_ethtool.c
53082 4 ixgbe-3.18.7/src/ixgbe_dcb_82598.h
29072 35 ixgbe-3.18.7/src/ixgbe_sriov.c
62024 3 ixgbe-3.18.7/src/ixgbe_x540.h
63396 2 ixgbe-3.18.7/src/ixgbe_82598.h
05259 38 ixgbe-3.18.7/src/ixgbe_82598.c
33520 40 ixgbe-3.18.7/src/kcompat.c
52091 119 ixgbe-3.18.7/src/ixgbe_common.c
63292 36 ixgbe-3.18.7/src/ixgbe_lib.c
20847 27 ixgbe-3.18.7/src/ixgbe_fcoe.c
00845 10 ixgbe-3.18.7/src/ixgbe_dcb_82598.c
07581 8 ixgbe-3.18.7/src/ixgbe_debugfs.c
64145 29 ixgbe-3.18.7/src/ixgbe_ptp.c
43190 130 ixgbe-3.18.7/src/ixgbe_type.h
40758 3 ixgbe-3.18.7/src/ixgbe_82599.h
15100 19 ixgbe-3.18.7/src/ixgbe_mbx.c
51252 7 ixgbe-3.18.7/src/ixgbe_common.h
54796 8 ixgbe-3.18.7/src/ixgbe_sysfs.c
17138 269 ixgbe-3.18.7/src/ixgbe_main.c
01094 114 ixgbe-3.18.7/src/kcompat.h
40699 7 ixgbe-3.18.7/src/ixgbe_phy.h
64248 5 ixgbe-3.18.7/src/ixgbe_dcb_82599.h
12190 1 ixgbe-3.18.7/src/Module.supported
21761 29 ixgbe-3.18.7/src/ixgbe_param.c
06568 34 ixgbe-3.18.7/src/ixgbe_api.c
47549 23 ixgbe-3.18.7/src/ixgbe_dcb_nl.c
23013 20 ixgbe-3.18.7/src/ixgbe_dcb.c
31978 25 ixgbe-3.18.7/src/ixgbe_procfs.c
15413 8 ixgbe-3.18.7/src/ixgbe_api.h
04799 6 ixgbe-3.18.7/src/ixgbe_dcb.h
57178 3 ixgbe-3.18.7/src/ixgbe_fcoe.h
56528 7 ixgbe-3.18.7/src/ixgbe_mbx.h
58060 29 ixgbe-3.18.7/src/ixgbe_x540.c
50566 76 ixgbe-3.18.7/src/ixgbe_82599.c
42081 16 ixgbe-3.18.7/src/ixgbe_dcb_82599.c
55685 35 ixgbe-3.18.7/src/ixgbe.h
15648 3 ixgbe-3.18.7/src/ixgbe_sriov.h
00002 6 ixgbe-3.18.7/src/ixgbe_osdep.h
39129 30 ixgbe-3.18.7/src/kcompat_ethtool.c
57147 12 ixgbe-3.18.7/src/Makefile
39773 19 ixgbe-3.18.7/COPYING
03629 10 ixgbe-3.18.7/ixgbe.spec
01827 45 ixgbe-3.18.7/README
2 changes: 1 addition & 1 deletion ixgbe.spec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Name: ixgbe
Summary: Intel(R) 10GbE PCI Express Ethernet Connection
Version: 3.17.3
Version: 3.18.7
Release: 1
Source: %{name}-%{version}.tar.gz
Vendor: Intel Corporation
Expand Down
8 changes: 8 additions & 0 deletions pci.updates
Original file line number Diff line number Diff line change
Expand Up @@ -89,8 +89,16 @@
8086 5003 Ethernet 10G 2P X540-t Adapter
1529 82599 10 Gigabit Dual Port Network Connection with FCoE
152a 82599 10 Gigabit Dual Port Backplane Connection with FCoE
154a Ethernet Converged Network Adapter X520-4
8086 011a Ethernet Converged Network Adapter X520-4
8086 011b Ethernet Converged Network Adapter X520-4
8086 011c Ethernet Converged Network Adapter X520-4
154d Ethernet 10G 2P X520 Adapter
8086 7b11 Ethernet 10G 2P X520 Adapter
154f 82599 10 Gigabit Dual Port Network Connection
1557 82599 10 Gigabit Network Connection
8086 0001 Ethernet OCP Server Adapter X520-1
1558 Ethernet Converged Network Adapter X520-Q1
8086 011a Ethernet Converged Network Adapter X520-Q1
8086 011b Ethernet Converged Network Adapter X520-Q1
1560 Ethernet Controller X540
2 changes: 2 additions & 0 deletions src/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ endif

DRIVER_NAME=ixgbe


###########################################################################
# Environment tests

Expand Down Expand Up @@ -247,6 +248,7 @@ ifeq ($(SMP),1)
EXTRA_CFLAGS += -D__SMP__
endif


###########################################################################
# Kernel Version Specific rules

Expand Down
104 changes: 104 additions & 0 deletions src/ixgbe.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,11 @@

#include "kcompat.h"

#ifdef CONFIG_NET_RX_BUSY_POLL
#include <net/busy_poll.h>
#define LL_EXTENDED_STATS
#endif

#ifdef HAVE_SCTP
#include <linux/sctp.h>
#endif
Expand Down Expand Up @@ -294,6 +299,11 @@ struct ixgbe_rx_buffer {
struct ixgbe_queue_stats {
u64 packets;
u64 bytes;
#ifdef LL_EXTENDED_STATS
u64 yields;
u64 misses;
u64 cleaned;
#endif /* LL_EXTENDED_STATS */
};

struct ixgbe_tx_queue_stats {
Expand Down Expand Up @@ -503,9 +513,103 @@ struct ixgbe_q_vector {
int numa_node;
char name[IFNAMSIZ + 9];

#ifdef CONFIG_NET_RX_BUSY_POLL
unsigned int state;
#define IXGBE_QV_STATE_IDLE 0
#define IXGBE_QV_STATE_NAPI 1 /* NAPI owns this QV */
#define IXGBE_QV_STATE_POLL 2 /* poll owns this QV */
#define IXGBE_QV_LOCKED (IXGBE_QV_STATE_NAPI | IXGBE_QV_STATE_POLL)
#define IXGBE_QV_STATE_NAPI_YIELD 4 /* NAPI yielded this QV */
#define IXGBE_QV_STATE_POLL_YIELD 8 /* poll yielded this QV */
#define IXGBE_QV_YIELD (IXGBE_QV_STATE_NAPI_YIELD | IXGBE_QV_STATE_POLL_YIELD)
#define IXGBE_QV_USER_PEND (IXGBE_QV_STATE_POLL | IXGBE_QV_STATE_POLL_YIELD)
spinlock_t lock;
#endif /* CONFIG_NET_RX_BUSY_POLL */

/* for dynamic allocation of rings associated with this q_vector */
struct ixgbe_ring ring[0] ____cacheline_internodealigned_in_smp;
};
#ifdef CONFIG_NET_RX_BUSY_POLL
static inline void ixgbe_qv_init_lock(struct ixgbe_q_vector *q_vector)
{

spin_lock_init(&q_vector->lock);
q_vector->state = IXGBE_QV_STATE_IDLE;
}

/* called from the device poll routine to get ownership of a q_vector */
static inline bool ixgbe_qv_lock_napi(struct ixgbe_q_vector *q_vector)
{
int rc = true;
spin_lock(&q_vector->lock);
if (q_vector->state & IXGBE_QV_LOCKED) {
WARN_ON(q_vector->state & IXGBE_QV_STATE_NAPI);
q_vector->state |= IXGBE_QV_STATE_NAPI_YIELD;
rc = false;
#ifdef LL_EXTENDED_STATS
q_vector->tx.ring->stats.yields++;
#endif
} else
/* we don't care if someone yielded */
q_vector->state = IXGBE_QV_STATE_NAPI;
spin_unlock(&q_vector->lock);
return rc;
}

/* returns true is someone tried to get the qv while napi had it */
static inline bool ixgbe_qv_unlock_napi(struct ixgbe_q_vector *q_vector)
{
int rc = false;
spin_lock(&q_vector->lock);
WARN_ON(q_vector->state & (IXGBE_QV_STATE_POLL |
IXGBE_QV_STATE_NAPI_YIELD));

if (q_vector->state & IXGBE_QV_STATE_POLL_YIELD)
rc = true;
q_vector->state = IXGBE_QV_STATE_IDLE;
spin_unlock(&q_vector->lock);
return rc;
}

/* called from ixgbe_low_latency_poll() */
static inline bool ixgbe_qv_lock_poll(struct ixgbe_q_vector *q_vector)
{
int rc = true;
spin_lock_bh(&q_vector->lock);
if ((q_vector->state & IXGBE_QV_LOCKED)) {
q_vector->state |= IXGBE_QV_STATE_POLL_YIELD;
rc = false;
#ifdef LL_EXTENDED_STATS
q_vector->rx.ring->stats.yields++;
#endif
} else
/* preserve yield marks */
q_vector->state |= IXGBE_QV_STATE_POLL;
spin_unlock_bh(&q_vector->lock);
return rc;
}

/* returns true if someone tried to get the qv while it was locked */
static inline bool ixgbe_qv_unlock_poll(struct ixgbe_q_vector *q_vector)
{
int rc = false;
spin_lock_bh(&q_vector->lock);
WARN_ON(q_vector->state & (IXGBE_QV_STATE_NAPI));

if (q_vector->state & IXGBE_QV_STATE_POLL_YIELD)
rc = true;
q_vector->state = IXGBE_QV_STATE_IDLE;
spin_unlock_bh(&q_vector->lock);
return rc;
}

/* true if a socket is polling, even if it did not get the lock */
static inline bool ixgbe_qv_ll_polling(struct ixgbe_q_vector *q_vector)
{
WARN_ON(!(q_vector->state & IXGBE_QV_LOCKED));
return q_vector->state & IXGBE_QV_USER_PEND;
}
#endif /* CONFIG_NET_RX_BUSY_POLL */
#ifdef IXGBE_HWMON

#define IXGBE_HWMON_TYPE_LOC 0
Expand Down
Loading

0 comments on commit 45fda91

Please sign in to comment.