All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Gregory Greenman <gregory.greenman@intel.com>,
	Golan Ben Ami <golan.ben.ami@intel.com>,
	Michael Golant <michael.golant@intel.com>,
	Johannes Berg <johannes.berg@intel.com>
Cc: oe-kbuild-all@lists.linux.dev
Subject: kernel/events/core.c:11620: warning: Function parameter or member 'flags' not described in 'ksys_perf_event_open'
Date: Thu, 17 Aug 2023 22:00:41 +0800	[thread overview]
Message-ID: <202308172107.L893kjMS-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/chromeos.git chromeos-5.10__release/core59-42
head:   e3fe4ac2447d89b8dca61663851e12d2f1247b56
commit: 973ecfea91914178c11cfb757e1bc29869a95f7f CHROMIUM: alt-syscall: Make required syscalls available for use
date:   2 years, 8 months ago
config: i386-randconfig-r015-20230817 (https://download.01.org/0day-ci/archive/20230817/202308172107.L893kjMS-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce: (https://download.01.org/0day-ci/archive/20230817/202308172107.L893kjMS-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202308172107.L893kjMS-lkp@intel.com/

All warnings (new ones prefixed by >>):

   kernel/events/core.c:140: warning: Function parameter or member 'cpu' not described in 'cpu_function_call'
>> kernel/events/core.c:11620: warning: Function parameter or member 'flags' not described in 'ksys_perf_event_open'
   kernel/events/core.c:12085: warning: Function parameter or member 'overflow_handler' not described in 'perf_event_create_kernel_counter'
   kernel/events/core.c:12085: warning: Function parameter or member 'context' not described in 'perf_event_create_kernel_counter'


vim +11620 kernel/events/core.c

321027c1fe77f8 kernel/events/core.c  Peter Zijlstra          2017-01-11  11609  
0793a61d4df8da kernel/perf_counter.c Thomas Gleixner         2008-12-04  11610  /**
cdd6c482c9ff9c kernel/perf_event.c   Ingo Molnar             2009-09-21  11611   * sys_perf_event_open - open a performance event, associate it to a task/cpu
9f66a3810fe0d4 kernel/perf_counter.c Ingo Molnar             2008-12-10  11612   *
cdd6c482c9ff9c kernel/perf_event.c   Ingo Molnar             2009-09-21  11613   * @attr_uptr:	event_id type attributes for monitoring/sampling
0793a61d4df8da kernel/perf_counter.c Thomas Gleixner         2008-12-04  11614   * @pid:		target pid
9f66a3810fe0d4 kernel/perf_counter.c Ingo Molnar             2008-12-10  11615   * @cpu:		target cpu
cdd6c482c9ff9c kernel/perf_event.c   Ingo Molnar             2009-09-21  11616   * @group_fd:		group leader event fd
0793a61d4df8da kernel/perf_counter.c Thomas Gleixner         2008-12-04  11617   */
973ecfea919141 kernel/events/core.c  Guenter Roeck           2018-09-21  11618  int ksys_perf_event_open(struct perf_event_attr __user * attr_uptr, pid_t pid,
973ecfea919141 kernel/events/core.c  Guenter Roeck           2018-09-21  11619  			 int cpu, int group_fd, unsigned long flags)
0793a61d4df8da kernel/perf_counter.c Thomas Gleixner         2008-12-04 @11620  {
b04243ef7006cd kernel/perf_event.c   Peter Zijlstra          2010-09-17  11621  	struct perf_event *group_leader = NULL, *output_event = NULL;
b04243ef7006cd kernel/perf_event.c   Peter Zijlstra          2010-09-17  11622  	struct perf_event *event, *sibling;
cdd6c482c9ff9c kernel/perf_event.c   Ingo Molnar             2009-09-21  11623  	struct perf_event_attr attr;
3f649ab728cda8 kernel/events/core.c  Kees Cook               2020-06-03  11624  	struct perf_event_context *ctx, *gctx;
cdd6c482c9ff9c kernel/perf_event.c   Ingo Molnar             2009-09-21  11625  	struct file *event_file = NULL;
2903ff019b346a kernel/events/core.c  Al Viro                 2012-08-28  11626  	struct fd group = {NULL, 0};
38a81da2205f94 kernel/perf_event.c   Matt Helsley            2010-09-13  11627  	struct task_struct *task = NULL;
89a1e18731959e kernel/perf_event.c   Peter Zijlstra          2010-09-07  11628  	struct pmu *pmu;
ea635c64e00706 kernel/perf_event.c   Al Viro                 2010-05-26  11629  	int event_fd;
b04243ef7006cd kernel/perf_event.c   Peter Zijlstra          2010-09-17  11630  	int move_group = 0;
dc86cabe4b2424 kernel/perf_counter.c Ingo Molnar             2009-09-03  11631  	int err;
a21b0b354d4ac3 kernel/events/core.c  Yann Droneaud           2014-01-05  11632  	int f_flags = O_RDWR;
79dff51e900fd2 kernel/events/core.c  Matt Fleming            2015-01-23  11633  	int cgroup_fd = -1;
0793a61d4df8da kernel/perf_counter.c Thomas Gleixner         2008-12-04  11634  
2743a5b0fa6f30 kernel/perf_counter.c Paul Mackerras          2009-03-04  11635  	/* for future expandability... */
e5d1367f17ba6a kernel/perf_event.c   Stephane Eranian        2011-02-14  11636  	if (flags & ~PERF_FLAG_ALL)
2743a5b0fa6f30 kernel/perf_counter.c Paul Mackerras          2009-03-04  11637  		return -EINVAL;
2743a5b0fa6f30 kernel/perf_counter.c Paul Mackerras          2009-03-04  11638  
da97e18458fb42 kernel/events/core.c  Joel Fernandes (Google  2019-10-14  11639) 	/* Do we allow access to perf_event_open(2) ? */
da97e18458fb42 kernel/events/core.c  Joel Fernandes (Google  2019-10-14  11640) 	err = security_perf_event_open(&attr, PERF_SECURITY_OPEN);
da97e18458fb42 kernel/events/core.c  Joel Fernandes (Google  2019-10-14  11641) 	if (err)
da97e18458fb42 kernel/events/core.c  Joel Fernandes (Google  2019-10-14  11642) 		return err;
da97e18458fb42 kernel/events/core.c  Joel Fernandes (Google  2019-10-14  11643) 
dc86cabe4b2424 kernel/perf_counter.c Ingo Molnar             2009-09-03  11644  	err = perf_copy_attr(attr_uptr, &attr);
dc86cabe4b2424 kernel/perf_counter.c Ingo Molnar             2009-09-03  11645  	if (err)
dc86cabe4b2424 kernel/perf_counter.c Ingo Molnar             2009-09-03  11646  		return err;
eab656ae04b9d3 kernel/perf_counter.c Thomas Gleixner         2008-12-08  11647  
0764771dab80d7 kernel/perf_counter.c Peter Zijlstra          2009-06-11  11648  	if (!attr.exclude_kernel) {
da97e18458fb42 kernel/events/core.c  Joel Fernandes (Google  2019-10-14  11649) 		err = perf_allow_kernel(&attr);
da97e18458fb42 kernel/events/core.c  Joel Fernandes (Google  2019-10-14  11650) 		if (err)
da97e18458fb42 kernel/events/core.c  Joel Fernandes (Google  2019-10-14  11651) 			return err;
0764771dab80d7 kernel/perf_counter.c Peter Zijlstra          2009-06-11  11652  	}
0764771dab80d7 kernel/perf_counter.c Peter Zijlstra          2009-06-11  11653  
e422267322cd31 kernel/events/core.c  Hari Bathini            2017-03-08  11654  	if (attr.namespaces) {
18aa18566218d4 kernel/events/core.c  Alexey Budankov         2020-04-02  11655  		if (!perfmon_capable())
e422267322cd31 kernel/events/core.c  Hari Bathini            2017-03-08  11656  			return -EACCES;
e422267322cd31 kernel/events/core.c  Hari Bathini            2017-03-08  11657  	}
e422267322cd31 kernel/events/core.c  Hari Bathini            2017-03-08  11658  
df58ab24bf26b1 kernel/perf_counter.c Peter Zijlstra          2009-06-11  11659  	if (attr.freq) {
cdd6c482c9ff9c kernel/perf_event.c   Ingo Molnar             2009-09-21  11660  		if (attr.sample_freq > sysctl_perf_event_sample_rate)
df58ab24bf26b1 kernel/perf_counter.c Peter Zijlstra          2009-06-11  11661  			return -EINVAL;
0819b2e30ccb93 kernel/events/core.c  Peter Zijlstra          2014-05-15  11662  	} else {
0819b2e30ccb93 kernel/events/core.c  Peter Zijlstra          2014-05-15  11663  		if (attr.sample_period & (1ULL << 63))
0819b2e30ccb93 kernel/events/core.c  Peter Zijlstra          2014-05-15  11664  			return -EINVAL;
df58ab24bf26b1 kernel/perf_counter.c Peter Zijlstra          2009-06-11  11665  	}
df58ab24bf26b1 kernel/perf_counter.c Peter Zijlstra          2009-06-11  11666  
fc7ce9c74c3ad2 kernel/events/core.c  Kan Liang               2017-08-28  11667  	/* Only privileged users can get physical addresses */
da97e18458fb42 kernel/events/core.c  Joel Fernandes (Google  2019-10-14  11668) 	if ((attr.sample_type & PERF_SAMPLE_PHYS_ADDR)) {
da97e18458fb42 kernel/events/core.c  Joel Fernandes (Google  2019-10-14  11669) 		err = perf_allow_kernel(&attr);
da97e18458fb42 kernel/events/core.c  Joel Fernandes (Google  2019-10-14  11670) 		if (err)
da97e18458fb42 kernel/events/core.c  Joel Fernandes (Google  2019-10-14  11671) 			return err;
da97e18458fb42 kernel/events/core.c  Joel Fernandes (Google  2019-10-14  11672) 	}
fc7ce9c74c3ad2 kernel/events/core.c  Kan Liang               2017-08-28  11673  
b0c8fdc7fdb775 kernel/events/core.c  David Howells           2019-08-19  11674  	err = security_locked_down(LOCKDOWN_PERF);
b0c8fdc7fdb775 kernel/events/core.c  David Howells           2019-08-19  11675  	if (err && (attr.sample_type & PERF_SAMPLE_REGS_INTR))
b0c8fdc7fdb775 kernel/events/core.c  David Howells           2019-08-19  11676  		/* REGS_INTR can leak data, lockdown must prevent this */
b0c8fdc7fdb775 kernel/events/core.c  David Howells           2019-08-19  11677  		return err;
b0c8fdc7fdb775 kernel/events/core.c  David Howells           2019-08-19  11678  
b0c8fdc7fdb775 kernel/events/core.c  David Howells           2019-08-19  11679  	err = 0;
b0c8fdc7fdb775 kernel/events/core.c  David Howells           2019-08-19  11680  
e5d1367f17ba6a kernel/perf_event.c   Stephane Eranian        2011-02-14  11681  	/*
e5d1367f17ba6a kernel/perf_event.c   Stephane Eranian        2011-02-14  11682  	 * In cgroup mode, the pid argument is used to pass the fd
e5d1367f17ba6a kernel/perf_event.c   Stephane Eranian        2011-02-14  11683  	 * opened to the cgroup directory in cgroupfs. The cpu argument
e5d1367f17ba6a kernel/perf_event.c   Stephane Eranian        2011-02-14  11684  	 * designates the cpu on which to monitor threads from that
e5d1367f17ba6a kernel/perf_event.c   Stephane Eranian        2011-02-14  11685  	 * cgroup.
e5d1367f17ba6a kernel/perf_event.c   Stephane Eranian        2011-02-14  11686  	 */
e5d1367f17ba6a kernel/perf_event.c   Stephane Eranian        2011-02-14  11687  	if ((flags & PERF_FLAG_PID_CGROUP) && (pid == -1 || cpu == -1))
e5d1367f17ba6a kernel/perf_event.c   Stephane Eranian        2011-02-14  11688  		return -EINVAL;
e5d1367f17ba6a kernel/perf_event.c   Stephane Eranian        2011-02-14  11689  
a21b0b354d4ac3 kernel/events/core.c  Yann Droneaud           2014-01-05  11690  	if (flags & PERF_FLAG_FD_CLOEXEC)
a21b0b354d4ac3 kernel/events/core.c  Yann Droneaud           2014-01-05  11691  		f_flags |= O_CLOEXEC;
a21b0b354d4ac3 kernel/events/core.c  Yann Droneaud           2014-01-05  11692  
a21b0b354d4ac3 kernel/events/core.c  Yann Droneaud           2014-01-05  11693  	event_fd = get_unused_fd_flags(f_flags);
ea635c64e00706 kernel/perf_event.c   Al Viro                 2010-05-26  11694  	if (event_fd < 0)
ea635c64e00706 kernel/perf_event.c   Al Viro                 2010-05-26  11695  		return event_fd;
ea635c64e00706 kernel/perf_event.c   Al Viro                 2010-05-26  11696  
ac9721f3f54b27 kernel/perf_event.c   Peter Zijlstra          2010-05-27  11697  	if (group_fd != -1) {
2903ff019b346a kernel/events/core.c  Al Viro                 2012-08-28  11698  		err = perf_fget_light(group_fd, &group);
2903ff019b346a kernel/events/core.c  Al Viro                 2012-08-28  11699  		if (err)
d14b12d7adbf21 kernel/perf_event.c   Stephane Eranian        2010-09-17  11700  			goto err_fd;
2903ff019b346a kernel/events/core.c  Al Viro                 2012-08-28  11701  		group_leader = group.file->private_data;
ac9721f3f54b27 kernel/perf_event.c   Peter Zijlstra          2010-05-27  11702  		if (flags & PERF_FLAG_FD_OUTPUT)
ac9721f3f54b27 kernel/perf_event.c   Peter Zijlstra          2010-05-27  11703  			output_event = group_leader;
ac9721f3f54b27 kernel/perf_event.c   Peter Zijlstra          2010-05-27  11704  		if (flags & PERF_FLAG_FD_NO_GROUP)
ac9721f3f54b27 kernel/perf_event.c   Peter Zijlstra          2010-05-27  11705  			group_leader = NULL;
ac9721f3f54b27 kernel/perf_event.c   Peter Zijlstra          2010-05-27  11706  	}
ac9721f3f54b27 kernel/perf_event.c   Peter Zijlstra          2010-05-27  11707  
e5d1367f17ba6a kernel/perf_event.c   Stephane Eranian        2011-02-14  11708  	if (pid != -1 && !(flags & PERF_FLAG_PID_CGROUP)) {
c6be5a5cb62592 kernel/perf_event.c   Peter Zijlstra          2010-10-14  11709  		task = find_lively_task_by_vpid(pid);
c6be5a5cb62592 kernel/perf_event.c   Peter Zijlstra          2010-10-14  11710  		if (IS_ERR(task)) {
c6be5a5cb62592 kernel/perf_event.c   Peter Zijlstra          2010-10-14  11711  			err = PTR_ERR(task);
c6be5a5cb62592 kernel/perf_event.c   Peter Zijlstra          2010-10-14  11712  			goto err_group_fd;
c6be5a5cb62592 kernel/perf_event.c   Peter Zijlstra          2010-10-14  11713  		}
c6be5a5cb62592 kernel/perf_event.c   Peter Zijlstra          2010-10-14  11714  	}
c6be5a5cb62592 kernel/perf_event.c   Peter Zijlstra          2010-10-14  11715  
1f4ee5038f0c1e kernel/events/core.c  Peter Zijlstra          2014-05-06  11716  	if (task && group_leader &&
1f4ee5038f0c1e kernel/events/core.c  Peter Zijlstra          2014-05-06  11717  	    group_leader->attr.inherit != attr.inherit) {
1f4ee5038f0c1e kernel/events/core.c  Peter Zijlstra          2014-05-06  11718  		err = -EINVAL;
1f4ee5038f0c1e kernel/events/core.c  Peter Zijlstra          2014-05-06  11719  		goto err_task;
1f4ee5038f0c1e kernel/events/core.c  Peter Zijlstra          2014-05-06  11720  	}
1f4ee5038f0c1e kernel/events/core.c  Peter Zijlstra          2014-05-06  11721  
79c9ce57eb2d5f kernel/events/core.c  Peter Zijlstra          2016-04-26  11722  	if (task) {
6914303824bb57 kernel/events/core.c  Bernd Edlinger          2020-03-20  11723  		err = mutex_lock_interruptible(&task->signal->exec_update_mutex);
79c9ce57eb2d5f kernel/events/core.c  Peter Zijlstra          2016-04-26  11724  		if (err)
e5aeee51f6b4fb kernel/events/core.c  Alexander Levin         2017-06-03  11725  			goto err_task;
79c9ce57eb2d5f kernel/events/core.c  Peter Zijlstra          2016-04-26  11726  
79c9ce57eb2d5f kernel/events/core.c  Peter Zijlstra          2016-04-26  11727  		/*
45fd22da97c612 kernel/events/core.c  Alexey Budankov         2020-08-05  11728  		 * Preserve ptrace permission check for backwards compatibility.
79c9ce57eb2d5f kernel/events/core.c  Peter Zijlstra          2016-04-26  11729  		 *
6914303824bb57 kernel/events/core.c  Bernd Edlinger          2020-03-20  11730  		 * We must hold exec_update_mutex across this and any potential
79c9ce57eb2d5f kernel/events/core.c  Peter Zijlstra          2016-04-26  11731  		 * perf_install_in_context() call for this new event to
79c9ce57eb2d5f kernel/events/core.c  Peter Zijlstra          2016-04-26  11732  		 * serialize against exec() altering our credentials (and the
79c9ce57eb2d5f kernel/events/core.c  Peter Zijlstra          2016-04-26  11733  		 * perf_event_exit_task() that could imply).
79c9ce57eb2d5f kernel/events/core.c  Peter Zijlstra          2016-04-26  11734  		 */
79c9ce57eb2d5f kernel/events/core.c  Peter Zijlstra          2016-04-26  11735  		err = -EACCES;
45fd22da97c612 kernel/events/core.c  Alexey Budankov         2020-08-05  11736  		if (!perfmon_capable() && !ptrace_may_access(task, PTRACE_MODE_READ_REALCREDS))
79c9ce57eb2d5f kernel/events/core.c  Peter Zijlstra          2016-04-26  11737  			goto err_cred;
79c9ce57eb2d5f kernel/events/core.c  Peter Zijlstra          2016-04-26  11738  	}
79c9ce57eb2d5f kernel/events/core.c  Peter Zijlstra          2016-04-26  11739  
79dff51e900fd2 kernel/events/core.c  Matt Fleming            2015-01-23  11740  	if (flags & PERF_FLAG_PID_CGROUP)
79dff51e900fd2 kernel/events/core.c  Matt Fleming            2015-01-23  11741  		cgroup_fd = pid;
79dff51e900fd2 kernel/events/core.c  Matt Fleming            2015-01-23  11742  
4dc0da86967d54 kernel/events/core.c  Avi Kivity              2011-06-29  11743  	event = perf_event_alloc(&attr, cpu, task, group_leader, NULL,
79dff51e900fd2 kernel/events/core.c  Matt Fleming            2015-01-23  11744  				 NULL, NULL, cgroup_fd);
d14b12d7adbf21 kernel/perf_event.c   Stephane Eranian        2010-09-17  11745  	if (IS_ERR(event)) {
d14b12d7adbf21 kernel/perf_event.c   Stephane Eranian        2010-09-17  11746  		err = PTR_ERR(event);
79c9ce57eb2d5f kernel/events/core.c  Peter Zijlstra          2016-04-26  11747  		goto err_cred;
d14b12d7adbf21 kernel/perf_event.c   Stephane Eranian        2010-09-17  11748  	}
d14b12d7adbf21 kernel/perf_event.c   Stephane Eranian        2010-09-17  11749  
53b25335dd6098 kernel/events/core.c  Vince Weaver            2014-05-16  11750  	if (is_sampling_event(event)) {
53b25335dd6098 kernel/events/core.c  Vince Weaver            2014-05-16  11751  		if (event->pmu->capabilities & PERF_PMU_CAP_NO_INTERRUPT) {
a1396555abff9f kernel/events/core.c  Vineet Gupta            2016-05-09  11752  			err = -EOPNOTSUPP;
53b25335dd6098 kernel/events/core.c  Vince Weaver            2014-05-16  11753  			goto err_alloc;
53b25335dd6098 kernel/events/core.c  Vince Weaver            2014-05-16  11754  		}
53b25335dd6098 kernel/events/core.c  Vince Weaver            2014-05-16  11755  	}
53b25335dd6098 kernel/events/core.c  Vince Weaver            2014-05-16  11756  
89a1e18731959e kernel/perf_event.c   Peter Zijlstra          2010-09-07  11757  	/*
89a1e18731959e kernel/perf_event.c   Peter Zijlstra          2010-09-07  11758  	 * Special case software events and allow them to be part of
89a1e18731959e kernel/perf_event.c   Peter Zijlstra          2010-09-07  11759  	 * any hardware group.
89a1e18731959e kernel/perf_event.c   Peter Zijlstra          2010-09-07  11760  	 */
89a1e18731959e kernel/perf_event.c   Peter Zijlstra          2010-09-07  11761  	pmu = event->pmu;
b04243ef7006cd kernel/perf_event.c   Peter Zijlstra          2010-09-17  11762  
34f439278cef7b kernel/events/core.c  Peter Zijlstra          2015-02-20  11763  	if (attr.use_clockid) {
34f439278cef7b kernel/events/core.c  Peter Zijlstra          2015-02-20  11764  		err = perf_event_set_clock(event, attr.clockid);
34f439278cef7b kernel/events/core.c  Peter Zijlstra          2015-02-20  11765  		if (err)
34f439278cef7b kernel/events/core.c  Peter Zijlstra          2015-02-20  11766  			goto err_alloc;
34f439278cef7b kernel/events/core.c  Peter Zijlstra          2015-02-20  11767  	}
34f439278cef7b kernel/events/core.c  Peter Zijlstra          2015-02-20  11768  
4ff6a8debf48a7 kernel/events/core.c  David Carrillo-Cisneros 2016-08-17  11769  	if (pmu->task_ctx_nr == perf_sw_context)
4ff6a8debf48a7 kernel/events/core.c  David Carrillo-Cisneros 2016-08-17  11770  		event->event_caps |= PERF_EV_CAP_SOFTWARE;
4ff6a8debf48a7 kernel/events/core.c  David Carrillo-Cisneros 2016-08-17  11771  
a1150c202207cc kernel/events/core.c  Song Liu                2018-05-03  11772  	if (group_leader) {
a1150c202207cc kernel/events/core.c  Song Liu                2018-05-03  11773  		if (is_software_event(event) &&
a1150c202207cc kernel/events/core.c  Song Liu                2018-05-03  11774  		    !in_software_context(group_leader)) {
b04243ef7006cd kernel/perf_event.c   Peter Zijlstra          2010-09-17  11775  			/*
a1150c202207cc kernel/events/core.c  Song Liu                2018-05-03  11776  			 * If the event is a sw event, but the group_leader
a1150c202207cc kernel/events/core.c  Song Liu                2018-05-03  11777  			 * is on hw context.
b04243ef7006cd kernel/perf_event.c   Peter Zijlstra          2010-09-17  11778  			 *
a1150c202207cc kernel/events/core.c  Song Liu                2018-05-03  11779  			 * Allow the addition of software events to hw
a1150c202207cc kernel/events/core.c  Song Liu                2018-05-03  11780  			 * groups, this is safe because software events
a1150c202207cc kernel/events/core.c  Song Liu                2018-05-03  11781  			 * never fail to schedule.
b04243ef7006cd kernel/perf_event.c   Peter Zijlstra          2010-09-17  11782  			 */
a1150c202207cc kernel/events/core.c  Song Liu                2018-05-03  11783  			pmu = group_leader->ctx->pmu;
a1150c202207cc kernel/events/core.c  Song Liu                2018-05-03  11784  		} else if (!is_software_event(event) &&
a1150c202207cc kernel/events/core.c  Song Liu                2018-05-03  11785  			   is_software_event(group_leader) &&
4ff6a8debf48a7 kernel/events/core.c  David Carrillo-Cisneros 2016-08-17  11786  			   (group_leader->group_caps & PERF_EV_CAP_SOFTWARE)) {
b04243ef7006cd kernel/perf_event.c   Peter Zijlstra          2010-09-17  11787  			/*
b04243ef7006cd kernel/perf_event.c   Peter Zijlstra          2010-09-17  11788  			 * In case the group is a pure software group, and we
b04243ef7006cd kernel/perf_event.c   Peter Zijlstra          2010-09-17  11789  			 * try to add a hardware event, move the whole group to
b04243ef7006cd kernel/perf_event.c   Peter Zijlstra          2010-09-17  11790  			 * the hardware context.
b04243ef7006cd kernel/perf_event.c   Peter Zijlstra          2010-09-17  11791  			 */
b04243ef7006cd kernel/perf_event.c   Peter Zijlstra          2010-09-17  11792  			move_group = 1;
b04243ef7006cd kernel/perf_event.c   Peter Zijlstra          2010-09-17  11793  		}
b04243ef7006cd kernel/perf_event.c   Peter Zijlstra          2010-09-17  11794  	}
89a1e18731959e kernel/perf_event.c   Peter Zijlstra          2010-09-07  11795  
89a1e18731959e kernel/perf_event.c   Peter Zijlstra          2010-09-07  11796  	/*
89a1e18731959e kernel/perf_event.c   Peter Zijlstra          2010-09-07  11797  	 * Get the target context (task or percpu):
89a1e18731959e kernel/perf_event.c   Peter Zijlstra          2010-09-07  11798  	 */
4af57ef28c2c10 kernel/events/core.c  Yan, Zheng              2014-11-04  11799  	ctx = find_get_context(pmu, task, event);
89a1e18731959e kernel/perf_event.c   Peter Zijlstra          2010-09-07  11800  	if (IS_ERR(ctx)) {
89a1e18731959e kernel/perf_event.c   Peter Zijlstra          2010-09-07  11801  		err = PTR_ERR(ctx);
c6be5a5cb62592 kernel/perf_event.c   Peter Zijlstra          2010-10-14  11802  		goto err_alloc;
89a1e18731959e kernel/perf_event.c   Peter Zijlstra          2010-09-07  11803  	}
89a1e18731959e kernel/perf_event.c   Peter Zijlstra          2010-09-07  11804  
ccff286d85098b kernel/perf_counter.c Ingo Molnar             2008-12-11  11805  	/*
cdd6c482c9ff9c kernel/perf_event.c   Ingo Molnar             2009-09-21  11806  	 * Look up the group leader (we will attach this event to it):
04289bb9891882 kernel/perf_counter.c Ingo Molnar             2008-12-11  11807  	 */
ac9721f3f54b27 kernel/perf_event.c   Peter Zijlstra          2010-05-27  11808  	if (group_leader) {
dc86cabe4b2424 kernel/perf_counter.c Ingo Molnar             2009-09-03  11809  		err = -EINVAL;
04289bb9891882 kernel/perf_counter.c Ingo Molnar             2008-12-11  11810  
04289bb9891882 kernel/perf_counter.c Ingo Molnar             2008-12-11  11811  		/*
ccff286d85098b kernel/perf_counter.c Ingo Molnar             2008-12-11  11812  		 * Do not allow a recursive hierarchy (this new sibling
ccff286d85098b kernel/perf_counter.c Ingo Molnar             2008-12-11  11813  		 * becoming part of another group-sibling):
04289bb9891882 kernel/perf_counter.c Ingo Molnar             2008-12-11  11814  		 */
ccff286d85098b kernel/perf_counter.c Ingo Molnar             2008-12-11  11815  		if (group_leader->group_leader != group_leader)
c3f00c70276d8a kernel/perf_event.c   Peter Zijlstra          2010-08-18  11816  			goto err_context;
34f439278cef7b kernel/events/core.c  Peter Zijlstra          2015-02-20  11817  
34f439278cef7b kernel/events/core.c  Peter Zijlstra          2015-02-20  11818  		/* All events in a group should have the same clock */
34f439278cef7b kernel/events/core.c  Peter Zijlstra          2015-02-20  11819  		if (group_leader->clock != event->clock)
34f439278cef7b kernel/events/core.c  Peter Zijlstra          2015-02-20  11820  			goto err_context;
34f439278cef7b kernel/events/core.c  Peter Zijlstra          2015-02-20  11821  
04289bb9891882 kernel/perf_counter.c Ingo Molnar             2008-12-11  11822  		/*
64aee2a965cf29 kernel/events/core.c  Mark Rutland            2017-06-22  11823  		 * Make sure we're both events for the same CPU;
64aee2a965cf29 kernel/events/core.c  Mark Rutland            2017-06-22  11824  		 * grouping events for different CPUs is broken; since
64aee2a965cf29 kernel/events/core.c  Mark Rutland            2017-06-22  11825  		 * you can never concurrently schedule them anyhow.
04289bb9891882 kernel/perf_counter.c Ingo Molnar             2008-12-11  11826  		 */
64aee2a965cf29 kernel/events/core.c  Mark Rutland            2017-06-22  11827  		if (group_leader->cpu != event->cpu)
64aee2a965cf29 kernel/events/core.c  Mark Rutland            2017-06-22  11828  			goto err_context;
64aee2a965cf29 kernel/events/core.c  Mark Rutland            2017-06-22  11829  
c3c87e770458aa kernel/events/core.c  Peter Zijlstra          2015-01-23  11830  		/*
c3c87e770458aa kernel/events/core.c  Peter Zijlstra          2015-01-23  11831  		 * Make sure we're both on the same task, or both
64aee2a965cf29 kernel/events/core.c  Mark Rutland            2017-06-22  11832  		 * per-CPU events.
c3c87e770458aa kernel/events/core.c  Peter Zijlstra          2015-01-23  11833  		 */
c3c87e770458aa kernel/events/core.c  Peter Zijlstra          2015-01-23  11834  		if (group_leader->ctx->task != ctx->task)
c3c87e770458aa kernel/events/core.c  Peter Zijlstra          2015-01-23  11835  			goto err_context;
c3c87e770458aa kernel/events/core.c  Peter Zijlstra          2015-01-23  11836  
c3c87e770458aa kernel/events/core.c  Peter Zijlstra          2015-01-23  11837  		/*
64aee2a965cf29 kernel/events/core.c  Mark Rutland            2017-06-22  11838  		 * Do not allow to attach to a group in a different task
64aee2a965cf29 kernel/events/core.c  Mark Rutland            2017-06-22  11839  		 * or CPU context. If we're moving SW events, we'll fix
64aee2a965cf29 kernel/events/core.c  Mark Rutland            2017-06-22  11840  		 * this up later, so allow that.
c3c87e770458aa kernel/events/core.c  Peter Zijlstra          2015-01-23  11841  		 */
64aee2a965cf29 kernel/events/core.c  Mark Rutland            2017-06-22  11842  		if (!move_group && group_leader->ctx != ctx)
b04243ef7006cd kernel/perf_event.c   Peter Zijlstra          2010-09-17  11843  			goto err_context;
b04243ef7006cd kernel/perf_event.c   Peter Zijlstra          2010-09-17  11844  
3b6f9e5cb21964 kernel/perf_counter.c Paul Mackerras          2009-01-14  11845  		/*
3b6f9e5cb21964 kernel/perf_counter.c Paul Mackerras          2009-01-14  11846  		 * Only a group leader can be exclusive or pinned
3b6f9e5cb21964 kernel/perf_counter.c Paul Mackerras          2009-01-14  11847  		 */
0d48696f87e361 kernel/perf_counter.c Peter Zijlstra          2009-06-02  11848  		if (attr.exclusive || attr.pinned)
c3f00c70276d8a kernel/perf_event.c   Peter Zijlstra          2010-08-18  11849  			goto err_context;
ac9721f3f54b27 kernel/perf_event.c   Peter Zijlstra          2010-05-27  11850  	}
ac9721f3f54b27 kernel/perf_event.c   Peter Zijlstra          2010-05-27  11851  
ac9721f3f54b27 kernel/perf_event.c   Peter Zijlstra          2010-05-27  11852  	if (output_event) {
ac9721f3f54b27 kernel/perf_event.c   Peter Zijlstra          2010-05-27  11853  		err = perf_event_set_output(event, output_event);
ac9721f3f54b27 kernel/perf_event.c   Peter Zijlstra          2010-05-27  11854  		if (err)
c3f00c70276d8a kernel/perf_event.c   Peter Zijlstra          2010-08-18  11855  			goto err_context;
ac9721f3f54b27 kernel/perf_event.c   Peter Zijlstra          2010-05-27  11856  	}
0793a61d4df8da kernel/perf_counter.c Thomas Gleixner         2008-12-04  11857  
a21b0b354d4ac3 kernel/events/core.c  Yann Droneaud           2014-01-05  11858  	event_file = anon_inode_getfile("[perf_event]", &perf_fops, event,
a21b0b354d4ac3 kernel/events/core.c  Yann Droneaud           2014-01-05  11859  					f_flags);
ea635c64e00706 kernel/perf_event.c   Al Viro                 2010-05-26  11860  	if (IS_ERR(event_file)) {
ea635c64e00706 kernel/perf_event.c   Al Viro                 2010-05-26  11861  		err = PTR_ERR(event_file);
201c2f85bd0bc1 kernel/events/core.c  Alexander Shishkin      2016-03-21  11862  		event_file = NULL;
c3f00c70276d8a kernel/perf_event.c   Peter Zijlstra          2010-08-18  11863  		goto err_context;
ea635c64e00706 kernel/perf_event.c   Al Viro                 2010-05-26  11864  	}
9b51f66dcb09ac kernel/perf_counter.c Ingo Molnar             2008-12-12  11865  
b04243ef7006cd kernel/perf_event.c   Peter Zijlstra          2010-09-17  11866  	if (move_group) {
321027c1fe77f8 kernel/events/core.c  Peter Zijlstra          2017-01-11  11867  		gctx = __perf_event_ctx_lock_double(group_leader, ctx);
321027c1fe77f8 kernel/events/core.c  Peter Zijlstra          2017-01-11  11868  
84c4e620d35f49 kernel/events/core.c  Peter Zijlstra          2016-02-24  11869  		if (gctx->task == TASK_TOMBSTONE) {
84c4e620d35f49 kernel/events/core.c  Peter Zijlstra          2016-02-24  11870  			err = -ESRCH;
84c4e620d35f49 kernel/events/core.c  Peter Zijlstra          2016-02-24  11871  			goto err_locked;
84c4e620d35f49 kernel/events/core.c  Peter Zijlstra          2016-02-24  11872  		}
321027c1fe77f8 kernel/events/core.c  Peter Zijlstra          2017-01-11  11873  
321027c1fe77f8 kernel/events/core.c  Peter Zijlstra          2017-01-11  11874  		/*
321027c1fe77f8 kernel/events/core.c  Peter Zijlstra          2017-01-11  11875  		 * Check if we raced against another sys_perf_event_open() call
321027c1fe77f8 kernel/events/core.c  Peter Zijlstra          2017-01-11  11876  		 * moving the software group underneath us.
321027c1fe77f8 kernel/events/core.c  Peter Zijlstra          2017-01-11  11877  		 */
321027c1fe77f8 kernel/events/core.c  Peter Zijlstra          2017-01-11  11878  		if (!(group_leader->group_caps & PERF_EV_CAP_SOFTWARE)) {
321027c1fe77f8 kernel/events/core.c  Peter Zijlstra          2017-01-11  11879  			/*
321027c1fe77f8 kernel/events/core.c  Peter Zijlstra          2017-01-11  11880  			 * If someone moved the group out from under us, check
321027c1fe77f8 kernel/events/core.c  Peter Zijlstra          2017-01-11  11881  			 * if this new event wound up on the same ctx, if so
321027c1fe77f8 kernel/events/core.c  Peter Zijlstra          2017-01-11  11882  			 * its the regular !move_group case, otherwise fail.
321027c1fe77f8 kernel/events/core.c  Peter Zijlstra          2017-01-11  11883  			 */
321027c1fe77f8 kernel/events/core.c  Peter Zijlstra          2017-01-11  11884  			if (gctx != ctx) {
321027c1fe77f8 kernel/events/core.c  Peter Zijlstra          2017-01-11  11885  				err = -EINVAL;
321027c1fe77f8 kernel/events/core.c  Peter Zijlstra          2017-01-11  11886  				goto err_locked;
321027c1fe77f8 kernel/events/core.c  Peter Zijlstra          2017-01-11  11887  			} else {
321027c1fe77f8 kernel/events/core.c  Peter Zijlstra          2017-01-11  11888  				perf_event_ctx_unlock(group_leader, gctx);
321027c1fe77f8 kernel/events/core.c  Peter Zijlstra          2017-01-11  11889  				move_group = 0;
321027c1fe77f8 kernel/events/core.c  Peter Zijlstra          2017-01-11  11890  			}
321027c1fe77f8 kernel/events/core.c  Peter Zijlstra          2017-01-11  11891  		}
8a58ddae23796c kernel/events/core.c  Alexander Shishkin      2019-07-01  11892  
8a58ddae23796c kernel/events/core.c  Alexander Shishkin      2019-07-01  11893  		/*
8a58ddae23796c kernel/events/core.c  Alexander Shishkin      2019-07-01  11894  		 * Failure to create exclusive events returns -EBUSY.
8a58ddae23796c kernel/events/core.c  Alexander Shishkin      2019-07-01  11895  		 */
8a58ddae23796c kernel/events/core.c  Alexander Shishkin      2019-07-01  11896  		err = -EBUSY;
8a58ddae23796c kernel/events/core.c  Alexander Shishkin      2019-07-01  11897  		if (!exclusive_event_installable(group_leader, ctx))
8a58ddae23796c kernel/events/core.c  Alexander Shishkin      2019-07-01  11898  			goto err_locked;
8a58ddae23796c kernel/events/core.c  Alexander Shishkin      2019-07-01  11899  
8a58ddae23796c kernel/events/core.c  Alexander Shishkin      2019-07-01  11900  		for_each_sibling_event(sibling, group_leader) {
8a58ddae23796c kernel/events/core.c  Alexander Shishkin      2019-07-01  11901  			if (!exclusive_event_installable(sibling, ctx))
8a58ddae23796c kernel/events/core.c  Alexander Shishkin      2019-07-01  11902  				goto err_locked;
8a58ddae23796c kernel/events/core.c  Alexander Shishkin      2019-07-01  11903  		}
f55fc2a57cc9ca kernel/events/core.c  Peter Zijlstra          2015-09-09  11904  	} else {
f55fc2a57cc9ca kernel/events/core.c  Peter Zijlstra          2015-09-09  11905  		mutex_lock(&ctx->mutex);
f55fc2a57cc9ca kernel/events/core.c  Peter Zijlstra          2015-09-09  11906  	}
f63a8daa5812af kernel/events/core.c  Peter Zijlstra          2015-01-23  11907  
84c4e620d35f49 kernel/events/core.c  Peter Zijlstra          2016-02-24  11908  	if (ctx->task == TASK_TOMBSTONE) {
84c4e620d35f49 kernel/events/core.c  Peter Zijlstra          2016-02-24  11909  		err = -ESRCH;
84c4e620d35f49 kernel/events/core.c  Peter Zijlstra          2016-02-24  11910  		goto err_locked;
84c4e620d35f49 kernel/events/core.c  Peter Zijlstra          2016-02-24  11911  	}
84c4e620d35f49 kernel/events/core.c  Peter Zijlstra          2016-02-24  11912  
a723968c0ed36d kernel/events/core.c  Peter Zijlstra          2015-09-09  11913  	if (!perf_event_validate_size(event)) {
a723968c0ed36d kernel/events/core.c  Peter Zijlstra          2015-09-09  11914  		err = -E2BIG;
a723968c0ed36d kernel/events/core.c  Peter Zijlstra          2015-09-09  11915  		goto err_locked;
a723968c0ed36d kernel/events/core.c  Peter Zijlstra          2015-09-09  11916  	}
a723968c0ed36d kernel/events/core.c  Peter Zijlstra          2015-09-09  11917  
a63fbed776c712 kernel/events/core.c  Thomas Gleixner         2017-05-24  11918  	if (!task) {
a63fbed776c712 kernel/events/core.c  Thomas Gleixner         2017-05-24  11919  		/*
a63fbed776c712 kernel/events/core.c  Thomas Gleixner         2017-05-24  11920  		 * Check if the @cpu we're creating an event for is online.
a63fbed776c712 kernel/events/core.c  Thomas Gleixner         2017-05-24  11921  		 *
a63fbed776c712 kernel/events/core.c  Thomas Gleixner         2017-05-24  11922  		 * We use the perf_cpu_context::ctx::mutex to serialize against
a63fbed776c712 kernel/events/core.c  Thomas Gleixner         2017-05-24  11923  		 * the hotplug notifiers. See perf_event_{init,exit}_cpu().
a63fbed776c712 kernel/events/core.c  Thomas Gleixner         2017-05-24  11924  		 */
a63fbed776c712 kernel/events/core.c  Thomas Gleixner         2017-05-24  11925  		struct perf_cpu_context *cpuctx =
a63fbed776c712 kernel/events/core.c  Thomas Gleixner         2017-05-24  11926  			container_of(ctx, struct perf_cpu_context, ctx);
a63fbed776c712 kernel/events/core.c  Thomas Gleixner         2017-05-24  11927  
a63fbed776c712 kernel/events/core.c  Thomas Gleixner         2017-05-24  11928  		if (!cpuctx->online) {
a63fbed776c712 kernel/events/core.c  Thomas Gleixner         2017-05-24  11929  			err = -ENODEV;
a63fbed776c712 kernel/events/core.c  Thomas Gleixner         2017-05-24  11930  			goto err_locked;
a63fbed776c712 kernel/events/core.c  Thomas Gleixner         2017-05-24  11931  		}
a63fbed776c712 kernel/events/core.c  Thomas Gleixner         2017-05-24  11932  	}
a63fbed776c712 kernel/events/core.c  Thomas Gleixner         2017-05-24  11933  
da9ec3d3dd0f12 kernel/events/core.c  Mark Rutland            2020-01-06  11934  	if (perf_need_aux_event(event) && !perf_get_aux_event(event, group_leader)) {
da9ec3d3dd0f12 kernel/events/core.c  Mark Rutland            2020-01-06  11935  		err = -EINVAL;
ab43762ef01096 kernel/events/core.c  Alexander Shishkin      2019-08-06  11936  		goto err_locked;
da9ec3d3dd0f12 kernel/events/core.c  Mark Rutland            2020-01-06  11937  	}
a63fbed776c712 kernel/events/core.c  Thomas Gleixner         2017-05-24  11938  
f55fc2a57cc9ca kernel/events/core.c  Peter Zijlstra          2015-09-09  11939  	/*
f55fc2a57cc9ca kernel/events/core.c  Peter Zijlstra          2015-09-09  11940  	 * Must be under the same ctx::mutex as perf_install_in_context(),
f55fc2a57cc9ca kernel/events/core.c  Peter Zijlstra          2015-09-09  11941  	 * because we need to serialize with concurrent event creation.
f55fc2a57cc9ca kernel/events/core.c  Peter Zijlstra          2015-09-09  11942  	 */
f55fc2a57cc9ca kernel/events/core.c  Peter Zijlstra          2015-09-09  11943  	if (!exclusive_event_installable(event, ctx)) {
f55fc2a57cc9ca kernel/events/core.c  Peter Zijlstra          2015-09-09  11944  		err = -EBUSY;
f55fc2a57cc9ca kernel/events/core.c  Peter Zijlstra          2015-09-09  11945  		goto err_locked;
f55fc2a57cc9ca kernel/events/core.c  Peter Zijlstra          2015-09-09  11946  	}
f63a8daa5812af kernel/events/core.c  Peter Zijlstra          2015-01-23  11947  
f55fc2a57cc9ca kernel/events/core.c  Peter Zijlstra          2015-09-09  11948  	WARN_ON_ONCE(ctx->parent_ctx);
f55fc2a57cc9ca kernel/events/core.c  Peter Zijlstra          2015-09-09  11949  
79c9ce57eb2d5f kernel/events/core.c  Peter Zijlstra          2016-04-26  11950  	/*
79c9ce57eb2d5f kernel/events/core.c  Peter Zijlstra          2016-04-26  11951  	 * This is the point on no return; we cannot fail hereafter. This is
79c9ce57eb2d5f kernel/events/core.c  Peter Zijlstra          2016-04-26  11952  	 * where we start modifying current state.
79c9ce57eb2d5f kernel/events/core.c  Peter Zijlstra          2016-04-26  11953  	 */
79c9ce57eb2d5f kernel/events/core.c  Peter Zijlstra          2016-04-26  11954  
f55fc2a57cc9ca kernel/events/core.c  Peter Zijlstra          2015-09-09  11955  	if (move_group) {
f63a8daa5812af kernel/events/core.c  Peter Zijlstra          2015-01-23  11956  		/*
f63a8daa5812af kernel/events/core.c  Peter Zijlstra          2015-01-23  11957  		 * See perf_event_ctx_lock() for comments on the details
f63a8daa5812af kernel/events/core.c  Peter Zijlstra          2015-01-23  11958  		 * of swizzling perf_event::ctx.
f63a8daa5812af kernel/events/core.c  Peter Zijlstra          2015-01-23  11959  		 */
45a0e07abf4933 kernel/events/core.c  Peter Zijlstra          2016-01-26  11960  		perf_remove_from_context(group_leader, 0);
279b5165ffadf5 kernel/events/core.c  Peter Zijlstra          2017-02-16  11961  		put_ctx(gctx);
0231bb53367584 kernel/events/core.c  Jiri Olsa               2013-02-01  11962  
edb39592a5877b kernel/events/core.c  Peter Zijlstra          2018-03-15  11963  		for_each_sibling_event(sibling, group_leader) {
45a0e07abf4933 kernel/events/core.c  Peter Zijlstra          2016-01-26  11964  			perf_remove_from_context(sibling, 0);
b04243ef7006cd kernel/perf_event.c   Peter Zijlstra          2010-09-17  11965  			put_ctx(gctx);
b04243ef7006cd kernel/perf_event.c   Peter Zijlstra          2010-09-17  11966  		}
9b51f66dcb09ac kernel/perf_counter.c Ingo Molnar             2008-12-12  11967  
f63a8daa5812af kernel/events/core.c  Peter Zijlstra          2015-01-23  11968  		/*
f63a8daa5812af kernel/events/core.c  Peter Zijlstra          2015-01-23  11969  		 * Wait for everybody to stop referencing the events through
f63a8daa5812af kernel/events/core.c  Peter Zijlstra          2015-01-23  11970  		 * the old lists, before installing it on new lists.
f63a8daa5812af kernel/events/core.c  Peter Zijlstra          2015-01-23  11971  		 */
0cda4c023132aa kernel/events/core.c  Yan, Zheng              2012-06-15  11972  		synchronize_rcu();
f63a8daa5812af kernel/events/core.c  Peter Zijlstra          2015-01-23  11973  
8f95b435b62522 kernel/events/core.c  Peter Zijlstra (Intel   2015-01-27  11974) 		/*
8f95b435b62522 kernel/events/core.c  Peter Zijlstra (Intel   2015-01-27  11975) 		 * Install the group siblings before the group leader.
8f95b435b62522 kernel/events/core.c  Peter Zijlstra (Intel   2015-01-27  11976) 		 *
8f95b435b62522 kernel/events/core.c  Peter Zijlstra (Intel   2015-01-27  11977) 		 * Because a group leader will try and install the entire group
8f95b435b62522 kernel/events/core.c  Peter Zijlstra (Intel   2015-01-27  11978) 		 * (through the sibling list, which is still in-tact), we can
8f95b435b62522 kernel/events/core.c  Peter Zijlstra (Intel   2015-01-27  11979) 		 * end up with siblings installed in the wrong context.
8f95b435b62522 kernel/events/core.c  Peter Zijlstra (Intel   2015-01-27  11980) 		 *
8f95b435b62522 kernel/events/core.c  Peter Zijlstra (Intel   2015-01-27  11981) 		 * By installing siblings first we NO-OP because they're not
8f95b435b62522 kernel/events/core.c  Peter Zijlstra (Intel   2015-01-27  11982) 		 * reachable through the group lists.
8f95b435b62522 kernel/events/core.c  Peter Zijlstra (Intel   2015-01-27  11983) 		 */
edb39592a5877b kernel/events/core.c  Peter Zijlstra          2018-03-15  11984  		for_each_sibling_event(sibling, group_leader) {
8f95b435b62522 kernel/events/core.c  Peter Zijlstra (Intel   2015-01-27  11985) 			perf_event__state_init(sibling);
9fc81d87420d0d kernel/events/core.c  Jiri Olsa               2014-12-10  11986  			perf_install_in_context(ctx, sibling, sibling->cpu);
b04243ef7006cd kernel/perf_event.c   Peter Zijlstra          2010-09-17  11987  			get_ctx(ctx);
b04243ef7006cd kernel/perf_event.c   Peter Zijlstra          2010-09-17  11988  		}
8f95b435b62522 kernel/events/core.c  Peter Zijlstra (Intel   2015-01-27  11989) 
8f95b435b62522 kernel/events/core.c  Peter Zijlstra (Intel   2015-01-27  11990) 		/*
8f95b435b62522 kernel/events/core.c  Peter Zijlstra (Intel   2015-01-27  11991) 		 * Removing from the context ends up with disabled
8f95b435b62522 kernel/events/core.c  Peter Zijlstra (Intel   2015-01-27  11992) 		 * event. What we want here is event in the initial
8f95b435b62522 kernel/events/core.c  Peter Zijlstra (Intel   2015-01-27  11993) 		 * startup state, ready to be add into new context.
8f95b435b62522 kernel/events/core.c  Peter Zijlstra (Intel   2015-01-27  11994) 		 */
8f95b435b62522 kernel/events/core.c  Peter Zijlstra (Intel   2015-01-27  11995) 		perf_event__state_init(group_leader);
8f95b435b62522 kernel/events/core.c  Peter Zijlstra (Intel   2015-01-27  11996) 		perf_install_in_context(ctx, group_leader, group_leader->cpu);
8f95b435b62522 kernel/events/core.c  Peter Zijlstra (Intel   2015-01-27  11997) 		get_ctx(ctx);
bed5b25ad9c8a2 kernel/events/core.c  Alexander Shishkin      2015-01-30  11998  	}
bed5b25ad9c8a2 kernel/events/core.c  Alexander Shishkin      2015-01-30  11999  
f73e22ab450140 kernel/events/core.c  Peter Zijlstra          2015-09-09  12000  	/*
f73e22ab450140 kernel/events/core.c  Peter Zijlstra          2015-09-09  12001  	 * Precalculate sample_data sizes; do while holding ctx::mutex such
f73e22ab450140 kernel/events/core.c  Peter Zijlstra          2015-09-09  12002  	 * that we're serialized against further additions and before
f73e22ab450140 kernel/events/core.c  Peter Zijlstra          2015-09-09  12003  	 * perf_install_in_context() which is the point the event is active and
f73e22ab450140 kernel/events/core.c  Peter Zijlstra          2015-09-09  12004  	 * can use these values.
f73e22ab450140 kernel/events/core.c  Peter Zijlstra          2015-09-09  12005  	 */
f73e22ab450140 kernel/events/core.c  Peter Zijlstra          2015-09-09  12006  	perf_event__header_size(event);
f73e22ab450140 kernel/events/core.c  Peter Zijlstra          2015-09-09  12007  	perf_event__id_header_size(event);
f73e22ab450140 kernel/events/core.c  Peter Zijlstra          2015-09-09  12008  
78cd2c748f4597 kernel/events/core.c  Peter Zijlstra          2016-01-25  12009  	event->owner = current;
78cd2c748f4597 kernel/events/core.c  Peter Zijlstra          2016-01-25  12010  
e2d37cd213dcc0 kernel/events/core.c  Yan, Zheng              2012-06-15  12011  	perf_install_in_context(ctx, event, event->cpu);
fe4b04fa31a6dc kernel/perf_event.c   Peter Zijlstra          2011-02-02  12012  	perf_unpin_context(ctx);
f63a8daa5812af kernel/events/core.c  Peter Zijlstra          2015-01-23  12013  
f55fc2a57cc9ca kernel/events/core.c  Peter Zijlstra          2015-09-09  12014  	if (move_group)
321027c1fe77f8 kernel/events/core.c  Peter Zijlstra          2017-01-11  12015  		perf_event_ctx_unlock(group_leader, gctx);
d859e29fe34cb8 kernel/perf_counter.c Paul Mackerras          2009-01-17  12016  	mutex_unlock(&ctx->mutex);
9b51f66dcb09ac kernel/perf_counter.c Ingo Molnar             2008-12-12  12017  
79c9ce57eb2d5f kernel/events/core.c  Peter Zijlstra          2016-04-26  12018  	if (task) {
6914303824bb57 kernel/events/core.c  Bernd Edlinger          2020-03-20  12019  		mutex_unlock(&task->signal->exec_update_mutex);
79c9ce57eb2d5f kernel/events/core.c  Peter Zijlstra          2016-04-26  12020  		put_task_struct(task);
79c9ce57eb2d5f kernel/events/core.c  Peter Zijlstra          2016-04-26  12021  	}
79c9ce57eb2d5f kernel/events/core.c  Peter Zijlstra          2016-04-26  12022  
cdd6c482c9ff9c kernel/perf_event.c   Ingo Molnar             2009-09-21  12023  	mutex_lock(&current->perf_event_mutex);
cdd6c482c9ff9c kernel/perf_event.c   Ingo Molnar             2009-09-21  12024  	list_add_tail(&event->owner_entry, &current->perf_event_list);
cdd6c482c9ff9c kernel/perf_event.c   Ingo Molnar             2009-09-21  12025  	mutex_unlock(&current->perf_event_mutex);
082ff5a2767a06 kernel/perf_counter.c Peter Zijlstra          2009-05-23  12026  
8a49542c0554af kernel/perf_event.c   Peter Zijlstra          2010-05-27  12027  	/*
8a49542c0554af kernel/perf_event.c   Peter Zijlstra          2010-05-27  12028  	 * Drop the reference on the group_event after placing the
8a49542c0554af kernel/perf_event.c   Peter Zijlstra          2010-05-27  12029  	 * new event on the sibling_list. This ensures destruction
8a49542c0554af kernel/perf_event.c   Peter Zijlstra          2010-05-27  12030  	 * of the group leader will find the pointer to itself in
8a49542c0554af kernel/perf_event.c   Peter Zijlstra          2010-05-27  12031  	 * perf_group_detach().
8a49542c0554af kernel/perf_event.c   Peter Zijlstra          2010-05-27  12032  	 */
2903ff019b346a kernel/events/core.c  Al Viro                 2012-08-28  12033  	fdput(group);
ea635c64e00706 kernel/perf_event.c   Al Viro                 2010-05-26  12034  	fd_install(event_fd, event_file);
ea635c64e00706 kernel/perf_event.c   Al Viro                 2010-05-26  12035  	return event_fd;
0793a61d4df8da kernel/perf_counter.c Thomas Gleixner         2008-12-04  12036  
f55fc2a57cc9ca kernel/events/core.c  Peter Zijlstra          2015-09-09  12037  err_locked:
f55fc2a57cc9ca kernel/events/core.c  Peter Zijlstra          2015-09-09  12038  	if (move_group)
321027c1fe77f8 kernel/events/core.c  Peter Zijlstra          2017-01-11  12039  		perf_event_ctx_unlock(group_leader, gctx);
f55fc2a57cc9ca kernel/events/core.c  Peter Zijlstra          2015-09-09  12040  	mutex_unlock(&ctx->mutex);
f55fc2a57cc9ca kernel/events/core.c  Peter Zijlstra          2015-09-09  12041  /* err_file: */
f55fc2a57cc9ca kernel/events/core.c  Peter Zijlstra          2015-09-09  12042  	fput(event_file);
c3f00c70276d8a kernel/perf_event.c   Peter Zijlstra          2010-08-18  12043  err_context:
fe4b04fa31a6dc kernel/perf_event.c   Peter Zijlstra          2011-02-02  12044  	perf_unpin_context(ctx);
ea635c64e00706 kernel/perf_event.c   Al Viro                 2010-05-26  12045  	put_ctx(ctx);
c6be5a5cb62592 kernel/perf_event.c   Peter Zijlstra          2010-10-14  12046  err_alloc:
130056275ade73 kernel/events/core.c  Peter Zijlstra          2016-02-24  12047  	/*
130056275ade73 kernel/events/core.c  Peter Zijlstra          2016-02-24  12048  	 * If event_file is set, the fput() above will have called ->release()
130056275ade73 kernel/events/core.c  Peter Zijlstra          2016-02-24  12049  	 * and that will take care of freeing the event.
130056275ade73 kernel/events/core.c  Peter Zijlstra          2016-02-24  12050  	 */
130056275ade73 kernel/events/core.c  Peter Zijlstra          2016-02-24  12051  	if (!event_file)
048c852051d2bd kernel/perf_event.c   Tejun Heo               2010-05-01  12052  		free_event(event);
79c9ce57eb2d5f kernel/events/core.c  Peter Zijlstra          2016-04-26  12053  err_cred:
79c9ce57eb2d5f kernel/events/core.c  Peter Zijlstra          2016-04-26  12054  	if (task)
6914303824bb57 kernel/events/core.c  Bernd Edlinger          2020-03-20  12055  		mutex_unlock(&task->signal->exec_update_mutex);
1f4ee5038f0c1e kernel/events/core.c  Peter Zijlstra          2014-05-06  12056  err_task:
e7d0bc047548d7 kernel/perf_event.c   Peter Zijlstra          2010-10-14  12057  	if (task)
e7d0bc047548d7 kernel/perf_event.c   Peter Zijlstra          2010-10-14  12058  		put_task_struct(task);
89a1e18731959e kernel/perf_event.c   Peter Zijlstra          2010-09-07  12059  err_group_fd:
2903ff019b346a kernel/events/core.c  Al Viro                 2012-08-28  12060  	fdput(group);
ea635c64e00706 kernel/perf_event.c   Al Viro                 2010-05-26  12061  err_fd:
ea635c64e00706 kernel/perf_event.c   Al Viro                 2010-05-26  12062  	put_unused_fd(event_fd);
dc86cabe4b2424 kernel/perf_counter.c Ingo Molnar             2009-09-03  12063  	return err;
0793a61d4df8da kernel/perf_counter.c Thomas Gleixner         2008-12-04  12064  }
0793a61d4df8da kernel/perf_counter.c Thomas Gleixner         2008-12-04  12065  

:::::: The code at line 11620 was first introduced by commit
:::::: 0793a61d4df8daeac6492dbf8d2f3e5713caae5e performance counters: core code

:::::: TO: Thomas Gleixner <tglx@linutronix.de>
:::::: CC: Ingo Molnar <mingo@elte.hu>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

                 reply	other threads:[~2023-08-17 14:09 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202308172107.L893kjMS-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=golan.ben.ami@intel.com \
    --cc=gregory.greenman@intel.com \
    --cc=johannes.berg@intel.com \
    --cc=michael.golant@intel.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.