All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <20160128195107.GA26378@linux.intel.com>

diff --git a/a/1.txt b/N1/1.txt
index 2eb323d..fe8361a 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -6,43 +6,43 @@ On Wed, Jan 27, 2016 at 03:04:21PM -0700, Ross Zwisler wrote:
 > > From: Dan Williams <dan.j.williams@intel.com>
 > > 
 > > Similar to the file I/O path, re-direct all I/O to the DAX path for I/O
-> > to a block-device special file.��Both regular files and device special
+> > to a block-device special file.  Both regular files and device special
 > > files can use the common filp->f_mapping->host lookup to determing is
 > > DAX is enabled.
 > > 
 > > Otherwise, we confuse the DAX code that does not expect to find live
 > > data in the page cache:
 > > 
-> > ����------------[ cut here ]------------
-> > ����WARNING: CPU: 0 PID: 7676 at mm/filemap.c:217
-> > ����__delete_from_page_cache+0x9f6/0xb60()
-> > ����Modules linked in:
-> > ����CPU: 0 PID: 7676 Comm: a.out Not tainted 4.4.0+ #276
-> > ����Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
-> > �����00000000ffffffff ffff88006d3f7738 ffffffff82999e2d 0000000000000000
-> > �����ffff8800620a0000 ffffffff86473d20 ffff88006d3f7778 ffffffff81352089
-> > �����ffffffff81658d36 ffffffff86473d20 00000000000000d9 ffffea0000009d60
-> > ����Call Trace:
-> > �����[<�����inline�����>] __dump_stack lib/dump_stack.c:15
-> > �����[<ffffffff82999e2d>] dump_stack+0x6f/0xa2 lib/dump_stack.c:50
-> > �����[<ffffffff81352089>] warn_slowpath_common+0xd9/0x140 kernel/panic.c:482
-> > �����[<ffffffff813522b9>] warn_slowpath_null+0x29/0x30 kernel/panic.c:515
-> > �����[<ffffffff81658d36>] __delete_from_page_cache+0x9f6/0xb60 mm/filemap.c:217
-> > �����[<ffffffff81658fb2>] delete_from_page_cache+0x112/0x200 mm/filemap.c:244
-> > �����[<ffffffff818af369>] __dax_fault+0x859/0x1800 fs/dax.c:487
-> > �����[<ffffffff8186f4f6>] blkdev_dax_fault+0x26/0x30 fs/block_dev.c:1730
-> > �����[<�����inline�����>] wp_pfn_shared mm/memory.c:2208
-> > �����[<ffffffff816e9145>] do_wp_page+0xc85/0x14f0 mm/memory.c:2307
-> > �����[<�����inline�����>] handle_pte_fault mm/memory.c:3323
-> > �����[<�����inline�����>] __handle_mm_fault mm/memory.c:3417
-> > �����[<ffffffff816ecec3>] handle_mm_fault+0x2483/0x4640 mm/memory.c:3446
-> > �����[<ffffffff8127eff6>] __do_page_fault+0x376/0x960 arch/x86/mm/fault.c:1238
-> > �����[<ffffffff8127f738>] trace_do_page_fault+0xe8/0x420 arch/x86/mm/fault.c:1331
-> > �����[<ffffffff812705c4>] do_async_page_fault+0x14/0xd0 arch/x86/kernel/kvm.c:264
-> > �����[<ffffffff86338f78>] async_page_fault+0x28/0x30 arch/x86/entry/entry_64.S:986
-> > �����[<ffffffff86336c36>] entry_SYSCALL_64_fastpath+0x16/0x7a
-> > ����arch/x86/entry/entry_64.S:185
-> > ����---[ end trace dae21e0f85f1f98c ]---
+> >     ------------[ cut here ]------------
+> >     WARNING: CPU: 0 PID: 7676 at mm/filemap.c:217
+> >     __delete_from_page_cache+0x9f6/0xb60()
+> >     Modules linked in:
+> >     CPU: 0 PID: 7676 Comm: a.out Not tainted 4.4.0+ #276
+> >     Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
+> >      00000000ffffffff ffff88006d3f7738 ffffffff82999e2d 0000000000000000
+> >      ffff8800620a0000 ffffffff86473d20 ffff88006d3f7778 ffffffff81352089
+> >      ffffffff81658d36 ffffffff86473d20 00000000000000d9 ffffea0000009d60
+> >     Call Trace:
+> >      [<     inline     >] __dump_stack lib/dump_stack.c:15
+> >      [<ffffffff82999e2d>] dump_stack+0x6f/0xa2 lib/dump_stack.c:50
+> >      [<ffffffff81352089>] warn_slowpath_common+0xd9/0x140 kernel/panic.c:482
+> >      [<ffffffff813522b9>] warn_slowpath_null+0x29/0x30 kernel/panic.c:515
+> >      [<ffffffff81658d36>] __delete_from_page_cache+0x9f6/0xb60 mm/filemap.c:217
+> >      [<ffffffff81658fb2>] delete_from_page_cache+0x112/0x200 mm/filemap.c:244
+> >      [<ffffffff818af369>] __dax_fault+0x859/0x1800 fs/dax.c:487
+> >      [<ffffffff8186f4f6>] blkdev_dax_fault+0x26/0x30 fs/block_dev.c:1730
+> >      [<     inline     >] wp_pfn_shared mm/memory.c:2208
+> >      [<ffffffff816e9145>] do_wp_page+0xc85/0x14f0 mm/memory.c:2307
+> >      [<     inline     >] handle_pte_fault mm/memory.c:3323
+> >      [<     inline     >] __handle_mm_fault mm/memory.c:3417
+> >      [<ffffffff816ecec3>] handle_mm_fault+0x2483/0x4640 mm/memory.c:3446
+> >      [<ffffffff8127eff6>] __do_page_fault+0x376/0x960 arch/x86/mm/fault.c:1238
+> >      [<ffffffff8127f738>] trace_do_page_fault+0xe8/0x420 arch/x86/mm/fault.c:1331
+> >      [<ffffffff812705c4>] do_async_page_fault+0x14/0xd0 arch/x86/kernel/kvm.c:264
+> >      [<ffffffff86338f78>] async_page_fault+0x28/0x30 arch/x86/entry/entry_64.S:986
+> >      [<ffffffff86336c36>] entry_SYSCALL_64_fastpath+0x16/0x7a
+> >     arch/x86/entry/entry_64.S:185
+> >     ---[ end trace dae21e0f85f1f98c ]---
 > > 
 > > Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
 > > Fixes: 5a023cdba50c ("block: enable dax for raw block devices")
@@ -60,22 +60,22 @@ On Wed, Jan 27, 2016 at 03:04:21PM -0700, Ross Zwisler wrote:
 > Tested-by: Ross Zwisler <ross.zwisler@linux.intel.com>
 > 
 > > ---
-> > �include/linux/fs.h |����2 +-
-> > �1 file changed, 1 insertion(+), 1 deletion(-)
+> >  include/linux/fs.h |    2 +-
+> >  1 file changed, 1 insertion(+), 1 deletion(-)
 > > 
 > > diff --git a/include/linux/fs.h b/include/linux/fs.h
 > > index 1a2046275cdf..b10002d4a5f5 100644
 > > --- a/include/linux/fs.h
 > > +++ b/include/linux/fs.h
 > > @@ -2907,7 +2907,7 @@ extern void replace_mount_options(struct super_block *sb, char *options);
-> > �
-> > �static inline bool io_is_direct(struct file *filp)
-> > �{
+> >  
+> >  static inline bool io_is_direct(struct file *filp)
+> >  {
 > > -	return (filp->f_flags & O_DIRECT) || IS_DAX(file_inode(filp));
 > > +	return (filp->f_flags & O_DIRECT) || IS_DAX(filp->f_mapping->host);
-> > �}
-> > �
-> > �static inline int iocb_flags(struct file *file)
+> >  }
+> >  
+> >  static inline int iocb_flags(struct file *file)
 
 My testing has turned up another case where we can end up doing both page
 cache I/O and DAX I/O to the same raw block device.  Here is the stack trace
diff --git a/a/content_digest b/N1/content_digest
index f5666ef..1e97d1c 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -44,43 +44,43 @@
  "> > From: Dan Williams <dan.j.williams@intel.com>\n"
  "> > \n"
  "> > Similar to the file I/O path, re-direct all I/O to the DAX path for I/O\n"
- "> > to a block-device special file.\303\257\302\277\302\275\303\257\302\277\302\275Both regular files and device special\n"
+ "> > to a block-device special file.  Both regular files and device special\n"
  "> > files can use the common filp->f_mapping->host lookup to determing is\n"
  "> > DAX is enabled.\n"
  "> > \n"
  "> > Otherwise, we confuse the DAX code that does not expect to find live\n"
  "> > data in the page cache:\n"
  "> > \n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275------------[ cut here ]------------\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275WARNING: CPU: 0 PID: 7676 at mm/filemap.c:217\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275__delete_from_page_cache+0x9f6/0xb60()\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275Modules linked in:\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275CPU: 0 PID: 7676 Comm: a.out Not tainted 4.4.0+ #276\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\27500000000ffffffff ffff88006d3f7738 ffffffff82999e2d 0000000000000000\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275ffff8800620a0000 ffffffff86473d20 ffff88006d3f7778 ffffffff81352089\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275ffffffff81658d36 ffffffff86473d20 00000000000000d9 ffffea0000009d60\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275Call Trace:\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275inline\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275>] __dump_stack lib/dump_stack.c:15\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<ffffffff82999e2d>] dump_stack+0x6f/0xa2 lib/dump_stack.c:50\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<ffffffff81352089>] warn_slowpath_common+0xd9/0x140 kernel/panic.c:482\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<ffffffff813522b9>] warn_slowpath_null+0x29/0x30 kernel/panic.c:515\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<ffffffff81658d36>] __delete_from_page_cache+0x9f6/0xb60 mm/filemap.c:217\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<ffffffff81658fb2>] delete_from_page_cache+0x112/0x200 mm/filemap.c:244\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<ffffffff818af369>] __dax_fault+0x859/0x1800 fs/dax.c:487\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<ffffffff8186f4f6>] blkdev_dax_fault+0x26/0x30 fs/block_dev.c:1730\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275inline\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275>] wp_pfn_shared mm/memory.c:2208\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<ffffffff816e9145>] do_wp_page+0xc85/0x14f0 mm/memory.c:2307\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275inline\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275>] handle_pte_fault mm/memory.c:3323\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275inline\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275>] __handle_mm_fault mm/memory.c:3417\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<ffffffff816ecec3>] handle_mm_fault+0x2483/0x4640 mm/memory.c:3446\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<ffffffff8127eff6>] __do_page_fault+0x376/0x960 arch/x86/mm/fault.c:1238\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<ffffffff8127f738>] trace_do_page_fault+0xe8/0x420 arch/x86/mm/fault.c:1331\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<ffffffff812705c4>] do_async_page_fault+0x14/0xd0 arch/x86/kernel/kvm.c:264\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<ffffffff86338f78>] async_page_fault+0x28/0x30 arch/x86/entry/entry_64.S:986\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<ffffffff86336c36>] entry_SYSCALL_64_fastpath+0x16/0x7a\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275arch/x86/entry/entry_64.S:185\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275---[ end trace dae21e0f85f1f98c ]---\n"
+ "> >     ------------[ cut here ]------------\n"
+ "> >     WARNING: CPU: 0 PID: 7676 at mm/filemap.c:217\n"
+ "> >     __delete_from_page_cache+0x9f6/0xb60()\n"
+ "> >     Modules linked in:\n"
+ "> >     CPU: 0 PID: 7676 Comm: a.out Not tainted 4.4.0+ #276\n"
+ "> >     Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011\n"
+ "> >      00000000ffffffff ffff88006d3f7738 ffffffff82999e2d 0000000000000000\n"
+ "> >      ffff8800620a0000 ffffffff86473d20 ffff88006d3f7778 ffffffff81352089\n"
+ "> >      ffffffff81658d36 ffffffff86473d20 00000000000000d9 ffffea0000009d60\n"
+ "> >     Call Trace:\n"
+ "> >      [<     inline     >] __dump_stack lib/dump_stack.c:15\n"
+ "> >      [<ffffffff82999e2d>] dump_stack+0x6f/0xa2 lib/dump_stack.c:50\n"
+ "> >      [<ffffffff81352089>] warn_slowpath_common+0xd9/0x140 kernel/panic.c:482\n"
+ "> >      [<ffffffff813522b9>] warn_slowpath_null+0x29/0x30 kernel/panic.c:515\n"
+ "> >      [<ffffffff81658d36>] __delete_from_page_cache+0x9f6/0xb60 mm/filemap.c:217\n"
+ "> >      [<ffffffff81658fb2>] delete_from_page_cache+0x112/0x200 mm/filemap.c:244\n"
+ "> >      [<ffffffff818af369>] __dax_fault+0x859/0x1800 fs/dax.c:487\n"
+ "> >      [<ffffffff8186f4f6>] blkdev_dax_fault+0x26/0x30 fs/block_dev.c:1730\n"
+ "> >      [<     inline     >] wp_pfn_shared mm/memory.c:2208\n"
+ "> >      [<ffffffff816e9145>] do_wp_page+0xc85/0x14f0 mm/memory.c:2307\n"
+ "> >      [<     inline     >] handle_pte_fault mm/memory.c:3323\n"
+ "> >      [<     inline     >] __handle_mm_fault mm/memory.c:3417\n"
+ "> >      [<ffffffff816ecec3>] handle_mm_fault+0x2483/0x4640 mm/memory.c:3446\n"
+ "> >      [<ffffffff8127eff6>] __do_page_fault+0x376/0x960 arch/x86/mm/fault.c:1238\n"
+ "> >      [<ffffffff8127f738>] trace_do_page_fault+0xe8/0x420 arch/x86/mm/fault.c:1331\n"
+ "> >      [<ffffffff812705c4>] do_async_page_fault+0x14/0xd0 arch/x86/kernel/kvm.c:264\n"
+ "> >      [<ffffffff86338f78>] async_page_fault+0x28/0x30 arch/x86/entry/entry_64.S:986\n"
+ "> >      [<ffffffff86336c36>] entry_SYSCALL_64_fastpath+0x16/0x7a\n"
+ "> >     arch/x86/entry/entry_64.S:185\n"
+ "> >     ---[ end trace dae21e0f85f1f98c ]---\n"
  "> > \n"
  "> > Cc: Ross Zwisler <ross.zwisler@linux.intel.com>\n"
  "> > Fixes: 5a023cdba50c (\"block: enable dax for raw block devices\")\n"
