fio_util: Change description and graph name in perf_measurements We send FIO result perf data to chrome perf dashboard but the data from same platform with different internal disk (Example: falco 16G and 32G) get mixed in the same graph which makes the results to be not meaningful. This patch fixes that by separate each disk model/size to its own graph. Also move util to where it should be - Move fio_util from client/common_lib to client/bin - Move get_disk_size() from site_utils to base_utils BUG=chromium:379468 TEST=Run in falco/peach_pit. Get desired result in perf_measurements Change-Id: I50518ce541cb4b2fc21b67db1bbd5de82ddecc6d Reviewed-on: https://chromium-review.googlesource.com/202331 Reviewed-by: Gwendal Grignou <[email protected]> Commit-Queue: Puthikorn Voravootivat <[email protected]> Tested-by: Puthikorn Voravootivat <[email protected]>
diff --git a/client/bin/base_utils.py b/client/bin/base_utils.py index 7dcb372..5147a97 100644 --- a/client/bin/base_utils.py +++ b/client/bin/base_utils.py
@@ -674,6 +674,45 @@ return disk_re.findall(df_output) +def get_disk_size(disk_name): + """ + Return size of disk in byte. Return 0 in Error Case + + @param disk_name: disk name to find size + """ + device = os.path.basename(disk_name) + for line in file('/proc/partitions'): + try: + major, minor, blocks, name = re.split(r' +', line.strip()) + except ValueError: + continue + if name == device: + return 1024 * int(blocks) + return 0 + + +def get_disk_size_gb(disk_name): + """ + Return size of disk in GB (10^9). Return 0 in Error Case + + @param disk_name: disk name to find size + """ + return int(get_disk_size(disk_name) / (10.0 ** 9) + 0.5) + + +def get_disk_model(disk_name): + """ + Return model name for internal storage device + + @param disk_name: disk name to find model + """ + cmd1 = 'udevadm info --query=property --name=%s' % disk_name + cmd2 = 'grep -E "ID_(NAME|MODEL)="' + cmd3 = 'cut -f 2 -d"="' + cmd = ' | '.join([cmd1, cmd2, cmd3]) + return utils.system_output(cmd) + + def load_module(module_name): # Checks if a module has already been loaded if module_is_loaded(module_name):