aboutsummaryrefslogtreecommitdiffstats
path: root/tools/testing/selftests/bpf/bench.c
AgeCommit message (Expand)Author
2024-08-23selftests/bpf: add multi-uprobe benchmarksAndrii Nakryiko
2024-07-29selftests/bpf: Fix missing ARRAY_SIZE() definition in bench.cTony Ambardar
2024-04-24selftests: bpf: crypto: add benchmark for crypto functionsVadim Fedorenko
2024-03-28selftests/bpf: add batched tp/raw_tp/fmodret testsAndrii Nakryiko
2024-03-28selftests/bpf: remove syscall-driven benchs, keep syscall-count onlyAndrii Nakryiko
2024-03-28selftests/bpf: add batched, mostly in-kernel BPF triggering benchmarksAndrii Nakryiko
2024-03-28selftests/bpf: rename and clean up userspace-triggered benchmarksAndrii Nakryiko
2024-03-11selftests/bpf: Add kprobe multi triggering benchmarksJiri Olsa
2024-03-11selftests/bpf: Add fexit and kretprobe triggering benchmarksAndrii Nakryiko
2024-03-04selftests/bpf: Extend uprobe/uretprobe triggering benchmarksAndrii Nakryiko
2024-02-01selftests/bpf: Fix bench runner SIGSEGVAndrii Nakryiko
2023-07-05selftests/bpf: Add benchmark for bpf memory allocatorHou Tao
2023-06-19selftests/bpf: Set the default value of consumer_cnt as 0Hou Tao
2023-06-19selftests/bpf: Ensure that next_cpu() returns a valid CPU numberHou Tao
2023-06-19selftests/bpf: Output the correct error code for pthread APIsHou Tao
2023-03-25selftests/bpf: Add bench for task storage creationMartin KaFai Lau
2023-03-10selftests/bpf: Add local-storage-create benchmarkMartin KaFai Lau
2023-02-15selftest/bpf/benchs: Add benchmark for hashmap lookupsAnton Protopopov
2023-02-15selftest/bpf/benchs: Print less if the quiet option is setAnton Protopopov
2023-02-15selftest/bpf/benchs: Make quiet option commonAnton Protopopov
2023-02-15selftest/bpf/benchs: Enhance argp parsingAnton Protopopov
2022-07-07selftests/bpf: Add benchmark for local_storage RCU Tasks Trace usageDave Marchevsky
2022-06-22selftests/bpf: Add benchmark for local_storage getDave Marchevsky
2022-06-11selftest/bpf/benchs: Add bpf_map benchmarkFeng Zhou
2022-04-10selftests/bpf: Use libbpf 1.0 API mode instead of RLIMIT_MEMLOCKYafang Shao
2021-12-14selftests/bpf: Remove explicit setrlimit(RLIMIT_MEMLOCK) in main selftestsAndrii Nakryiko
2021-12-11selftests/bpf: Add benchmark for bpf_strncmp() helperHou Tao
2021-12-11selftests/bpf: Fix checkpatch error on empty function parameterHou Tao
2021-11-30selftest/bpf/benchs: Add bpf_loop benchmarkJoanne Koong
2021-11-16selftests/bpf: Add uprobe triggering overhead benchmarksAndrii Nakryiko
2021-10-28bpf/benchs: Add benchmarks for comparing hashmap lookups w/ vs. w/out bloom f...Joanne Koong
2021-10-28bpf/benchs: Add benchmark tests for bloom filter throughput + false positiveJoanne Koong
2021-05-25selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checksAndrii Nakryiko
2020-09-28selftests: Remove fmod_ret from test_overheadToke Høiland-Jørgensen
2020-08-28selftests/bpf: Add sleepable testsAlexei Starovoitov
2020-06-01bpf: Add BPF ringbuf and perf buffer benchmarksAndrii Nakryiko
2020-05-14selftest/bpf: Fix spelling mistake "SIGALARM" -> "SIGALRM"Colin Ian King
2020-05-13selftest/bpf: Add BPF triggering benchmarkAndrii Nakryiko
2020-05-13selftest/bpf: Fmod_ret prog and implement test_overhead as part of benchAndrii Nakryiko
2020-05-13selftests/bpf: Add benchmark runner infrastructureAndrii Nakryiko
> "pll_x"); if (IS_ERR(priv->pllx_clk)) { ret = PTR_ERR(priv->pllx_clk); goto out_put_dfll_clk; } priv->pllp_clk = of_clk_get_by_name(np, "pll_p"); if (IS_ERR(priv->pllp_clk)) { ret = PTR_ERR(priv->pllp_clk); goto out_put_pllx_clk; } ret = tegra124_cpu_switch_to_dfll(priv); if (ret) goto out_put_pllp_clk; cpufreq_dt_devinfo.name = "cpufreq-dt"; cpufreq_dt_devinfo.parent = &pdev->dev; priv->cpufreq_dt_pdev = platform_device_register_full(&cpufreq_dt_devinfo); if (IS_ERR(priv->cpufreq_dt_pdev)) { ret = PTR_ERR(priv->cpufreq_dt_pdev); goto out_put_pllp_clk; } platform_set_drvdata(pdev, priv); of_node_put(np); return 0; out_put_pllp_clk: clk_put(priv->pllp_clk); out_put_pllx_clk: clk_put(priv->pllx_clk); out_put_dfll_clk: clk_put(priv->dfll_clk); out_put_cpu_clk: clk_put(priv->cpu_clk); out_put_np: of_node_put(np); return ret; } static int __maybe_unused tegra124_cpufreq_suspend(struct device *dev) { struct tegra124_cpufreq_priv *priv = dev_get_drvdata(dev); int err; /* * PLLP rate 408Mhz is below the CPU Fmax at Vmin and is safe to * use during suspend and resume. So, switch the CPU clock source * to PLLP and disable DFLL. */ err = clk_set_parent(priv->cpu_clk, priv->pllp_clk); if (err < 0) { dev_err(dev, "failed to reparent to PLLP: %d\n", err); return err; } clk_disable_unprepare(priv->dfll_clk); return 0; } static int __maybe_unused tegra124_cpufreq_resume(struct device *dev) { struct tegra124_cpufreq_priv *priv = dev_get_drvdata(dev); int err; /* * Warmboot code powers up the CPU with PLLP clock source. * Enable DFLL clock and switch CPU clock source back to DFLL. */ err = clk_prepare_enable(priv->dfll_clk); if (err < 0) { dev_err(dev, "failed to enable DFLL clock for CPU: %d\n", err); goto disable_cpufreq; } err = clk_set_parent(priv->cpu_clk, priv->dfll_clk); if (err < 0) { dev_err(dev, "failed to reparent to DFLL clock: %d\n", err); goto disable_dfll; } return 0; disable_dfll: clk_disable_unprepare(priv->dfll_clk); disable_cpufreq: disable_cpufreq(); return err; } static const struct dev_pm_ops tegra124_cpufreq_pm_ops = { SET_SYSTEM_SLEEP_PM_OPS(tegra124_cpufreq_suspend, tegra124_cpufreq_resume) }; static struct platform_driver tegra124_cpufreq_platdrv = { .driver.name = "cpufreq-tegra124", .driver.pm = &tegra124_cpufreq_pm_ops, .probe = tegra124_cpufreq_probe, }; static int __init tegra_cpufreq_init(void) { int ret; struct platform_device *pdev; if (!(of_machine_is_compatible("nvidia,tegra124") || of_machine_is_compatible("nvidia,tegra210"))) return -ENODEV; /* * Platform driver+device required for handling EPROBE_DEFER with * the regulator and the DFLL clock */ ret = platform_driver_register(&tegra124_cpufreq_platdrv); if (ret) return ret; pdev = platform_device_register_simple("cpufreq-tegra124", -1, NULL, 0); if (IS_ERR(pdev)) { platform_driver_unregister(&tegra124_cpufreq_platdrv); return PTR_ERR(pdev); } return 0; } module_init(tegra_cpufreq_init); MODULE_AUTHOR("Tuomas Tynkkynen <ttynkkynen@nvidia.com>"); MODULE_DESCRIPTION("cpufreq driver for NVIDIA Tegra124"); MODULE_LICENSE("GPL v2");