History log of /frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLogger.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
9a865ec91cf32d41496a28d800279cd86832b027 18-May-2016 mukesh agrawal <quiche@google.com> WifiLogger: revert large ringbuffers for userdebug/eng

When the WiFi code is sufficiently mature, we'll use
this patch to return to using small ring buffers
on all builds.

Note that this patch is not a literal/full revert of
CL:1048267. The reason for the more focused change
is to minimize merge conflicts, in case other code
changes by the time this CL lands.

BUG=28822174
TEST=unit tests

Change-Id: I9facadf8aaf779e0627b15815a426b86bde692a1
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLogger.java
1bf155710ada7a6ee27453a120690d2c91a0fec5 19-May-2016 mukesh agrawal <quiche@google.com> WifiLogger: fetch packet fate on dump()

We've observed that it's tricky to detect when a connection
fails. Consequently, even if the user is careful to generate
a bugreport while the device is in the failed state, the
bugreport will not include packet fate data for the most
recent connection.

Improve the utility of packet fate, by fetching the most
recent fate on the call to dump(). With this change in place,
we'll get packet fates for the most recent connection
attempt (even if it's still in progress).

BUG=28849396
TEST=unit tests, manual

Manual test
- configure bullhead for open network
- configure bullhead for wpa-2 network, wrong password
- let bullhead fail connecting to wpa-2 network
- let bullhead succeed connecting to open network
$ adb dumpsys > /tmp/dumpsys
$ grep 'fates ---' /tmp/dumpsys
--------------------- Last failed connection fates ----------------------
--------------------- Latest fates ----------------------

Change-Id: Iaeb2584020f70ac5d2f3139bac72ea07a7ddce81
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLogger.java
8df302f5b9c647f69acee24e09fa20d8b5c54c4a 18-May-2016 mukesh agrawal <quiche@google.com> WifiLogger: use large ringbuffers on eng/userdebug

We're having trouble resolving some field reports, due
to insufficient time coverage in the HAL ring buffers.

Increase the ringbuffer size of eng/userdebug builds,
to make it easier to debug issues reported by
dogfooders.

This change will be reverted closer to launch.
(b/28822174 has been filed for the reversion.)

BUG=28729317
TEST=unit tests

Change-Id: I5884dee05db79245d211a457ff44b5e7b96ddbcb
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLogger.java
37e073350c5e3bdac08d4fa2a0cc9f37190d1173 22-Apr-2016 Ningyuan Wang <nywang@google.com> Optimize logcat fetching by using logcat -t option

WifiLogger::getOutput() sometimes takes more than a few
seconds because it fetchs the entire logcat buffer then takes
the most recent 127 lines.
Since it is a blocking call, it may increase the chance that
WifiService being killed by WatchDog.

This change uses logcat -t option, only fetching the
most recent 127 lines. It significantly reduces the time of the
blocking call.

BUG=28298654
TEST=unit tests, manual test
Manual test:
- boot device
$ adb logcat -d | wc -l
-> repeat until >127
$ adb bugreport > /tmp/bugreport
- check that ‘system log:’ section contains 127 lines.

Change-Id: Ifcfb9e53a7c8b731e76cab1f25cec1bc0c83f33e
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLogger.java
0b775f08887d4d52e57a06c6a8680aa10a1c7bb8 21-Apr-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "WifiLogger: fix bug in HAL callback registration" into nyc-dev
956fd40b6145c4aba9160e10bfc1ea609873ce8d 20-Apr-2016 mukesh agrawal <quiche@google.com> WifiLogger: fix bug in HAL callback registration

When we call WifiLogger.startLogging(), WifiLogger
may or may not register callbacks for ring-buffer
data delivery, and WiFi alerts.

Whether or not WifiLogger registers the callbacks
depends on whether or not the callbacks have already
been reigstered. If WifiLogger has already registered
callbacks, then a new call to startLogging() will
skip callback registration.

Now, it's not entirely clear if this already-registered
check is necessary. It is certainly conceivable that the
HAL implementations allow us to replace existing callbacks,
without explicitly removing the existing callbacks first.

But, the necessity of the check aside, the immediate
problem is that the already-registered check fails to
handle the case where an early registration failed.

This CL revises the code, to handle this case.

While there:
- Fix some whitespace issues.
- Remove unnecessary comment about the effects of
resetLogHandler(). (Even if the comment _were_ necessary,
it should be part of the Javadoc for resetLogHandler().)

BUG=28274991
TEST=(new) unit tests, manual

Manual test:
- boot device
$ adb shell dumpsys | grep -A1 'ring-buffer = driver_prints_rb'
ring-buffer = driver_prints_rb
<base64 encoded data...>

Change-Id: I04e9bc1863aaf5bda00ca9cf8dc35696ae1e5f24
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLogger.java
590f3fc2045389d5ef274c4b3bd6162d93b1a0ac 13-Apr-2016 Samuel Tan <samueltan@google.com> Log summarized packet fate reports

When verbose debugging is not turned on, log
summarized packet fate reports that include the
timestamp, direction, fate, protocol, and type of the
network frame, but nothing more. These one-line
summaries will be logged to the system dump in
table format.

BUG: 28150622
TEST: 'runtest frameworks-wifi' passes.
TEST: Manually trigger a WiFi connection failure (e.g. enter
wrong password for a secured network), and examine the
output of 'adb shell dumpsys' for the logged packet fate
summaries.

Change-Id: Id4cc9c3cdc85d209788e0eb1c51e5a47e04d0a6a
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLogger.java
2ecb62764d26c3f0d95a9dc5c0a616af1b2bf8de 12-Apr-2016 mukesh agrawal <quiche@google.com> wifi service: nuke verbose logs on no-verbose

When a user disables verbose Wi-Fi logging, they
probably don't want to retain firmware dumps or
driver dumps. Similarly for packet fate logs (at
least in raw form).

Nuke such data on entering non-verbose mode,
accordingly.

While there: update reportConnectionFailure(),
to use the recently added isVerboseLoggingEnabled()
method.

BUG=27554392
BUG=27528124
TEST=unit tests

Change-Id: I8da6c1a4ab11e5f43b9e660fb64efed62e7cb9e3
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLogger.java
d0cb2fae195ebb9f658095667f3c7b7b8d69a204 07-Apr-2016 mukesh agrawal <quiche@google.com> wifi service: add support for driver dump HAL API

Implement the framework side of the driver dump HAL API:
- When a bugreport is generated, ask the HAL to provide
a driver memory dump.
- When dumping a bugreport, include the driver memory
dump (if available).

Along the way: add a stub implementation of the driver
dump HAL API, in case a particular vendor HAL does not
implement the API.

While there: declare the (existing) callback for
firmware memory dumps as static. There's no need for
on_firmware_memory_dump() to be visible outside of
com_android_server_wifi_WifiNative.cpp. (Modules
that need access to on_firmware_memory_dump() will be
provided with a pointer; they don't need to reference
the function by name.)

BUG=27554392
TEST=unit tests
TEST=bullhead: dumpsys + verify that driver dump is present
TEST=angler: dumpsys + verify we properly handle unimplemented API

Change-Id: I619b9c819a41a795c1119a8c2fa22447f0c44b56
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLogger.java
f8c50b1e8239d843dd01e6dcf956629dad0771c1 12-Apr-2016 mukesh agrawal <quiche@google.com> WifiLogger: make firmware dump conditional on verbose

We want to make firmware memory dump conditional on
verbose logging for it's own sake. But this also
sets the stage for the driver dump feature to be
conditional on verbose. (Driver dump is still in
the works.)

BUG=21661292
BUG=27554392
TEST=compile (more tests to come)

Change-Id: I22a753d785d1023a94f5c2e753714bc918b41fdf
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLogger.java
d604bbd63d620244ef43408de10f65ead01d5026 06-Apr-2016 mukesh agrawal <quiche@google.com> wifi service: use large ringbuffers in verbose mode

When the user has chosen to enable wi-fi verbose
logging, we'd like to use larger ring buffers.

Make it so.

BUG=27578082
TEST=unit tests

Change-Id: I1e2447df2beda455cea37072e91fa0aac338bb3f
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLogger.java
ed510cfa64decd813f76faf9bb1b0a70b74b9898 01-Apr-2016 mukesh agrawal <quiche@google.com> WifiLogger: add support for packet fate

1) Provide a method for other parts of wifi service
to report connection failures to WifiLogger.
2) Start packet fate monitoring if/when we start
logging in verbose mode.
3) Fetch packet fates on failure, as appropriate.
4) Include packet fate information in dumps.

