platform_bionic/benchmarks/Android.bp
Suren Baghdasaryan 9a0a360ed6 Add mmap syscall benchmarks
Add benchmarks to monitor performance of the syscalls which are frequently
used in Android. These benchmarks will help Android kernel team to catch
syscall performance regressions and flagging them early. They can also
be used to compare different kernel versions.
Add mmap/munmap syscall benchmarks as a starting point. mmap and munmap
are among most frequently used syscall in Andoird. Specific parameters
were also chosen based on the frequency of their use in Android.

Bug: 283058897
Test: local build and run
Change-Id: If8e53305174532dd698706ccd20e4b800d8720d7
2023-09-29 20:24:47 +00:00

185 lines
4.3 KiB
Text

//
// Copyright (C) 2013 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
package {
default_applicable_licenses: ["bionic_benchmarks_license"],
}
license {
name: "bionic_benchmarks_license",
visibility: [":__subpackages__"],
license_kinds: [
"SPDX-license-identifier-Apache-2.0",
"SPDX-license-identifier-BSD",
],
license_text: [
"NOTICE",
],
}
cc_defaults {
name: "bionic-benchmarks-defaults",
cflags: [
"-O2",
"-fno-builtin",
"-Wall",
"-Wextra",
"-Werror",
"-Wno-gcc-compat",
"-Wunused",
],
srcs: [
"bionic_benchmarks.cpp",
"atomic_benchmark.cpp",
"ctype_benchmark.cpp",
"get_heap_size_benchmark.cpp",
"inttypes_benchmark.cpp",
"malloc_benchmark.cpp",
"malloc_sql_benchmark.cpp",
"malloc_map_benchmark.cpp",
"math_benchmark.cpp",
"property_benchmark.cpp",
"pthread_benchmark.cpp",
"semaphore_benchmark.cpp",
"stdio_benchmark.cpp",
"stdlib_benchmark.cpp",
"string_benchmark.cpp",
"syscall_mmap_benchmark.cpp",
"time_benchmark.cpp",
"unistd_benchmark.cpp",
"wctype_benchmark.cpp",
],
shared_libs: ["liblog"],
static_libs: [
"libbase",
"libBionicBenchmarksUtils",
"libtinyxml2",
],
stl: "libc++_static",
target: {
android: {
static_libs: [
"libmeminfo",
"libprocinfo",
],
},
},
}
cc_defaults {
name: "bionic-benchmarks-extras-defaults",
cflags: [
"-Wall",
"-Wextra",
"-Werror",
"-Wunused",
],
}
// Build benchmarks for the device (with bionic's .so). Run with:
// adb shell /data/benchmarktest/bionic-benchmarks/bionic-benchmarks
// adb shell /data/benchmarktest64/bionic-benchmarks/bionic-benchmarks
cc_benchmark {
name: "bionic-benchmarks",
defaults: ["bionic-benchmarks-defaults"],
srcs: [
"dlfcn_benchmark.cpp",
],
data: ["suites/*"],
static_libs: [
"libsystemproperties",
"libasync_safe",
],
include_dirs: ["bionic/libc"],
}
cc_benchmark {
name: "bionic-benchmarks-static",
defaults: ["bionic-benchmarks-defaults"],
data: ["suites/*"],
static_libs: [
"liblog",
"libsystemproperties",
"libasync_safe",
],
include_dirs: ["bionic/libc"],
static_executable: true,
}
// Build benchmarks for the host (against glibc!). Run with:
cc_benchmark_host {
name: "bionic-benchmarks-glibc",
defaults: ["bionic-benchmarks-defaults"],
srcs: [
"dlfcn_benchmark.cpp",
],
target: {
darwin: {
// Only supported on linux systems.
enabled: false,
},
},
data: ["suites/*"],
}
cc_library_static {
name: "libBionicBenchmarksUtils",
defaults: ["bionic-benchmarks-extras-defaults"],
srcs: ["util.cpp"],
host_supported: true,
}
cc_test {
name: "bionic-benchmarks-tests",
isolated: true,
defaults: ["bionic-benchmarks-extras-defaults"],
srcs: [
"tests/benchmark_test.cpp",
"tests/interface_test.cpp",
],
static_libs: [
"libbase",
"libBionicBenchmarksUtils",
],
data: [
"test_suites/*",
"suites/*",
":bionic-benchmarks",
],
test_suites: ["device-tests"],
require_root: true,
}
cc_binary {
name: "malloc-rss-benchmark",
srcs: [
"malloc_rss_benchmark.cpp",
],
shared_libs: [
"libbase",
],
target: {
android: {
static_libs: [
"libmeminfo",
"libprocinfo",
],
},
},
}