cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

hists_common.h (2938B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef __PERF_TESTS__HISTS_COMMON_H__
      3#define __PERF_TESTS__HISTS_COMMON_H__
      4
      5struct machine;
      6struct machines;
      7
      8#define FAKE_PID_PERF1  100
      9#define FAKE_PID_PERF2  200
     10#define FAKE_PID_BASH   300
     11
     12#define FAKE_MAP_PERF    0x400000
     13#define FAKE_MAP_BASH    0x400000
     14#define FAKE_MAP_LIBC    0x500000
     15#define FAKE_MAP_KERNEL  0xf00000
     16#define FAKE_MAP_LENGTH  0x100000
     17
     18#define FAKE_SYM_OFFSET1  700
     19#define FAKE_SYM_OFFSET2  800
     20#define FAKE_SYM_OFFSET3  900
     21#define FAKE_SYM_LENGTH   100
     22
     23#define FAKE_IP_PERF_MAIN  FAKE_MAP_PERF + FAKE_SYM_OFFSET1
     24#define FAKE_IP_PERF_RUN_COMMAND  FAKE_MAP_PERF + FAKE_SYM_OFFSET2
     25#define FAKE_IP_PERF_CMD_RECORD  FAKE_MAP_PERF + FAKE_SYM_OFFSET3
     26#define FAKE_IP_BASH_MAIN  FAKE_MAP_BASH + FAKE_SYM_OFFSET1
     27#define FAKE_IP_BASH_XMALLOC  FAKE_MAP_BASH + FAKE_SYM_OFFSET2
     28#define FAKE_IP_BASH_XFREE  FAKE_MAP_BASH + FAKE_SYM_OFFSET3
     29#define FAKE_IP_LIBC_MALLOC  FAKE_MAP_LIBC + FAKE_SYM_OFFSET1
     30#define FAKE_IP_LIBC_FREE  FAKE_MAP_LIBC + FAKE_SYM_OFFSET2
     31#define FAKE_IP_LIBC_REALLOC  FAKE_MAP_LIBC + FAKE_SYM_OFFSET3
     32#define FAKE_IP_KERNEL_SCHEDULE  FAKE_MAP_KERNEL + FAKE_SYM_OFFSET1
     33#define FAKE_IP_KERNEL_PAGE_FAULT  FAKE_MAP_KERNEL + FAKE_SYM_OFFSET2
     34#define FAKE_IP_KERNEL_SYS_PERF_EVENT_OPEN  FAKE_MAP_KERNEL + FAKE_SYM_OFFSET3
     35
     36/*
     37 * The setup_fake_machine() provides a test environment which consists
     38 * of 3 processes that have 3 mappings and in turn, have 3 symbols
     39 * respectively.  See below table:
     40 *
     41 * Command:  Pid  Shared Object               Symbol
     42 * .............  .............  ...................
     43 *    perf:  100           perf  main
     44 *    perf:  100           perf  run_command
     45 *    perf:  100           perf  cmd_record
     46 *    perf:  100           libc  malloc
     47 *    perf:  100           libc  free
     48 *    perf:  100           libc  realloc
     49 *    perf:  100       [kernel]  schedule
     50 *    perf:  100       [kernel]  page_fault
     51 *    perf:  100       [kernel]  sys_perf_event_open
     52 *    perf:  200           perf  main
     53 *    perf:  200           perf  run_command
     54 *    perf:  200           perf  cmd_record
     55 *    perf:  200           libc  malloc
     56 *    perf:  200           libc  free
     57 *    perf:  200           libc  realloc
     58 *    perf:  200       [kernel]  schedule
     59 *    perf:  200       [kernel]  page_fault
     60 *    perf:  200       [kernel]  sys_perf_event_open
     61 *    bash:  300           bash  main
     62 *    bash:  300           bash  xmalloc
     63 *    bash:  300           bash  xfree
     64 *    bash:  300           libc  malloc
     65 *    bash:  300           libc  free
     66 *    bash:  300           libc  realloc
     67 *    bash:  300       [kernel]  schedule
     68 *    bash:  300       [kernel]  page_fault
     69 *    bash:  300       [kernel]  sys_perf_event_open
     70 */
     71struct machine *setup_fake_machine(struct machines *machines);
     72
     73void print_hists_in(struct hists *hists);
     74void print_hists_out(struct hists *hists);
     75
     76#endif /* __PERF_TESTS__HISTS_COMMON_H__ */