While there:
a) Change visibility of the single-arg dump() method
in BaseWifiLogger. (Only derived classes should be
calling that overload.)
b) Disambiguate the call from WifiLogger.dump() to
BaseWifiLogger.dump(), by adding |super| to the
expression.
c) Remove unused WifiNative.WIFI_ERROR_UNINITIALIZED

BUG=27528124
TEST=unit tests

Change-Id: Ica85ce39e79983194c3930ef54c29ac07454faed
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLogger.java
fef1495477206d4cabfc95325d71de41790cf9cc 02-Mar-2016 mukesh agrawal <quiche@google.com> make ringbuffer size configurable

Different builds of the WiFi service may want to have different
ring buffer sizes. To allow for this, have the WiFi service
consult Resources for the size to use.

BUG=27264418
TEST=unit tests
TEST=add Log call in WSM ctor, verify size from values.xml was used

Change-Id: Ie6adc9efe107dfeaf4894aaff35c0beb6f7f9819
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLogger.java
b46c550a7305e6c42af4ca92a964b801c33f1f72 02-Mar-2016 mukesh agrawal <quiche@google.com> WifiLogger: manage ring buffers by bytes

At present, we manage the ring buffers by the number of
entries, rather than the number of bytes. Since the size
of an entry is variable, managing by the number of entries
doesn't give us solid control over the amount of memory
used.

