History log of /system/connectivity/shill/net/event_history.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
1da9419d10a1a617cc634e79772335fa08b3420f 10-Sep-2015 Peter Qiu <zqiu@google.com> shill: libshill-net: remove external header dependency

Move shill_export.h to net/ so that it will be installed by the
library. Also remove the unnecessary header dependency for
shill/accessor_interface.h in event_history.h.

Bug: 23587594
TEST=FEATURES=test emerge-$BOARD shill

Change-Id: Ia0d79e6945bfd27895b534706559d2f47051052a
Reviewed-on: https://chromium-review.googlesource.com/298262
Commit-Ready: Zeping Qiu <zqiu@chromium.org>
Tested-by: Zeping Qiu <zqiu@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Reviewed-by: Alex Deymo <deymo@chromium.org>
/system/connectivity/shill/net/event_history.h
c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5 03-Sep-2015 Peter Qiu <zqiu@google.com> License shill to Apache2

This patch automatically replaced the license on all text files from
Chromium OS (BSD style) to AOSP (Apache2), keeping the original year as
a reference.

The license header was added to .gyp and .gypi, the NOTICE was added with a copy
of the Apache2 license and MODULE_LICENSE_* file was added.

BUG=23587594
TEST=grep 'Chromium OS Authors' doesn't find anything.

Change-Id: If41ede586c2465f5831fb7fee270ff41dbfdb596
/system/connectivity/shill/net/event_history.h
dd19dce483cf54007db84bed6c2b523fbce04813 29-Jun-2015 Samuel Tan <samueltan@chromium.org> shill: change criteria for recording dark resume events

Log dark resume events for purposes of throttling when the
current dark resume is caused by wake on SSID or wake on
disconnect, since we want to guard against repeated dark resume
wakes caused by these triggers.

We previously logged only dark resumes that we entered in a
disconnected state. However, this was an issue when shill
entered dark resume because of a disconnect---shill would only
"realize" that it is disconnected shortly after entering dark resume.
This new criteria fixes this issue by relying on the wake reason,
not connectivity status, to decide whether or not to log the
current dark resume.

Also, improve wake on WiFi throttling unit tests by mocking the
time values logged in |dark_resume_history_|.

BUG=chromium:505072
TEST=Compile shill and run unit tests.

Change-Id: I9b99fcea3d1245e5a3db1e6510e24126a48d8d8b
Reviewed-on: https://chromium-review.googlesource.com/282522
Tested-by: Samuel Tan <samueltan@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Samuel Tan <samueltan@chromium.org>
/system/connectivity/shill/net/event_history.h
e67a78539a05ea7fc68ed5ca18f6d1de333a3086 16-Jun-2015 Paul Stewart <pstew@chromium.org> shill: net: Switch pointer/ref spacing

Switch to Chrome style spacing.

BUG=chromium:501026
TEST=Unit tests

Change-Id: Ice57438655da8f177e5a8aa6fd602779ba21c357
Reviewed-on: https://chromium-review.googlesource.com/278075
Reviewed-by: Rebecca Silberstein <silberst@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/net/event_history.h
bc78c1fefe3bd5d3e4397cb1b4b42cc78ad1e87e 26-Feb-2015 Samuel Tan <samueltan@chromium.org> shill: reduce dark resume frequency threshold and add longer threshold

Reduce the dark resume frequnecy threshold in WakeOnWiFi from 5 per minute to
3 per minute so that we more easily catch cases where shill is thrashing on
disconnected dark resumes.

Also, instead add a longer threshold (10 dark resumes per 10 minutes) to catch
cases of thrashing where dark resumes are taking place slowly but regularly.
Implement this by recording ever dark resume events during a single suspend
session and using EventHistory::CountEventsWithinInterval to check how many dark
resumes have occured in the last short period (1 minute) and long period (10
minutes).

Also:
- rename |dark_resumes_since_last_suspend_| to |dark_resume_history_| in
wake_on_wifi.h.
- Change the bool argument |count_suspend_actions| to an enum
EventHistory::ClockType to increase readibility of EventHistory function
invocations.

BUG=chrome-os-partner:36968
TEST=Compile shill and run unit tests using the following commands:

P2_TEST_FILTER="shill::*" FEATURES="test" USE="wake_on_wifi \
clang asan" emerge-samus shill

