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

description   "Report once-per-boot UMA statistics"
author        "chromium-os-dev@chromium.org"

start on started system-services

script
  GET_FIRMWARE_TIME='
    /Initial usec timer/ {
      sub(".*Initial usec timer ", "")
      initial_usec = $0
      exit
    }
    END {
      printf "%.2f\n", initial_usec / 1000000
    }
  '

  FIRMWARE_TIME=$(dmesg | awk "$GET_FIRMWARE_TIME")

  # TODO(jrbarnette): The firmware-boot-time file is used by tests
  # for two purposes:
  #  1) by boot time tests, to estimate total boot time from power
  #     on (not just from kernel startup), and
  #  2) by firmware tests, to estimate how long the dev mode warning
  #     screen is presented.
  #
  # Probably there should be another way for autotests to get boot
  # time, so the code to create this file can be removed.
  echo $FIRMWARE_TIME >/tmp/firmware-boot-time

  # usage:
  #   report_disk_metrics <read-sectors> <write-sectors>
  report_disk_metrics() {
    metrics_client Platform.BootSectorsRead $1 1 1000000 50
    metrics_client Platform.BootSectorsWritten $2 1 10000 50
  }

  report_disk_metrics $(
    bootstat_get_last boot-complete read-sectors write-sectors)

  CHROME_EXEC_TIME=$(bootstat_get_last chrome-exec time)
  BOOT_COMPLETE_TIME=$(bootstat_get_last boot-complete time)
  PRE_STARTUP_TIME=$(bootstat_get_last pre-startup time)
  TOTAL_TIME=$(echo $FIRMWARE_TIME $BOOT_COMPLETE_TIME | awk '{print $1 + $2}')
  SYSTEM_TIME=$(echo $CHROME_EXEC_TIME $PRE_STARTUP_TIME |
             awk '{print $1 - $2}')
  CHROME_TIME=$(echo $BOOT_COMPLETE_TIME $CHROME_EXEC_TIME |
             awk '{print $1 - $2}')
  metrics_client -t BootTime.Total $TOTAL_TIME 1 10000 50
  metrics_client -t BootTime.Firmware $FIRMWARE_TIME 1 10000 50
  metrics_client -t BootTime.Kernel $PRE_STARTUP_TIME 1 10000 50
  metrics_client -t BootTime.System $SYSTEM_TIME 1 10000 50
  metrics_client -t BootTime.Chrome $CHROME_TIME 1 10000 50
end script
