* [mmotm:master 113/211] include/linux/migrate.h:128:32: warning: left shift count >= width of type
@ 2017-03-17 1:21 kbuild test robot
0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2017-03-17 1:21 UTC (permalink / raw)
To: Jérôme Glisse
Cc: kbuild-all, Johannes Weiner, Evgeny Baskakov, John Hubbard,
Mark Hairgrove, Sherry Cheung, Subhash Gutti, Reza Arbab,
Andrew Morton, Linux Memory Management List
[-- Attachment #1: Type: text/plain, Size: 15095 bytes --]
tree: git://git.cmpxchg.org/linux-mmotm.git master
head: 8276ddb3c638602509386f1a05f75326dbf5ce09
commit: 50973108c6444ebacff41fbdb553c156dd144c33 [113/211] mm/migrate: new memory migration helper for use with device memory
config: i386-randconfig-s0-201711 (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
git checkout 50973108c6444ebacff41fbdb553c156dd144c33
# save the attached .config to linux build tree
make ARCH=i386
All warnings (new ones prefixed by >>):
In file included from fs/btrfs/disk-io.c:29:0:
include/linux/migrate.h: In function 'migrate_pfn_to_page':
>> include/linux/migrate.h:128:32: warning: left shift count >= width of type [-Wshift-count-overflow]
#define MIGRATE_PFN_VALID (1UL << (BITS_PER_LONG_LONG - 1))
^
>> include/linux/migrate.h:137:15: note: in expansion of macro 'MIGRATE_PFN_VALID'
if (!(mpfn & MIGRATE_PFN_VALID))
^~~~~~~~~~~~~~~~~
In file included from arch/x86/include/asm/page.h:75:0,
from arch/x86/include/asm/thread_info.h:11,
from include/linux/thread_info.h:25,
from arch/x86/include/asm/preempt.h:6,
from include/linux/preempt.h:80,
from include/linux/spinlock.h:50,
from include/linux/wait.h:8,
from include/linux/fs.h:5,
from fs/btrfs/disk-io.c:19:
include/linux/migrate.h:133:32: warning: left shift count >= width of type [-Wshift-count-overflow]
#define MIGRATE_PFN_MASK ((1UL << (BITS_PER_LONG_LONG - PAGE_SHIFT)) - 1)
^
include/asm-generic/memory_model.h:32:41: note: in definition of macro '__pfn_to_page'
#define __pfn_to_page(pfn) (mem_map + ((pfn) - ARCH_PFN_OFFSET))
^~~
>> include/linux/migrate.h:139:28: note: in expansion of macro 'MIGRATE_PFN_MASK'
return pfn_to_page(mpfn & MIGRATE_PFN_MASK);
^~~~~~~~~~~~~~~~
In file included from fs/btrfs/disk-io.c:29:0:
include/linux/migrate.h: In function 'migrate_pfn_size':
include/linux/migrate.h:130:31: warning: left shift count >= width of type [-Wshift-count-overflow]
#define MIGRATE_PFN_HUGE (1UL << (BITS_PER_LONG_LONG - 3))
^
>> include/linux/migrate.h:144:16: note: in expansion of macro 'MIGRATE_PFN_HUGE'
return mpfn & MIGRATE_PFN_HUGE ? PMD_SIZE : PAGE_SIZE;
^~~~~~~~~~~~~~~~
--
In file included from mm/migrate.c:15:0:
include/linux/migrate.h: In function 'migrate_pfn_to_page':
>> include/linux/migrate.h:128:32: warning: left shift count >= width of type [-Wshift-count-overflow]
#define MIGRATE_PFN_VALID (1UL << (BITS_PER_LONG_LONG - 1))
^
>> include/linux/migrate.h:137:15: note: in expansion of macro 'MIGRATE_PFN_VALID'
if (!(mpfn & MIGRATE_PFN_VALID))
^~~~~~~~~~~~~~~~~
In file included from arch/x86/include/asm/page.h:75:0,
from arch/x86/include/asm/thread_info.h:11,
from include/linux/thread_info.h:25,
from arch/x86/include/asm/preempt.h:6,
from include/linux/preempt.h:80,
from include/linux/spinlock.h:50,
from include/linux/mmzone.h:7,
from include/linux/gfp.h:5,
from include/linux/mm.h:9,
from include/linux/migrate.h:4,
from mm/migrate.c:15:
include/linux/migrate.h:133:32: warning: left shift count >= width of type [-Wshift-count-overflow]
#define MIGRATE_PFN_MASK ((1UL << (BITS_PER_LONG_LONG - PAGE_SHIFT)) - 1)
^
include/asm-generic/memory_model.h:32:41: note: in definition of macro '__pfn_to_page'
#define __pfn_to_page(pfn) (mem_map + ((pfn) - ARCH_PFN_OFFSET))
^~~
>> include/linux/migrate.h:139:28: note: in expansion of macro 'MIGRATE_PFN_MASK'
return pfn_to_page(mpfn & MIGRATE_PFN_MASK);
^~~~~~~~~~~~~~~~
In file included from mm/migrate.c:15:0:
include/linux/migrate.h: In function 'migrate_pfn_size':
include/linux/migrate.h:130:31: warning: left shift count >= width of type [-Wshift-count-overflow]
#define MIGRATE_PFN_HUGE (1UL << (BITS_PER_LONG_LONG - 3))
^
>> include/linux/migrate.h:144:16: note: in expansion of macro 'MIGRATE_PFN_HUGE'
return mpfn & MIGRATE_PFN_HUGE ? PMD_SIZE : PAGE_SIZE;
^~~~~~~~~~~~~~~~
In file included from mm/migrate.c:15:0:
mm/migrate.c: In function 'migrate_vma_collect_hole':
include/linux/migrate.h:130:31: warning: left shift count >= width of type [-Wshift-count-overflow]
#define MIGRATE_PFN_HUGE (1UL << (BITS_PER_LONG_LONG - 3))
^
>> mm/migrate.c:2102:38: note: in expansion of macro 'MIGRATE_PFN_HUGE'
migrate->src[migrate->npages++] = MIGRATE_PFN_HUGE;
^~~~~~~~~~~~~~~~
mm/migrate.c: In function 'migrate_vma_collect_pmd':
>> include/linux/migrate.h:128:32: warning: left shift count >= width of type [-Wshift-count-overflow]
#define MIGRATE_PFN_VALID (1UL << (BITS_PER_LONG_LONG - 1))
^
>> mm/migrate.c:2168:11: note: in expansion of macro 'MIGRATE_PFN_VALID'
flags = MIGRATE_PFN_VALID | MIGRATE_PFN_MIGRATE;
^~~~~~~~~~~~~~~~~
include/linux/migrate.h:129:34: warning: left shift count >= width of type [-Wshift-count-overflow]
#define MIGRATE_PFN_MIGRATE (1UL << (BITS_PER_LONG_LONG - 2))
^
>> mm/migrate.c:2168:31: note: in expansion of macro 'MIGRATE_PFN_MIGRATE'
flags = MIGRATE_PFN_VALID | MIGRATE_PFN_MIGRATE;
^~~~~~~~~~~~~~~~~~~
include/linux/migrate.h:132:32: warning: left shift count >= width of type [-Wshift-count-overflow]
#define MIGRATE_PFN_WRITE (1UL << (BITS_PER_LONG_LONG - 5))
^
>> mm/migrate.c:2169:29: note: in expansion of macro 'MIGRATE_PFN_WRITE'
flags |= pte_write(pte) ? MIGRATE_PFN_WRITE : 0;
^~~~~~~~~~~~~~~~~
mm/migrate.c: In function 'migrate_vma_prepare':
include/linux/migrate.h:131:33: warning: left shift count >= width of type [-Wshift-count-overflow]
#define MIGRATE_PFN_LOCKED (1UL << (BITS_PER_LONG_LONG - 4))
^
>> mm/migrate.c:2266:22: note: in expansion of macro 'MIGRATE_PFN_LOCKED'
migrate->src[i] |= MIGRATE_PFN_LOCKED;
^~~~~~~~~~~~~~~~~~
mm/migrate.c: In function 'migrate_vma_unmap':
include/linux/migrate.h:129:34: warning: left shift count >= width of type [-Wshift-count-overflow]
#define MIGRATE_PFN_MIGRATE (1UL << (BITS_PER_LONG_LONG - 2))
^
mm/migrate.c:2317:36: note: in expansion of macro 'MIGRATE_PFN_MIGRATE'
if (!page || !(migrate->src[i] & MIGRATE_PFN_MIGRATE))
^~~~~~~~~~~~~~~~~~~
include/linux/migrate.h:129:34: warning: left shift count >= width of type [-Wshift-count-overflow]
#define MIGRATE_PFN_MIGRATE (1UL << (BITS_PER_LONG_LONG - 2))
^
mm/migrate.c:2322:24: note: in expansion of macro 'MIGRATE_PFN_MIGRATE'
migrate->src[i] &= ~MIGRATE_PFN_MIGRATE;
^~~~~~~~~~~~~~~~~~~
include/linux/migrate.h:129:34: warning: left shift count >= width of type [-Wshift-count-overflow]
#define MIGRATE_PFN_MIGRATE (1UL << (BITS_PER_LONG_LONG - 2))
^
mm/migrate.c:2332:35: note: in expansion of macro 'MIGRATE_PFN_MIGRATE'
if (!page || (migrate->src[i] & MIGRATE_PFN_MIGRATE))
^~~~~~~~~~~~~~~~~~~
mm/migrate.c: In function 'migrate_vma_pages':
include/linux/migrate.h:129:34: warning: left shift count >= width of type [-Wshift-count-overflow]
#define MIGRATE_PFN_MIGRATE (1UL << (BITS_PER_LONG_LONG - 2))
^
mm/migrate.c:2368:27: note: in expansion of macro 'MIGRATE_PFN_MIGRATE'
if (!(migrate->src[i] & MIGRATE_PFN_MIGRATE))
^~~~~~~~~~~~~~~~~~~
include/linux/migrate.h:129:34: warning: left shift count >= width of type [-Wshift-count-overflow]
#define MIGRATE_PFN_MIGRATE (1UL << (BITS_PER_LONG_LONG - 2))
^
mm/migrate.c:2375:24: note: in expansion of macro 'MIGRATE_PFN_MIGRATE'
migrate->src[i] &= ~MIGRATE_PFN_MIGRATE;
^~~~~~~~~~~~~~~~~~~
mm/migrate.c: In function 'migrate_vma_finalize':
include/linux/migrate.h:129:34: warning: left shift count >= width of type [-Wshift-count-overflow]
#define MIGRATE_PFN_MIGRATE (1UL << (BITS_PER_LONG_LONG - 2))
^
mm/migrate.c:2402:27: note: in expansion of macro 'MIGRATE_PFN_MIGRATE'
if (!(migrate->src[i] & MIGRATE_PFN_MIGRATE) || !newpage) {
^~~~~~~~~~~~~~~~~~~
vim +128 include/linux/migrate.h
1 #ifndef _LINUX_MIGRATE_H
2 #define _LINUX_MIGRATE_H
3
> 4 #include <linux/mm.h>
5 #include <linux/mempolicy.h>
6 #include <linux/migrate_mode.h>
7
8 typedef struct page *new_page_t(struct page *page, unsigned long private,
9 int **reason);
10 typedef void free_page_t(struct page *page, unsigned long private);
11
12 /*
13 * Return values from addresss_space_operations.migratepage():
14 * - negative errno on page migration failure;
15 * - zero on page migration success;
16 */
17 #define MIGRATEPAGE_SUCCESS 0
18
19 enum migrate_reason {
20 MR_COMPACTION,
21 MR_MEMORY_FAILURE,
22 MR_MEMORY_HOTPLUG,
23 MR_SYSCALL, /* also applies to cpusets */
24 MR_MEMPOLICY_MBIND,
25 MR_NUMA_MISPLACED,
26 MR_CMA,
27 MR_TYPES
28 };
29
30 /* In mm/debug.c; also keep sync with include/trace/events/migrate.h */
31 extern char *migrate_reason_names[MR_TYPES];
32
33 #ifdef CONFIG_MIGRATION
34
35 extern void putback_movable_pages(struct list_head *l);
36 extern int migrate_page(struct address_space *mapping,
37 struct page *newpage,
38 struct page *page,
39 enum migrate_mode,
40 bool copy);
41 extern int migrate_pages(struct list_head *l, new_page_t new, free_page_t free,
42 unsigned long private, enum migrate_mode mode, int reason);
43 extern int isolate_movable_page(struct page *page, isolate_mode_t mode);
44 extern void putback_movable_page(struct page *page);
45
46 extern int migrate_prep(void);
47 extern int migrate_prep_local(void);
48 extern void migrate_page_copy(struct page *newpage, struct page *page);
49 extern int migrate_huge_page_move_mapping(struct address_space *mapping,
50 struct page *newpage, struct page *page);
51 extern int migrate_page_move_mapping(struct address_space *mapping,
52 struct page *newpage, struct page *page,
53 struct buffer_head *head, enum migrate_mode mode,
54 int extra_count);
55 #else
56
57 static inline void putback_movable_pages(struct list_head *l) {}
58 static inline int migrate_pages(struct list_head *l, new_page_t new,
59 free_page_t free, unsigned long private, enum migrate_mode mode,
60 int reason)
61 { return -ENOSYS; }
62 static inline int isolate_movable_page(struct page *page, isolate_mode_t mode)
63 { return -EBUSY; }
64
65 static inline int migrate_prep(void) { return -ENOSYS; }
66 static inline int migrate_prep_local(void) { return -ENOSYS; }
67
68 static inline void migrate_page_copy(struct page *newpage,
69 struct page *page) {}
70
71 static inline int migrate_huge_page_move_mapping(struct address_space *mapping,
72 struct page *newpage, struct page *page)
73 {
74 return -ENOSYS;
75 }
76
77 #endif /* CONFIG_MIGRATION */
78
79 #ifdef CONFIG_COMPACTION
80 extern int PageMovable(struct page *page);
81 extern void __SetPageMovable(struct page *page, struct address_space *mapping);
82 extern void __ClearPageMovable(struct page *page);
83 #else
84 static inline int PageMovable(struct page *page) { return 0; };
85 static inline void __SetPageMovable(struct page *page,
86 struct address_space *mapping)
87 {
88 }
89 static inline void __ClearPageMovable(struct page *page)
90 {
91 }
92 #endif
93
94 #ifdef CONFIG_NUMA_BALANCING
95 extern bool pmd_trans_migrating(pmd_t pmd);
96 extern int migrate_misplaced_page(struct page *page,
97 struct vm_area_struct *vma, int node);
98 #else
99 static inline bool pmd_trans_migrating(pmd_t pmd)
100 {
101 return false;
102 }
103 static inline int migrate_misplaced_page(struct page *page,
104 struct vm_area_struct *vma, int node)
105 {
106 return -EAGAIN; /* can't migrate now */
107 }
108 #endif /* CONFIG_NUMA_BALANCING */
109
110 #if defined(CONFIG_NUMA_BALANCING) && defined(CONFIG_TRANSPARENT_HUGEPAGE)
111 extern int migrate_misplaced_transhuge_page(struct mm_struct *mm,
112 struct vm_area_struct *vma,
113 pmd_t *pmd, pmd_t entry,
114 unsigned long address,
115 struct page *page, int node);
116 #else
117 static inline int migrate_misplaced_transhuge_page(struct mm_struct *mm,
118 struct vm_area_struct *vma,
119 pmd_t *pmd, pmd_t entry,
120 unsigned long address,
121 struct page *page, int node)
122 {
123 return -EAGAIN;
124 }
125 #endif /* CONFIG_NUMA_BALANCING && CONFIG_TRANSPARENT_HUGEPAGE*/
126
127
> 128 #define MIGRATE_PFN_VALID (1UL << (BITS_PER_LONG_LONG - 1))
129 #define MIGRATE_PFN_MIGRATE (1UL << (BITS_PER_LONG_LONG - 2))
130 #define MIGRATE_PFN_HUGE (1UL << (BITS_PER_LONG_LONG - 3))
131 #define MIGRATE_PFN_LOCKED (1UL << (BITS_PER_LONG_LONG - 4))
132 #define MIGRATE_PFN_WRITE (1UL << (BITS_PER_LONG_LONG - 5))
133 #define MIGRATE_PFN_MASK ((1UL << (BITS_PER_LONG_LONG - PAGE_SHIFT)) - 1)
134
135 static inline struct page *migrate_pfn_to_page(unsigned long mpfn)
136 {
> 137 if (!(mpfn & MIGRATE_PFN_VALID))
138 return NULL;
> 139 return pfn_to_page(mpfn & MIGRATE_PFN_MASK);
140 }
141
142 static inline unsigned long migrate_pfn_size(unsigned long mpfn)
143 {
> 144 return mpfn & MIGRATE_PFN_HUGE ? PMD_SIZE : PAGE_SIZE;
145 }
146
147 /*
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 27258 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2017-03-17 1:21 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-17 1:21 [mmotm:master 113/211] include/linux/migrate.h:128:32: warning: left shift count >= width of type kbuild test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox