PERFORCE change 182215 for review
Alexandre Fiveg
afiveg at skunkworks.freebsd.org
Wed Aug 11 18:26:25 UTC 2010
http://p4web.freebsd.org/@@182215?ac=10
Change 182215 by afiveg at cottonmouth on 2010/08/10 19:30:53
cosmetic fixes
Affected files ...
.. //depot/projects/soc2010/ringmap/current/contrib/libpcap/pcap-bpf.c#15 edit
.. //depot/projects/soc2010/ringmap/current/contrib/libpcap/pcap-int.h#15 edit
.. //depot/projects/soc2010/ringmap/current/contrib/libpcap/pcap.c#18 edit
.. //depot/projects/soc2010/ringmap/current/contrib/libpcap/ringmap_pcap.c#30 edit
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/if_lem.c#31 edit
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/ringmap_8254.c#30 edit
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/ringmap_8254.h#28 edit
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/ringmap_e1000.h#20 edit
.. //depot/projects/soc2010/ringmap/current/sys/dev/ixgbe/ringmap_8259.h#13 edit
.. //depot/projects/soc2010/ringmap/current/sys/dev/ixgbe/ringmap_ixgbe.c#14 edit
.. //depot/projects/soc2010/ringmap/current/sys/net/ringmap.c#44 edit
.. //depot/projects/soc2010/ringmap/current/sys/net/ringmap.h#44 edit
.. //depot/projects/soc2010/ringmap/current/sys/net/ringmap_kernel.h#14 edit
.. //depot/projects/soc2010/ringmap/scripts/build_ringmap.sh#26 edit
.. //depot/projects/soc2010/ringmap/scripts/set_ringmap.sh#27 edit
.. //depot/projects/soc2010/ringmap/scripts/tailf_ringmap_msgs.sh#21 edit
.. //depot/projects/soc2010/ringmap/tests/libpcap/easy_pcap.c#12 edit
Differences ...
==== //depot/projects/soc2010/ringmap/current/contrib/libpcap/pcap-bpf.c#15 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/contrib/libpcap/pcap-int.h#15 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/contrib/libpcap/pcap.c#18 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/contrib/libpcap/ringmap_pcap.c#30 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/if_lem.c#31 (text+ko) ====
@@ -1436,10 +1436,6 @@
*/
lem_disable_intr(adapter);
-#ifdef RINGMAP
- adapter->rm->funcs->isr(arg);
-#endif
-
taskqueue_enqueue(adapter->tq, &adapter->rxtx_task);
/* Link status change */
@@ -3518,8 +3514,10 @@
#ifdef RINGMAP
/* Call our ringmap-isr only in case any process captures (open_cnt > 0) */
- if ((adapter->rm != NULL) && (adapter->rm->open_cnt > 0))
+ RINGMAP_LOCK(adapter->rm);
+ if (adapter->rm->open_cnt > 0)
adapter->rm->funcs->delayed_isr(adapter);
+ RINGMAP_UNLOCK(adapter->rm);
#endif
while ((current_desc->status & E1000_RXD_STAT_DD) &&
@@ -3576,8 +3574,10 @@
if (accept_frame) {
#ifdef RINGMAP
- if ((adapter->rm != NULL) && (adapter->rm->open_cnt > 0))
+ RINGMAP_LOCK(adapter->rm);
+ if (adapter->rm->open_cnt)
adapter->rm->funcs->delayed_isr_per_packet(adapter->dev, i);
+ RINGMAP_UNLOCK(adapter->rm);
#endif
#ifndef RINGMAP
@@ -3704,8 +3704,8 @@
if (--i < 0)
i = adapter->num_rx_desc - 1;
+ /* RINGMAP: Don't write RDT. We do it in sync_tail() */
#ifndef RINGMAP
- /* Tail pointer will be with userrp synchronized */
E1000_WRITE_REG(&adapter->hw, E1000_RDT(0), i);
#endif
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/ringmap_8254.c#30 (text+ko) ====
@@ -102,7 +102,6 @@
struct timeval last_ts;
RINGMAP_INTR(start);
- RINGMAP_LOCK(adapter->rm);
getmicrotime(&last_ts);
@@ -118,7 +117,6 @@
}
}
- RINGMAP_UNLOCK(adapter->rm);
RINGMAP_INTR(end);
}
@@ -157,7 +155,6 @@
RINGMAP_INTR(start);
- RINGMAP_LOCK(rm);
SLIST_FOREACH(co, &rm->object_list, objects) {
if (co->ring != NULL) {
co->ring->slot[slot_num].is_ok = 1;
@@ -172,7 +169,6 @@
#endif
}
}
- RINGMAP_UNLOCK(rm);
RINGMAP_INTR(end);
}
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/ringmap_8254.h#28 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/ringmap_e1000.h#20 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/ixgbe/ringmap_8259.h#13 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/ixgbe/ringmap_ixgbe.c#14 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/net/ringmap.c#44 (text+ko) ====
@@ -61,7 +61,7 @@
};
-struct ringmap_global_list ringmap_list_head =
+static struct ringmap_global_list ringmap_list_head =
SLIST_HEAD_INITIALIZER(ringmap_list_head);
@@ -125,6 +125,10 @@
}
+/*
+ * Should be called from driver detach function. It is a little dangerous
+ * place. Probably we shoul protect our data here with mutexes.
+ */
int
ringmap_detach(device_t dev)
{
@@ -138,7 +142,7 @@
RINGMAP_WARN(Can not get pointer to ringmap structure);
return (-1);
}
-
+
/* Remove all capturing objects associated with ringmap */
while (!SLIST_EMPTY(&rm->object_list)) {
co = SLIST_FIRST(&rm->object_list);
@@ -185,7 +189,6 @@
rm = cdev2ringmap(cdev);
if ( rm == NULL ) {
RINGMAP_ERROR(Null pointer to ringmap structure);
-
return (EIO);
}
@@ -194,7 +197,6 @@
/* TODO: set max number of threads in the ringmap struct as a variable */
if (rm->open_cnt == RINGMAP_MAX_THREADS) {
RINGMAP_ERROR(Can not open device!);
-
err = EIO; goto out;
}
@@ -214,7 +216,6 @@
M_DEVBUF, M_ZERO, 0, -1L, PAGE_SIZE, 0);
if (ring == NULL) {
RINGMAP_ERROR(Can not allocate space for ring);
-
err = EIO; goto out;
}
@@ -302,7 +303,6 @@
int
ringmap_close(struct cdev *cdev, int flag, int otyp, struct thread *td)
{
-
RINGMAP_FUNC_DEBUG(start);
#if (__RINGMAP_DEB)
@@ -338,15 +338,14 @@
SLIST_REMOVE(&rm->object_list, co, capt_object, objects);
FREE(co, M_DEVBUF);
data = NULL;
+
+ rm->open_cnt--;
+ RINGMAP_UNLOCK(rm);
+
} else {
RINGMAP_FUNC_DEBUG(NULL pointer to the capturing object!);
}
- if (rm->open_cnt)
- --rm->open_cnt;
-
- RINGMAP_UNLOCK(rm);
-
RINGMAP_FUNC_DEBUG(end);
}
@@ -454,7 +453,7 @@
RINGMAP_IOCTL(start);
-#if (__RINGMAP_DEB)
+#if (RINGMAP_IOCTL_DEB)
printf("[%s] pid = %d\n", __func__, td->td_proc->p_pid);
#endif
@@ -488,7 +487,7 @@
/* Set adapter TAIL register */
rm->funcs->sync_tail(co);
-#if (__RINGMAP_DEB)
+#if (RINGMAP_IOCTL_DEB)
print_capt_obj(co);
PRINT_RING_PTRS(co->ring);
#endif
==== //depot/projects/soc2010/ringmap/current/sys/net/ringmap.h#44 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/net/ringmap_kernel.h#14 (text+ko) ====
==== //depot/projects/soc2010/ringmap/scripts/build_ringmap.sh#26 (text+ko) ====
==== //depot/projects/soc2010/ringmap/scripts/set_ringmap.sh#27 (text+ko) ====
==== //depot/projects/soc2010/ringmap/scripts/tailf_ringmap_msgs.sh#21 (text+ko) ====
==== //depot/projects/soc2010/ringmap/tests/libpcap/easy_pcap.c#12 (text+ko) ====
More information about the p4-projects
mailing list