Commit 569c746b authored by Shang XiaoJing's avatar Shang XiaoJing Committed by Arnaldo Carvalho de Melo
Browse files

perf timechart: Add create_pidcomm helper



Wrap repeated code combined with alloc of per_pidcomm in helper function
create_pidcomm.

Signed-off-by: default avatarShang XiaoJing <shangxiaojing@huawei.com>
Acked-by: default avatarNamhyung Kim <namhyung@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: https://lore.kernel.org/r/20220908021141.27134-4-shangxiaojing@huawei.com


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 0f405f87
Loading
Loading
Loading
Loading
+16 −12
Original line number Diff line number Diff line
@@ -215,6 +215,19 @@ static struct per_pid *find_create_pid(struct timechart *tchart, int pid)
	return cursor;
}

static struct per_pidcomm *create_pidcomm(struct per_pid *p)
{
	struct per_pidcomm *c;

	c = zalloc(sizeof(*c));
	if (!c)
		return NULL;
	p->current = c;
	c->next = p->all;
	p->all = c;
	return c;
}

static void pid_set_comm(struct timechart *tchart, int pid, char *comm)
{
	struct per_pid *p;
@@ -233,12 +246,9 @@ static void pid_set_comm(struct timechart *tchart, int pid, char *comm)
		}
		c = c->next;
	}
	c = zalloc(sizeof(*c));
	c = create_pidcomm(p);
	assert(c != NULL);
	c->comm = strdup(comm);
	p->current = c;
	c->next = p->all;
	p->all = c;
}

static void pid_fork(struct timechart *tchart, int pid, int ppid, u64 timestamp)
@@ -277,11 +287,8 @@ static void pid_put_sample(struct timechart *tchart, int pid, int type,
	p = find_create_pid(tchart, pid);
	c = p->current;
	if (!c) {
		c = zalloc(sizeof(*c));
		c = create_pidcomm(p);
		assert(c != NULL);
		p->current = c;
		c->next = p->all;
		p->all = c;
	}

	sample = zalloc(sizeof(*sample));
@@ -726,12 +733,9 @@ static int pid_begin_io_sample(struct timechart *tchart, int pid, int type,
	struct io_sample *prev;

	if (!c) {
		c = zalloc(sizeof(*c));
		c = create_pidcomm(p);
		if (!c)
			return -ENOMEM;
		p->current = c;
		c->next = p->all;
		p->all = c;
	}

	prev = c->io_samples;