Re: [PATCH] mm: don't defer struct page initialization for Xen pv guests

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

 



Hi Juergen,

I love your patch! Yet something to improve:

[auto build test ERROR on mmotm/master]
[also build test ERROR on v4.16-rc1 next-20180216]
[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/Juergen-Gross/mm-don-t-defer-struct-page-initialization-for-Xen-pv-guests/20180218-233657
base:   git://git.cmpxchg.org/linux-mmotm.git master
config: i386-randconfig-x010-201807 (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=i386 

All errors (new ones prefixed by >>):

   mm/page_alloc.c: In function 'update_defer_init':
>> mm/page_alloc.c:352:6: error: implicit declaration of function 'xen_pv_domain' [-Werror=implicit-function-declaration]
     if (xen_pv_domain())
         ^~~~~~~~~~~~~
   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 1 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:__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:__ffs
   Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:fls
   Cyclomatic Complexity 1 arch/x86/include/asm/arch_hweight.h:__arch_hweight32
   Cyclomatic Complexity 2 include/linux/bitops.h:hweight_long
   Cyclomatic Complexity 1 include/linux/bitops.h:fls_long
   Cyclomatic Complexity 1 include/linux/log2.h:__ilog2_u32
   Cyclomatic Complexity 3 include/linux/log2.h:is_power_of_2
   Cyclomatic Complexity 1 include/linux/log2.h:__roundup_pow_of_two
   Cyclomatic Complexity 1 include/linux/log2.h:__rounddown_pow_of_two
   Cyclomatic Complexity 1 include/linux/list.h:INIT_LIST_HEAD
   Cyclomatic Complexity 1 include/linux/list.h:__list_del
   Cyclomatic Complexity 1 include/linux/list.h:list_empty
   Cyclomatic Complexity 1 arch/x86/include/asm/current.h:get_current
   Cyclomatic Complexity 3 include/linux/string.h:memset
   Cyclomatic Complexity 1 arch/x86/include/asm/page_32.h:clear_page
   Cyclomatic Complexity 1 include/asm-generic/getorder.h:__get_order
   Cyclomatic Complexity 3 include/linux/bitmap.h:bitmap_weight
   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_add
   Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:atomic_sub_and_test
   Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:atomic_dec_and_test
   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 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_save
   Cyclomatic Complexity 1 include/linux/err.h:PTR_ERR
   Cyclomatic Complexity 1 arch/x86/include/asm/processor.h:rep_nop
   Cyclomatic Complexity 1 arch/x86/include/asm/processor.h:cpu_relax
   Cyclomatic Complexity 1 arch/x86/include/asm/processor.h:prefetchw
   Cyclomatic Complexity 1 arch/x86/include/asm/preempt.h:preempt_count
   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 1 include/linux/spinlock.h:spinlock_check
   Cyclomatic Complexity 1 include/linux/spinlock.h:spin_lock
   Cyclomatic Complexity 1 include/linux/spinlock.h:spin_unlock
   Cyclomatic Complexity 1 include/linux/spinlock.h:spin_unlock_irqrestore
   Cyclomatic Complexity 1 include/linux/nodemask.h:__nodemask_pr_numnodes
   Cyclomatic Complexity 2 include/linux/nodemask.h:__nodemask_pr_bits
   Cyclomatic Complexity 1 include/linux/nodemask.h:__nodes_weight
   Cyclomatic Complexity 1 include/linux/nodemask.h:node_state
   Cyclomatic Complexity 1 include/linux/nodemask.h:node_set_state
   Cyclomatic Complexity 1 include/linux/nodemask.h:num_node_state
   Cyclomatic Complexity 1 include/linux/mmzone.h:zone_end_pfn
   Cyclomatic Complexity 3 include/linux/mmzone.h:zone_spans_pfn
   Cyclomatic Complexity 1 include/linux/mmzone.h:zone_is_initialized
   Cyclomatic Complexity 1 include/linux/mmzone.h:node_lruvec
   Cyclomatic Complexity 1 include/linux/mmzone.h:pgdat_end_pfn
   Cyclomatic Complexity 1 include/linux/rcupdate.h:rcu_read_lock_sched_notrace
   Cyclomatic Complexity 1 include/linux/debugobjects.h:debug_check_no_obj_freed
   Cyclomatic Complexity 1 include/linux/workqueue.h:__init_work
   Cyclomatic Complexity 1 include/linux/memory_hotplug.h:pgdat_resize_init
   Cyclomatic Complexity 1 include/linux/memory_hotplug.h:zone_span_seqbegin
   Cyclomatic Complexity 1 include/linux/memory_hotplug.h:zone_span_seqretry
   Cyclomatic Complexity 1 include/linux/memory_hotplug.h:zone_seqlock_init
   Cyclomatic Complexity 1 include/linux/memory_hotplug.h:movable_node_is_enabled
   Cyclomatic Complexity 1 include/linux/mmzone.h:managed_zone
   Cyclomatic Complexity 1 include/linux/mmzone.h:populated_zone
   Cyclomatic Complexity 1 include/linux/mmzone.h:is_highmem_idx
   Cyclomatic Complexity 1 include/linux/mmzone.h:is_highmem
   Cyclomatic Complexity 1 include/linux/mmzone.h:zonelist_zone
   Cyclomatic Complexity 1 include/linux/mmzone.h:zonelist_zone_idx
   Cyclomatic Complexity 3 include/linux/mmzone.h:next_zones_zonelist
   Cyclomatic Complexity 1 include/linux/mmzone.h:first_zones_zonelist
   Cyclomatic Complexity 1 include/linux/mmzone.h:pfn_to_section_nr
   Cyclomatic Complexity 2 include/linux/mmzone.h:__nr_to_section
   Cyclomatic Complexity 1 include/linux/mmzone.h:__section_mem_map_addr
   Cyclomatic Complexity 3 include/linux/mmzone.h:valid_section
   Cyclomatic Complexity 1 include/linux/mmzone.h:__pfn_to_section
   Cyclomatic Complexity 2 include/linux/mmzone.h:pfn_valid
   Cyclomatic Complexity 1 arch/x86/include/asm/topology.h:numa_node_id
   Cyclomatic Complexity 1 include/linux/topology.h:numa_mem_id
   Cyclomatic Complexity 1 include/linux/gfp.h:gfp_zonelist
   Cyclomatic Complexity 1 include/linux/gfp.h:node_zonelist
   Cyclomatic Complexity 1 include/linux/gfp.h:arch_free_page
   Cyclomatic Complexity 1 include/linux/gfp.h:arch_alloc_page
   Cyclomatic Complexity 1 include/linux/gfp.h:pm_suspended_storage
   Cyclomatic Complexity 1 include/linux/page-flags.h:PageTail
   Cyclomatic Complexity 3 include/linux/page-flags.h:PageCompound
   Cyclomatic Complexity 1 include/linux/page-flags.h:PageLRU
   Cyclomatic Complexity 1 include/linux/page-flags.h:PageReserved
   Cyclomatic Complexity 1 include/linux/page-flags.h:SetPageReserved
   Cyclomatic Complexity 1 include/linux/page-flags.h:ClearPageReserved
   Cyclomatic Complexity 1 include/linux/page-flags.h:__ClearPageReserved
   Cyclomatic Complexity 1 include/linux/page-flags.h:PageHighMem
   Cyclomatic Complexity 1 include/linux/page-flags.h:PageHWPoison

vim +/xen_pv_domain +352 mm/page_alloc.c

   339	
   340	/*
   341	 * Returns false when the remaining initialisation should be deferred until
   342	 * later in the boot cycle when it can be parallelised.
   343	 */
   344	static inline bool update_defer_init(pg_data_t *pgdat,
   345					unsigned long pfn, unsigned long zone_end,
   346					unsigned long *nr_initialised)
   347	{
   348		/* Always populate low zones for address-constrained allocations */
   349		if (zone_end < pgdat_end_pfn(pgdat))
   350			return true;
   351		/* Xen PV domains need page structures early */
 > 352		if (xen_pv_domain())
   353			return true;
   354		(*nr_initialised)++;
   355		if ((*nr_initialised > pgdat->static_init_pgcnt) &&
   356		    (pfn & (PAGES_PER_SECTION - 1)) == 0) {
   357			pgdat->first_deferred_pfn = pfn;
   358			return false;
   359		}
   360	
   361		return true;
   362	}
   363	#else
   364	static inline void reset_deferred_meminit(pg_data_t *pgdat)
   365	{
   366	}
   367	

---
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 ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux