All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nicolas Pitre <nicolas.pitre@linaro.org>
To: Matthew Wilcox <willy@infradead.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Souptick Joarder <jrdr.linux@gmail.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 01/10] cramfs: Convert to use vmf_insert_mixed
Date: Tue, 28 Aug 2018 19:52:03 -0400 (EDT)	[thread overview]
Message-ID: <nycvar.YSQ.7.76.1808281940360.10215@knanqh.ubzr> (raw)
In-Reply-To: <20180828220427.GA11400@bombadil.infradead.org>

On Tue, 28 Aug 2018, Matthew Wilcox wrote:

> On Tue, Aug 28, 2018 at 01:49:25PM -0400, Nicolas Pitre wrote:
> > On Tue, 28 Aug 2018, Matthew Wilcox wrote:
> > > -			ret = vm_insert_mixed(vma, vma->vm_start + off, pfn);
> > > +			vmf = vmf_insert_mixed(vma, vma->vm_start + off, pfn);
> > > +			if (vmf & VM_FAULT_ERROR) {
> > > +				pages = i;
> > > +				break;
> > > +			}
> > 
> > I'd suggest this to properly deal with errers instead:
> > 
> > -			ret = vm_insert_mixed(vma, vma->vm_start + off, pfn);
> > +			vmf = vmf_insert_mixed(vma, vma->vm_start + off, pfn);
> > +			if (vmf & VM_FAULT_ERROR)
> > +				ret = vm_fault_to_errno(vmf, 0);
> 
> By my reading of this function, the intent is actually to return 0
> here and allow demand paging to work.  Of course, I've spent all of
> twenty minutes staring at this function, so I defer to the maintainer.

Demand paging is used when the filesystem layout isn't amenable to a 
direct mapping.  It is not a fallback for when we're OOM or some other 
internal errors which ought to be reported immediately.

> I think you'd need to be running a make-memory-allocations-fail fuzzer
> to hit this, so it's likely never been tested.

Well, it has been tested sort of, e.g. when vm_insert_mixed() returned 
an error due to misaligned addresses during development.  Normally, 
vm_insert_mixed() and vmf_insert_mixed() should always succeed, and if 
they don't we certainly don't want to ignore it.


Nicolas

  reply	other threads:[~2018-08-28 23:52 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-28 14:57 [PATCH 00/10] Push the vm_fault_t conversion further Matthew Wilcox
2018-08-28 14:57 ` [PATCH 01/10] cramfs: Convert to use vmf_insert_mixed Matthew Wilcox
2018-08-28 17:49   ` Nicolas Pitre
2018-08-28 22:04     ` Matthew Wilcox
2018-08-28 23:52       ` Nicolas Pitre [this message]
2018-08-28 14:57 ` [PATCH 02/10] mm: Remove vm_insert_mixed Matthew Wilcox
2018-08-28 14:57 ` [PATCH 03/10] mm: Introduce vmf_insert_pfn_prot Matthew Wilcox
2018-08-28 14:57 ` [PATCH 04/10] x86: Convert vdso to use vm_fault_t Matthew Wilcox
2018-08-28 14:57 ` [PATCH 05/10] mm: Make vm_insert_pfn_prot static Matthew Wilcox
2018-08-28 14:57 ` [PATCH 06/10] mm: Remove references to vm_insert_pfn Matthew Wilcox
2018-08-28 14:57 ` [PATCH 07/10] mm: Remove vm_insert_pfn Matthew Wilcox
2018-08-28 14:57 ` [PATCH 08/10] mm: Inline vm_insert_pfn_prot into caller Matthew Wilcox
2018-08-28 14:57 ` [PATCH 09/10] mm: Convert __vm_insert_mixed to vm_fault_t Matthew Wilcox
2018-08-28 14:57 ` [PATCH 10/10] mm: Convert insert_pfn " Matthew Wilcox

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=nycvar.YSQ.7.76.1808281940360.10215@knanqh.ubzr \
    --to=nicolas.pitre@linaro.org \
    --cc=akpm@linux-foundation.org \
    --cc=jrdr.linux@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=willy@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.