2017-08-09 21:47:57

by Fengguang Wu

[permalink] [raw]
Subject: [rcu:mmap_sem.2017.08.09a 6/16] mm/internal.h:59:26: error: 'struct vm_fault' has no member named 'sequence'

tree: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git mmap_sem.2017.08.09a
head: 39782fbd9252a3ace9b49a55f4dd2a41a6ced31f
commit: 1b801585f6b03276db9722dc725a50ca11439467 [6/16] mm: RCU free VMAs
config: i386-tinyconfig (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
git checkout 1b801585f6b03276db9722dc725a50ca11439467
# save the attached .config to linux build tree
make ARCH=i386

Note: the rcu/mmap_sem.2017.08.09a HEAD 39782fbd9252a3ace9b49a55f4dd2a41a6ced31f builds fine.
It only hurts bisectibility.

All errors (new ones prefixed by >>):

In file included from mm/filemap.c:39:0:
mm/internal.h: In function 'vma_has_changed':
>> mm/internal.h:59:26: error: 'struct vm_fault' has no member named 'sequence'
return ret || seq != vmf->sequence;
^~
--
In file included from lib/vsprintf.c:40:0:
lib/../mm/internal.h: In function 'vma_has_changed':
>> lib/../mm/internal.h:59:26: error: 'struct vm_fault' has no member named 'sequence'
return ret || seq != vmf->sequence;
^~

vim +59 mm/internal.h

44
45 extern struct vm_area_struct *find_vma_srcu(struct mm_struct *mm,
46 unsigned long addr);
47
48 static inline bool vma_has_changed(struct vm_fault *vmf)
49 {
50 int ret = RB_EMPTY_NODE(&vmf->vma->vm_rb);
51 unsigned seq = ACCESS_ONCE(vmf->vma->vm_sequence.sequence);
52
53 /*
54 * Matches both the wmb in write_seqlock_{begin,end}() and
55 * the wmb in vma_rb_erase().
56 */
57 smp_rmb();
58
> 59 return ret || seq != vmf->sequence;
60 }
61

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


Attachments:
(No filename) (1.83 kB)
.config.gz (6.51 kB)
Download all attachments

2017-08-10 08:43:19

by Laurent Dufour

[permalink] [raw]
Subject: Re: [rcu:mmap_sem.2017.08.09a 6/16] mm/internal.h:59:26: error: 'struct vm_fault' has no member named 'sequence'

On 09/08/2017 23:47, kbuild test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git mmap_sem.2017.08.09a
> head: 39782fbd9252a3ace9b49a55f4dd2a41a6ced31f
> commit: 1b801585f6b03276db9722dc725a50ca11439467 [6/16] mm: RCU free VMAs
> config: i386-tinyconfig (attached as .config)
> compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
> reproduce:
> git checkout 1b801585f6b03276db9722dc725a50ca11439467
> # save the attached .config to linux build tree
> make ARCH=i386
>
> Note: the rcu/mmap_sem.2017.08.09a HEAD 39782fbd9252a3ace9b49a55f4dd2a41a6ced31f builds fine.
> It only hurts bisectibility.
>
> All errors (new ones prefixed by >>):
>
> In file included from mm/filemap.c:39:0:
> mm/internal.h: In function 'vma_has_changed':
>>> mm/internal.h:59:26: error: 'struct vm_fault' has no member named 'sequence'
> return ret || seq != vmf->sequence;
> ^~
> --
> In file included from lib/vsprintf.c:40:0:
> lib/../mm/internal.h: In function 'vma_has_changed':
>>> lib/../mm/internal.h:59:26: error: 'struct vm_fault' has no member named 'sequence'
> return ret || seq != vmf->sequence;> ^~

This is because I remove the sequence parameter to this service to rely on
vmf->sequence. But the sequence field is added to the vm fault structure in
the next patch. I'll move the define of vma_has_changed to the next patch
introducing the speculative page fault handler since this service is not
used in this patch.

Cheers,
Laurent.

> vim +59 mm/internal.h
>
> 44
> 45 extern struct vm_area_struct *find_vma_srcu(struct mm_struct *mm,
> 46 unsigned long addr);
> 47
> 48 static inline bool vma_has_changed(struct vm_fault *vmf)
> 49 {
> 50 int ret = RB_EMPTY_NODE(&vmf->vma->vm_rb);
> 51 unsigned seq = ACCESS_ONCE(vmf->vma->vm_sequence.sequence);
> 52
> 53 /*
> 54 * Matches both the wmb in write_seqlock_{begin,end}() and
> 55 * the wmb in vma_rb_erase().
> 56 */
> 57 smp_rmb();
> 58
> > 59 return ret || seq != vmf->sequence;
> 60 }
> 61
>
> ---
> 0-DAY kernel test infrastructure Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all Intel Corporation
>