xfs
[Top] [All Lists]

Re: shutdown umount hangs

To: Utz Lehmann <leh@xxxxxxxxxx>
Subject: Re: shutdown umount hangs
From: Russell Cattelan <cattelan@xxxxxxxxxxx>
Date: Thu, 05 Apr 2001 12:28:04 -0400
Cc: Steve Lord <lord@xxxxxxx>, linux-xfs@xxxxxxxxxxx
References: <leh@xxxxxxxxxx> <200104051412.f35ECMU25857@xxxxxxxxxxxxxxxxxxxx> <20010405172344.A1151@xxxxxxxxxx>
Sender: owner-linux-xfs@xxxxxxxxxxx
Utz Lehmann wrote:

> Steve Lord [lord@xxxxxxx] wrote:
> >
> > OK, you made it a lot further through unmount than before, there are
> > two disk I/O's left until you are unmounted from here, and you are
> > waiting for one of them to complete - not sure why it is not completing
> > yet - previously you were stuck at the start of unmount. Russell changed
> > the code in a different direction than we had discussed, I need to go look
> > at what he did. If you have the kdbm_pg module in the kernel when this
> > happens can you take the first argument of pagebuf_iowait and run the
> > pb command on it? From the stack below that would be:
> >
> > kdb> pb 0xcf724180
> >
> > Thanks for trying this stuff out for us.
> >
> > Steve
>
>

Hmm I think see part of the problem; this pagebuf is still ASYNC and DELWRI
previously pagebuf_delwri_flush was blindly unsetting both of these even if
it skipped doing the io.
pagebuf_iorequest will simply requeue the pagebuf if it is delay write
so in this case the io is probably never being issued.

The one thing I changed which I'm not sure it is correct: delwri_flush only
tries to get a conditional lock and therefore will never wait to get a lock, 
which may
be why the super block pagebuf is never marked un-delwri.

>
> kdb> pb 0xcf7e50c0
> page_buf_t at 0xcf7e50c0
>   pb_flags WRITE MAPPED PARTIAL ASYNC NONE DELWRI SYNC LOCKABLE MEM_ALLOCATED
>             FORCEIO
>   pb_target 0xcf7f2ac0 pb_hold 1 pb_next 0xceee8f00 pb_prev 0xceee80c0
>   pb_file_offset 0x0 pb_buffer_length 0x200 pb_addr 0xcf79c200
>   pb_bn 0x0 pb_count_desired 0x200
>   pb_io_remaining 0   pb_error 0 pb_mem 0xcfc25cc0
>   pb_iodonesema (-1,1) pb_sema (1,0) pincount (0)
> pb_fspriv 0xcec4bc10 pb_fspriv2 0x00000000
> kdb> reboot
>
> utz

--
Russell Cattelan
--
Digital Elves inc. -- Currently on loan to SGI
Linux XFS core developer.




<Prev in Thread] Current Thread [Next in Thread>