@@ -98,22 +98,22 @@
  "> Tested-by: Ross Zwisler <ross.zwisler@linux.intel.com>\n"
  "> \n"
  "> > ---\n"
- "> > \303\257\302\277\302\275include/linux/fs.h |\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\2752 +-\n"
- "> > \303\257\302\277\302\2751 file changed, 1 insertion(+), 1 deletion(-)\n"
+ "> >  include/linux/fs.h |    2 +-\n"
+ "> >  1 file changed, 1 insertion(+), 1 deletion(-)\n"
  "> > \n"
  "> > diff --git a/include/linux/fs.h b/include/linux/fs.h\n"
  "> > index 1a2046275cdf..b10002d4a5f5 100644\n"
  "> > --- a/include/linux/fs.h\n"
  "> > +++ b/include/linux/fs.h\n"
  "> > @@ -2907,7 +2907,7 @@ extern void replace_mount_options(struct super_block *sb, char *options);\n"
- "> > \303\257\302\277\302\275\n"
- "> > \303\257\302\277\302\275static inline bool io_is_direct(struct file *filp)\n"
- "> > \303\257\302\277\302\275{\n"
+ "> >  \n"
+ "> >  static inline bool io_is_direct(struct file *filp)\n"
+ "> >  {\n"
  "> > -\treturn (filp->f_flags & O_DIRECT) || IS_DAX(file_inode(filp));\n"
  "> > +\treturn (filp->f_flags & O_DIRECT) || IS_DAX(filp->f_mapping->host);\n"
- "> > \303\257\302\277\302\275}\n"
- "> > \303\257\302\277\302\275\n"
- "> > \303\257\302\277\302\275static inline int iocb_flags(struct file *file)\n"
+ "> >  }\n"
+ "> >  \n"
+ "> >  static inline int iocb_flags(struct file *file)\n"
  "\n"
  "My testing has turned up another case where we can end up doing both page\n"
  "cache I/O and DAX I/O to the same raw block device.  Here is the stack trace\n"
@@ -209,4 +209,4 @@
  "see: http://www.linux-mm.org/ .\n"
  "Don't email: <a href=mailto:\"dont@kvack.org\"> email@kvack.org </a>"
 
-b23ce7b43d888a67929fdfde9deba31bad8c8fc2a182aaffe1abe9fc7b83eb1d
+34e5adda4f0d5853fdcfd098edb11d412ca55d42256fed2e1ecdba006db1bfe9

diff --git a/a/1.txt b/N2/1.txt
index 2eb323d..21d6c4b 100644
--- a/a/1.txt
+++ b/N2/1.txt
@@ -6,43 +6,43 @@ On Wed, Jan 27, 2016 at 03:04:21PM -0700, Ross Zwisler wrote:
 > > From: Dan Williams <dan.j.williams@intel.com>
 > > 
 > > Similar to the file I/O path, re-direct all I/O to the DAX path for I/O
-> > to a block-device special file.��Both regular files and device special
+> > to a block-device special file.  Both regular files and device special
 > > files can use the common filp->f_mapping->host lookup to determing is
 > > DAX is enabled.
 > > 
 > > Otherwise, we confuse the DAX code that does not expect to find live
 > > data in the page cache:
 > > 
