android_system_core/init/libprefetch/prefetch/Android.bp
Vikram Auradkar ae8313f8e6 libprefetch: library to prefetch data using tracing.
1: This supports "mem" tracing only.
2: Replay option is modified to use "pread" instead
of readahead.

A simple utility binary "prefetch" is built which links to the library.

The binary allows record, replay and verifying the generated
metadata.

Bug: 362507272
Test: cargo test passes all unit tests.

Verify record, replay and dump options:

./prefetch record --duration 10 --path /data/test/trace-test
./prefetch replay --path /data/test/trace-test
./prefetch dump /data/test/trace-test --format csv

Change-Id: I1661e49183c6120d2878510e609571fe6d608bb5
Signed-off-by: Vikram Auradkar <auradkar@google.com>
Signed-off-by: Akilesh Kailash <akailash@google.com>
2024-11-19 17:50:49 -08:00

80 lines
1.8 KiB
Text

//
// Copyright (C) 2024 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_team: "trendy_team_android_kernel",
default_applicable_licenses: ["Android-Apache-2.0"],
}
rust_library_rlib {
name: "libprefetch_rs",
crate_name: "prefetch_rs",
srcs: ["src/lib.rs"],
rustlibs: [
"libandroid_logger",
"libargh",
"libchrono",
"libcrc32fast",
"libcsv",
"liblibc",
"liblog_rust",
"liblru_cache",
"libnix",
"librand",
"librayon",
"libregex",
"libserde_cbor",
"libserde_json",
"libserde",
"libthiserror",
"libwalkdir",
"librustutils",
],
prefer_rlib: true,
features: [
"derive",
"error-context",
"help",
"std",
"usage",
"use_argh",
],
}
rust_binary {
name: "prefetch",
crate_name: "prefetch",
srcs: ["src/main.rs"],
rustlibs: [
"libprefetch_rs",
"liblog_rust",
"libandroid_logger",
],
prefer_rlib: true,
features: [
"default",
"derive",
"error-context",
"help",
"std",
"usage",
"use_argh",
],
init_rc: [
"prefetch.rc",
],
}
// TODO: Add rust_test to enable unit testing - b/378554334