Skip to content
Merged
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
20 changes: 10 additions & 10 deletions .github/workflows/presubmit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -227,12 +227,12 @@ jobs:
working-directory: base_branch/build
run: |
make -C utils lttng/tracepoint_gen.h
make -C mpi tracer_mpi.c mpi_library.rb mpi_babeltrace_model.yaml libmpi.la
make -C omp tracer_ompt.c omp_babeltrace_model.yaml omp_library.rb
make -C hip tracer_hip.c hip_library.rb hip_babeltrace_model.yaml libamdhip64.la
make -C cuda tracer_cuda.c cuda_library.rb cuda_babeltrace_model.yaml libcuda.la
make -C mpi tracer_mpi.c mpi_library.rb btx_mpi_model.yaml libmpi.la
make -C omp tracer_ompt.c omp_library.rb btx_omp_model.yaml
make -C hip tracer_hip.c hip_library.rb btx_hip_model.yaml libamdhip64.la
make -C cuda tracer_cuda.c cuda_library.rb btx_cuda_model.yaml libcuda.la
make -C cuda tracer_cudart.c libcudart.la
make -C ze tracer_ze.c ze_library.rb ze_babeltrace_model.yaml libze_loader.la
make -C ze tracer_ze.c ze_library.rb btx_ze_model.yaml libze_loader.la
make -C opencl libOpenCL.la
# Chekout, Configure and build PR branch files
- name: Checkout PR branch
Expand All @@ -251,12 +251,12 @@ jobs:
working-directory: pr_branch/build
run: |
make -C utils lttng/tracepoint_gen.h
make -C mpi tracer_mpi.c mpi_library.rb mpi_babeltrace_model.yaml libmpi.la
make -C omp tracer_ompt.c omp_babeltrace_model.yaml omp_library.rb
make -C hip tracer_hip.c hip_library.rb hip_babeltrace_model.yaml libamdhip64.la
make -C cuda tracer_cuda.c cuda_library.rb cuda_babeltrace_model.yaml libcuda.la
make -C mpi tracer_mpi.c mpi_library.rb btx_mpi_model.yaml libmpi.la
make -C omp tracer_ompt.c omp_library.rb btx_omp_model.yaml
make -C hip tracer_hip.c hip_library.rb btx_hip_model.yaml libamdhip64.la
make -C cuda tracer_cuda.c cuda_library.rb btx_cuda_model.yaml libcuda.la
make -C cuda tracer_cudart.c libcudart.la
make -C ze tracer_ze.c ze_library.rb ze_babeltrace_model.yaml libze_loader.la
make -C ze tracer_ze.c ze_library.rb btx_ze_model.yaml libze_loader.la
make -C opencl libOpenCL.la
# Run comparison script
- name: Compare files
Expand Down
8 changes: 1 addition & 7 deletions cuda/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,6 @@ EXTRA_DIST = \
CLEANFILES = \
btx_cuda_model.yaml

btx_cuda_model.yaml: $(top_srcdir)/utils/babeltrace_to_metababel_model.rb cuda_babeltrace_model.yaml
SRC_DIR=$(srcdir) $(RUBY) $^ > $@

$(BTX_CUDA_GENERATED) &: $(top_srcdir)/xprof/btx_interval_model.yaml btx_cudamatching_model.yaml btx_cuda_model.yaml
$(METABABEL) -u btx_cuda_model.yaml -d $(top_srcdir)/xprof/btx_interval_model.yaml -t FILTER -o btx_filter_cuda -p cudainterval -c interval --matching $(srcdir)/btx_cudamatching_model.yaml -i cuda.h.include

Expand Down Expand Up @@ -156,12 +153,9 @@ CUDART_MODEL = \
$(top_srcdir)/utils/LTTng.rb \
$(srcdir)/cudart.h.include