To solve this, switch from LimitedCircularArray<byte[]>, to
ByteArrayRingBuffer. ByteArrayRingBuffer limits the number of
bytes, rather than the number of entries.

To facilitate testing, make two of WifiLogger's inner classes
(BugReport and LimitedCircularArray) package-private, instead
of strictly private.

BUG=27264379
TEST=(new) unit tests

Change-Id: I2ed6557bd0b40db3227e1e22ea7ff9f8a27ab2ba
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLogger.java
28a073ae465df4e92b11bc8c9b3a1890de375d30 16-Feb-2016 mukesh agrawal <quiche@google.com> WifiLogger: fix startLogging()

startLogging() asks the native layer for meta-data about the ring
buffers, and then, if meta-data was _not_ available, starts logging the
ring buffers.

That's pretty much the opposite of what we want. Perhaps even exactly
the opposite of what we want.

Invert the condition, to actually start the ring buffers.

BUG=26981286
TEST=unit tests

Change-Id: I3acf227a9b8d4a8970d9bdc7a52fefa101a32852
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLogger.java
7e0315140767e6f12200f7dbbe7aff43b4f75089 13-Nov-2015 Vinit Deshpande <vinitd@google.com> Capture kernel logs with bugreport

This change captures kernel logs along with Wifi firmware
dump; since lost kernel logs have been a big reason for
unresolved bugs.

It also ensures that we dump version information regardless
of whether or not firmware debugging is ON.

Change-Id: I3e44e4b34af3d5d878de242aa344d2950d9b3b1e
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLogger.java
eee1d479d8d402a2e78e2f143e957030cfc77749 29-Dec-2015 Vinit Deshpande <vinitd@google.com> First WifiStateMachine UnitTests

Change-Id: I044b54f18f1a75b5b33c3fc9fc71a8da820d2521
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLogger.java
18786eca942042388748b0d98979f21c9dff4a89 20-Nov-2015 Mitchell Wills <mwills@google.com> Turn WifiNative into a singleton for each interface

Change-Id: Ida8225c1c8434f5cffbdfd2ebbc4a7b240976a15
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLogger.java
e28ce6be22c1389847e77d2be9c8390689cdf395 24-Sep-2015 Vinit Deshpande <vinitd@google.com> Disable wifi firmware logging by default

This is really needed for debugging phase, which is over
now; and disabling it will reduce surface area

Bug: 24317401

Change-Id: I0acf9efc94333cb274d4286df9c853431d86883d
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLogger.java
674602ce4a5e0c6df7e67230310ad842deb532e9 09-Sep-2015 Vineeta Srivastava <vsrivastava@google.com> Revert "Dump more ring buffer data in bugreports"

