| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
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
|
|\ |
|
| |
| |
| |
| |
| | |
Bug: 13501501
Change-Id: Ia72e25fc19430ce63fb359cd9b3f0523d41f5aa8
|
| |
| |
| |
| | |
Change-Id: I759c65e869d0c7cd81063fa7993ba3d67ef9cd06
|
|/
|
|
|
|
|
|
| |
- Correct default tense for kernel or user logger
- harden code that parses the benchmark data
- give more meaning to the spam filter test
Change-Id: I97699037ca9d56718f53f08d22be79092fb431de
|
|
|
|
| |
Change-Id: I3520aa05e080de85df352ef36ae16e0406311f3c
|
|
|
|
|
|
|
|
|
|
|
| |
- auditd spawn log copy to events and main
- logcat delete events as one of the default logs
- debuggerd do not collect events.
- squish multiple spaces
- switch from strcpy to memmove for overlapping buffers
BUG: 14626551
Change-Id: I89b30273ce931ed2b25a53ea9be48e77f4c1bbf4
|
|
|
|
| |
Change-Id: I30c078f8b22ebe4dcb48d57adf88b3e51b4fa202
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- auditd switch to recording logs to events log id
- logcat add events as one of the default logs
- debuggerd collect events log as well.
ToDo: debuggerd & bugreport collect intermixed logs.
BUG: 14626551
Change-Id: I958f0e729b7596748be57488a38824db5645be7b
|
|/
|
|
|
|
|
|
|
|
|
|
| |
- AID_SYSTEM can set persist.logd.size
- AID_SYSTEM can issue command to /dev/socket/logd to
change the runtime global log sizes.
- Add support for ro.logd.size.* as populated by BoardConfig.mk
- Limit size to maximum ~3% of physical memory.
Bug: 14563261
Bug: 14627052
Change-Id: I606420db2e9d9d032296e71149e4a5b20cbd1137
|
|
|
|
|
|
|
|
|
| |
- logd Add persist.logd.size (global), persist.logd.size.<logid>
- logcat report a more flexible multiplier in -g command.
Bug: 14563261
Bug: 14469172
Change-Id: Ie389caa14ad3ae3d4a3a3cc463425bb9dbc5e483
|
|
|
|
|
| |
Bug: 14469172
Change-Id: I37c8dbcea0490afb994cbe6f033591fea1c58bc8
|
|
|
|
| |
Change-Id: Ic7920d1b0930155c20a896720a79af62f8acacc1
|
|
|
|
|
|
| |
- Deal with some -Wunused / -Wunused-variable issues
Change-Id: Ic86cd7b0680868ad0536198b71a34cb19134fc21
|
|
|
|
|
|
|
| |
- ULONG_MAX is used against an uint32
- Add tv_sec_max and tv_nsec_max constants to log_time
Change-Id: Ic86cd7b0680868ad0536198b71a34cb19134fc22
|
|
|
|
|
|
|
| |
- oneline, add check for gone
- Add pidGone() method, which caches the gone status
Change-Id: I8f03daeafb58583c2b08ec6b540486c05da0872d
|
|
|
|
|
|
|
|
| |
- permit us a mechanism to disable auditd
- standardize property boolean
Bug: 14275676
Change-Id: I76f245c6aee511ed44274159e0ea55915b484dda
|
|
|
|
|
|
|
| |
- permits easier determination of logd thread at
fault in a stack trace from debuggerd.
Bug: 14275676
Change-Id: Iac2c523147e2bcce34ab7ddcecd02582c5fa7cc0
|
|
|
|
| |
Change-Id: Ie9c7a744e341e6e64afa14973d4d095717c97933
|
|
|
|
|
|
|
|
| |
- Drop in-place sorting.
- Add fast-track for uid sizes and elements.
- Add sort() for per-uid and per-pid statistics.
Change-Id: Ib8655d4cc0b3bd4e87534522987bcc7fc7a5251a
|
|\ |
|
| |
| |
| |
| |
| | |
Bug: 14280914
Change-Id: Idddd29784625094e54144953c29f64692a88eee9
|
|/
|
|
| |
Change-Id: I89da10a73470b037f1811a9890d959cae186f257
|
|
|
|
|
|
|
|
|
|
|
| |
- if network read/write broken up, reassemble the pieces.
- Use a 20ms poll to check if a new fragment has been
sent by the other side.
- fixup logd-unit-tests to take a (simplified) fragment
from the liblog changes.
Bug: 14164765
Change-Id: I98ff87888c119e1e8349717646d0f733e8971bc8
|
|\ |
|
| |
| |
| |
| | |
Change-Id: Iea453764a1a4fc1661f461f10c641c30150e4d20
|
|/
|
|
| |
Change-Id: I3426b6c3eebdd0c8258e966dcaaaa2825d7a23d1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Test statistics output, all four main log id types
are checked to be present, and output is properly
formatted with header (ascii new-line terminated
byte count) and trailer (newline formfeed) frames.
* On dev build test dgram_qlen, circumvent if
liblog benchmarks executed first though.
* Test if kernel and user space loggers are
present, and if any content has leaked to both.
* test benchmark and use it to verify worst UID pruning
Change-Id: I890c89f64825956f40108de806ed750b0170ac6c
|
|
|
|
|
|
|
|
|
| |
- embellish pid name
- >1% of the logs
- fix PID gone detection (EPERM)
- some ? : cleanup
Change-Id: Iba3b306e1fee43e53931165819a398693910514b
|
|\ |
|