aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Murray <timmurray@google.com>2019-01-08 11:01:18 -0800
committerTim Murray <timmurray@google.com>2019-01-08 13:31:57 -0800
commitdad73ef232034dd0f4f46bda90c74e8727d840cc (patch)
treea8a6930da3fad04ed79054576abfbb0c3980e033
parentc466fe95dc641d879683700aea4233ffd42bc762 (diff)
downloadbionic-pie-qpr3-s1-release.tar.gz
PR_SET_VMA takes mmap_sem, which can cause contention and reduce performance any time many threads are created at the same time, like app startup. Test: camera launch performance Bug: 122471935 Change-Id: If7fa7ad99654c01d503f694976fd92bfd30d2afd Merged-in: If7fa7ad99654c01d503f694976fd92bfd30d2afd
-rw-r--r--libc/bionic/pthread_create.cpp6
1 files changed, 0 insertions, 6 deletions
diff --git a/libc/bionic/pthread_create.cpp b/libc/bionic/pthread_create.cpp
index 21a707ba0..8825c6f24 100644
--- a/libc/bionic/pthread_create.cpp
+++ b/libc/bionic/pthread_create.cpp
@@ -65,8 +65,6 @@ bool __init_tls(pthread_internal_t* thread) {
return false;
}
- prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, allocation, allocation_size, "bionic TLS guard");
-
// Carve out the writable TLS section.
thread->bionic_tls = reinterpret_cast<bionic_tls*>(static_cast<char*>(allocation) +
PTHREAD_GUARD_SIZE);
@@ -77,7 +75,6 @@ bool __init_tls(pthread_internal_t* thread) {
return false;
}
- prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, thread->bionic_tls, BIONIC_TLS_SIZE, "bionic TLS");
return true;
}
@@ -105,7 +102,6 @@ void __init_alternate_signal_stack(pthread_internal_t* thread) {
// We can only use const static allocated string for mapped region name, as Android kernel
// uses the string pointer directly when dumping /proc/pid/maps.
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, ss.ss_sp, ss.ss_size, "thread signal stack");
- prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, stack_base, PTHREAD_GUARD_SIZE, "thread signal stack guard");
}
}
@@ -184,8 +180,6 @@ static void* __create_thread_mapped_space(size_t mmap_size, size_t stack_guard_s
munmap(space, mmap_size);
return NULL;
}
- prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, space, stack_guard_size, "thread stack guard");
-
return space;
}