# Copyright (C) 2018 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.

service iorapd /system/bin/iorapd
    class main
    user iorapd
    group iorapd
    writepid /dev/cpuset/system-background/tasks
# TODO: should this be something else like performance/tasks?
# the main 'activity hint' thread needs to be fairly high priority to kick off
# tracing or prefetching asap.

on property:ro.iorapd.enable=false
    stop iorapd

on post-fs-data
    # Create directory for iorapd (see iorapd_data_file in selinux file_contexts).
    mkdir /data/misc/iorapd/ 0770 iorapd iorapd
