# Copyright 2018 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

from autotest_lib.client.common_lib import utils

AUTHOR = 'dave.rodgman@arm.com'
NAME = 'kernel_IdlePerf'
PURPOSE = 'Test performance impact of idle'
CRITERIA = 'This test will fail if performance drops when CPU idle is enabled'
ATTRIBUTES = 'suite:crosbolt_perf_weekly'
TIME = 'MEDIUM'
TEST_CATEGORY = 'Performance'
TEST_CLASS = 'kernel'
TEST_TYPE = 'server'

DOC = '''
This server side test suite tests for performance regressions where enabling
CPU idle hurts latency-sensitive workloads (e.g., smooth scrolling).

This is done by running smoothness.top_25_smooth and comparing results for
idle enabled vs. disabled: ideally, there should be only a very small impact.

This test currently only supports Arm aarch64.

Pass local=True to run with local telemetry and no AFE server.
'''

def run_benchmark(machine):
    host = hosts.create_host(machine)
    job.run_test('kernel_IdlePerf', host=host,
                 args=utils.args_to_dict(args))

parallel_simple(run_benchmark, machines)