disk wait mystery

Ian Lepore ian at FreeBSD.org
Thu Jan 31 15:55:54 UTC 2013


On Thu, 2013-01-31 at 08:02 -0700, Warren Block wrote:
> On Thu, 31 Jan 2013, Gary Palmer wrote:
> 
> > On Thu, Jan 31, 2013 at 07:12:44AM -0700, Warren Block wrote:
> >> On Wed, 30 Jan 2013, Andrew wrote:
> >>
> >>> On 30 Jan 2013, at 17:05, Brett Wynkoop wrote:
> >>>
> >>>> I appreciate the education on this point!  I wonder if this should be
> >>>> considered a man page bug?
> >>>
> >>> The man page does say "(or other short term, uninterruptible) wait". I
> >>> don't know what sort of wait the kernel threads may or may not be in
> >>> but if they are in one, and its short-term then the man page is
> >>> correct. Maybe an FAQ entry though.
> >>
> >> If the man page is misleading or incomplete, it should be fixed.  Based
> >> on the source, the mention of disk at the start is misleading.  Maybe:
> >>
> >> D       Marks a process in short term, uninterruptible wait.
> >>
> >> Or
> >>
> >> D       Marks a process in short term, uninterruptible wait (typically,
> >>          disk wait).
> >>
> >> Which explains the "D" but may reintroduce the confusion.
> >
> > D       Marks a process in short term, uninterruptible wait (In non-kernel
> >        processes, this is typically waiting on disk I/O)
> 
> The followup question that creates is "what are kernel threads waiting
> on?"  Which is covered by the uninterruptable part earlier.  I think the
> "typically" handles it without creating more questions.
> 
> Leaving out the redundant "Marks a process" wording:
> 
> D	Disk wait, or other short-term, uninterruptable wait.
> 
> "disk wait" was the original term in that man page.  "Also shown for 
> uninterruptable kernel threads." is just repeating.

If there's going to be any attempt to reconcile the use of the letter
'D' I think the term "device" would be more accurate these days than
"disk".  

>From a glance at the code, I think this state would be reported for any
userland thread that's sleeping in a driver that called one of the
sleep(9) family functions without the PCATCH flag which allows signals
to interrput the sleep so they can be delivered to userland.  For kernel
threads I think the PCATCH part is moot and it's just a thread in a
"short" sleep (for some definition of short).

-- Ian




More information about the freebsd-arm mailing list