[PATCH v5 06/17] sched/debug: Output SD flag names rather than their values

kernel test robot lkp at intel.com
Wed Aug 12 12:35:18 EDT 2020


Hi Valentin,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on tip/sched/core]
[also build test WARNING on tip/auto-latest linux/master linus/master v5.8 next-20200812]
[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/Valentin-Schneider/sched-Instrument-sched-domain-flags/20200812-205638
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 949bcb8135a96a6923e676646bd29cbe69e8350f
config: i386-randconfig-s001-20200811 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.2-168-g9554805c-dirty
        # save the attached .config to linux build tree
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=i386 

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


sparse warnings: (new ones prefixed by >>)

   kernel/sched/debug.c:327:9: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct sched_domain *[assigned] sd @@     got struct sched_domain [noderef] __rcu *parent @@
   kernel/sched/debug.c:327:9: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/debug.c:327:9: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/debug.c:334:9: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct sched_domain *[assigned] sd @@     got struct sched_domain [noderef] __rcu *parent @@
   kernel/sched/debug.c:334:9: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/debug.c:334:9: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/debug.c:486:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/debug.c:486:22: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/debug.c:486:22: sparse:    struct task_struct *
   kernel/sched/debug.c:694:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct task_struct *tsk @@     got struct task_struct [noderef] __rcu *curr @@
   kernel/sched/debug.c:694:9: sparse:     expected struct task_struct *tsk
   kernel/sched/debug.c:694:9: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/debug.c:694:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct task_struct *tsk @@     got struct task_struct [noderef] __rcu *curr @@
   kernel/sched/debug.c:694:9: sparse:     expected struct task_struct *tsk
   kernel/sched/debug.c:694:9: sparse:     got struct task_struct [noderef] __rcu *curr
>> kernel/sched/debug.c:279:17: sparse: sparse: non size-preserving pointer to integer cast
>> kernel/sched/debug.c:279:17: sparse: sparse: non size-preserving integer to pointer cast

vim +279 kernel/sched/debug.c

   247	
   248	static int sd_ctl_doflags(struct ctl_table *table, int write,
   249			      void *buffer, size_t *lenp, loff_t *ppos)
   250	{
   251		unsigned long flags = *(unsigned long *)table->data;
   252		size_t data_size = 0;
   253		size_t len = 0;
   254		char *tmp;
   255		int idx;
   256	
   257		if (write)
   258			return 0;
   259	
   260		for_each_set_bit(idx, &flags, __SD_FLAG_CNT) {
   261			char *name = sd_flag_debug[idx].name;
   262	
   263			/* Name plus whitespace */
   264			data_size += strlen(name) + 1;
   265		}
   266	
   267		if (*ppos > data_size) {
   268			*lenp = 0;
   269			return 0;
   270		}
   271	
   272		tmp = kcalloc(data_size + 1, sizeof(tmp), GFP_KERNEL);
   273		for_each_set_bit(idx, &flags, __SD_FLAG_CNT) {
   274			char *name = sd_flag_debug[idx].name;
   275	
   276			len += snprintf(tmp + len, strlen(name) + 2, "%s ", name);
   277		}
   278	
 > 279		tmp += *ppos;
   280		len -= *ppos;
   281	
   282		if (len > *lenp)
   283			len = *lenp;
   284		if (len)
   285			memcpy(buffer, tmp, len);
   286		if (len < *lenp) {
   287			((char *)buffer)[len] = '\n';
   288			len++;
   289		}
   290	
   291		*lenp = len;
   292		*ppos += len;
   293	
   294		kfree(tmp);
   295	
   296		return 0;
   297	}
   298	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 35386 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20200813/900776ec/attachment-0001.gz>


More information about the linux-arm-kernel mailing list