Age | Commit message (Collapse) | Author |
|
Bug: 260881207
Test: presubmit
Test: abtd app_compat_drm
Test: abtd app_compat_top_100
Test: abtd app_compat_banking
Change-Id: I60055cdf49564ccf46fd70100d11f8b571a2be71
|
|
This reverts commit 8bc6a58df7046b4d6f4b51eb274c7e60fea396ff.
PS1 is identical to
https://android-review.git.corp.google.com/c/platform/art/+/2746640
PS2 makes the following changes:
- Remove one DCHECK each from the two WaitForFlipFunction variants.
The DCHECK could fail if another GC was started in the interim.
- Break up the WaitForSuspendBarrier timeout into shorter ones.
so we don't time out as easily if our process is frozen.
- Include the thread name for ThreadSuspendByThreadIdWarning, since
we don't get complete tombstones for some failures.
Test: Treehugger, host tests.
Bug: 240742796
Bug: 203363895
Bug: 238032384
Bug: 253671779
Bug: 276660630
Bug: 295880862
Bug: 294334417
Bug: 301090887
Bug: 313347640
(and more)
Change-Id: I12c5c01b1e006baab4ee4148aadbc721723fb89e
|
|
This reverts commit c6371b52df0da31acc174a3526274417b7aac0a7.
Reason for revert: This seems to have two remaining issues:
1. The second DCHECK in WaitForFlipFunction is not completely guaranteed to hold, resulting in failures for 658-fp-read-barrier.
2. WaitForSuspendBarrier seems to time out occasionally, possibly spuriously so. We fail when the futex times out once. That's probably incompatible with the app freezer. We should retry a few times.
Change-Id: Ibd8909b31083fc29e6d4f1fcde003d08eb16fc0a
|
|
This reverts commit a43e67ea1a314e5c6faf77457ffc5ea39c24d4ca.
PS1 is identical to aosp/2725875 .
PS2 improves static and dynamic lock checking and makes the
documentation more precise. ThreadList::Unregister for a thread
that wasn't registered becomes fatal; I can't convince myself that
any reasonable recovery is possible, and we could otherwise turn an
obvious error into a very subtle and potentially dangerous one.
Perhaps controversially, we now REQUIRE thread_list_lock_ for
IncrementSuspendCount, eventhough that requires a kludge in the one
case in which we legitimately don't have it. But after thinking about
it, the extra checking and documentation outweighs the kludge, and we
may want to consider this elsewhere as well. Added FakeMutexLock
to enable the kludge here and elsewhere.
PS3 adds some documentation for thread lifetime rules and enforces
a sufficient, though in some cases overly strong, set of related
restrictions for EnsureFlipFunctionStarted. It ensures that callers
conform to this stronger restriction. This required a simplification
in StackUtil::GetThreadListStackTraces.
PS4 Fix lint issue. Add Thread lifetime DCHECK to WaitForFlipFunction.
Rebase to adjust for the fact that aosp/2813551 effectively merged
a small piece of this.
PS5 Add Thread::VerifyState(). We previouslly checked for kTerminated
in a couple of places. That doesn't make sense, since we have no
way to tell whether the thread has been deallocated and reallocated at
that point. Instead of checking that the state is not kTerminated,
just check that it is a sane value. Address some old reviewer
comments. Add more output for EnsureFlipFunctionStarted DCHECK.
RequestSynchronousCheckpoint now aborts rather than returning false
when invoked on a terminated thread. Seeing kTerminated would mean
the thread could have been destroyed, and thus this call was unsafe.
PS6 Add another VerifyState call to RequestSynchronousCheckpoint.
PS7 Rebase and add more ThreadExitFlag tests.
PS8 Rebase. Temporary workaround for compile error.
PS9 Remove PS8 workaround. Add a version of GetPeerFromOtherThread
that expects thread_list_lock_ to be initially held, and relies on
ThreadExitFlag to detect terminated threads. Modify several jvmti
clients to use this correctly. This effectively includes a fixed
version of aosp/2847246.
PS10 Work around the fact that GetReferenceKind in ti_heap.cc may
call GetPeerFromOtherThread with or without thread_list_lock_.
I think this is kind of benign, though it makes reasoning harder,
and weakens our debug checking.
PS11 Remove extra semicolon.
PS12 Add another DCHECK in UnregisterThreadExitFlag.
PS13 Minor tweaks to address reviewer comments.
PS14 More tweaks to address reviewer comments.
PS15 Do not report that a thread exited while its flip-function is
still running.
PS16 Fix comment typo.
Test: Treehugger
Bug: 240742796
Bug: 203363895
Bug: 238032384
Bug: 253671779
Bug: 276660630
Bug: 295880862
Bug: 294334417
Bug: 301090887
Bug: 313347640
(and more)
Change-Id: I44caa30a0a4da8ab105fedd4d2238f59efc1d675
|
|
This reverts commit f9fdd3ce0180972dc8d4f0c8410ea7702828a703.
Reason for revert: Very suspicious host-x86_64-debug failure on LUCI.
Change-Id: Ia01dd3df8d64d6bc0d12319b06a8380f64a46785
|
|
This reverts commit 2a52e8a50c3bc9011713a085f058130bb13fd6a6.
PS1 is identical to aosp/2710354.
PS2 fixes a serious bug in the ThreadExitFlag list handling code.
This didn't show up in presubmit because the list rarely contains
more than a single element. Added an explicit gtest, and a bunch
of DCHECKS around this.
PS3 Rebase and fix oat version. Once more.
PS4 Weaken CheckEmptyCheckpointFromWeakRefAccess check to allow
weak reference access in a checkpoint.
This happens via DumpLavaStack -> ... -> MonitorObjectsStackVisitor
-> ... -> FindResolvedMethod -> ... -> IsDexFileRegistered. I haven't
yet been able to convince myself that this is inherently broken,
though it is trickier than I would like.
PS5 Move cp_placeholder_mutex_ declaration higher in thread.h.
Test: m test-art-host-gtest
Change-Id: I66342ef1de27bfa0272702b5e1d3063ef8da7394
|