All of lore.kernel.org
 help / color / mirror / Atom feed
* kernel/events/core.c:11620: warning: Function parameter or member 'flags' not described in 'ksys_perf_event_open'
@ 2023-08-17 14:00 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2023-08-17 14:00 UTC (permalink / raw)
  To: Gregory Greenman, Golan Ben Ami, Michael Golant, Johannes Berg
  Cc: oe-kbuild-all

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-08-17 14:09 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-17 14:00 kernel/events/core.c:11620: warning: Function parameter or member 'flags' not described in 'ksys_perf_event_open' kernel test robot

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.