Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F164549001
D15259.id42046.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
D15259.id42046.diff
View Options
Index: sys/dev/mlx4/mlx4_en/en.h
===================================================================
--- sys/dev/mlx4/mlx4_en/en.h
+++ sys/dev/mlx4/mlx4_en/en.h
@@ -54,6 +54,7 @@
#include <dev/mlx4/cmd.h>
#include <netinet/tcp_lro.h>
+#include <netinet/netdump/netdump.h>
#include "en_port.h"
#include <dev/mlx4/stats.h>
@@ -814,6 +815,8 @@
int mlx4_en_process_rx_cq(struct net_device *dev,
struct mlx4_en_cq *cq,
int budget);
+int mlx4_en_process_tx_cq(struct net_device *dev, struct mlx4_en_cq *cq);
+int mlx4_en_xmit(struct mlx4_en_priv *priv, int tx_ind, struct mbuf **m);
void mlx4_en_poll_tx_cq(unsigned long data);
void mlx4_en_fill_qp_context(struct mlx4_en_priv *priv, int size, int stride,
int is_tx, int rss, int qpn, int cqn, int user_prio,
Index: sys/dev/mlx4/mlx4_en/mlx4_en_netdev.c
===================================================================
--- sys/dev/mlx4/mlx4_en/mlx4_en_netdev.c
+++ sys/dev/mlx4/mlx4_en/mlx4_en_netdev.c
@@ -53,6 +53,8 @@
#include "en.h"
#include "en_port.h"
+NETDUMP_DEFINE(mlx4_en);
+
static void mlx4_en_sysctl_stat(struct mlx4_en_priv *priv);
static void mlx4_en_sysctl_conf(struct mlx4_en_priv *priv);
@@ -2298,6 +2300,8 @@
ifmedia_add(&priv->media, IFM_ETHER | IFM_AUTO, 0, NULL);
ifmedia_set(&priv->media, IFM_ETHER | IFM_AUTO);
+ NETDUMP_SET(dev, mlx4_en);
+
en_warn(priv, "Using %d TX rings\n", prof->tx_ring_num);
en_warn(priv, "Using %d RX rings\n", prof->rx_ring_num);
@@ -2879,3 +2883,56 @@
CTLFLAG_RD, &rx_ring->errors, 0, "RX soft errors");
}
}
+
+#ifdef NETDUMP
+static void
+mlx4_en_netdump_init(struct ifnet *dev, int *nrxr, int *ncl, int *clsize)
+{
+ struct mlx4_en_priv *priv;
+
+ priv = if_getsoftc(dev);
+ mutex_lock(&priv->mdev->state_lock);
+ *nrxr = priv->rx_ring_num;
+ *ncl = NETDUMP_MAX_IN_FLIGHT;
+ *clsize = priv->rx_mb_size;
+ mutex_unlock(&priv->mdev->state_lock);
+}
+
+static void
+mlx4_en_netdump_event(struct ifnet *dev, enum netdump_ev event)
+{
+}
+
+static int
+mlx4_en_netdump_transmit(struct ifnet *dev, struct mbuf *m)
+{
+ struct mlx4_en_priv *priv;
+ int err;
+
+ priv = if_getsoftc(dev);
+ if ((if_getdrvflags(dev) & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) !=
+ IFF_DRV_RUNNING || !priv->link_state)
+ return (ENOENT);
+
+ err = mlx4_en_xmit(priv, 0, &m);
+ if (err != 0 && m != NULL)
+ m_freem(m);
+ return (err);
+}
+
+static int
+mlx4_en_netdump_poll(struct ifnet *dev, int count)
+{
+ struct mlx4_en_priv *priv;
+ int i;
+
+ priv = if_getsoftc(dev);
+ if ((if_getdrvflags(dev) & IFF_DRV_RUNNING) == 0 || !priv->link_state)
+ return (ENOENT);
+
+ (void)mlx4_en_process_tx_cq(dev, priv->tx_cq[0]);
+ for (i = 0; i < priv->rx_ring_num; i++)
+ (void)mlx4_en_process_rx_cq(dev, priv->rx_cq[i], 0);
+ return (0);
+}
+#endif /* NETDUMP */
Index: sys/dev/mlx4/mlx4_en/mlx4_en_tx.c
===================================================================
--- sys/dev/mlx4/mlx4_en/mlx4_en_tx.c
+++ sys/dev/mlx4/mlx4_en/mlx4_en_tx.c
@@ -356,8 +356,7 @@
return (wqs < (HEADROOM + (2 * MLX4_EN_TX_WQE_MAX_WQEBBS)));
}
-static int mlx4_en_process_tx_cq(struct net_device *dev,
- struct mlx4_en_cq *cq)
+int mlx4_en_process_tx_cq(struct net_device *dev, struct mlx4_en_cq *cq)
{
struct mlx4_en_priv *priv = netdev_priv(dev);
struct mlx4_cq *mcq = &cq->mcq;
@@ -648,7 +647,7 @@
__iowrite64_copy(dst, __DEVOLATILE(void *, src), bytecnt / 8);
}
-static int mlx4_en_xmit(struct mlx4_en_priv *priv, int tx_ind, struct mbuf **mbp)
+int mlx4_en_xmit(struct mlx4_en_priv *priv, int tx_ind, struct mbuf **mbp)
{
enum {
DS_FACT = TXBB_SIZE / DS_SIZE_ALIGNMENT,
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Mon, Aug 3, 1:11 AM (17 h, 26 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35878146
Default Alt Text
D15259.id42046.diff (3 KB)
Attached To
Mode
D15259: Add netdump hooks for mlxen(4).
Attached
Detach File
Event Timeline
Log In to Comment