P2_TEST_FILTER="shill::*" FEATURES="test" USE="-wake_on_wifi \
clang asan" emerge-samus shill

Change-Id: I578434015a69cefd275e6ea0c1bb7167ffd87c21
Reviewed-on: https://chromium-review.googlesource.com/253872
Reviewed-by: Samuel Tan <samueltan@chromium.org>
Tested-by: Samuel Tan <samueltan@chromium.org>
Commit-Queue: Samuel Tan <samueltan@chromium.org>
/system/connectivity/shill/net/event_history.h
ff59a1896ea250b4450b54db697692e0b1949528 21-Jan-2015 Samuel Tan <samueltan@chromium.org> shill: disable wake on WiFi on excessive dark resume wakes

Use EventHistory to log how often we wake up in dark resume
in a disconnected state, and disable wake on WiFi if this
happens too often.

Also:
- Have shill report done by calling |suspend_actions_done_callback_|
if configuring an NL80211 message fails in
WakeOnWiFi::ApplyWakeOnWiFiSettings and
WakeOnWiFi::DisableWakeOnWiFi (same exit path as a failure on
NetlinkManager::SendNl80211Message in these functions).

BUG=chrome-os-partner:35518
TEST=Compile shill and run unit tests using the following commands:

P2_TEST_FILTER="shill::*" FEATURES="test" USE="wake_on_wifi \
clang asan" emerge-samus shill

P2_TEST_FILTER="shill::*" FEATURES="test" USE="-wake_on_wifi \
clang asan" emerge-samus shill

Manual testing as follows:

1) Flash a samus with test image and boot into it.
2) Run
ff_debug +wifi; ff_debug --level -3
3) Run
echo 0 > /var/lib/power_manager/disable_dark_resume; restart \
powerd
4) Enable the wake on WiFi SSID feature with the following command:
dbus-send --system --print-reply --dest=org.chromium.flimflam \
/device/wlan0 org.chromium.flimflam.Device.SetProperty \
string:WakeOnWiFiFeaturesEnabled \
variant:string:ssid
5) Set the wake-to-scan period to 10 seconds with the
following command:
dbus-send --system --print-reply --dest=org.chromium.flimflam \
/device/wlan0 org.chromium.flimflam.Device.SetProperty \
string:WakeToScanPeriodSeconds variant:uint32:10
6) Connect samus to an AP.
7) Disable the AP. Verify that the samus is fully disconnected by the
WiFi icon state (a cross over empty WiFi bars).
8) Run 'grep "Too many dark resumes" /var/log/net.log | wc -l' and note
the value of the integer output.
9) Run 'powerd_dbus_suspend' to suspend the system.
10) Wait 120 seconds (start counting right after performing step 9).
11) Wake the samus by pressing any key.
12) Run 'grep "Too many dark resumes" /var/log/net.log | wc -l' and
verify that the integer output is still the same as it was in step
8.
13) Repeat step 5 but set the wake-to-scan period to 5 seconds instead.
14) Repeat steps 8-9.
15) Wait 60 seconds.
16) Repeat step 11-12, but verify that the value of the integer output
is now 1 larger than it was in steps 8 and 12.

Change-Id: I0556c1a5199c7f28b2d1d5381a23a4a6bcb9b9a9
Reviewed-on: https://chromium-review.googlesource.com/242406
Tested-by: Samuel Tan <samueltan@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Samuel Tan <samueltan@chromium.org>
/system/connectivity/shill/net/event_history.h
07dfabcb55d74e254f4722926a997959dc4c6393 21-Jan-2015 Samuel Tan <samueltan@chromium.org> shill: create EventHistory class

Refactor deque<Timestamp> members from Service into a separate
EventHistory class that stores a monotonically increasing list of
timestamps represent the occurence of one or more events. This class
allows the number of event timestamps stored in the object at once to
be limited and stale event timestamps to be evicted. All timestamp
eviction is done in FIFO order.

BUG=chrome-os-partner:35518
TEST=Compile shill and run unit tests.

Change-Id: Ie53676c30444c2e2c60f39238f435968d68017fc
Reviewed-on: https://chromium-review.googlesource.com/242081
Tested-by: Samuel Tan <samueltan@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Samuel Tan <samueltan@chromium.org>
/system/connectivity/shill/net/event_history.h