1111 lines · 38.8 KB · Python
RawDownload
	comm_thread_file.write(value) def dso_table(dso_id, machine_id, short_name, long_name, build_id, *x):	short_name = toserverstr(short_name)	long_name = toserverstr(long_name)	build_id = toserverstr(build_id)	n1 = len(short_name)	n2 = len(long_name)	n3 = len(build_id)	fmt = "!hiqiqi" + str(n1) + "si"  + str(n2) + "si" + str(n3) + "s"	value = struct.pack(fmt, 5, 8, dso_id, 8, machine_id, n1, short_name, n2, long_name, n3, build_id)	dso_file.write(value) def symbol_table(symbol_id, dso_id, sym_start, sym_end, binding, symbol_name, *x):	symbol_name = toserverstr(symbol_name)	n = len(symbol_name)	fmt = "!hiqiqiqiqiii" + str(n) + "s"	value = struct.pack(fmt, 6, 8, symbol_id, 8, dso_id, 8, sym_start, 8, sym_end, 4, binding, n, symbol_name)	symbol_file.write(value) def branch_type_table(branch_type, name, *x):	name = toserverstr(name)	n = len(name)	fmt = "!hiii" + str(n) + "s"	value = struct.pack(fmt, 2, 4, branch_type, n, name)	branch_type_file.write(value) def sample_table(sample_id, evsel_id, machine_id, thread_id, comm_id, dso_id, symbol_id, sym_offset, ip, time, cpu, to_dso_id, to_symbol_id, to_sym_offset, to_ip, period, weight, transaction, data_src, branch_type, in_tx, call_path_id, insn_cnt, cyc_cnt, *x):	if branches:		value = struct.pack("!hiqiqiqiqiqiqiqiqiqiqiiiqiqiqiqiiiBiqiqiq", 20, 8, sample_id, 8, evsel_id, 8, machine_id, 8, thread_id, 8, comm_id, 8, dso_id, 8, symbol_id, 8, sym_offset, 8, ip, 8, time, 4, cpu, 8, to_dso_id, 8, to_symbol_id, 8, to_sym_offset, 8, to_ip, 4, branch_type, 1, in_tx, 8, call_path_id, 8, insn_cnt, 8, cyc_cnt)	else:		value = struct.pack("!hiqiqiqiqiqiqiqiqiqiqiiiqiqiqiqiqiqiqiqiiiBiqiqiq", 24, 8, sample_id, 8, evsel_id, 8, machine_id, 8, thread_id, 8, comm_id, 8, dso_id, 8, symbol_id, 8, sym_offset, 8, ip, 8, time, 4, cpu, 8, to_dso_id, 8, to_symbol_id, 8, to_sym_offset, 8, to_ip, 8, period, 8, weight, 8, transaction, 8, data_src, 4, branch_type, 1, in_tx, 8, call_path_id, 8, insn_cnt, 8, cyc_cnt)	sample_file.write(value) def call_path_table(cp_id, parent_id, symbol_id, ip, *x):	fmt = "!hiqiqiqiq"	value = struct.pack(fmt, 4, 8, cp_id, 8, parent_id, 8, symbol_id, 8, ip)	call_path_file.write(value) def call_return_table(cr_id, thread_id, comm_id, call_path_id, call_time, return_time, branch_count, call_id, return_id, parent_call_path_id, flags, parent_id, insn_cnt, cyc_cnt, *x):	fmt = "!hiqiqiqiqiqiqiqiqiqiqiiiqiqiq"	value = struct.pack(fmt, 14, 8, cr_id, 8, thread_id, 8, comm_id, 8, call_path_id, 8, call_time, 8, return_time, 8, branch_count, 8, call_id, 8, return_id, 8, parent_call_path_id, 4, flags, 8, parent_id, 8, insn_cnt, 8, cyc_cnt)	call_file.write(value) def ptwrite(id, raw_buf):	data = struct.unpack_from("<IQ", raw_buf)	flags = data[0]	payload = data[1]	exact_ip = flags & 1	value = struct.pack("!hiqiqiB", 3, 8, id, 8, payload, 1, exact_ip)	ptwrite_file.write(value) def cbr(id, raw_buf):	data = struct.unpack_from("<BBBBII", raw_buf)	cbr = data[0]	MHz = (data[4] + 500) / 1000	percent = ((cbr * 1000 / data[2]) + 5) / 10	value = struct.pack("!hiqiiiiii", 4, 8, id, 4, cbr, 4, int(MHz), 4, int(percent))	cbr_file.write(value) def mwait(id, raw_buf):	data = struct.unpack_from("<IQ", raw_buf)	payload = data[1]	hints = payload & 0xff	extensions = (payload >> 32) & 0x3	value = struct.pack("!hiqiiii", 3, 8, id, 4, hints, 4, extensions)	mwait_file.write(value) def pwre(id, raw_buf):	data = struct.unpack_from("<IQ", raw_buf)	payload = data[1]	hw = (payload >> 7) & 1	cstate = (payload >> 12) & 0xf	subcstate = (payload >> 8) & 0xf	value = struct.pack("!hiqiiiiiB", 4, 8, id, 4, cstate, 4, subcstate, 1, hw)	pwre_file.write(value) def exstop(id, raw_buf):	data = struct.unpack_from("<I", raw_buf)	flags = data[0]	exact_ip = flags & 1	value = struct.pack("!hiqiB", 2, 8, id, 1, exact_ip)	exstop_file.write(value) def pwrx(id, raw_buf):	data = struct.unpack_from("<IQ", raw_buf)	payload = data[1]	deepest_cstate = payload & 0xf	last_cstate = (payload >> 4) & 0xf	wake_reason = (payload >> 8) & 0xf	value = struct.pack("!hiqiiiiii", 4, 8, id, 4, deepest_cstate, 4, last_cstate, 4, wake_reason)	pwrx_file.write(value) def synth_data(id, config, raw_buf, *x):	if config == 0:		ptwrite(id, raw_buf)	elif config == 1:		mwait(id, raw_buf)	elif config == 2:		pwre(id, raw_buf)	elif config == 3:		exstop(id, raw_buf)	elif config == 4:		pwrx(id, raw_buf)	elif config == 5:		cbr(id, raw_buf) def context_switch_table(id, machine_id, time, cpu, thread_out_id, comm_out_id, thread_in_id, comm_in_id, flags, *x):	fmt = "!hiqiqiqiiiqiqiqiqii"	value = struct.pack(fmt, 9, 8, id, 8, machine_id, 8, time, 4, cpu, 8, thread_out_id, 8, comm_out_id, 8, thread_in_id, 8, comm_in_id, 4, flags)	context_switches_file.write(value)

Lines 1001–1111 of 1111. Previous lines