-> > ����------------[ cut here ]------------
-> > ����WARNING: CPU: 0 PID: 7676 at mm/filemap.c:217
-> > ����__delete_from_page_cache+0x9f6/0xb60()
-> > ����Modules linked in:
-> > ����CPU: 0 PID: 7676 Comm: a.out Not tainted 4.4.0+ #276
-> > ����Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
-> > �����00000000ffffffff ffff88006d3f7738 ffffffff82999e2d 0000000000000000
-> > �����ffff8800620a0000 ffffffff86473d20 ffff88006d3f7778 ffffffff81352089
-> > �����ffffffff81658d36 ffffffff86473d20 00000000000000d9 ffffea0000009d60
-> > ����Call Trace:
-> > �����[<�����inline�����>] __dump_stack lib/dump_stack.c:15
-> > �����[<ffffffff82999e2d>] dump_stack+0x6f/0xa2 lib/dump_stack.c:50
-> > �����[<ffffffff81352089>] warn_slowpath_common+0xd9/0x140 kernel/panic.c:482
-> > �����[<ffffffff813522b9>] warn_slowpath_null+0x29/0x30 kernel/panic.c:515
-> > �����[<ffffffff81658d36>] __delete_from_page_cache+0x9f6/0xb60 mm/filemap.c:217
-> > �����[<ffffffff81658fb2>] delete_from_page_cache+0x112/0x200 mm/filemap.c:244
-> > �����[<ffffffff818af369>] __dax_fault+0x859/0x1800 fs/dax.c:487
-> > �����[<ffffffff8186f4f6>] blkdev_dax_fault+0x26/0x30 fs/block_dev.c:1730
-> > �����[<�����inline�����>] wp_pfn_shared mm/memory.c:2208
-> > �����[<ffffffff816e9145>] do_wp_page+0xc85/0x14f0 mm/memory.c:2307
-> > �����[<�����inline�����>] handle_pte_fault mm/memory.c:3323
-> > �����[<�����inline�����>] __handle_mm_fault mm/memory.c:3417
-> > �����[<ffffffff816ecec3>] handle_mm_fault+0x2483/0x4640 mm/memory.c:3446
-> > �����[<ffffffff8127eff6>] __do_page_fault+0x376/0x960 arch/x86/mm/fault.c:1238
-> > �����[<ffffffff8127f738>] trace_do_page_fault+0xe8/0x420 arch/x86/mm/fault.c:1331
-> > �����[<ffffffff812705c4>] do_async_page_fault+0x14/0xd0 arch/x86/kernel/kvm.c:264
-> > �����[<ffffffff86338f78>] async_page_fault+0x28/0x30 arch/x86/entry/entry_64.S:986
-> > �����[<ffffffff86336c36>] entry_SYSCALL_64_fastpath+0x16/0x7a
-> > ����arch/x86/entry/entry_64.S:185
-> > ����---[ end trace dae21e0f85f1f98c ]---
+> >     ------------[ cut here ]------------
+> >     WARNING: CPU: 0 PID: 7676 at mm/filemap.c:217
+> >     __delete_from_page_cache+0x9f6/0xb60()
+> >     Modules linked in:
+> >     CPU: 0 PID: 7676 Comm: a.out Not tainted 4.4.0+ #276
+> >     Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
+> >      00000000ffffffff ffff88006d3f7738 ffffffff82999e2d 0000000000000000
+> >      ffff8800620a0000 ffffffff86473d20 ffff88006d3f7778 ffffffff81352089
+> >      ffffffff81658d36 ffffffff86473d20 00000000000000d9 ffffea0000009d60
+> >     Call Trace:
+> >      [<     inline     >] __dump_stack lib/dump_stack.c:15
+> >      [<ffffffff82999e2d>] dump_stack+0x6f/0xa2 lib/dump_stack.c:50
+> >      [<ffffffff81352089>] warn_slowpath_common+0xd9/0x140 kernel/panic.c:482
+> >      [<ffffffff813522b9>] warn_slowpath_null+0x29/0x30 kernel/panic.c:515
+> >      [<ffffffff81658d36>] __delete_from_page_cache+0x9f6/0xb60 mm/filemap.c:217
+> >      [<ffffffff81658fb2>] delete_from_page_cache+0x112/0x200 mm/filemap.c:244
+> >      [<ffffffff818af369>] __dax_fault+0x859/0x1800 fs/dax.c:487
+> >      [<ffffffff8186f4f6>] blkdev_dax_fault+0x26/0x30 fs/block_dev.c:1730
+> >      [<     inline     >] wp_pfn_shared mm/memory.c:2208
+> >      [<ffffffff816e9145>] do_wp_page+0xc85/0x14f0 mm/memory.c:2307
+> >      [<     inline     >] handle_pte_fault mm/memory.c:3323
+> >      [<     inline     >] __handle_mm_fault mm/memory.c:3417
+> >      [<ffffffff816ecec3>] handle_mm_fault+0x2483/0x4640 mm/memory.c:3446
+> >      [<ffffffff8127eff6>] __do_page_fault+0x376/0x960 arch/x86/mm/fault.c:1238
+> >      [<ffffffff8127f738>] trace_do_page_fault+0xe8/0x420 arch/x86/mm/fault.c:1331
+> >      [<ffffffff812705c4>] do_async_page_fault+0x14/0xd0 arch/x86/kernel/kvm.c:264
+> >      [<ffffffff86338f78>] async_page_fault+0x28/0x30 arch/x86/entry/entry_64.S:986
+> >      [<ffffffff86336c36>] entry_SYSCALL_64_fastpath+0x16/0x7a
+> >     arch/x86/entry/entry_64.S:185
+> >     ---[ end trace dae21e0f85f1f98c ]---
 > > 
 > > Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
 > > Fixes: 5a023cdba50c ("block: enable dax for raw block devices")
