PERFORCE change 179605 for review
Alexandre Fiveg
afiveg at FreeBSD.org
Mon Jun 14 16:32:45 UTC 2010
http://p4web.freebsd.org/@@179605?ac=10
Change 179605 by afiveg at cottonmouth on 2010/06/14 16:31:50
not important fixes: refresh e1000
Affected files ...
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/LICENSE#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/README#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_80003es2lan.c#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_80003es2lan.h#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_82540.c#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_82541.c#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_82541.h#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_82542.c#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_82543.c#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_82543.h#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_82571.c#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_82571.h#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_82575.c#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_82575.h#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_api.c#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_api.h#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_defines.h#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_hw.h#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_ich8lan.c#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_ich8lan.h#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_mac.c#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_mac.h#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_manage.c#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_manage.h#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_nvm.c#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_nvm.h#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_osdep.c#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_osdep.h#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_phy.c#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_phy.h#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_regs.h#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/if_em.c#4 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/if_em.h#4 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/if_igb.c#3 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/if_igb.h#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/if_lem.c#2 integrate
.. //depot/projects/soc2010/ringmap/current/sys/dev/e1000/if_lem.h#2 integrate
Differences ...
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/LICENSE#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/README#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_80003es2lan.c#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_80003es2lan.h#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_82540.c#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_82541.c#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_82541.h#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_82542.c#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_82543.c#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_82543.h#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_82571.c#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_82571.h#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_82575.c#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_82575.h#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_api.c#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_api.h#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_defines.h#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_hw.h#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_ich8lan.c#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_ich8lan.h#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_mac.c#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_mac.h#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_manage.c#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_manage.h#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_nvm.c#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_nvm.h#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_osdep.c#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_osdep.h#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_phy.c#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_phy.h#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/e1000_regs.h#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/if_em.c#4 (text+ko) ====
@@ -81,11 +81,6 @@
#include <dev/pci/pcivar.h>
#include <dev/pci/pcireg.h>
-#ifdef __RINGMAP__
-#include <net/ringmap.h>
-#endif
-
-
#include "e1000_api.h"
#include "e1000_82571.h"
#include "if_em.h"
@@ -100,6 +95,7 @@
*********************************************************************/
char em_driver_version[] = "7.0.5";
+
/*********************************************************************
* PCI Device ID Table
*
@@ -195,13 +191,7 @@
static int em_suspend(device_t);
static int em_resume(device_t);
static void em_start(struct ifnet *);
-
-#ifndef __RINGMAP__
static void em_start_locked(struct ifnet *, struct tx_ring *);
-#else
-void em_start_locked(struct ifnet *, struct tx_ring *);
-#endif
-
#ifdef EM_MULTIQUEUE
static int em_mq_start(struct ifnet *, struct mbuf *);
static int em_mq_start_locked(struct ifnet *,
@@ -240,15 +230,8 @@
static void em_enable_intr(struct adapter *);
static void em_disable_intr(struct adapter *);
static void em_update_stats_counters(struct adapter *);
-
-#ifndef __RINGMAP__
static bool em_txeof(struct tx_ring *);
static int em_rxeof(struct rx_ring *, int);
-#else
-int em_rxeof(struct rx_ring *, int);
-bool em_txeof(struct tx_ring *);
-#endif
-
#ifndef __NO_STRICT_ALIGNMENT
static int em_fixup_rx(struct rx_ring *);
#endif
@@ -269,13 +252,7 @@
static int em_dma_malloc(struct adapter *, bus_size_t,
struct em_dma_alloc *, int);
static void em_dma_free(struct adapter *, struct em_dma_alloc *);
-
-#ifndef __RINGMAP__
static void em_print_debug_info(struct adapter *);
-#else
-void em_print_debug_info(struct adapter *);
-#endif
-
static void em_print_nvm_info(struct adapter *);
static int em_is_valid_ether_addr(u8 *);
static int em_sysctl_stats(SYSCTL_HANDLER_ARGS);
@@ -310,16 +287,6 @@
static poll_handler_t em_poll;
#endif /* POLLING */
-
-#ifdef __RINGMAP__
-extern int ringmap_attach(struct adapter *);
-extern int ringmap_detach(struct adapter *);
-extern int ringmap_print_ring_pointers(struct adapter *);
-extern void ringmap_handle_que(void *context, int pending);
-#endif
-
-
-
/*********************************************************************
* FreeBSD Device Interface Entry Points
*********************************************************************/
@@ -335,29 +302,14 @@
{0, 0}
};
-#ifndef __RINGMAP__
static driver_t em_driver = {
"em", em_methods, sizeof(struct adapter),
};
-#else
-static driver_t em_driver = {
- "ringmap", em_methods, sizeof(struct adapter),
-};
-#endif
-
devclass_t em_devclass;
-
-
-#ifndef __RINGMAP__
DRIVER_MODULE(em, pci, em_driver, em_devclass, 0, 0);
MODULE_DEPEND(em, pci, 1, 1, 1);
MODULE_DEPEND(em, ether, 1, 1, 1);
-#else
-DRIVER_MODULE(ringmap, pci, em_driver, em_devclass, 0, 0);
-MODULE_DEPEND(ringmap, pci, 1, 1, 1);
-MODULE_DEPEND(ringmap, ether, 1, 1, 1);
-#endif
/*********************************************************************
* Tunable default values.
@@ -453,37 +405,6 @@
pci_subvendor_id = pci_get_subvendor(dev);
pci_subdevice_id = pci_get_subdevice(dev);
-//TODO: Fix it. Dirty implemented
-#ifdef __RINGMAP__
- if (DEV_ID) {
- if (pci_device_id == DEV_ID)
- return 0;
- else
- return 1;
- } else {
-
- ent = em_vendor_info_array;
- while (ent->vendor_id != 0) {
- if ((pci_vendor_id == ent->vendor_id) &&
- (pci_device_id == ent->device_id) &&
-
- ((pci_subvendor_id == ent->subvendor_id) ||
- (ent->subvendor_id == PCI_ANY_ID)) &&
-
- ((pci_subdevice_id == ent->subdevice_id) ||
- (ent->subdevice_id == PCI_ANY_ID))) {
- sprintf(adapter_name, "%s %s",
- em_strings[ent->index],
- em_driver_version);
- device_set_desc_copy(dev, adapter_name);
- RINGMAP_FUNC_DEBUG(Supported device found!);
- return (BUS_PROBE_DEFAULT);
- }
- ent++;
- }
- RINGMAP_FUNC_DEBUG(Probe failed!);
- }
-#else
ent = em_vendor_info_array;
while (ent->vendor_id != 0) {
if ((pci_vendor_id == ent->vendor_id) &&
@@ -502,7 +423,7 @@
}
ent++;
}
-#endif
+
return (ENXIO);
}
@@ -745,23 +666,6 @@
adapter->led_dev = led_create(em_led_func, adapter,
device_get_nameunit(dev));
-
-
-#ifdef __RINGMAP__
- if (ringmap_attach(adapter) < 0)
- return (EIO);
-
-#if (__RINGMAP_DEB)
- printf("\n\n[%s] DEBUG INFO FOR INTERFACE %s\n", __func__, device_get_nameunit(dev));
- printf("=============================================================\n\n");
- em_print_debug_info(adapter);
- printf("\n=============================================================\n\n");
- INIT_DEBUGOUT2("[%s]:%s END.",__func__, device_get_nameunit(dev));
-#endif
-
-#endif /* __RINGMAP__ */
-
-
INIT_DEBUGOUT("em_attach: end");
return (0);
@@ -795,22 +699,6 @@
INIT_DEBUGOUT("em_detach: begin");
-
-#ifdef __RINGMAP__
- ringmap_detach(adapter);
-
-#if (__RINGMAP_DEB)
- printf("\n\n[%s] DEBUG INFO FOR INTERFACE %s\n", __func__, device_get_nameunit(dev));
- printf("=============================================================\n\n");
- em_print_debug_info(adapter);
- printf("\n=============================================================\n\n");
- INIT_DEBUGOUT2("[%s]:%s END.",__func__, device_get_nameunit(dev));
-#endif
-
-#endif
-
-
-
/* Make sure VLANS are not using driver */
if (adapter->ifp->if_vlantrunk != NULL) {
device_printf(dev,"Vlan in use, detach first\n");
@@ -1019,11 +907,7 @@
#endif /* EM_MULTIQUEUE */
-#ifndef __RINGMAP__
static void
-#else
-void
-#endif
em_start_locked(struct ifnet *ifp, struct tx_ring *txr)
{
struct adapter *adapter = ifp->if_softc;
@@ -1543,20 +1427,6 @@
return FILTER_STRAY;
em_disable_intr(adapter);
-
-
-#ifdef __RINGMAP__
- /* Print it if interrupt debugging is enabled */
- RINGMAP_INTR(NOW SET rxtx_task IN QUEUE);
-
- /* Count interuppts. (for statistics) */
- adapter->rm->ring->interrupts_counter++;
-
- /* Compute the time stamp */
- getmicrotime(&adapter->intr_ts);
-#endif
-
-
taskqueue_enqueue(adapter->tq, &adapter->que_task);
/* Link status change */
@@ -1570,7 +1440,6 @@
return FILTER_HANDLED;
}
-#ifndef __RINGMAP__
/* Combined RX/TX handler, used by Legacy and MSI */
static void
em_handle_que(void *context, int pending)
@@ -1604,7 +1473,6 @@
em_enable_intr(adapter);
return;
}
-#endif
/*********************************************************************
@@ -2417,7 +2285,6 @@
device_t dev = adapter->dev;
int error, rid = 0;
-
/* Manually turn off all interrupts */
E1000_WRITE_REG(&adapter->hw, E1000_IMC, 0xffffffff);
@@ -2436,12 +2303,7 @@
* Allocate a fast interrupt and the associated
* deferred processing contexts.
*/
-#ifndef __RINGMAP__
TASK_INIT(&adapter->que_task, 0, em_handle_que, adapter);
-#else
- TASK_INIT(&adapter->que_task, 0, ringmap_handle_que, adapter);
-#endif
-
TASK_INIT(&adapter->link_task, 0, em_handle_link, adapter);
adapter->tq = taskqueue_create_fast("em_taskq", M_NOWAIT,
taskqueue_thread_enqueue, &adapter->tq);
@@ -3703,11 +3565,7 @@
* tx_buffer is put back on the free queue.
*
**********************************************************************/
-#ifndef __RINGMAP__
static bool
-#else
-bool
-#endif
em_txeof(struct tx_ring *txr)
{
struct adapter *adapter = txr->adapter;
@@ -4190,11 +4048,7 @@
E1000_WRITE_REG(hw, E1000_RDBAL(i), (u32)bus_addr);
/* Setup the Head and Tail Descriptor Pointers */
E1000_WRITE_REG(hw, E1000_RDH(i), 0);
-#ifndef __RINGMAP__
- E1000_WRITE_REG(hw, E1000_RDT(i), adapter->num_rx_desc - 1);
-#else
- E1000_WRITE_REG(hw, E1000_RDT(i), adapter->num_rx_desc - RING_SAFETY_MARGIN);
-#endif
+ E1000_WRITE_REG(hw, E1000_RDT(i), adapter->num_rx_desc - 1);
}
/* Setup the Receive Control Register */
@@ -4233,11 +4087,7 @@
*
* For polling we also now return the number of cleaned packets
*********************************************************************/
-#ifndef __RINGMAP__
static int
-#else
-int
-#endif
em_rxeof(struct rx_ring *rxr, int count)
{
struct adapter *adapter = rxr->adapter;
@@ -4249,28 +4099,6 @@
bool eop;
struct e1000_rx_desc *cur;
-
-#ifdef __RINGMAP__
- struct ringmap *rm = adapter->rm;
-
- RINGMAP_INTR(start);
-
- /* Set RDT (user pointer aka. TAIL) */
- if (rm->procp != NULL) {
- SET_RDT(adapter);
- }
- else {
- RINGMAP_WARN("No process want capture!");
- }
-
- /* Print dubugging info if INTR_DEB set */
-#if (INTR_DEB)
- printf("[%s] Print Ring Pointers\n", __func__);
- ringmap_print_ring_pointers(adapter);
-#endif
-#endif /* __RINGMAP__ */
-
-
EM_RX_LOCK(rxr);
for (i = rxr->next_to_check, processed = 0; count != 0;) {
@@ -4288,7 +4116,6 @@
if ((status & E1000_RXD_STAT_DD) == 0)
break;
-
len = le16toh(cur->length);
eop = (status & E1000_RXD_STAT_EOP) != 0;
count--;
@@ -4361,11 +4188,6 @@
++rxdone; /* cumulative for POLL */
++processed;
-#ifdef __RINGMAP__
- /* Time stamp */
- rm->ring->slot[i].ts = adapter->intr_ts;
-#endif
-
/* Advance our pointers to the next descriptor. */
if (++i == adapter->num_rx_desc)
i = 0;
@@ -4373,43 +4195,17 @@
/* Send to the stack */
if (sendmp != NULL) {
rxr->next_to_check = i;
-
-#ifndef __RINGMAP__
-/* ******************************************************
- * We dont want to do now with protocol stack We want
- * only to map mbufs, pkts and descriptors into space of
- * user process.
- * ******************************************************/
-
EM_RX_UNLOCK(rxr);
(*ifp->if_input)(ifp, sendmp);
EM_RX_LOCK(rxr);
-
-#else
- /* Set kern pointer in ring structure */
- rm->ring->kernrp = rxr->next_to_check;
- rm->pkts_counter++;
-#endif
-
-
i = rxr->next_to_check;
}
-/*
- * RINGMAP: I don't whether we need to refrash mbufs. Refreshing
- * causes memory allocation - it is expensive in term of CPU cycles.
- * Probably we can use old mbufs ???
- */
/* Only refresh mbufs every 8 descriptors */
if (processed == 8) {
em_refresh_mbufs(rxr, i);
processed = 0;
}
-
-#ifndef __RINGMAP__
- E1000_WRITE_REG(&adapter->hw, E1000_RDT(0), i);
-#endif
-
}
/* Catch any remaining refresh work */
@@ -5083,11 +4879,7 @@
* maintained by the driver and hardware.
*
**********************************************************************/
-#ifndef __RINGMAP__
static void
-#else
-void
-#endif
em_print_debug_info(struct adapter *adapter)
{
device_t dev = adapter->dev;
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/if_em.h#4 (text+ko) ====
@@ -69,15 +69,8 @@
* (num_tx_desc * sizeof(struct e1000_tx_desc)) % 128 == 0
*/
#define EM_MIN_RXD 80
-
-#ifndef __RINGMAP__
#define EM_MAX_RXD 4096
#define EM_DEFAULT_RXD 1024
-#else
-#define EM_MAX_RXD SLOTS_NUMBER
-#define EM_DEFAULT_RXD SLOTS_NUMBER
-#endif
-
/*
* EM_TIDV - Transmit Interrupt Delay Value
@@ -216,7 +209,7 @@
#define EM_MSIX_BAR 3 /* On 82575 */
/* Defines for printing debug information */
-#define DEBUG_INIT 1
+#define DEBUG_INIT 0
#define DEBUG_IOCTL 0
#define DEBUG_HW 0
@@ -419,11 +412,6 @@
unsigned long link_irq;
struct e1000_hw_stats stats;
-
-#ifdef __RINGMAP__
- struct ringmap *rm;
- struct timeval intr_ts;
-#endif
};
/********************************************************************************
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/if_igb.c#3 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/if_igb.h#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/if_lem.c#2 (text+ko) ====
==== //depot/projects/soc2010/ringmap/current/sys/dev/e1000/if_lem.h#2 (text+ko) ====
More information about the p4-projects
mailing list