cuda_babeltrace_model.yaml: $(srcdir)/gen_babeltrace_cuda_model.rb $(CUDA_MODEL) $(top_srcdir)/utils/gen_babeltrace_model_helper.rb
btx_cuda_model.yaml: $(srcdir)/gen_babeltrace_cuda_model.rb $(CUDA_MODEL) $(top_srcdir)/utils/gen_babeltrace_model_helper.rb
SRC_DIR=$(srcdir) $(RUBY) $< > $@

CLEANFILES += \
cuda_babeltrace_model.yaml

EXTRA_DIST += \
cuda_model.rb \
gen_cuda_library_base.rb \
Expand Down
147 changes: 14 additions & 133 deletions cuda/gen_babeltrace_cuda_model.rb
Original file line number Diff line number Diff line change
@@ -1,139 +1,20 @@
require_relative 'gen_cuda_library_base.rb'
require_relative 'gen_cuda_library_base'
require_relative '../utils/gen_babeltrace_model_helper'

$integer_sizes = INT_SIZE_MAP.transform_values { |v| v*8 }
$integer_signed = INT_SIGN_MAP

def integer_size(t)
return 64 if t.match(/\*/)
r = $integer_sizes[t]
raise "unknown integer type #{t}" if r.nil?
r
end

def integer_signed?(t)
return false if t.match(/\*/)
r = $integer_signed[t]
raise "unknown integer type #{t}" if r.nil?
r
end

def meta_parameter_types_name(m, dir)
if dir == :start
lttng = m.lttng_in_type
else
lttng = m.lttng_out_type
end
name = lttng.name
t = m.command[m.name].type.type

case m
when ScalarMetaParameter
if lttng.length
[["ctf_integer", "size_t", "_#{name}_length", nil],
[lttng.macro.to_s, "#{t} *", "#{name}", lttng]]
else
[[lttng.macro.to_s, "#{t}", "#{name}", lttng]]
end
when ArrayMetaParameter, InString, OutString, OutLTTng, InLTTng
if lttng.macro.to_s == "ctf_string"
[["ctf_string", "#{t} *", "#{name}", lttng]]
else
[["ctf_integer", "size_t", "_#{name}_length", nil],
[lttng.macro.to_s, "#{t} *", "#{name}", lttng]]
event_classes =
[[:lttng_ust_cuda, $cuda_commands],
[:lttng_ust_cuda_exports, $cuda_exports_commands]].collect do |provider, commands|
commands.collect do |c|
[gen_event_bt_model(provider, c, :start),
gen_event_bt_model(provider, c, :stop)]
end
when ArrayByRefMetaParameter
[["ctf_integer", "size_t", "_#{name}_length", nil],
[lttng.macro.to_s, "#{t.type} *", "#{name}", lttng]]
when FixedArrayMetaParameter
[[lttng.macro.to_s, "#{t} *", "#{name}", lttng]]
when OutPtrString
[["ctf_string", "#{t}", "#{name}", lttng]]
else
raise "unsupported meta parameter class #{m.class} #{lttng.call_string} #{t}"
end
end
end.flatten(2)

def get_fields_types_name(c, dir)
if dir == :start
fields = (c.parameters ? c.parameters : []).collect { |p|
[p.lttng_type.macro.to_s, p.type.to_s, p.name.to_s, p.lttng_type]
}
fields += c.meta_parameters.select { |m| m.kind_of?(In) }.collect { |m|
meta_parameter_types_name(m, :start)
}.flatten(1)
else
r = c.type.lttng_type
fields = if r
[[r.macro.to_s, c.type.to_s, "#{RESULT_NAME}", r]]
else
[]
end
fields += c.meta_parameters.select { |m| m.kind_of?(Out) }.collect { |m|
meta_parameter_types_name(m, :stop)
}.flatten(1)
end
fields
end