@@ -60,22 +60,22 @@ On Wed, Jan 27, 2016 at 03:04:21PM -0700, Ross Zwisler wrote:
 > Tested-by: Ross Zwisler <ross.zwisler@linux.intel.com>
 > 
 > > ---
-> > �include/linux/fs.h |����2 +-
-> > �1 file changed, 1 insertion(+), 1 deletion(-)
+> >  include/linux/fs.h |    2 +-
+> >  1 file changed, 1 insertion(+), 1 deletion(-)
 > > 
 > > diff --git a/include/linux/fs.h b/include/linux/fs.h
 > > index 1a2046275cdf..b10002d4a5f5 100644
 > > --- a/include/linux/fs.h
 > > +++ b/include/linux/fs.h
 > > @@ -2907,7 +2907,7 @@ extern void replace_mount_options(struct super_block *sb, char *options);
-> > �
-> > �static inline bool io_is_direct(struct file *filp)
-> > �{
+> >  
+> >  static inline bool io_is_direct(struct file *filp)
+> >  {
 > > -	return (filp->f_flags & O_DIRECT) || IS_DAX(file_inode(filp));
 > > +	return (filp->f_flags & O_DIRECT) || IS_DAX(filp->f_mapping->host);
-> > �}
-> > �
-> > �static inline int iocb_flags(struct file *file)
+> >  }
+> >  
+> >  static inline int iocb_flags(struct file *file)
 
 My testing has turned up another case where we can end up doing both page
 cache I/O and DAX I/O to the same raw block device.  Here is the stack trace
@@ -164,9 +164,3 @@ loops through the various partition types.
 I think the issue essentially is that the partition scanning code doesn't have
 a direct I/O code path, at least from what I have found.  This means that it's
 not calling into DAX, and instead is just using the page cache.
-
---
-To unsubscribe, send a message with 'unsubscribe linux-mm' in
-the body to majordomo@kvack.org.  For more info on Linux MM,
-see: http://www.linux-mm.org/ .
-Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
diff --git a/a/content_digest b/N2/content_digest
index f5666ef..76c98d1 100644
--- a/a/content_digest
+++ b/N2/content_digest
@@ -44,43 +44,43 @@
  "> > From: Dan Williams <dan.j.williams@intel.com>\n"
  "> > \n"
  "> > Similar to the file I/O path, re-direct all I/O to the DAX path for I/O\n"
- "> > to a block-device special file.\303\257\302\277\302\275\303\257\302\277\302\275Both regular files and device special\n"
+ "> > to a block-device special file.\302\240\302\240Both regular files and device special\n"
  "> > files can use the common filp->f_mapping->host lookup to determing is\n"
  "> > DAX is enabled.\n"
  "> > \n"
  "> > Otherwise, we confuse the DAX code that does not expect to find live\n"
  "> > data in the page cache:\n"
  "> > \n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275------------[ cut here ]------------\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275WARNING: CPU: 0 PID: 7676 at mm/filemap.c:217\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275__delete_from_page_cache+0x9f6/0xb60()\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275Modules linked in:\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275CPU: 0 PID: 7676 Comm: a.out Not tainted 4.4.0+ #276\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\27500000000ffffffff ffff88006d3f7738 ffffffff82999e2d 0000000000000000\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275ffff8800620a0000 ffffffff86473d20 ffff88006d3f7778 ffffffff81352089\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275ffffffff81658d36 ffffffff86473d20 00000000000000d9 ffffea0000009d60\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275Call Trace:\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275inline\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275>] __dump_stack lib/dump_stack.c:15\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<ffffffff82999e2d>] dump_stack+0x6f/0xa2 lib/dump_stack.c:50\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<ffffffff81352089>] warn_slowpath_common+0xd9/0x140 kernel/panic.c:482\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<ffffffff813522b9>] warn_slowpath_null+0x29/0x30 kernel/panic.c:515\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<ffffffff81658d36>] __delete_from_page_cache+0x9f6/0xb60 mm/filemap.c:217\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<ffffffff81658fb2>] delete_from_page_cache+0x112/0x200 mm/filemap.c:244\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<ffffffff818af369>] __dax_fault+0x859/0x1800 fs/dax.c:487\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<ffffffff8186f4f6>] blkdev_dax_fault+0x26/0x30 fs/block_dev.c:1730\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275inline\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275>] wp_pfn_shared mm/memory.c:2208\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<ffffffff816e9145>] do_wp_page+0xc85/0x14f0 mm/memory.c:2307\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275inline\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275>] handle_pte_fault mm/memory.c:3323\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275inline\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275>] __handle_mm_fault mm/memory.c:3417\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<ffffffff816ecec3>] handle_mm_fault+0x2483/0x4640 mm/memory.c:3446\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<ffffffff8127eff6>] __do_page_fault+0x376/0x960 arch/x86/mm/fault.c:1238\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<ffffffff8127f738>] trace_do_page_fault+0xe8/0x420 arch/x86/mm/fault.c:1331\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<ffffffff812705c4>] do_async_page_fault+0x14/0xd0 arch/x86/kernel/kvm.c:264\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<ffffffff86338f78>] async_page_fault+0x28/0x30 arch/x86/entry/entry_64.S:986\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275[<ffffffff86336c36>] entry_SYSCALL_64_fastpath+0x16/0x7a\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275arch/x86/entry/entry_64.S:185\n"
