Identifying Received Side Scaling CPUs in user space RRS feed

  • Question

  • Hi All,

    i'm in need to write a user-space program to identify the set of CPUs used for processing the DPCs of the network cards when Received Side Scaling is enabled.

    my current approach since i'm limited to user space is to:

    a. read Registry information of each NIC: *RSS *RssBaseProcNumber *MaxRssProcessors

    b. read from HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\NDIS\Parameters: RSSBaseCpu MaxNumRSSCpus

    and under the assumption that OS chooses the closest CPUs i build my logic.

    These are the cases that when i tested them showed no obvious logic:

    A. NIC values are: RssBaseProcNumber(8) MaxRssProcessors(4)

        Registry values: RSSBaseCpu(2) MaxNumRSSCpus(4)

     the logical result should be this cpu set: { 8 9 10 11 }.

    however i got: { 15 14 13 12 } at one test, and at another { 7 6 }

    B. any case when one of RSSBaseCpu /  MaxNumRSSCpus is missing. (Microsofts descriptions says there are default values to those fields, however when using the default values i get inconsistent results to what i saw when i ran those tested with actual assignment of the default values)

    Hope you guys have some insights!


    • Moved by Paul E Long Thursday, September 4, 2014 3:03 PM
    Thursday, August 7, 2014 7:34 AM