All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [RFC PATCH 4/4] thermal: cpufreq_cooling: Improve power estimation based on Active Stats framework
Date: Tue, 22 Jun 2021 20:49:23 +0800	[thread overview]
Message-ID: <202106222048.11o4rJaR-lkp@intel.com> (raw)
In-Reply-To: <20210622075925.16189-5-lukasz.luba@arm.com>

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

Hi Lukasz,

[FYI, it's a private test report for your RFC patch.]
[auto build test ERROR on pm/linux-next]
[also build test ERROR on linux/master linus/master v5.13-rc7 next-20210621]
[cannot apply to daniel.lezcano/clockevents/next]
[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/Lukasz-Luba/Introduce-Active-Stats-framework-with-CPU-performance-statistics/20210622-160145
base:   https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git linux-next
config: sh-allmodconfig (attached as .config)
compiler: sh4-linux-gcc (GCC) 9.3.0
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
        # https://github.com/0day-ci/linux/commit/0df5dd13ee23cf287d3045ee078cb727c184fece
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Lukasz-Luba/Introduce-Active-Stats-framework-with-CPU-performance-statistics/20210622-160145
        git checkout 0df5dd13ee23cf287d3045ee078cb727c184fece
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=sh 

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 >>):

   drivers/thermal/cpufreq_cooling.c: In function '__cpufreq_cooling_register':
>> drivers/thermal/cpufreq_cooling.c:720:2: error: implicit declaration of function 'clean_cpu_monitoring' [-Werror=implicit-function-declaration]
     720 |  clean_cpu_monitoring(cpufreq_cdev);
         |  ^~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors

Kconfig warnings: (for reference only)
   WARNING: unmet direct dependencies detected for SND_ATMEL_SOC_PDC
   Depends on SOUND && !UML && SND && SND_SOC && SND_ATMEL_SOC && HAS_DMA
   Selected by
   - SND_ATMEL_SOC_SSC && SOUND && !UML && SND && SND_SOC && SND_ATMEL_SOC
   - SND_ATMEL_SOC_SSC_PDC && SOUND && !UML && SND && SND_SOC && SND_ATMEL_SOC && ATMEL_SSC


vim +/clean_cpu_monitoring +720 drivers/thermal/cpufreq_cooling.c

   607	
   608	/**
   609	 * __cpufreq_cooling_register - helper function to create cpufreq cooling device
   610	 * @np: a valid struct device_node to the cooling device device tree node
   611	 * @policy: cpufreq policy
   612	 * Normally this should be same as cpufreq policy->related_cpus.
   613	 * @em: Energy Model of the cpufreq policy
   614	 *
   615	 * This interface function registers the cpufreq cooling device with the name
   616	 * "thermal-cpufreq-%x". This api can support multiple instances of cpufreq
   617	 * cooling devices. It also gives the opportunity to link the cooling device
   618	 * with a device tree node, in order to bind it via the thermal DT code.
   619	 *
   620	 * Return: a valid struct thermal_cooling_device pointer on success,
   621	 * on failure, it returns a corresponding ERR_PTR().
   622	 */
   623	static struct thermal_cooling_device *
   624	__cpufreq_cooling_register(struct device_node *np,
   625				struct cpufreq_policy *policy,
   626				struct em_perf_domain *em)
   627	{
   628		struct thermal_cooling_device *cdev;
   629		struct cpufreq_cooling_device *cpufreq_cdev;
   630		unsigned int i;
   631		struct device *dev;
   632		int ret;
   633		struct thermal_cooling_device_ops *cooling_ops;
   634		char *name;
   635	
   636		dev = get_cpu_device(policy->cpu);
   637		if (unlikely(!dev)) {
   638			pr_warn("No cpu device for cpu %d\n", policy->cpu);
   639			return ERR_PTR(-ENODEV);
   640		}
   641	
   642		if (IS_ERR_OR_NULL(policy)) {
   643			pr_err("%s: cpufreq policy isn't valid: %p\n", __func__, policy);
   644			return ERR_PTR(-EINVAL);
   645		}
   646	
   647		i = cpufreq_table_count_valid_entries(policy);
   648		if (!i) {
   649			pr_debug("%s: CPUFreq table not found or has no valid entries\n",
   650				 __func__);
   651			return ERR_PTR(-ENODEV);
   652		}
   653	
   654		cpufreq_cdev = kzalloc(sizeof(*cpufreq_cdev), GFP_KERNEL);
   655		if (!cpufreq_cdev)
   656			return ERR_PTR(-ENOMEM);
   657	
   658		cpufreq_cdev->policy = policy;
   659	
   660		ret = allocate_idle_time(cpufreq_cdev);
   661		if (ret) {
   662			cdev = ERR_PTR(ret);
   663			goto free_cdev;
   664		}
   665	
   666		/* max_level is an index, not a counter */
   667		cpufreq_cdev->max_level = i - 1;
   668	
   669		cooling_ops = &cpufreq_cooling_ops;
   670	
   671	#ifdef CONFIG_THERMAL_GOV_POWER_ALLOCATOR
   672		if (em_is_sane(cpufreq_cdev, em)) {
   673			cpufreq_cdev->em = em;
   674			cooling_ops->get_requested_power = cpufreq_get_requested_power;
   675			cooling_ops->state2power = cpufreq_state2power;
   676			cooling_ops->power2state = cpufreq_power2state;
   677	
   678			ret = setup_cpu_monitoring(cpufreq_cdev);
   679			if (ret) {
   680				pr_err("%s: failed to alloc active_stats\n", __func__);
   681				cdev = ERR_PTR(-EINVAL);
   682				goto free_cdev;
   683			}
   684		} else
   685	#endif
   686		if (policy->freq_table_sorted == CPUFREQ_TABLE_UNSORTED) {
   687			pr_err("%s: unsorted frequency tables are not supported\n",
   688			       __func__);
   689			cdev = ERR_PTR(-EINVAL);
   690			goto free_idle_time;
   691		}
   692	
   693		ret = freq_qos_add_request(&policy->constraints,
   694					   &cpufreq_cdev->qos_req, FREQ_QOS_MAX,
   695					   get_state_freq(cpufreq_cdev, 0));
   696		if (ret < 0) {
   697			pr_err("%s: Failed to add freq constraint (%d)\n", __func__,
   698			       ret);
   699			cdev = ERR_PTR(ret);
   700			goto remove_active_stats;
   701		}
   702	
   703		cdev = ERR_PTR(-ENOMEM);
   704		name = kasprintf(GFP_KERNEL, "cpufreq-%s", dev_name(dev));
   705		if (!name)
   706			goto remove_qos_req;
   707	
   708		cdev = thermal_of_cooling_device_register(np, name, cpufreq_cdev,
   709							  cooling_ops);
   710		kfree(name);
   711	
   712		if (IS_ERR(cdev))
   713			goto remove_qos_req;
   714	
   715		return cdev;
   716	
   717	remove_qos_req:
   718		freq_qos_remove_request(&cpufreq_cdev->qos_req);
   719	remove_active_stats:
 > 720		clean_cpu_monitoring(cpufreq_cdev);
   721	free_idle_time:
   722		free_idle_time(cpufreq_cdev);
   723	free_cdev:
   724		kfree(cpufreq_cdev);
   725		return cdev;
   726	}
   727	

---
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: 54796 bytes --]

      reply	other threads:[~2021-06-22 12:49 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-22  7:59 [RFC PATCH 0/4] Introduce Active Stats framework with CPU performance statistics Lukasz Luba
2021-06-22  7:59 ` [RFC PATCH 1/4] PM: Introduce Active Stats framework Lukasz Luba
2021-06-22  7:59 ` [RFC PATCH 2/4] cpuidle: Add Active Stats calls tracking idle entry/exit Lukasz Luba
2021-06-22 12:33   ` Rafael J. Wysocki
2021-06-22 13:58     ` Lukasz Luba
2021-06-22 14:44       ` Rafael J. Wysocki
2021-06-22 15:02         ` Lukasz Luba
2021-06-22  7:59 ` [RFC PATCH 3/4] cpufreq: Add Active Stats calls tracking frequency changes Lukasz Luba
2021-06-22  9:32   ` Viresh Kumar
2021-06-22 11:07     ` Lukasz Luba
2021-06-23  3:15       ` Viresh Kumar
2021-06-23  9:14         ` Lukasz Luba
2021-06-22 12:28   ` Rafael J. Wysocki
2021-06-22 13:42     ` Lukasz Luba
2021-06-22 13:51       ` Rafael J. Wysocki
2021-06-22 14:09         ` Lukasz Luba
2021-06-22 14:51           ` Rafael J. Wysocki
2021-06-22 14:59             ` Rafael J. Wysocki
2021-06-22 15:10               ` Lukasz Luba
2021-06-22 15:02             ` Lukasz Luba
2021-06-22  7:59 ` [RFC PATCH 4/4] thermal: cpufreq_cooling: Improve power estimation based on Active Stats framework Lukasz Luba
2021-06-22 12:49   ` kernel test robot [this message]

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=202106222048.11o4rJaR-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.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.