This reverts commit d564996d66942dc11ccbafa70c38ef26320b8b8a.

Bug: 23790222
Change-Id: I28862a3ed9938184d1540b89a878189eefc084f9
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLogger.java
d564996d66942dc11ccbafa70c38ef26320b8b8a 27-Aug-2015 Vinit Deshpande <vinitd@google.com> Dump more ring buffer data in bugreports

This change caches wifi ring buffer data for last one hour instead
of caching fixed size of data. This will help debug transitional
issues better.

This change also captures firmware dump when IP reachablity is lost.
hopefully, this will help debug elusive connectivity issues.

Bug: 23320188

Change-Id: I03c944967b73aeeb56df05f481e41f90715291f4
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLogger.java
9a41261e4f688411a7038781ca959b2007965f06 09-Jul-2015 Vinit Deshpande <vinitd@google.com> Capture an additional report when user captures a bugreport

Currently, all ringbuffer data and memory dump are captured when
an error is discovered. But that leaves a lot of scenarios
where we don't have this data. This change captures this data
on each dupmsys operation as well.

This change also captures firmware memory dump to debug
additional problems.

Bug: 22390445

Change-Id: I1fab1dacc4b11287697e9b7d97670bebc4c4bac5
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLogger.java
b797893fc1966803d0c013faac42e6396a37a384 26-Jun-2015 xinhe <xinhe@google.com> Use wifi_reset_log_handler to stop logging

b/22098062

Change-Id: I6bc701ba81a9dad323403a39e3cb385153d2ed88
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLogger.java
6414301b7b685307e8ae8cea6976ed05cc49b254 25-Jun-2015 Vinit Deshpande <vinitd@google.com> Re-enable Driver/Firmware based logs

Change-Id: If2c929a1156d936ac1a17681d1f171ae1f9dd1bf
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLogger.java
a1276378c5a215774193e745568d6dec0d19a722 10-Jun-2015 Vinit Deshpande <vinitd@google.com> Ensure FW version in bugreport

Change-Id: I851b92a77abe647ed904ed4d55dddfdc0dfff366
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLogger.java
ba5908f65b0470be02ec7b5c035a3aec22eb0c11 10-Jun-2015 Vinit Deshpande <vinitd@google.com> Temporarily disable wifi logger

It is causing memory corruption; we'll enable it after
that is dealt with.

Bug: 21730601
Bug: 21668637

Change-Id: I0c0d9410b7498f80d937ed4cf494e569d3e51cd4
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLogger.java
f7db07b9cc88ceef2ca3d77414834d0d75b4ece7 06-Jun-2015 Vinit Deshpande <vinitd@google.com> Capture alert data; and require verbose to capture firmware dump

This change starts capturing data on firmware alert. Alerts by
default capture FW memory dump.

It also requires 'wifi verbose debugging' to be enabled to capture
firmware dumps; they are taking too much space.

Change-Id: I9bf8c274eef263be4c2fda62bed128048f36b972
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLogger.java
d27cbe81e1b51f09081c667c275019e63a0399a2 06-Jun-2015 Vinit Deshpande <vinitd@google.com> Fix a null pointer exception in logger

Bug: 21668637
Change-Id: I677c971cb06fbcb638d9a40f6aee3114d517f0ba
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLogger.java
0bf150b2d69ec62df905bc6f8603437dc4caee1f 01-Jun-2015 Vinit Deshpande <vinitd@google.com> Enable ring buffer logging and auto-logging of failures

This change extracts ring buffer data from firmware; and
automatically logs driver/firmware logs when any failure
is detected.

Change-Id: I20c8cc00e8ac1d1b4f35da6d309e972cd8ea5d19
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLogger.java
03ba4a5b108ab2bbdb5d0e7be46ac45c00a6d9ff 28-Apr-2015 xinhe <xinhe@google.com> Initial bring up for debug framework

Change-Id: I0e78897d1440f0b7c56740ff7890e2f3d6a0d951
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLogger.java
a0d34d3626bd9631039a485d2d428b1b7de390e2 19-Mar-2015 Pierre Vandwalle <vandwalle@google.com> initial logger stuff

Change-Id: Ie08d4184efe40c91969914ce84a1a6f1d255ec21
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLogger.java