All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Stephane Eranian <eranian@google.com>, linux-kernel@vger.kernel.org
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org,
	peterz@infradead.org, acme@redhat.com, jolsa@redhat.com,
	kim.phillips@amd.com, namhyung@kernel.org, irogers@google.com
Subject: Re: [PATCH v1 07/13] perf/core: add idle hooks
Date: Thu, 9 Sep 2021 19:02:36 +0800	[thread overview]
Message-ID: <202109091833.QRu8DKKQ-lkp@intel.com> (raw)
In-Reply-To: <20210909075700.4025355-8-eranian@google.com>

[-- Attachment #1: Type: text/plain, Size: 6114 bytes --]

Hi Stephane,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on tip/perf/core]
[also build test ERROR on next-20210909]
[cannot apply to tip/sched/core tip/x86/core v5.14]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Stephane-Eranian/perf-x86-amd-Add-AMD-Fam19h-Branch-Sampling-support/20210909-160050
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 4034fb207e302cc0b1f304084d379640c1fb1436
config: riscv-randconfig-r042-20210908 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 261cbe98c38f8c1ee1a482fe76511110e790f58a)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install riscv cross compiling tool for clang build
        # apt-get install binutils-riscv64-linux-gnu
        # https://github.com/0day-ci/linux/commit/35333fae36d4dee3e2225674fca8d745364482fa
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Stephane-Eranian/perf-x86-amd-Add-AMD-Fam19h-Branch-Sampling-support/20210909-160050
        git checkout 35333fae36d4dee3e2225674fca8d745364482fa
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

>> kernel/sched/idle.c:182:3: error: implicit declaration of function 'perf_lopwr_cb' [-Werror,-Wimplicit-function-declaration]
                   perf_lopwr_cb(false);
                   ^
   kernel/sched/idle.c:196:4: error: implicit declaration of function 'perf_lopwr_cb' [-Werror,-Wimplicit-function-declaration]
                           perf_lopwr_cb(true);
                           ^
   kernel/sched/idle.c:262:3: error: implicit declaration of function 'perf_lopwr_cb' [-Werror,-Wimplicit-function-declaration]
                   perf_lopwr_cb(false);
                   ^
   kernel/sched/idle.c:296:3: error: implicit declaration of function 'perf_lopwr_cb' [-Werror,-Wimplicit-function-declaration]
                   perf_lopwr_cb(true);
                   ^
   4 errors generated.


