win-pvdrivers

changeset 877:254b8424e23b 0.11.0.275

Go back to targetting xennet DPC's to CPU0. Make sure they are high priority though.
author James Harper <james.harper@bendigoit.com.au>
date Mon Mar 14 23:06:04 2011 +1100 (2011-03-14)
parents 7ec9138621d6
children 8d2238a25dfa
files xennet/xennet_rx.c xennet/xennet_tx.c
line diff
     1.1 --- a/xennet/xennet_rx.c	Mon Mar 14 16:06:35 2011 +1100
     1.2 +++ b/xennet/xennet_rx.c	Mon Mar 14 23:06:04 2011 +1100
     1.3 @@ -735,7 +735,7 @@ XenNet_RxBufferCheck(PKDPC dpc, PVOID co
     1.4      if (!more_to_do)
     1.5      {
     1.6        xi->rx.sring->rsp_event = xi->rx.rsp_cons + 1;
     1.7 -      mb();
     1.8 +      KeMemoryBarrier();
     1.9        more_to_do = RING_HAS_UNCONSUMED_RESPONSES(&xi->rx);
    1.10      }
    1.11    } while (more_to_do);
    1.12 @@ -1016,8 +1016,8 @@ XenNet_RxInit(xennet_info_t *xi)
    1.13    KeInitializeEvent(&xi->packet_returned_event, SynchronizationEvent, FALSE);
    1.14    KeInitializeTimer(&xi->rx_timer);
    1.15    KeInitializeDpc(&xi->rx_dpc, XenNet_RxBufferCheck, xi);
    1.16 -  //KeSetTargetProcessorDpc(&xi->rx_dpc, 0);
    1.17 -  //KeSetImportanceDpc(&xi->rx_dpc, HighImportance);
    1.18 +  KeSetTargetProcessorDpc(&xi->rx_dpc, 0);
    1.19 +  KeSetImportanceDpc(&xi->rx_dpc, HighImportance);
    1.20    //KeInitializeDpc(&xi->rx_timer_dpc, XenNet_RxTimerDpc, xi);
    1.21    status = NdisAllocateMemoryWithTag((PVOID)&xi->rxpi, sizeof(packet_info_t) * NdisSystemProcessorCount(), XENNET_POOL_TAG);
    1.22    if (status != NDIS_STATUS_SUCCESS)
     2.1 --- a/xennet/xennet_tx.c	Mon Mar 14 16:06:35 2011 +1100
     2.2 +++ b/xennet/xennet_tx.c	Mon Mar 14 23:06:04 2011 +1100
     2.3 @@ -659,7 +659,7 @@ XenNet_TxInit(xennet_info_t *xi)
     2.4    KeInitializeDpc(&xi->tx_dpc, XenNet_TxBufferGC, xi);
     2.5    /* dpcs are only serialised to a single processor */
     2.6    KeSetTargetProcessorDpc(&xi->tx_dpc, 0);
     2.7 -  //KeSetImportanceDpc(&xi->tx_dpc, HighImportance);
     2.8 +  KeSetImportanceDpc(&xi->tx_dpc, HighImportance);
     2.9    InitializeListHead(&xi->tx_waiting_pkt_list);
    2.10  
    2.11    KeInitializeEvent(&xi->tx_idle_event, SynchronizationEvent, FALSE);