tools/perf/tests/sw-clock.c

Source file repositories/reference/linux-study-clean/tools/perf/tests/sw-clock.c

File Facts

System
Linux kernel
Corpus path
tools/perf/tests/sw-clock.c
Extension
.c
Size
3550 bytes
Lines
153
Domain
Support Tooling And Documentation
Bucket
tools
Inferred role
Support Tooling And Documentation: implementation source
Status
source implementation candidate

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

if (err < 0) {
			pr_debug("Error during parse sample\n");
			perf_sample__exit(&sample);
			goto out_delete_evlist;
		}

		total_periods += sample.period;
		nr_samples++;
next_event:
		perf_mmap__consume(&md->core);
		perf_sample__exit(&sample);
	}
	perf_mmap__read_done(&md->core);

out_init:
	if ((u64) nr_samples == total_periods) {
		pr_debug("All (%d) samples have period value of 1!\n",
			 nr_samples);
		err = -1;
	}

out_delete_evlist:
	perf_cpu_map__put(cpus);
	perf_thread_map__put(threads);
	evlist__delete(evlist);
	return err;
}

static int test__sw_clock_freq(struct test_suite *test __maybe_unused, int subtest __maybe_unused)
{
	int ret;

	ret = __test__sw_clock_freq(PERF_COUNT_SW_CPU_CLOCK);
	if (!ret)
		ret = __test__sw_clock_freq(PERF_COUNT_SW_TASK_CLOCK);

	return ret;
}

DEFINE_SUITE("Software clock events period values", sw_clock_freq);

Annotation

Implementation Notes