From 1bea2b5d4072cc068fbb120a9d7e9338adee74de Mon Sep 17 00:00:00 2001 From: Mingguang Xu Date: Thu, 3 Oct 2019 17:36:01 +0000 Subject: =?UTF-8?q?Revert=20"Wifi=20usability:=C2=A0Change=20the=20unit=20?= =?UTF-8?q?of=20the=20threshold=20for=20tx/rx=20throughput=20from=20Mbps?= =?UTF-8?q?=20to=20Kbps"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit ec1e58cd439ae645ff4e5bf55f7961e359bf0e4c. Reason for revert: This change introduced a bug and it completely changed the functionality of WiFi data stall detection, e.g., high Tx link speed can easily trigger data stall.  We would like to roll back them to restore the normal functionality of Wifi data stall detection. Bug: 141995185 Change-Id: I0a2ca9d20771296774af0196f7d0a147d7874249 Merged-In: I76d6338cd2d482d198fde1e5a2d1a0540c087ca6 --- .../com/android/server/wifi/DeviceConfigFacade.java | 20 ++++++++++---------- .../java/com/android/server/wifi/WifiDataStall.java | 20 ++++++++++---------- .../java/com/android/server/wifi/WifiMetrics.java | 16 ++++++++-------- .../com/android/server/wifi/WifiDataStallTest.java | 8 ++++---- 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/service/java/com/android/server/wifi/DeviceConfigFacade.java b/service/java/com/android/server/wifi/DeviceConfigFacade.java index 947261b8a..a9889f424 100644 --- a/service/java/com/android/server/wifi/DeviceConfigFacade.java +++ b/service/java/com/android/server/wifi/DeviceConfigFacade.java @@ -31,10 +31,10 @@ public class DeviceConfigFacade { // Default duration for evaluating Wifi condition to trigger a data stall // measured in milliseconds public static final int DEFAULT_DATA_STALL_DURATION_MS = 1500; - // Default threshold of Tx throughput below which to trigger a data stall measured in Kbps - public static final int DEFAULT_DATA_STALL_TX_TPUT_THR_KBPS = 2000; - // Default threshold of Rx throughput below which to trigger a data stall measured in Kbps - public static final int DEFAULT_DATA_STALL_RX_TPUT_THR_KBPS = 2000; + // Default threshold of Tx throughput below which to trigger a data stall measured in Mbps + public static final int DEFAULT_DATA_STALL_TX_TPUT_THR_MBPS = 2; + // Default threshold of Rx throughput below which to trigger a data stall measured in Mbps + public static final int DEFAULT_DATA_STALL_RX_TPUT_THR_MBPS = 2; // Default threshold of Tx packet error rate above which to trigger a data stall in percentage public static final int DEFAULT_DATA_STALL_TX_PER_THR = 90; // Default threshold of CCA level above which to trigger a data stall in percentage @@ -77,17 +77,17 @@ public class DeviceConfigFacade { /** * Gets the threshold of Tx throughput below which to trigger a data stall. */ - public int getDataStallTxTputThrKbps() { - return DeviceConfig.getInt(NAMESPACE, "data_stall_tx_tput_thr_kbps", - DEFAULT_DATA_STALL_TX_TPUT_THR_KBPS); + public int getDataStallTxTputThrMbps() { + return DeviceConfig.getInt(NAMESPACE, "data_stall_tx_tput_thr_mbps", + DEFAULT_DATA_STALL_TX_TPUT_THR_MBPS); } /** * Gets the threshold of Rx throughput below which to trigger a data stall. */ - public int getDataStallRxTputThrKbps() { - return DeviceConfig.getInt(NAMESPACE, "data_stall_rx_tput_thr_kbps", - DEFAULT_DATA_STALL_RX_TPUT_THR_KBPS); + public int getDataStallRxTputThrMbps() { + return DeviceConfig.getInt(NAMESPACE, "data_stall_rx_tput_thr_mbps", + DEFAULT_DATA_STALL_RX_TPUT_THR_MBPS); } /** diff --git a/service/java/com/android/server/wifi/WifiDataStall.java b/service/java/com/android/server/wifi/WifiDataStall.java index a7931febe..6eb3b41e5 100644 --- a/service/java/com/android/server/wifi/WifiDataStall.java +++ b/service/java/com/android/server/wifi/WifiDataStall.java @@ -52,8 +52,8 @@ public class WifiDataStall { private int mMinTxBad; private int mMinTxSuccessWithoutRx; private int mDataStallDurationMs; - private int mDataStallTxTputThrKbps; - private int mDataStallRxTputThrKbps; + private int mDataStallTxTputThrMbps; + private int mDataStallRxTputThrMbps; private int mDataStallTxPerThr; private int mDataStallCcaLevelThr; private int mLastFrequency = -1; @@ -156,12 +156,12 @@ public class WifiDataStall { boolean isTxTputLow = false; boolean isRxTputLow = false; if (txLinkSpeed > 0) { - int txTputKbps = txLinkSpeed * 1000 * (100 - txPer) * (100 - ccaLevel); - isTxTputLow = txTputKbps < mDataStallTxTputThrKbps * 100 * 100; + int txTput = txLinkSpeed * (100 - txPer) * (100 - ccaLevel); + isTxTputLow = txTput < mDataStallTxTputThrMbps * 100 * 100; } if (rxLinkSpeed > 0) { - int rxTputKbps = rxLinkSpeed * 1000 * (100 - ccaLevel); - isRxTputLow = rxTputKbps < mDataStallRxTputThrKbps * 100; + int rxTput = rxLinkSpeed * (100 - ccaLevel); + isRxTputLow = rxTput < mDataStallRxTputThrMbps * 100; } boolean dataStallTx = isTxTputLow || ccaLevel >= mDataStallCcaLevelThr @@ -255,14 +255,14 @@ public class WifiDataStall { private void updateUsabilityDataCollectionFlags() { mDataStallDurationMs = mDeviceConfigFacade.getDataStallDurationMs(); - mDataStallTxTputThrKbps = mDeviceConfigFacade.getDataStallTxTputThrKbps(); - mDataStallRxTputThrKbps = mDeviceConfigFacade.getDataStallRxTputThrKbps(); + mDataStallTxTputThrMbps = mDeviceConfigFacade.getDataStallTxTputThrMbps(); + mDataStallRxTputThrMbps = mDeviceConfigFacade.getDataStallRxTputThrMbps(); mDataStallTxPerThr = mDeviceConfigFacade.getDataStallTxPerThr(); mDataStallCcaLevelThr = mDeviceConfigFacade.getDataStallCcaLevelThr(); mWifiMetrics.setDataStallDurationMs(mDataStallDurationMs); - mWifiMetrics.setDataStallTxTputThrKbps(mDataStallTxTputThrKbps); - mWifiMetrics.setDataStallRxTputThrKbps(mDataStallRxTputThrKbps); + mWifiMetrics.setDataStallTxTputThrMbps(mDataStallTxTputThrMbps); + mWifiMetrics.setDataStallRxTputThrMbps(mDataStallRxTputThrMbps); mWifiMetrics.setDataStallTxPerThr(mDataStallTxPerThr); mWifiMetrics.setDataStallCcaLevelThr(mDataStallCcaLevelThr); } diff --git a/service/java/com/android/server/wifi/WifiMetrics.java b/service/java/com/android/server/wifi/WifiMetrics.java index 54a0be66d..1b7e8cdb3 100644 --- a/service/java/com/android/server/wifi/WifiMetrics.java +++ b/service/java/com/android/server/wifi/WifiMetrics.java @@ -2784,10 +2784,10 @@ public class WifiMetrics { + mExperimentValues.linkSpeedCountsLoggingEnabled); pw.println("mExperimentValues.dataStallDurationMs=" + mExperimentValues.dataStallDurationMs); - pw.println("mExperimentValues.dataStallTxTputThrKbps=" - + mExperimentValues.dataStallTxTputThrKbps); - pw.println("mExperimentValues.dataStallRxTputThrKbps=" - + mExperimentValues.dataStallRxTputThrKbps); + pw.println("mExperimentValues.dataStallTxTputThrMbps=" + + mExperimentValues.dataStallTxTputThrMbps); + pw.println("mExperimentValues.dataStallRxTputThrMbps=" + + mExperimentValues.dataStallRxTputThrMbps); pw.println("mExperimentValues.dataStallTxPerThr=" + mExperimentValues.dataStallTxPerThr); pw.println("mExperimentValues.dataStallCcaLevelThr=" @@ -5214,18 +5214,18 @@ public class WifiMetrics { /** * Sets the threshold of Tx throughput below which to trigger a data stall */ - public void setDataStallTxTputThrKbps(int txTputThr) { + public void setDataStallTxTputThrMbps(int txTputThr) { synchronized (mLock) { - mExperimentValues.dataStallTxTputThrKbps = txTputThr; + mExperimentValues.dataStallTxTputThrMbps = txTputThr; } } /** * Sets the threshold of Rx throughput below which to trigger a data stall */ - public void setDataStallRxTputThrKbps(int rxTputThr) { + public void setDataStallRxTputThrMbps(int rxTputThr) { synchronized (mLock) { - mExperimentValues.dataStallRxTputThrKbps = rxTputThr; + mExperimentValues.dataStallRxTputThrMbps = rxTputThr; } } diff --git a/tests/wifitests/src/com/android/server/wifi/WifiDataStallTest.java b/tests/wifitests/src/com/android/server/wifi/WifiDataStallTest.java index 6ac18361c..71b658923 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiDataStallTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiDataStallTest.java @@ -76,10 +76,10 @@ public class WifiDataStallTest { .thenReturn(WifiDataStall.MIN_TX_SUCCESS_WITHOUT_RX_DEFAULT); when(mDeviceConfigFacade.getDataStallDurationMs()).thenReturn( DeviceConfigFacade.DEFAULT_DATA_STALL_DURATION_MS); - when(mDeviceConfigFacade.getDataStallTxTputThrKbps()).thenReturn( - DeviceConfigFacade.DEFAULT_DATA_STALL_TX_TPUT_THR_KBPS); - when(mDeviceConfigFacade.getDataStallRxTputThrKbps()).thenReturn( - DeviceConfigFacade.DEFAULT_DATA_STALL_RX_TPUT_THR_KBPS); + when(mDeviceConfigFacade.getDataStallTxTputThrMbps()).thenReturn( + DeviceConfigFacade.DEFAULT_DATA_STALL_TX_TPUT_THR_MBPS); + when(mDeviceConfigFacade.getDataStallRxTputThrMbps()).thenReturn( + DeviceConfigFacade.DEFAULT_DATA_STALL_RX_TPUT_THR_MBPS); when(mDeviceConfigFacade.getDataStallTxPerThr()).thenReturn( DeviceConfigFacade.DEFAULT_DATA_STALL_TX_PER_THR); when(mDeviceConfigFacade.getDataStallCcaLevelThr()).thenReturn( -- cgit v1.2.3