vim +/perf_lopwr_cb +182 kernel/sched/idle.c

   160	
   161	/**
   162	 * cpuidle_idle_call - the main idle function
   163	 *
   164	 * NOTE: no locks or semaphores should be used here
   165	 *
   166	 * On architectures that support TIF_POLLING_NRFLAG, is called with polling
   167	 * set, and it returns with polling set.  If it ever stops polling, it
   168	 * must clear the polling bit.
   169	 */
   170	static void cpuidle_idle_call(void)
   171	{
   172		struct cpuidle_device *dev = cpuidle_get_device();
   173		struct cpuidle_driver *drv = cpuidle_get_cpu_driver(dev);
   174		int next_state, entered_state;
   175	
   176		/*
   177		 * Check if the idle task must be rescheduled. If it is the
   178		 * case, exit the function after re-enabling the local irq.
   179		 */
   180		if (need_resched()) {
   181			local_irq_enable();
 > 182			perf_lopwr_cb(false);
   183			return;
   184		}
   185	
   186		/*
   187		 * The RCU framework needs to be told that we are entering an idle
   188		 * section, so no more rcu read side critical sections and one more
   189		 * step to the grace period
   190		 */
   191	
   192		if (cpuidle_not_available(drv, dev)) {
   193			tick_nohz_idle_stop_tick();
   194	
   195			if (!cpu_idle_force_poll)
   196				perf_lopwr_cb(true);
   197	
   198			default_idle_call();
   199	
   200			if (!cpu_idle_force_poll)
   201				perf_lopwr_cb(false);
   202	
   203			goto exit_idle;
   204		}
   205	
   206		/*
   207		 * Suspend-to-idle ("s2idle") is a system state in which all user space
   208		 * has been frozen, all I/O devices have been suspended and the only
   209		 * activity happens here and in interrupts (if any). In that case bypass
   210		 * the cpuidle governor and go straight for the deepest idle state
   211		 * available.  Possibly also suspend the local tick and the entire
   212		 * timekeeping to prevent timer interrupts from kicking us out of idle
   213		 * until a proper wakeup interrupt happens.
   214		 */
   215	
   216		if (idle_should_enter_s2idle() || dev->forced_idle_latency_limit_ns) {
   217			u64 max_latency_ns;
   218	
   219			if (idle_should_enter_s2idle()) {
   220	
   221				entered_state = call_cpuidle_s2idle(drv, dev);
   222				if (entered_state > 0)
   223					goto exit_idle;
   224	
   225				max_latency_ns = U64_MAX;
   226			} else {
   227				max_latency_ns = dev->forced_idle_latency_limit_ns;
   228			}
   229	
   230			tick_nohz_idle_stop_tick();
   231	
   232			next_state = cpuidle_find_deepest_state(drv, dev, max_latency_ns);
   233			call_cpuidle(drv, dev, next_state);
   234		} else {
   235			bool stop_tick = true;
   236	
   237			/*
   238			 * Ask the cpuidle framework to choose a convenient idle state.
   239			 */
   240			next_state = cpuidle_select(drv, dev, &stop_tick);
   241	
   242			if (stop_tick || tick_nohz_tick_stopped())
   243				tick_nohz_idle_stop_tick();
   244			else
   245				tick_nohz_idle_retain_tick();
   246	
   247			entered_state = call_cpuidle(drv, dev, next_state);
   248			/*
   249			 * Give the governor an opportunity to reflect on the outcome
   250			 */
   251			cpuidle_reflect(dev, entered_state);
   252		}
   253	
   254	exit_idle:
   255		__current_set_polling();
   256	
   257		/*
   258		 * It is up to the idle functions to reenable local interrupts
   259		 */
   260		if (WARN_ON_ONCE(irqs_disabled())) {
   261			local_irq_enable();
   262			perf_lopwr_cb(false);
   263		}
   264	}
   265	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 26209 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH v1 07/13] perf/core: add idle hooks
Date: Thu, 09 Sep 2021 19:02:36 +0800	[thread overview]
Message-ID: <202109091833.QRu8DKKQ-lkp@intel.com> (raw)
In-Reply-To: <20210909075700.4025355-8-eranian@google.com>

[-- Attachment #1: Type: text/plain, Size: 6275 bytes --]

Hi Stephane,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on tip/perf/core]
[also build test ERROR on next-20210909]
[cannot apply to tip/sched/core tip/x86/core v5.14]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Stephane-Eranian/perf-x86-amd-Add-AMD-Fam19h-Branch-Sampling-support/20210909-160050
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 4034fb207e302cc0b1f304084d379640c1fb1436
config: riscv-randconfig-r042-20210908 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 261cbe98c38f8c1ee1a482fe76511110e790f58a)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install riscv cross compiling tool for clang build
        # apt-get install binutils-riscv64-linux-gnu
        # https://github.com/0day-ci/linux/commit/35333fae36d4dee3e2225674fca8d745364482fa
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Stephane-Eranian/perf-x86-amd-Add-AMD-Fam19h-Branch-Sampling-support/20210909-160050
        git checkout 35333fae36d4dee3e2225674fca8d745364482fa
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

>> kernel/sched/idle.c:182:3: error: implicit declaration of function 'perf_lopwr_cb' [-Werror,-Wimplicit-function-declaration]
                   perf_lopwr_cb(false);
                   ^
   kernel/sched/idle.c:196:4: error: implicit declaration of function 'perf_lopwr_cb' [-Werror,-Wimplicit-function-declaration]
                           perf_lopwr_cb(true);
                           ^
   kernel/sched/idle.c:262:3: error: implicit declaration of function 'perf_lopwr_cb' [-Werror,-Wimplicit-function-declaration]
                   perf_lopwr_cb(false);
                   ^
   kernel/sched/idle.c:296:3: error: implicit declaration of function 'perf_lopwr_cb' [-Werror,-Wimplicit-function-declaration]
                   perf_lopwr_cb(true);
                   ^
   4 errors generated.


