Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion db.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/usr/bin/python3
from sql30 import db


class Database(db.Model):
TABLE = 'database'
DB_SCHEMA = {
Expand All @@ -16,4 +17,4 @@ class Database(db.Model):
}
]
}
VALIDATE_WRITE = True
VALIDATE_WRITE = True
44 changes: 34 additions & 10 deletions perfd.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,21 @@
import subprocess
import db

temp_perf_file = tempfile.NamedTemporaryFile(delete= False)
#temp_perf_file.name
temp_perf_file = tempfile.NamedTemporaryFile(delete=False)
# temp_perf_file.name

os.system("perf record -e cycles:u -j any,u -a -o " + temp_perf_file.name + " -- sleep 10")
batcmd ="perf script -F ip,dso -f -i " + temp_perf_file.name
os.system("perf record -e cycles:u -j any,u -a -o " +
temp_perf_file.name + " -- sleep 10")
batcmd = "perf script -F ip,dso -f -i " + temp_perf_file.name

result = subprocess.check_output(batcmd, shell=True, text =True)
result = subprocess.check_output(batcmd, shell=True, text=True)
lines = result.splitlines()
samples_per_obj_file = dict()

for line in lines:
cols = line.split()
name_parens = cols[1]
name = name_parens[1:-1]
name = name_parens[1:-1]

if name in samples_per_obj_file:
samples_per_obj_file[name] += 1
Expand All @@ -26,8 +27,31 @@

database = db.Database()
database.table = 'database'
for name in samples_per_obj_file:
database.write(perf_name= temp_perf_file.name, name_obj_file= name, amount_of_samples= samples_per_obj_file[name])
for name in samples_per_obj_file:
database.write(
perf_name=temp_perf_file.name,
name_obj_file=name,
amount_of_samples=samples_per_obj_file[name])

database.commit()
print(database.read())
database.commit()
print(database.read())

#step4
def prepare_fdata(objfile):
perf_file = database.read(name_obj_file=objfile)
print(perf_file)

perf2bolt = "/path/to/perf2bolt objfile -p perf_file -o perf_file.fdata"
merge_fdata = "/path/to/merge-fdata perf_file1.fdata perf_file2.fdata perf_file > tmp_fdata"

temp_fdata = tempfile.NamedTemporaryFile(delete=False)
# temp_fdata.name

tmp_fdata = "perf script -F ip,dso -f -i " + temp_fdata.name
print(tmp_fdata)

def prepare_fdata(tmp_fdata):
return tmp_fdata

tmp_fdata.commit()
print(tmp_fdata.commit())