Unverified Commit b2b5d1d0 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!15178 [openEuler-24.03-LTS][linux-6.6.y sync] Backport 6.6.53-6.6.54 LTS Conflicts Patches

Merge Pull Request from: @koishimind 
 
Merged(10):
perf time-utils: Fix 32-bit nsec parsing
perf sched timehist: Fixed timestamp error when unable to confirm event sched_in time
perf stat: Display iostat headers correctly
perf sched timehist: Fix missing free of session in perf_sched__timehist()
perf report: Fix --total-cycles --stdio output error
perf ui/browser/annotate: Use global annotation_options
perf annotate: Move some source code related fields from 'struct annotation' to 'struct annotated_source'
perf annotate: Split branch stack cycles info from 'struct annotation'
perf inject: Fix leader sampling inserting additional samples
perf mem: Free the allocated sort string, fixing a leak

本pr尚未合入的commit:
KABI unsolved(8):
sched/numa: Fix the vma scan starving issue
sched/numa: Complete scanning of inactive VMAs when there is no alternative
sched/numa: Complete scanning of partial VMAs regardless of PID activity
sched/numa: Rename vma_numab_state::access_pids[] => ::pids_active[], ::next_pid_reset => ::pids_active_reset
sched/numa: Move up the access pid reset logic
sched/numa: Trace decisions related to skipping VMAs
sched/numa: Document vma_numab_state fields
bpf: Zero former ARG_PTR_TO_{LONG,INT} args in case of error
bpf: Improve check_raw_mode_ok test for MEM_UNINIT-tagged types
bpf: Fix helper writes to read-only maps
bpf: Fix bpf_strtol and bpf_strtoul helpers for 32bit 
 
Link:https://gitee.com/openeuler/kernel/pulls/15178

 

Reviewed-by: default avatarXu Kuohai <xukuohai@huawei.com>
Reviewed-by: default avatarZhang Peng <zhangpeng362@huawei.com>
Signed-off-by: default avatarZhang Peng <zhangpeng362@huawei.com>
parents 87a8a526 9a311550
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -378,7 +378,7 @@ static void hists__find_annotations(struct hists *hists,
			/* skip missing symbols */
			nd = rb_next(nd);
		} else if (use_browser == 1) {
			key = hist_entry__tui_annotate(he, evsel, NULL, &annotate_opts);
			key = hist_entry__tui_annotate(he, evsel, NULL);

			switch (key) {
			case -1:
+1 −0
Original line number Diff line number Diff line
@@ -2200,6 +2200,7 @@ int cmd_inject(int argc, const char **argv)
			.finished_init	= perf_event__repipe_op2_synth,
			.compressed	= perf_event__repipe_op4_synth,
			.auxtrace	= perf_event__repipe_auxtrace,
			.dont_split_sample_group = true,
		},
		.input_name  = "-",
		.samples = LIST_HEAD_INIT(inject.samples),
+1 −0
Original line number Diff line number Diff line
@@ -372,6 +372,7 @@ static int report_events(int argc, const char **argv, struct perf_mem *mem)
		rep_argv[i] = argv[j];

	ret = cmd_report(i, rep_argv);
	free(new_sort_order);
	free(rep_argv);
	return ret;
}
+5 −6
Original line number Diff line number Diff line
@@ -540,8 +540,7 @@ static int evlist__tui_block_hists_browse(struct evlist *evlist, struct report *
	evlist__for_each_entry(evlist, pos) {
		ret = report__browse_block_hists(&rep->block_reports[i++].hist,
						 rep->min_percent, pos,
						 &rep->session->header.env,
						 &annotate_opts);
						 &rep->session->header.env);
		if (ret != 0)
			return ret;
	}
@@ -563,6 +562,7 @@ static int evlist__tty_browse_hists(struct evlist *evlist, struct report *rep, c
		struct hists *hists = evsel__hists(pos);
		const char *evname = evsel__name(pos);

		i++;
		if (symbol_conf.event_group && !evsel__is_group_leader(pos))
			continue;

@@ -572,9 +572,8 @@ static int evlist__tty_browse_hists(struct evlist *evlist, struct report *rep, c
		hists__fprintf_nr_sample_events(hists, rep, evname, stdout);

		if (rep->total_cycles_mode) {
			report__browse_block_hists(&rep->block_reports[i++].hist,
						   rep->min_percent, pos,
						   NULL, NULL);
			report__browse_block_hists(&rep->block_reports[i - 1].hist,
						   rep->min_percent, pos, NULL);
			continue;
		}

@@ -669,7 +668,7 @@ static int report__browse_hists(struct report *rep)
		}

		ret = evlist__tui_browse_hists(evlist, help, NULL, rep->min_percent,
					       &session->header.env, true, &annotate_opts);
					       &session->header.env, true);
		/*
		 * Usually "ret" is the last pressed key, and we only
		 * care if the key notifies us to switch data file.
+6 −2
Original line number Diff line number Diff line
@@ -2633,9 +2633,12 @@ static int timehist_sched_change_event(struct perf_tool *tool,
	 * - previous sched event is out of window - we are done
	 * - sample time is beyond window user cares about - reset it
	 *   to close out stats for time window interest
	 * - If tprev is 0, that is, sched_in event for current task is
	 *   not recorded, cannot determine whether sched_in event is
	 *   within time window interest - ignore it
	 */
	if (ptime->end) {
		if (tprev > ptime->end)
		if (!tprev || tprev > ptime->end)
			goto out;

		if (t > ptime->end)
@@ -3068,7 +3071,8 @@ static int perf_sched__timehist(struct perf_sched *sched)

	if (perf_time__parse_str(&sched->ptime, sched->time_str) != 0) {
		pr_err("Invalid time string\n");
		return -EINVAL;
		err = -EINVAL;
		goto out;
	}

	if (timehist_check_attr(sched, evlist) != 0)
Loading