Skip to content
  • Jan Scheurich's avatar
    dpif-netdev: Refactor PMD performance into dpif-netdev-perf · 82a48ead
    Jan Scheurich authored
    
    
    Add module dpif-netdev-perf to host all PMD performance-related
    data structures and functions in dpif-netdev. Refactor the PMD
    stats handling in dpif-netdev and delegate whatever possible into
    the new module, using clean interfaces to shield dpif-netdev from
    the implementation details. Accordingly, the all PMD statistics
    members are moved from the main struct dp_netdev_pmd_thread into
    a dedicated member of type struct pmd_perf_stats.
    
    Include Darrel's prior refactoring of PMD stats contained in
    [PATCH v5,2/3] dpif-netdev: Refactor some pmd stats:
    
    1. The cycles per packet counts are now based on packets
    received rather than packet passes through the datapath.
    
    2. Packet counters are now kept for packets received and
    packets recirculated. These are kept as separate counters for
    maintainability reasons. The cost of incrementing these counters
    is negligible.  These new counters are also displayed to the user.
    
    3. A display statistic is added for the average number of
    datapath passes per packet. This should be useful for user
    debugging and understanding of packet processing.
    
    4. The user visible 'miss' counter is used for successful upcalls,
    rather than the sum of sucessful and unsuccessful upcalls. Hence,
    this becomes what user historically understands by OVS 'miss upcall'.
    The user display is annotated to make this clear as well.
    
    5. The user visible 'lost' counter remains as failed upcalls, but
    is annotated to make it clear what the meaning is.
    
    6. The enum pmd_stat_type is annotated to make the usage of the
    stats counters clear.
    
    7. The subtable lookup stats is renamed to make it clear that it
    relates to masked lookups.
    
    8. The PMD stats test is updated to handle the new user stats of
    packets received, packets recirculated and average number of datapath
    passes per packet.
    
    On top of that introduce a "-pmd <core>" option to the PMD info
    commands to filter the output for a single PMD.
    
    Made the pmd-stats-show output a bit more readable by adding a blank
    between colon and value.
    
    Signed-off-by: default avatarJan Scheurich <jan.scheurich@ericsson.com>
    Co-authored-by: default avatarDarrell Ball <dlu998@gmail.com>
    Signed-off-by: default avatarDarrell Ball <dlu998@gmail.com>
    Acked-by: default avatarIlya Maximets <i.maximets@samsung.com>
    Acked-by: default avatarBilly O'Mahony <billy.o.mahony@intel.com>
    Signed-off: Ian Stokes <ian.stokes@intel.com>
    82a48ead