dev: Fixing EtherDevice stats initialization order

Previously, the stat `totalBandwidth` is initialized before
`txBandwidth` and `rxBandwidth`. However, `totalBandwith` is of
 type Stats::Formula and `totalBandwidth = txBandwidth + rxBandwidth`.
Therefore, `totalBandwidth` should be initialized after the other two.

This change fixes the variable and stats initialization order accordingly.

The bug was reported here:  3db48cbbc6 (commitcomment-46094633).

Jira: https://gem5.atlassian.net/browse/GEM5-894

Change-Id: I2c7cc4120df672edf15b9a3ab6becc0bbebb778b
Signed-off-by: Hoa Nguyen <hoanguyen@ucdavis.edu>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/39395
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
Hoa Nguyen
2021-01-19 10:05:47 -08:00
parent a3c260094f
commit 71932a360d
2 changed files with 7 additions and 7 deletions

View File

@@ -37,6 +37,10 @@ EtherDevice::EtherDeviceStats::EtherDeviceStats(Stats::Group *parent)
ADD_STAT(rxBytes, "Bytes Received"),
ADD_STAT(txPackets, "Number of Packets Transmitted"),
ADD_STAT(rxPackets, "Number of Packets Received"),
ADD_STAT(txBandwidth, "Transmit Bandwidth (bits/s)",
txBytes * Stats::constant(8) / simSeconds),
ADD_STAT(rxBandwidth, "Receive Bandwidth (bits/s)",
rxBytes * Stats::constant(8) / simSeconds),
ADD_STAT(txIpChecksums, "Number of tx IP Checksums done by device"),
ADD_STAT(rxIpChecksums, "Number of rx IP Checksums done by device"),
ADD_STAT(txTcpChecksums, "Number of tx TCP Checksums done by device"),
@@ -53,10 +57,6 @@ EtherDevice::EtherDeviceStats::EtherDeviceStats(Stats::Group *parent)
ADD_STAT(totBytes, "Total Bytes", txBytes + rxBytes),
ADD_STAT(totPacketRate, "Total Tranmission Rate (packets/s)",
totPackets / simSeconds),
ADD_STAT(txBandwidth, "Transmit Bandwidth (bits/s)",
txBytes * Stats::constant(8) / simSeconds),
ADD_STAT(rxBandwidth, "Receive Bandwidth (bits/s)",
rxBytes * Stats::constant(8) / simSeconds),
ADD_STAT(txPacketRate, "Packet Tranmission Rate (packets/s)",
txPackets / simSeconds),
ADD_STAT(rxPacketRate, "Packet Reception Rate (packets/s)",

View File

@@ -70,6 +70,9 @@ class EtherDevice : public PciDevice
Stats::Scalar txPackets;
Stats::Scalar rxPackets;
Stats::Formula txBandwidth;
Stats::Formula rxBandwidth;
Stats::Scalar txIpChecksums;
Stats::Scalar rxIpChecksums;
@@ -90,9 +93,6 @@ class EtherDevice : public PciDevice
Stats::Formula totBytes;
Stats::Formula totPacketRate;
Stats::Formula txBandwidth;
Stats::Formula rxBandwidth;
Stats::Formula txPacketRate;
Stats::Formula rxPacketRate;