- "> > \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275---[ end trace dae21e0f85f1f98c ]---\n"
+ "> > \302\240\302\240\302\240\302\240------------[ cut here ]------------\n"
+ "> > \302\240\302\240\302\240\302\240WARNING: CPU: 0 PID: 7676 at mm/filemap.c:217\n"
+ "> > \302\240\302\240\302\240\302\240__delete_from_page_cache+0x9f6/0xb60()\n"
+ "> > \302\240\302\240\302\240\302\240Modules linked in:\n"
+ "> > \302\240\302\240\302\240\302\240CPU: 0 PID: 7676 Comm: a.out Not tainted 4.4.0+ #276\n"
+ "> > \302\240\302\240\302\240\302\240Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011\n"
+ "> > \302\240\302\240\302\240\302\240\302\24000000000ffffffff ffff88006d3f7738 ffffffff82999e2d 0000000000000000\n"
+ "> > \302\240\302\240\302\240\302\240\302\240ffff8800620a0000 ffffffff86473d20 ffff88006d3f7778 ffffffff81352089\n"
+ "> > \302\240\302\240\302\240\302\240\302\240ffffffff81658d36 ffffffff86473d20 00000000000000d9 ffffea0000009d60\n"
+ "> > \302\240\302\240\302\240\302\240Call Trace:\n"
+ "> > \302\240\302\240\302\240\302\240\302\240[<\302\240\302\240\302\240\302\240\302\240inline\302\240\302\240\302\240\302\240\302\240>] __dump_stack lib/dump_stack.c:15\n"
+ "> > \302\240\302\240\302\240\302\240\302\240[<ffffffff82999e2d>] dump_stack+0x6f/0xa2 lib/dump_stack.c:50\n"
+ "> > \302\240\302\240\302\240\302\240\302\240[<ffffffff81352089>] warn_slowpath_common+0xd9/0x140 kernel/panic.c:482\n"
+ "> > \302\240\302\240\302\240\302\240\302\240[<ffffffff813522b9>] warn_slowpath_null+0x29/0x30 kernel/panic.c:515\n"
+ "> > \302\240\302\240\302\240\302\240\302\240[<ffffffff81658d36>] __delete_from_page_cache+0x9f6/0xb60 mm/filemap.c:217\n"
+ "> > \302\240\302\240\302\240\302\240\302\240[<ffffffff81658fb2>] delete_from_page_cache+0x112/0x200 mm/filemap.c:244\n"
+ "> > \302\240\302\240\302\240\302\240\302\240[<ffffffff818af369>] __dax_fault+0x859/0x1800 fs/dax.c:487\n"
+ "> > \302\240\302\240\302\240\302\240\302\240[<ffffffff8186f4f6>] blkdev_dax_fault+0x26/0x30 fs/block_dev.c:1730\n"
+ "> > \302\240\302\240\302\240\302\240\302\240[<\302\240\302\240\302\240\302\240\302\240inline\302\240\302\240\302\240\302\240\302\240>] wp_pfn_shared mm/memory.c:2208\n"
+ "> > \302\240\302\240\302\240\302\240\302\240[<ffffffff816e9145>] do_wp_page+0xc85/0x14f0 mm/memory.c:2307\n"
+ "> > \302\240\302\240\302\240\302\240\302\240[<\302\240\302\240\302\240\302\240\302\240inline\302\240\302\240\302\240\302\240\302\240>] handle_pte_fault mm/memory.c:3323\n"
+ "> > \302\240\302\240\302\240\302\240\302\240[<\302\240\302\240\302\240\302\240\302\240inline\302\240\302\240\302\240\302\240\302\240>] __handle_mm_fault mm/memory.c:3417\n"
+ "> > \302\240\302\240\302\240\302\240\302\240[<ffffffff816ecec3>] handle_mm_fault+0x2483/0x4640 mm/memory.c:3446\n"
+ "> > \302\240\302\240\302\240\302\240\302\240[<ffffffff8127eff6>] __do_page_fault+0x376/0x960 arch/x86/mm/fault.c:1238\n"
+ "> > \302\240\302\240\302\240\302\240\302\240[<ffffffff8127f738>] trace_do_page_fault+0xe8/0x420 arch/x86/mm/fault.c:1331\n"
+ "> > \302\240\302\240\302\240\302\240\302\240[<ffffffff812705c4>] do_async_page_fault+0x14/0xd0 arch/x86/kernel/kvm.c:264\n"
+ "> > \302\240\302\240\302\240\302\240\302\240[<ffffffff86338f78>] async_page_fault+0x28/0x30 arch/x86/entry/entry_64.S:986\n"
+ "> > \302\240\302\240\302\240\302\240\302\240[<ffffffff86336c36>] entry_SYSCALL_64_fastpath+0x16/0x7a\n"
+ "> > \302\240\302\240\302\240\302\240arch/x86/entry/entry_64.S:185\n"
+ "> > \302\240\302\240\302\240\302\240---[ end trace dae21e0f85f1f98c ]---\n"
  "> > \n"
  "> > Cc: Ross Zwisler <ross.zwisler@linux.intel.com>\n"
  "> > Fixes: 5a023cdba50c (\"block: enable dax for raw block devices\")\n"
