Update perf auto profile script

- Fix gen_autofdo_event: The download URL for the Intel Perfmon Event
  list has changed, as well as the JSON format.
  Also it now uses pattern matching to match CPUs. Update the script to support all of this.
- Regenerate gcc-auto-profile with the latest published Intel model
  numbers, so it works with recent systems.
- So far it's still broken on hybrid systems

contrib/ChangeLog:

	* gen_autofdo_event.py: Update for download server changes

gcc/ChangeLog

	* config/i386/gcc-auto-profile: Regenerate.
This commit is contained in:
Andi Kleen 2023-05-30 04:05:39 -07:00
parent de5f3bbf95
commit 950fa8552b
2 changed files with 12 additions and 4 deletions

View file

@ -32,8 +32,9 @@ import json
import argparse
import collections
import os
import fnmatch
baseurl = "https://download.01.org/perfmon"
baseurl = "https://raw.githubusercontent.com/intel/perfmon/main"
target_events = ('BR_INST_RETIRED.NEAR_TAKEN',
'BR_INST_EXEC.TAKEN',
@ -74,7 +75,7 @@ def get_cpustr():
def find_event(eventurl, model):
print("Downloading", eventurl, file = sys.stderr)
u = urllib.request.urlopen(eventurl)
events = json.loads(u.read())
events = json.loads(u.read())["Events"]
u.close()
found = 0
@ -102,7 +103,7 @@ found = 0
cpufound = 0
for j in u:
n = j.rstrip().decode().split(',')
if len(n) >= 4 and (args.all or n[0] == cpu) and n[3] == "core":
if len(n) >= 4 and (args.all or fnmatch.fnmatch(cpu, n[0])) and n[3] == "core":
components = n[0].split("-")
model = components[2]
model = int(model, 16)

View file

@ -43,8 +43,10 @@ model*:\ 47|\
model*:\ 37|\
model*:\ 44) E="cpu/event=0x88,umask=0x40/$FLAGS" ;;
model*:\ 55|\
model*:\ 74|\
model*:\ 77|\
model*:\ 76|\
model*:\ 90|\
model*:\ 92|\
model*:\ 95|\
model*:\ 87|\
@ -75,14 +77,19 @@ model*:\ 165|\
model*:\ 166|\
model*:\ 85|\
model*:\ 85) E="cpu/event=0xC4,umask=0x20/p$FLAGS" ;;
model*:\ 125|\
model*:\ 126|\
model*:\ 167|\
model*:\ 140|\
model*:\ 141|\
model*:\ 143|\
model*:\ 207|\
model*:\ 106|\
model*:\ 108) E="cpu/event=0xc4,umask=0x20/p$FLAGS" ;;
model*:\ 134|\
model*:\ 150) E="cpu/event=0xc4,umask=0xfe/p$FLAGS" ;;
model*:\ 150|\
model*:\ 156|\
model*:\ 190) E="cpu/event=0xc4,umask=0xfe/p$FLAGS" ;;
*)
echo >&2 "Unknown CPU. Run contrib/gen_autofdo_event.py --all --script to update script."
exit 1 ;;