vim +/perf_lopwr_cb +182 kernel/sched/idle.c

   160	
   161	/**
   162	 * cpuidle_idle_call - the main idle function
   163	 *
   164	 * NOTE: no locks or semaphores should be used here
   165	 *
   166	 * On architectures that support TIF_POLLING_NRFLAG, is called with polling
   167	 * set, and it returns with polling set.  If it ever stops polling, it
   168	 * must clear the polling bit.
   169	 */
   170	static void cpuidle_idle_call(void)
   171	{
   172		struct cpuidle_device *dev = cpuidle_get_device();
   173		struct cpuidle_driver *drv = cpuidle_get_cpu_driver(dev);
   174		int next_state, entered_state;
   175	
   176		/*
   177		 * Check if the idle task must be rescheduled. If it is the
   178		 * case, exit the function after re-enabling the local irq.
   179		 */
   180		if (need_resched()) {
   181			local_irq_enable();
 > 182			perf_lopwr_cb(false);
   183			return;
   184		}
   185	
   186		/*
   187		 * The RCU framework needs to be told that we are entering an idle
   188		 * section, so no more rcu read side critical sections and one more
   189		 * step to the grace period
   190		 */
   191	
   192		if (cpuidle_not_available(drv, dev)) {
   193			tick_nohz_idle_stop_tick();
   194	
   195			if (!cpu_idle_force_poll)
   196				perf_lopwr_cb(true);
   197	
   198			default_idle_call();
   199	
   200			if (!cpu_idle_force_poll)
   201				perf_lopwr_cb(false);
   202	
   203			goto exit_idle;
   204		}
   205	
   206		/*
   207		 * Suspend-to-idle ("s2idle") is a system state in which all user space
   208		 * has been frozen, all I/O devices have been suspended and the only
   209		 * activity happens here and in interrupts (if any). In that case bypass
   210		 * the cpuidle governor and go straight for the deepest idle state
   211		 * available.  Possibly also suspend the local tick and the entire
   212		 * timekeeping to prevent timer interrupts from kicking us out of idle
   213		 * until a proper wakeup interrupt happens.
   214		 */
   215	
   216		if (idle_should_enter_s2idle() || dev->forced_idle_latency_limit_ns) {
   217			u64 max_latency_ns;
   218	
   219			if (idle_should_enter_s2idle()) {
   220	
   221				entered_state = call_cpuidle_s2idle(drv, dev);
   222				if (entered_state > 0)
   223					goto exit_idle;
   224	
   225				max_latency_ns = U64_MAX;
   226			} else {
   227				max_latency_ns = dev->forced_idle_latency_limit_ns;
   228			}
   229	
   230			tick_nohz_idle_stop_tick();
   231	
   232			next_state = cpuidle_find_deepest_state(drv, dev, max_latency_ns);
   233			call_cpuidle(drv, dev, next_state);
   234		} else {
   235			bool stop_tick = true;
   236	
   237			/*
   238			 * Ask the cpuidle framework to choose a convenient idle state.
   239			 */
   240			next_state = cpuidle_select(drv, dev, &stop_tick);
   241	
   242			if (stop_tick || tick_nohz_tick_stopped())
   243				tick_nohz_idle_stop_tick();
   244			else
   245				tick_nohz_idle_retain_tick();
   246	
   247			entered_state = call_cpuidle(drv, dev, next_state);
   248			/*
   249			 * Give the governor an opportunity to reflect on the outcome
   250			 */
   251			cpuidle_reflect(dev, entered_state);
   252		}
   253	
   254	exit_idle:
   255		__current_set_polling();
   256	
   257		/*
   258		 * It is up to the idle functions to reenable local interrupts
   259		 */
   260		if (WARN_ON_ONCE(irqs_disabled())) {
   261			local_irq_enable();
   262			perf_lopwr_cb(false);
   263		}
   264	}
   265	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 26209 bytes --]

  parent reply	other threads:[~2021-09-09 11:03 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-09  7:56 [PATCH v1 00/13] perf/x86/amd: Add AMD Fam19h Branch Sampling support Stephane Eranian
2021-09-09  7:56 ` [PATCH v1 01/13] perf/core: add union to struct perf_branch_entry Stephane Eranian
2021-09-09 19:03   ` Peter Zijlstra
2021-09-10 12:09     ` Michael Ellerman
2021-09-10 14:16       ` Michael Ellerman
2021-09-15  6:03         ` Stephane Eranian
2021-09-17  6:37           ` Madhavan Srinivasan
2021-09-17  6:48             ` Stephane Eranian
2021-09-17  7:05               ` Michael Ellerman
2021-09-17  7:39                 ` Stephane Eranian
2021-09-17 12:38                   ` Michael Ellerman
2021-09-17 16:42                     ` Stephane Eranian
2021-09-19 10:27                       ` Michael Ellerman
2021-09-09  7:56 ` [PATCH v1 02/13] x86/cpufeatures: add AMD Fam19h Branch Sampling feature Stephane Eranian
2021-09-09  7:56 ` [PATCH v1 03/13] perf/x86/amd: add AMD Fam19h Branch Sampling support Stephane Eranian
2021-09-09 10:44   ` kernel test robot
2021-09-09 10:44     ` kernel test robot
2021-09-09 15:33   ` kernel test robot
2021-09-09 15:33     ` kernel test robot
2021-09-09  7:56 ` [PATCH v1 04/13] perf/x86/amd: add branch-brs helper event for Fam19h BRS Stephane Eranian
2021-09-09  7:56 ` [PATCH v1 05/13] perf/x86/amd: enable branch sampling priv level filtering Stephane Eranian
2021-09-09  7:56 ` [PATCH v1 06/13] perf/x86/amd: add AMD branch sampling period adjustment Stephane Eranian
2021-09-09  7:56 ` [PATCH v1 07/13] perf/core: add idle hooks Stephane Eranian
2021-09-09  9:15   ` Peter Zijlstra
2021-09-09 10:42   ` kernel test robot
2021-09-09 10:42     ` kernel test robot
2021-09-09 11:02   ` kernel test robot [this message]
2021-09-09 11:02     ` kernel test robot
2021-09-09  7:56 ` [PATCH v1 08/13] perf/x86/core: " Stephane Eranian
2021-09-09  9:16   ` Peter Zijlstra
2021-09-09  7:56 ` [PATCH v1 09/13] perf/x86/amd: add idle hooks for branch sampling Stephane Eranian
2021-09-09  9:20   ` Peter Zijlstra
2021-09-09  7:56 ` [PATCH v1 10/13] perf tools: add branch-brs as a new event Stephane Eranian
2021-09-09  7:56 ` [PATCH v1 11/13] perf tools: improve IBS error handling Stephane Eranian
2021-09-13 19:34   ` Arnaldo Carvalho de Melo
2021-10-04 21:57     ` Kim Phillips
2021-10-04 23:44       ` Arnaldo Carvalho de Melo
2021-09-09  7:56 ` [PATCH v1 12/13] perf tools: improve error handling of AMD Branch Sampling Stephane Eranian
2021-10-04 21:57   ` Kim Phillips
2021-09-09  7:57 ` [PATCH v1 13/13] perf report: add addr_from/addr_to sort dimensions Stephane Eranian
2021-09-09  8:55 ` [PATCH v1 00/13] perf/x86/amd: Add AMD Fam19h Branch Sampling support Peter Zijlstra
2021-09-15  5:55   ` Stephane Eranian
2021-09-15  9:04     ` Peter Zijlstra
2021-10-28 18:30       ` Stephane Eranian
2021-09-27 20:17     ` Song Liu

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=202109091833.QRu8DKKQ-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=acme@redhat.com \
    --cc=eranian@google.com \
    --cc=irogers@google.com \
    --cc=jolsa@redhat.com \
    --cc=kbuild-all@lists.01.org \
    --cc=kim.phillips@amd.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=llvm@lists.linux.dev \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    /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.