@@ -98,22 +98,22 @@
  "> Tested-by: Ross Zwisler <ross.zwisler@linux.intel.com>\n"
  "> \n"
  "> > ---\n"
- "> > \303\257\302\277\302\275include/linux/fs.h |\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\2752 +-\n"
- "> > \303\257\302\277\302\2751 file changed, 1 insertion(+), 1 deletion(-)\n"
+ "> > \302\240include/linux/fs.h |\302\240\302\240\302\240\302\2402 +-\n"
+ "> > \302\2401 file changed, 1 insertion(+), 1 deletion(-)\n"
  "> > \n"
  "> > diff --git a/include/linux/fs.h b/include/linux/fs.h\n"
  "> > index 1a2046275cdf..b10002d4a5f5 100644\n"
  "> > --- a/include/linux/fs.h\n"
  "> > +++ b/include/linux/fs.h\n"
  "> > @@ -2907,7 +2907,7 @@ extern void replace_mount_options(struct super_block *sb, char *options);\n"
- "> > \303\257\302\277\302\275\n"
- "> > \303\257\302\277\302\275static inline bool io_is_direct(struct file *filp)\n"
- "> > \303\257\302\277\302\275{\n"
+ "> > \302\240\n"
+ "> > \302\240static inline bool io_is_direct(struct file *filp)\n"
+ "> > \302\240{\n"
  "> > -\treturn (filp->f_flags & O_DIRECT) || IS_DAX(file_inode(filp));\n"
  "> > +\treturn (filp->f_flags & O_DIRECT) || IS_DAX(filp->f_mapping->host);\n"
- "> > \303\257\302\277\302\275}\n"
- "> > \303\257\302\277\302\275\n"
- "> > \303\257\302\277\302\275static inline int iocb_flags(struct file *file)\n"
+ "> > \302\240}\n"
+ "> > \302\240\n"
+ "> > \302\240static inline int iocb_flags(struct file *file)\n"
  "\n"
  "My testing has turned up another case where we can end up doing both page\n"
  "cache I/O and DAX I/O to the same raw block device.  Here is the stack trace\n"
@@ -201,12 +201,6 @@
  "\n"
  "I think the issue essentially is that the partition scanning code doesn't have\n"
  "a direct I/O code path, at least from what I have found.  This means that it's\n"
- "not calling into DAX, and instead is just using the page cache.\n"
- "\n"
- "--\n"
- "To unsubscribe, send a message with 'unsubscribe linux-mm' in\n"
- "the body to majordomo@kvack.org.  For more info on Linux MM,\n"
- "see: http://www.linux-mm.org/ .\n"
- "Don't email: <a href=mailto:\"dont@kvack.org\"> email@kvack.org </a>"
+ not calling into DAX, and instead is just using the page cache.
 
-b23ce7b43d888a67929fdfde9deba31bad8c8fc2a182aaffe1abe9fc7b83eb1d
+a7e3ce15b3d03c6d39ad17ad12e1c379d3b3da78a398f3d862728aa8c71958f7

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.