[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <200710161146.33508.nickpiggin@yahoo.com.au>
Date: Tue, 16 Oct 2007 11:46:33 +1000
From: Nick Piggin <nickpiggin@...oo.com.au>
To: David Howells <dhowells@...hat.com>
Cc: Peter Zijlstra <peterz@...radead.org>,
Andrew Morton <akpm@...ux-foundation.org>,
linux-kernel@...r.kernel.org,
Trond Myklebust <trond.myklebust@....uio.no>
Subject: Re: nfs mmap adventure (was: 2.6.23-mm1)
On Tuesday 16 October 2007 00:06, David Howells wrote:
> Peter Zijlstra <peterz@...radead.org> wrote:
> > I get funny SIGBUS' like so:
> >
> > fault
> > if (->page_mkwrite() < 0)
> > nfs_vm_page_mkwrite()
> > nfs_write_begin()
> > nfs_flush_incompatible()
> > nfs_wb_page()
> > nfs_wb_page_priority()
> > nfs_sync_mapping_wait()
> > nfs_wait_on_request_locked()
> > nfs_wait_on_request()
> > nfs_wait_bit_interruptible()
> > return -ERESTARTSYS
> > SIGBUS
> >
> > trying to figure out what to do about this...
>
> Hmmm... It sounds like the fault handler should deliver the appropriate
> signal, should ->page_mkwrite() return ERESTARTSYS, and then retry the
> access instruction that caused the fault when the signal handler has
> finished running.
I don't think the fault handler is currently in any position to do
that ATM. It is possible to make it interruptible in some contexts,
but faults from kernel code may not be able to cope.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists