Re: lpt stopped working

From: John Baldwin <jhb_at_freebsd.org>
Date: Fri, 6 Feb 2009 09:58:37 -0500
On Friday 06 February 2009 7:43:50 am Christian Gusenbauer wrote:
> Hi John!
> 
> Sorry, it seems that I missed your previous mail, so my answer comes here 
> right now.
> 
> On Friday 06 February 2009, Beech Rintoul wrote:
> > On Wednesday 04 February 2009 05:14:10 John Baldwin wrote:
> > > On Monday 02 February 2009 10:43:39 am Christian Gusenbauer wrote:
> > > > Hi!
> > > >
> > > > Since the recent update (svn r187576) to the ppbus/ppc code my printer
> > >
> > > stopped
> > >
> > > > working. Every request seems to hang forever in ppb_request_bus waiting
> > > > for ppb->ppc_lock (at least 'top' tells me that it's hanging in state
> > > > 'ppbreq').
> > >
> > > Can you use procstat to get a stack trace of the hung thread?
> 
> # procstat -k 1199
>   PID    TID COMM             TDNAME           KSTACK
>  1199 100184 cat              -                mi_switch sleepq_switch 
> sleepq_catch_signals sleepq_wait_sig _sleep ppb_request_bus lpt_request_ppbus 
> lptwrite devfs_write_f dofilewrite kern_writev write syscall Xint0x80_syscall

Ok, can you run kgdb against your running kernel (Just run 'kgdb' without any
arguments) and do the following:

(kgdb) p *(struct ppb_data *)ppbus_devclass->devices[0]->softc

Assuming the ppb_owner is not 0, can you then do this:

(kgdb) p *(device_t)((struct ppb_data *)ppbus_devclass->devices[0]->softc)->ppb_owner

-- 
John Baldwin
Received on Fri Feb 06 2009 - 13:59:15 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:41 UTC