Re: [PATCH v6 4/6] lib/dlock-list: Make sibling CPUs share the same linked list

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Waiman,

[auto build test ERROR on linus/master]
[also build test ERROR on v4.14-rc3]
[cannot apply to next-20170929]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Waiman-Long/vfs-Use-dlock-list-for-SB-s-s_inodes-list/20171007-210724
config: i386-tinyconfig (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All error/warnings (new ones prefixed by >>):

   lib/dlock-list.c: In function 'cpu2idx_init':
>> lib/dlock-list.c:75:16: error: assignment to expression with array type
      sibling_mask = topology_sibling_cpumask(cpu);
                   ^
>> lib/dlock-list.c:76:7: warning: the address of 'sibling_mask' will always evaluate as 'true' [-Waddress]
      if (sibling_mask) {
          ^~~~~~~~~~~~

vim +75 lib/dlock-list.c

    44	
    45	/*
    46	 * Initialize cpu2idx mapping table & nr_dlock_lists.
    47	 *
    48	 * It is possible that a dlock-list can be allocated before the cpu2idx is
    49	 * initialized. In this case, all the cpus are mapped to the first entry
    50	 * before initialization.
    51	 *
    52	 * All the sibling CPUs of a sibling group will map to the same dlock list so
    53	 * as to reduce the number of dlock lists to be maintained while minimizing
    54	 * cacheline contention.
    55	 *
    56	 * As the sibling masks are set up in the core initcall phase, this function
    57	 * has to be done in the postcore phase to get the right data.
    58	 */
    59	static int __init cpu2idx_init(void)
    60	{
    61		int idx, cpu;
    62		cpumask_var_t sibling_mask;
    63		static struct cpumask mask __initdata;
    64	
    65		cpumask_clear(&mask);
    66		idx = 0;
    67		for_each_possible_cpu(cpu) {
    68			int scpu;
    69	
    70			if (cpumask_test_cpu(cpu, &mask))
    71				continue;
    72			per_cpu(cpu2idx, cpu) = idx;
    73			cpumask_set_cpu(cpu, &mask);
    74	
  > 75			sibling_mask = topology_sibling_cpumask(cpu);
  > 76			if (sibling_mask) {
    77				for_each_cpu(scpu, sibling_mask) {
    78					per_cpu(cpu2idx, scpu) = idx;
    79					cpumask_set_cpu(scpu, &mask);
    80				}
    81			}
    82			idx++;
    83		}
    84	
    85		/*
    86		 * nr_dlock_lists can only be set after cpu2idx is properly
    87		 * initialized.
    88		 */
    89		smp_mb();
    90		nr_dlock_lists = idx;
    91		pr_info("dlock-list: %d head entries per dlock list.\n",
    92			nr_dlock_lists);
    93		return 0;
    94	}
    95	postcore_initcall(cpu2idx_init);
    96	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux