* mmap locked doesn't return
@ 2012-01-23 15:43 Sagar Borikar
2012-01-23 19:23 ` Hugh Dickins
0 siblings, 1 reply; 2+ messages in thread
From: Sagar Borikar @ 2012-01-23 15:43 UTC (permalink / raw)
To: LKML
Hi,
We are observing that mmap when called with MAP_SHARED and MAP_LOCKED
flags on the disk which has the bad sectors, doesn't return either
success or failure and gets stuck somewhere in mmap routine. Disk
replacement is the obvious solution but the question is what makes
mmap not to return failure?
Individual mapping works fine i.e. on the same disk at same offset
when mmap is invoked with MAP_SHARED or MAP_LOCKED the call succeeds
but when they both are clubbed together, it doesn't return anything.
strace output snippet
open("/dev/dm-4p2", O_RDWR) = 3
mmap(NULL, 10485760, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_LOCKED, 3, 0x4000000
setup:
2.6.23 LST kernel
Westmere platform - 4 socket cpu
RAM -192GB
Thanks
Sagar
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: mmap locked doesn't return
2012-01-23 15:43 mmap locked doesn't return Sagar Borikar
@ 2012-01-23 19:23 ` Hugh Dickins
0 siblings, 0 replies; 2+ messages in thread
From: Hugh Dickins @ 2012-01-23 19:23 UTC (permalink / raw)
To: Sagar Borikar; +Cc: LKML
On Mon, 23 Jan 2012, Sagar Borikar wrote:
>
> We are observing that mmap when called with MAP_SHARED and MAP_LOCKED
> flags on the disk which has the bad sectors, doesn't return either
> success or failure and gets stuck somewhere in mmap routine. Disk
> replacement is the obvious solution but the question is what makes
> mmap not to return failure?
> Individual mapping works fine i.e. on the same disk at same offset
> when mmap is invoked with MAP_SHARED or MAP_LOCKED the call succeeds
> but when they both are clubbed together, it doesn't return anything.
>
> strace output snippet
>
> open("/dev/dm-4p2", O_RDWR) = 3
> mmap(NULL, 10485760, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_LOCKED, 3, 0x4000000
>
>
> setup:
>
> 2.6.23 LST kernel
> Westmere platform - 4 socket cpu
> RAM -192GB
2.6.23 is a four-year-old kernel. There have been a lot of changes
since then, in mlocking and all over. Here I suspect a change
in filemap_fault() may be relevant. At the time of 2.6.23, its
page_not_uptodate IO error handling expected an IO error to be
reported by readpage() (which only initiates the read), and looks
in danger of retrying indefinitely. Whereas in the current tree
I see a wait_on_page_locked() followed by EIO if !PageUptodate there.
My guess is a move to a more recent kernel would solve your problem.
Hugh
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2012-01-23 19:24 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-01-23 15:43 mmap locked doesn't return Sagar Borikar
2012-01-23 19:23 ` Hugh Dickins
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®