event_classes =
[[:lttng_ust_cuda, $cuda_commands],
[:lttng_ust_cuda_exports, $cuda_exports_commands]
].collect { |provider, commands|
commands.collect { |c|
[gen_event_bt_model(provider, c, :start),
gen_event_bt_model(provider, c, :stop)]
}
}.flatten(2)

cuda_events = YAML::load_file(File.join(SRC_DIR,"cuda_events.yaml"))
event_classes += cuda_events.collect { |provider, es|
es["events"].collect { |event|
cuda_events = YAML.load_file(File.join(SRC_DIR, 'cuda_events.yaml'))
event_classes += cuda_events.collect do |provider, es|
es['events'].collect do |event|
gen_extra_event_bt_model(provider, event)
}
}.flatten

environment = [
{
name: 'hostname',
class: 'string',
}
]

packet_context = [
{
name: 'cpu_id',
class: 'unsigned',
cast_type: 'uint64_t',
class_properties: {
field_value_range: 32
}
}
]

common_context = [
{
name: 'vpid',
class: 'signed',
cast_type: 'int64_t',
class_properties: {
field_value_range: 64,
}
},
{
name: 'vtid',
class: 'unsigned',
cast_type: 'uint64_t',
class_properties: {
field_value_range: 64,
}
}
]
end
end.flatten

puts YAML.dump({
name: "thapi_cuda",
environment: environment,
clock_snapshot_value: true,
packet_context: packet_context,
common_context: common_context,
event_classes: event_classes })
puts YAML.dump(gen_yaml(event_classes, 'cuda'))
8 changes: 1 addition & 7 deletions hip/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -166,9 +166,6 @@ EXTRA_DIST = \
CLEANFILES = \
btx_hip_model.yaml

btx_hip_model.yaml: $(top_srcdir)/utils/babeltrace_to_metababel_model.rb hip_babeltrace_model.yaml
SRC_DIR=$(srcdir) $(RUBY) $^ > $@

$(BTX_HIP_GENERATED) &: $(top_srcdir)/xprof/btx_interval_model.yaml btx_hipmatching_model.yaml btx_hip_model.yaml
$(METABABEL) -u btx_hip_model.yaml -d $(top_srcdir)/xprof/btx_interval_model.yaml -t FILTER -o btx_filter_hip -p hipinterval -c interval --matching $(srcdir)/btx_hipmatching_model.yaml -i hip.h.include

Expand Down Expand Up @@ -222,12 +219,9 @@ HIP_MODEL = \
$(top_srcdir)/utils/LTTng.rb \
hip.h.include

hip_babeltrace_model.yaml: $(srcdir)/gen_babeltrace_hip_model.rb $(HIP_MODEL) $(top_srcdir)/utils/gen_babeltrace_model_helper.rb
btx_hip_model.yaml: $(srcdir)/gen_babeltrace_hip_model.rb $(HIP_MODEL) $(top_srcdir)/utils/gen_babeltrace_model_helper.rb
SRC_DIR=$(srcdir) $(RUBY) $< > $@

CLEANFILES += \
hip_babeltrace_model.yaml

EXTRA_DIST += \
hip_model.rb \
gen_hip_library_base.rb \
Expand Down
153 changes: 13 additions & 140 deletions hip/gen_babeltrace_hip_model.rb
Original file line number Diff line number Diff line change
@@ -1,146 +1,19 @@
require_relative 'gen_hip_library_base.rb'
require_relative 'gen_hip_library_base'
require_relative '../utils/gen_babeltrace_model_helper'

$integer_sizes = INT_SIZE_MAP.transform_values { |v| v*8 }
$integer_signed = INT_SIGN_MAP

$all_enums.each { |t|
$integer_sizes["enum #{t.name}"] = 32
}

$all_enums.each { |t|
$integer_signed["enum #{t.name}"] = true
}

def integer_size(t)
return 64 if t.match(/\*/)
r = $integer_sizes[t]
raise "unknown integer type #{t}" if r.nil?
r
end

def integer_signed?(t)
return false if t.match(/\*/)
r = $integer_signed[t]
raise "unknown integer type #{t}" if r.nil?
r
end

def meta_parameter_types_name(m, dir)
if dir == :start
lttng = m.lttng_in_type
else
lttng = m.lttng_out_type
end
name = lttng.name
t = m.command[m.name].type.type

case m
when ScalarMetaParameter
if lttng.length
[["ctf_integer", "size_t", "_#{name}_length", nil],
[lttng.macro.to_s, "#{t} *", "#{name}", lttng]]
else
[[lttng.macro.to_s, "#{t}", "#{name}", lttng]]
end
when ArrayMetaParameter, InString, OutString, OutLTTng, InLTTng, ReturnString
if lttng.macro.to_s == "ctf_string"
[["ctf_string", "#{t} *", "#{name}", lttng]]
else
[["ctf_integer", "size_t", "_#{name}_length", nil],
[lttng.macro.to_s, "#{t} *", "#{name}", lttng]]
end
when ArrayByRefMetaParameter
[["ctf_integer", "size_t", "_#{name}_length", nil],
[lttng.macro.to_s, "#{t.type} *", "#{name}", lttng]]
when FixedArrayMetaParameter
[[lttng.macro.to_s, "#{t} *", "#{name}", lttng]]
when OutPtrString
[["ctf_string", "#{t}", "#{name}", lttng]]
else
raise "unsupported meta parameter class #{m.class} #{lttng.call_string} #{t}"
end
end

def get_fields_types_name(c, dir)
if dir == :start
fields = (c.parameters ? c.parameters : []).collect { |p|
[p.lttng_type.macro.to_s, p.type.to_s, p.name.to_s, p.lttng_type]
}
fields += c.meta_parameters.select { |m| m.kind_of?(In) }.collect { |m|
meta_parameter_types_name(m, :start)
}.flatten(1)
else
r = c.type.lttng_type
fields = if r
[[r.macro.to_s, c.type.to_s, "#{RESULT_NAME}", r]]
else
[]
end
fields += c.meta_parameters.select { |m| m.kind_of?(Out) }.collect { |m|
meta_parameter_types_name(m, :stop)
}.flatten(1)
end
fields
end

event_classes =
[[:lttng_ust_hip, $hip_commands]].collect { |provider, commands|
commands.collect { |c|
event_classes =
[[:lttng_ust_hip, $hip_commands]].collect do |provider, commands|
commands.collect do |c|
[gen_event_bt_model(provider, c, :start),
gen_event_bt_model(provider, c, :stop)]
}
}.flatten(2)
gen_event_bt_model(provider, c, :stop)]
end
end.flatten(2)

hip_events = YAML::load_file(File.join(SRC_DIR,"hip_events.yaml"))
event_classes += hip_events.collect { |provider, es|
es["events"].collect { |event|
hip_events = YAML.load_file(File.join(SRC_DIR, 'hip_events.yaml'))
event_classes += hip_events.collect do |provider, es|
es['events'].collect do |event|
gen_extra_event_bt_model(provider, event)
}
}.flatten

environment = [
{
name: 'hostname',
class: 'string',
}
]

packet_context = [
{
name: 'cpu_id',
class: 'unsigned',
cast_type: 'uint64_t',
class_properties: {
field_value_range: 32
}
}
]

common_context = [
{
name: 'vpid',
class: 'signed',
cast_type: 'int64_t',
class_properties: {
field_value_range: 64,
}
},
{
name: 'vtid',
class: 'unsigned',
cast_type: 'uint64_t',
class_properties: {
field_value_range: 64,
}
}
]

puts YAML.dump({
name: "thapi_hip",
environment: environment,
clock_snapshot_value: true,
packet_context: packet_context,
common_context: common_context,
event_classes: event_classes })
end
end.flatten

puts YAML.dump(gen_yaml(event_classes, 'hip'))
Loading