| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
(Cherry pick from commit 21fb7e0b753b2251369bfaa1c6f6a09e58e64437)
- Report applications UID, TID/PID by name.
- change wording to have an accurate connotation
- drop privilege check since filtered upstream
Bug: 19608965
Bug: 20334069
Bug: 20370119
Change-Id: I2b1c26580b4c2de293874214ff5ae745546f3cca
|
|
|
|
|
|
|
|
|
|
| |
- do not time out at 1 second if drop has count of less than 4
(Cherry picked from commit 35173a9ac5bd1f4702ccfda3df02ec47ecb57949)
Bug: 20334069
Bug: 20370119
Change-Id: I787cb553dfab5ed71abd6ed72b63de675f834e0c
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Per-UID quota has a threshold of 12.5% of the total log size.
If less than that space is taken by the UID, then we
will not engage the pruning based on worst UID.
Change-Id: I9f15c9a26938f1115eb75e9c28ddb073e7680e06
|
|/
|
|
|
|
| |
Bug: 20334069
Bug: 20370119
Change-Id: I6f850aec46c4df1c99a5b1f28db75d071e134ad5
|
|
|
|
|
|
| |
Answer to the question "Bytes or Lines?"
Change-Id: I352737265aeac63ea8d89e778d4222a9123bdf07
|
|
|
|
|
|
|
|
|
|
| |
- Former algorithm anlo coalesced adjacent records
- New algorithm maintains a hash list of all drop
records and coalesces them all.
Bug: 20334069
Bug: 20370119
Change-Id: Idc15ce31fc1087c2cfa39da60c62feade8b88761
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a return value for the ::log() methods, this allows
us to optimize the wakeup for the readers to only occur
when the log message is actually placed.
This is for a future where we may dedupe identical log
messages, filter out log messages, and certainly if we
filter the messages out with an internal logd check of
__android_log_is_loggable().
Change-Id: I763b2a7c29502ab7fa0a5d5022c7b60244fcfde4
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
- prset(PR_SET_NAME) call once
- No need to call getuid(), should be AID_LOGD
Change-Id: I4dde0b178bc84e711b355cd7677b0dbf905a0634
|
| |
| |
| |
| | |
Change-Id: I9b0e655780924db125568179771e57b01e80aaae
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There is some usage statistics that would be hurt by pruning by UID,
since _all_ usage statistics come from system_server. In other words
we expect it to be chatty. Until we formulate and evaluate a better
(eg: per-tag?) filtration mechanism, lets hold off pruning by UID.
Bug: 19608965
Change-Id: Iddd45a671e13bdcf3394c20919ad1f2e4ef36616
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
With "logd: inject first UID by log buffer message" we can
remove the FUD introduced by having the UID spam filter on
This reverts commit 4141cb2391cfd7211ffff7e53841c6c52869d525
Bug: 19608965
Bug: 14469172
Change-Id: Ifdc20b099e0e426546525b11c1dfe8cc0f830a02
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- internal dropped entries are associated by prune by worst UID
and are applied by UID and by PID
- track dropped entries by rewriting them in place
- merge similar dropped entries together for same UID(implied),
PID and TID so that blame can more clearly be placed
- allow aging of dropped entries by the general backgound pruning
- report individual dropped entries formatted to reader
- add statistics to track dropped entries by UID, the combination
of statistics and dropped logging can track over-the-top Chattiest
clients.
Bug: 19608965
Change-Id: Ibc68480df0c69c55703270cd70c6b26aea165853
|
| |
| |
| |
| |
| |
| | |
a change slipped in from a rebase conflict, repairing.
Change-Id: Ib6479f88fb044f37b6721035c2f7cc75577c0411
|
| |
| |
| |
| |
| |
| |
| |
| | |
- read packages.list to acquire package names
- hijack the reinit handler as a privileged worker
Bug: 19608965
Change-Id: If7becb34354d6415e5c387ecea7d4109a15259c9
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Optional class of statistics for PID
- Enhance pidToName
- Enhanced uidToName
- Enhance pidToUid
- template sort and iteration
Bug: 19608965
Change-Id: I04a1f02e9851b62987f9b176908134e455f22d1d
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
C (but not C++) has a concept of a flexible array member, which
is documented at https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html .
Using a flexible array member indicates that the structure is
really a header for a variable length object.
In logd's case, the variable length structure android_event_string_t
was embedded within another structure called
android_log_event_string_t. This makes gcc's __builtin_object_size()
function really confused. When compiling with C++,
__builtin_object_size(android_log_event_string_t.payload.data, 1)
would return 0, whereas if you compiled the code with C, the same
call would (properly) return -1.
Code which does automatic bounds checking, such as the proposed
patch at https://android-review.googlesource.com/145411 , will
cause problems for logd if this syntax is used.
Don't try to embed a variable length structure within another
structure. This doesn't appear to be valid C nor C++, and
while it's worked, it seems problematic.
Instead, inline the structure so it's one big happy structure.
Change-Id: I8ac02b7142a4f6560f5f80df2effcf720f9896fc
|
|/
|
|
| |
Change-Id: I720b8ef1050da45a7833adef8219b6acb2cf3a38
|
|
|
|
|
|
|
|
|
|
|
|
| |
LogCommand.cpp gets string.h inherited from
private/android_filesystem_config.h it should
not rely on this in the future. The intent is
to move fs_config function into libcutils and
thus deprecate any need for string.h in this
include file.
Bug: 19908228
Change-Id: Iaf3a77298b56efd8004300b17e9a1faafad5b08b
|
|
|
|
|
|
|
|
|
| |
watchdog is triggering on shamu. This may be due to an excessive
number of SELinux denials. Drop the limit from 20/sec to 5/sec.
Bug: 19950451
Bug: 19949988
Change-Id: I979f11e17c241ff2ebda4dec9694ef441dc5d0ed
|
|
|
|
|
|
| |
regression from statistics rewrite series resulted in build breakage
Change-Id: I71b532b23437b9b5f3af47b18c9110f3d7dda48a
|
|
|
|
|
|
|
|
|
| |
- Go back to basic requirements
- Simplify
- use hash tables to minimize memory impact
Bug: 19608965
Change-Id: If7becb34354d6415e5c387ecea7d4109a15259c8
|
|
|
|
|
|
|
|
|
| |
- switch to simpler and faster internal sequence number, drops
a syscall overhead on 32-bit platforms.
- add ability to break-out of flushTo loop with filter return -1
allowing in reduction in reader overhead.
Change-Id: Ic5cb2b9afa4d9470153971fc9197b07279e2b79d
|
|
|
|
|
| |
Bug: 19681572
Change-Id: I343b9d108f064f87df79512a0fdf1b35513c3136
|
|
|
|
|
|
|
|
|
|
| |
- respond to SIGHUP
- respond to logd command "reinit"
- respond to logd --reinit
- reopens files on /data, eg: re-read of persistent properties
Bug: 19681572
Change-Id: Iadac58e6653f027cb7355497bd675eef376ce0a8
|
|
|
|
|
|
| |
- Hard code the "auditd" event tag
Change-Id: I5f76fd286628be5c0ca819e8ed775648c0d2fa44
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This forward port reverts
commit e457b74ce6ee6d799812dc2ec5e4b8b18bcd3e91
No longer as necessary once we add
liblog: Instrument logging of logd write drops
Although this provided an indication of how close statistically we
were to overloading logd it is simpler to understand fails thus to
hunt and peck a corrected value for /proc/sys/net/unix/max_dgram_qlen
Change-Id: I2b30e0fc30625a48fd11a12c2d2cc6a41f26226f
|
|
|
|
| |
Change-Id: Iba843c054ea4fbe1a26c7821b5613fdb5e8001a1
|
|
|
|
| |
Change-Id: I38d7be05ab77fc944a9dbef2b6575d4caa920d08
|
|
|
|
| |
Change-Id: Ia41756e607663d056e7d2fdd7ecbec7e5841a913
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
logd suffers major performance degradation when persistent (blocking)
client reader connects to it (e.g. logcat). The root cause of the
degradation is that each time when reader is notified of the arrival
of new log entries, the reader commences its search for the new entries
from the beginning of the linked list (oldest entries first).
This commit alters the search to start from the end of the linked list
and work backwards. This dramatically decreases logd CPU consumption
when blocking reader is connected, and increases the maximum logging
throughput (before the logs start getting lost) by a factor ~ 20.
Change-Id: Ib60955ce05544e52a8b24acc3dcf5863e1e39c5c
|
|
|
|
|
|
|
|
|
| |
- create a structure to depict the private header
expected at logd end of socket.
- utilize this new structure instead of unscalable
byte stream technique used to unpack in logd.
Change-Id: I2d0e5c3531c279f2dc1fbd74807210ff8d804de0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In a scenario in which an on-line (blocking) client is running and
a clean is attempted (logcat -c), the following can be observed:
1) the on-line logger seems to freeze
2) any other clear attempt will have no effect
What is actually happening:
In this case prune function will "instruct" the oldest timeEntry
to skip a huge number (very close to ULONG_MAX) of messages, this
being the cause of 1.
Since the consumer thread will skip all the log entries, mStart
updating will also be skipped. So a new cleaning attempt will have
the same oldest entry, nothing will be done.
Fix description:
a. keep a separated skipAhead count for individual log buffers (log_id_t)
LogTimeEntry::LogTimeEntry
LogTimeEntry::FilterSecondPass
LogTimeEntry::skipAhead
LogTimeEntry::riggerSkip_Locked
b. update LogTimeEntry::mStart even if the current message is skipped
LogTimeEntry::FilterSecondPass
c. while pruning, only take into account the LogTimeEntrys that are monitoring
the log_id in question, and provide a public method of checking this.
LogTimeEntry::isWatching
LogTimeEntry::FilterFirstPass
LogTimeEntry::FilterSecondPass
d. Reset the skip cont befor the client thtread starts to sleep, at this point
we should be up to date.
LogTimeEntry::cleanSkip_Locked
LogTimeEntry::threadStart
Change-Id: I1b369dc5b02476e633e52578266a644e37e188a5
Signed-off-by: TraianX Schiau <traianx.schiau@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- logDmesg method consumes considerable memory
resources (typically 128KB depending on kernel)
- In the future (eg: klogd, syslogd) there may be need to
feed multiple logs or threads with the retrieved data.
- By moving the actions of logDmesg into the mainline that
instantiates the thread objects, we can leverage a single
allocation of the the kernel log allocation.
- logDmesg (private) is replaced with log (public) which
has a more useful and descriptive purpose for the class.
Change-Id: Ie2dd0370661493c1e596a7e486904a0e8caab9ff
|
|
|
|
|
|
|
|
|
|
|
| |
Impose a limit of 20 selinux denials per second. Denials beyond
that point don't add any value, and have the potential to cause
crashes or denial of service attacks.
Do some other misc cleanup while I'm here.
Bug: 18341932
Change-Id: I6125d629ae4d6ae131d2e53bfa41e1f50277d402
|
|
|
|
| |
Change-Id: I39e8e6d32407a1796a0c3a121f9dc4dc5402c3df
|
|
|
|
|
|
| |
- uid = -1 in subtract operation to match add
Change-Id: I7d0b85b5334c5264fd04309cb78e0c9aec0ad261
|
|
|
|
|
|
|
|
| |
- Recognize pid=0 as special case (kernel or pre-init sourced)
and refrain from treating it in the general case.
Bug: 17526159
Change-Id: I74796043ac34753c6dd10018719ebc0bcd94e012
|
|
|
|
|
|
|
|
|
|
| |
- ro.build.type=user turn off statistics
- ro.config.low_ram=true turn off statistics
- logd.statistics override
Bug: 17526159
Bug: 17526187
Change-Id: I74796043ac34753c6dd10018719ebc0bcd94e00f
|
|
|
|
|
|
|
|
|
|
|
| |
- simplify access and control exposure to class list
- indent
- compile warning
- Follow standard naming convention for variables and methods
- merge common fragments
- Side Effects: none
Change-Id: I74796043ac34753c6dd10018719ebc0bcd94e010
|
|
|
|
|
|
|
|
| |
- sched_yield and lock synchronization in reader thread
startup to give writer thread a chance to catch up
Bug: 17512203
Change-Id: I43cf0b4e2829b22b3ab4e537fa95ce13c76a869c
|
|
|
|
| |
Change-Id: Ie325e1b58f52b6c728d5cfd6f6b87287fcf32e10
|
|
|
|
| |
Change-Id: I2016fe140e2daf6c69efbd10aef205fffb931aa1
|
|
|
|
| |
Bug: 17409250
Change-Id: Id50ebb57754b12d69ed605d0e2901b8e05c607c6
|
|
|
|
|
|
|
|
| |
Added parentheses as it was suggested by compiler.
error: suggest parentheses around operand of '!' or change '&' to '&&' or '!' to '~' [-Werror=parentheses]
Change-Id: Ic3746d9804488411d10d460ddfda11f1fad8efef
Signed-off-by: Arseniy Antonov <arseniy.antonov@intel.com>
|
|
|
|
|
|
|
| |
(cherry picked from commit c113c5813ebd620e0bc60ece9a32ea14c08ea237)
Bug: 16822776
Change-Id: I5bea468a41089b51108880044f32e2b2df1278e7
|
|
|
|
| |
Change-Id: I0f655ad15295739adb8f04ec62c88a220413875e
|
|
|
|
|
| |
Bug: 15384806
Change-Id: I3072d6dd0618fa9ebe151c78a85eb121327f9df3
|
|\ |
|