CC: [email protected]
BCC: [email protected]
CC: Linux Memory Management List <[email protected]>
TO: Yu Zhao <[email protected]>
CC: Andrew Morton <[email protected]>
CC: Linux Memory Management List <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git 
master
head:   40354149f4d738dc3492d9998e45b3f02950369a
commit: 32be05f0e1b84564fa4e5d1810191a198c47f87b [4227/4328] mm: multi-gen LRU: 
support page table walks
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
config: alpha-allmodconfig 
(https://download.01.org/0day-ci/archive/20220416/[email protected]/config)
compiler: alpha-linux-gcc (GCC) 11.2.0
reproduce:
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.4-dirty
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=32be05f0e1b84564fa4e5d1810191a198c47f87b
        git remote add linux-next 
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
        git fetch --no-tags linux-next master
        git checkout 32be05f0e1b84564fa4e5d1810191a198c47f87b
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 
CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=alpha 
SHELL=/bin/bash

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


sparse warnings: (new ones prefixed by >>)
   mm/vmscan.c:3184:40: sparse: sparse: incorrect type in argument 1 (different 
address spaces) @@     expected struct task_struct *p @@     got struct 
task_struct [noderef] __rcu *owner @@
   mm/vmscan.c:3184:40: sparse:     expected struct task_struct *p
   mm/vmscan.c:3184:40: sparse:     got struct task_struct [noderef] __rcu 
*owner
>> mm/vmscan.c:3990:29: sparse: sparse: cast to non-scalar
>> mm/vmscan.c:3990:29: sparse: sparse: cast from non-scalar
   mm/vmscan.c:1329:28: sparse: sparse: context imbalance in '__remove_mapping' 
- unexpected unlock
   mm/vmscan.c:2203:33: sparse: sparse: context imbalance in 
'folio_isolate_lru' - unexpected unlock
   mm/vmscan.c:2296:48: sparse: sparse: context imbalance in 
'move_pages_to_lru' - unexpected unlock
   mm/vmscan.c: note: in included file (through include/linux/rculist.h, 
include/linux/pid.h, include/linux/sched.h, ...):
   include/linux/rcupdate.h:725:9: sparse: sparse: context imbalance in 
'lru_gen_look_around' - different lock contexts for basic block
   mm/vmscan.c: note: in included file (through include/linux/swap.h):
   include/linux/memcontrol.h:1610:39: sparse: sparse: context imbalance in 
'check_move_unevictable_pages' - unexpected unlock

vim +3990 mm/vmscan.c

32be05f0e1b8456 Yu Zhao 2022-04-13  3975  
32be05f0e1b8456 Yu Zhao 2022-04-13  3976  static int walk_pud_range(p4d_t *p4d, 
unsigned long start, unsigned long end,
32be05f0e1b8456 Yu Zhao 2022-04-13  3977                          struct 
mm_walk *walk)
32be05f0e1b8456 Yu Zhao 2022-04-13  3978  {
32be05f0e1b8456 Yu Zhao 2022-04-13  3979        int i;
32be05f0e1b8456 Yu Zhao 2022-04-13  3980        pud_t *pud;
32be05f0e1b8456 Yu Zhao 2022-04-13  3981        unsigned long addr;
32be05f0e1b8456 Yu Zhao 2022-04-13  3982        unsigned long next;
32be05f0e1b8456 Yu Zhao 2022-04-13  3983        struct lru_gen_mm_walk *priv = 
walk->private;
32be05f0e1b8456 Yu Zhao 2022-04-13  3984  
32be05f0e1b8456 Yu Zhao 2022-04-13  3985        VM_BUG_ON(p4d_leaf(*p4d));
32be05f0e1b8456 Yu Zhao 2022-04-13  3986  
32be05f0e1b8456 Yu Zhao 2022-04-13  3987        pud = pud_offset(p4d, start & 
P4D_MASK);
32be05f0e1b8456 Yu Zhao 2022-04-13  3988  restart:
32be05f0e1b8456 Yu Zhao 2022-04-13  3989        for (i = pud_index(start), addr 
= start; addr != end; i++, addr = next) {
32be05f0e1b8456 Yu Zhao 2022-04-13 @3990                pud_t val = 
READ_ONCE(pud[i]);
32be05f0e1b8456 Yu Zhao 2022-04-13  3991  
32be05f0e1b8456 Yu Zhao 2022-04-13  3992                next = 
pud_addr_end(addr, end);
32be05f0e1b8456 Yu Zhao 2022-04-13  3993  
32be05f0e1b8456 Yu Zhao 2022-04-13  3994                if (!pud_present(val) 
|| WARN_ON_ONCE(pud_leaf(val)))
32be05f0e1b8456 Yu Zhao 2022-04-13  3995                        continue;
32be05f0e1b8456 Yu Zhao 2022-04-13  3996  
32be05f0e1b8456 Yu Zhao 2022-04-13  3997                walk_pmd_range(&val, 
addr, next, walk);
32be05f0e1b8456 Yu Zhao 2022-04-13  3998  
32be05f0e1b8456 Yu Zhao 2022-04-13  3999                if (priv->batched >= 
MAX_LRU_BATCH) {
32be05f0e1b8456 Yu Zhao 2022-04-13  4000                        end = (addr | 
~PUD_MASK) + 1;
32be05f0e1b8456 Yu Zhao 2022-04-13  4001                        goto done;
32be05f0e1b8456 Yu Zhao 2022-04-13  4002                }
32be05f0e1b8456 Yu Zhao 2022-04-13  4003        }
32be05f0e1b8456 Yu Zhao 2022-04-13  4004  
32be05f0e1b8456 Yu Zhao 2022-04-13  4005        if (i < PTRS_PER_PUD && 
get_next_vma(walk, P4D_MASK, PUD_SIZE, &start, &end))
32be05f0e1b8456 Yu Zhao 2022-04-13  4006                goto restart;
32be05f0e1b8456 Yu Zhao 2022-04-13  4007  
32be05f0e1b8456 Yu Zhao 2022-04-13  4008        end = round_up(end, P4D_SIZE);
32be05f0e1b8456 Yu Zhao 2022-04-13  4009  done:
32be05f0e1b8456 Yu Zhao 2022-04-13  4010        /* rounded-up boundaries can 
wrap to 0 */
32be05f0e1b8456 Yu Zhao 2022-04-13  4011        priv->next_addr = end && 
walk->vma ? max(end, walk->vma->vm_start) : 0;
32be05f0e1b8456 Yu Zhao 2022-04-13  4012  
32be05f0e1b8456 Yu Zhao 2022-04-13  4013        return -EAGAIN;
32be05f0e1b8456 Yu Zhao 2022-04-13  4014  }
32be05f0e1b8456 Yu Zhao 2022-04-13  4015  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to