lkml.org 
[lkml]   [2018]   [Mar]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [Kernel-patch-test] [PATCH v1] kernel/trace:check the val against the available mem
    Hi Zhaoyang,

    Thank you for the patch! Yet something to improve:

    [auto build test ERROR on tip/perf/core]
    [also build test ERROR on v4.16-rc7 next-20180329]
    [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/Zhaoyang-Huang/kernel-trace-check-the-val-against-the-available-mem/20180330-140917
    config: x86_64-randconfig-x009-201812 (attached as .config)
    compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
    reproduce:
    # save the attached .config to linux build tree
    make ARCH=x86_64

    All errors (new ones prefixed by >>):

    kernel//trace/trace.c: In function 'get_available_mem':
    >> kernel//trace/trace.c:5992:16: error: implicit declaration of function 'global_page_state'; did you mean 'global_numa_state'? [-Werror=implicit-function-declaration]
    pages[lru] = global_page_state(NR_LRU_BASE + lru);
    ^~~~~~~~~~~~~~~~~
    global_numa_state
    In file included from include/asm-generic/bug.h:18:0,
    from arch/x86/include/asm/bug.h:83,
    from include/linux/bug.h:5,
    from include/linux/mmdebug.h:5,
    from include/linux/mm.h:9,
    from include/linux/ring_buffer.h:5,
    from kernel//trace/trace.c:14:
    include/linux/kernel.h:793:16: warning: comparison of distinct pointer types lacks a cast
    (void) (&min1 == &min2); \
    ^
    include/linux/kernel.h:802:2: note: in expansion of macro '__min'
    __min(typeof(x), typeof(y), \
    ^~~~~
    kernel//trace/trace.c:6004:3: note: in expansion of macro 'min'
    min(global_page_state(NR_SLAB_RECLAIMABLE) / 2, wmark_low);
    ^~~
    Cyclomatic Complexity 5 include/linux/compiler.h:__read_once_size
    Cyclomatic Complexity 5 include/linux/compiler.h:__write_once_size
    Cyclomatic Complexity 2 arch/x86/include/asm/bitops.h:set_bit
    Cyclomatic Complexity 2 arch/x86/include/asm/bitops.h:clear_bit
    Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:constant_test_bit
    Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:variable_test_bit
    Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:fls64
    Cyclomatic Complexity 1 arch/x86/include/asm/arch_hweight.h:__arch_hweight64
    Cyclomatic Complexity 2 include/linux/bitops.h:hweight_long
    Cyclomatic Complexity 1 include/linux/log2.h:__ilog2_u64
    Cyclomatic Complexity 1 include/linux/list.h:INIT_LIST_HEAD
    Cyclomatic Complexity 1 include/linux/list.h:__list_add_valid
    Cyclomatic Complexity 1 include/linux/list.h:__list_del_entry_valid
    Cyclomatic Complexity 2 include/linux/list.h:__list_add
    Cyclomatic Complexity 1 include/linux/list.h:list_add
    Cyclomatic Complexity 1 include/linux/list.h:__list_del
    Cyclomatic Complexity 2 include/linux/list.h:__list_del_entry
    Cyclomatic Complexity 1 include/linux/list.h:list_del
    Cyclomatic Complexity 1 arch/x86/include/asm/current.h:get_current
    Cyclomatic Complexity 1 include/asm-generic/getorder.h:__get_order
    Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:atomic_read
    Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:atomic_set
    Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:atomic_inc
    Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:atomic_dec
    Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:atomic_add_return
    Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:atomic_cmpxchg
    Cyclomatic Complexity 1 arch/x86/include/asm/atomic64_64.h:atomic64_read
    Cyclomatic Complexity 1 include/asm-generic/atomic-long.h:atomic_long_read
    Cyclomatic Complexity 1 include/linux/jump_label.h:static_key_count
    Cyclomatic Complexity 2 include/linux/jump_label.h:static_key_false
    Cyclomatic Complexity 1 include/linux/string.h:strnlen
    Cyclomatic Complexity 4 include/linux/string.h:strlen
    Cyclomatic Complexity 6 include/linux/string.h:strlcpy
    Cyclomatic Complexity 3 include/linux/string.h:memset
    Cyclomatic Complexity 4 include/linux/string.h:memcpy
    Cyclomatic Complexity 2 include/linux/string.h:strcpy
    Cyclomatic Complexity 3 include/linux/bitmap.h:bitmap_weight
    Cyclomatic Complexity 1 include/linux/cpumask.h:cpumask_check
    Cyclomatic Complexity 1 include/linux/cpumask.h:cpumask_set_cpu
    Cyclomatic Complexity 1 include/linux/cpumask.h:cpumask_test_cpu
    Cyclomatic Complexity 1 include/linux/cpumask.h:cpumask_weight
    Cyclomatic Complexity 1 include/linux/cpumask.h:cpumask_available
    Cyclomatic Complexity 1 arch/x86/include/asm/paravirt.h:arch_local_save_flags
    Cyclomatic Complexity 1 arch/x86/include/asm/paravirt.h:arch_local_irq_restore
    Cyclomatic Complexity 1 arch/x86/include/asm/paravirt.h:arch_local_irq_disable
    Cyclomatic Complexity 1 arch/x86/include/asm/paravirt.h:arch_local_irq_enable
    Cyclomatic Complexity 1 arch/x86/include/asm/paravirt.h:arch_local_irq_save
    Cyclomatic Complexity 1 include/linux/err.h:ERR_PTR
    Cyclomatic Complexity 1 include/linux/err.h:PTR_ERR
    Cyclomatic Complexity 1 arch/x86/include/asm/irqflags.h:arch_irqs_disabled_flags
    Cyclomatic Complexity 1 include/linux/thread_info.h:check_object_size
    Cyclomatic Complexity 5 include/linux/thread_info.h:check_copy_size
    Cyclomatic Complexity 1 arch/x86/include/asm/preempt.h:preempt_count
    Cyclomatic Complexity 1 arch/x86/include/asm/preempt.h:test_preempt_need_resched
    Cyclomatic Complexity 5 arch/x86/include/asm/preempt.h:__preempt_count_add
    Cyclomatic Complexity 1 arch/x86/include/asm/preempt.h:__preempt_count_dec_and_test
    Cyclomatic Complexity 1 arch/x86/include/asm/preempt.h:should_resched
    Cyclomatic Complexity 3 include/asm-generic/qspinlock.h:queued_spin_trylock
    Cyclomatic Complexity 2 include/asm-generic/qspinlock.h:queued_spin_lock
    Cyclomatic Complexity 1 include/linux/spinlock.h:spinlock_check
    Cyclomatic Complexity 1 include/linux/spinlock.h:spin_unlock_irqrestore
    Cyclomatic Complexity 1 include/linux/mutex.h:__mutex_owner
    Cyclomatic Complexity 1 include/linux/mutex.h:mutex_is_locked
    Cyclomatic Complexity 1 include/linux/topology.h:numa_node_id
    Cyclomatic Complexity 1 include/linux/topology.h:cpu_to_node
    Cyclomatic Complexity 1 include/linux/topology.h:numa_mem_id
    Cyclomatic Complexity 1 include/linux/dcache.h:d_inode
    Cyclomatic Complexity 1 include/linux/uidgid.h:__kuid_val
    Cyclomatic Complexity 1 include/linux/uidgid.h:from_kuid
    Cyclomatic Complexity 2 include/linux/uidgid.h:from_kuid_munged
    Cyclomatic Complexity 1 include/linux/fs.h:file_inode
    Cyclomatic Complexity 1 include/linux/mm.h:lowmem_page_address
    Cyclomatic Complexity 1 include/linux/seq_file.h:seq_user_ns
    Cyclomatic Complexity 1 arch/x86/include/asm/smap.h:clac
    Cyclomatic Complexity 1 arch/x86/include/asm/smap.h:stac
    Cyclomatic Complexity 1 arch/x86/include/asm/uaccess_64.h:copy_user_generic
    Cyclomatic Complexity 10 arch/x86/include/asm/uaccess_64.h:raw_copy_from_user
    Cyclomatic Complexity 1 include/linux/uaccess.h:__copy_from_user_inatomic
    Cyclomatic Complexity 2 include/linux/uaccess.h:copy_from_user
    Cyclomatic Complexity 2 include/linux/uaccess.h:copy_to_user
    Cyclomatic Complexity 28 include/linux/slab.h:kmalloc_index

    vim +5992 kernel//trace/trace.c

    5977
    5978 static long get_available_mem(void)
    5979 {
    5980 struct sysinfo i;
    5981 long available;
    5982 unsigned long pagecache;
    5983 unsigned long wmark_low = 0;
    5984 unsigned long pages[NR_LRU_LISTS];
    5985 struct zone *zone;
    5986 int lru;
    5987
    5988 si_meminfo(&i);
    5989 si_swapinfo(&i);
    5990
    5991 for (lru = LRU_BASE; lru < NR_LRU_LISTS; lru++)
    > 5992 pages[lru] = global_page_state(NR_LRU_BASE + lru);
    5993
    5994 for_each_zone(zone)
    5995 wmark_low += zone->watermark[WMARK_LOW];
    5996
    5997 available = i.freeram - wmark_low;
    5998
    5999 pagecache = pages[LRU_ACTIVE_FILE] + pages[LRU_INACTIVE_FILE];
    6000 pagecache -= min(pagecache / 2, wmark_low);
    6001 available += pagecache;
    6002
    6003 available += global_page_state(NR_SLAB_RECLAIMABLE) -
    6004 min(global_page_state(NR_SLAB_RECLAIMABLE) / 2, wmark_low);
    6005
    6006 if (available < 0)
    6007 available = 0;
    6008 return available;
    6009 }
    6010

    ---
    0-DAY kernel test infrastructure Open Source Technology Center
    https://lists.01.org/pipermail/kbuild-all Intel Corporation
    [unhandled content-type:application/gzip]
    \
     
     \ /
      Last update: 2018-03-30 08:56    [W:3.115 / U:2.672 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site