Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: vmlocking2 branch merged



On Sat, Jan 05, 2008 at 02:42:28AM +0000, Andrew Doran wrote:
> On Thu, Jan 03, 2008 at 10:39:19PM +0100, Juergen Hannken-Illjes wrote:
> 
> > On Wed, Jan 02, 2008 at 02:55:06PM +0000, Andrew Doran wrote:
> > > Hi,
> > > 
> > > The vmlocking2 branch was merged into -current earlier today.
> > 
> > From this merge I get:
> > 
> >     syncing disks... 3 done
> >     unmounting file systems... done
> >     ahc1: board is not responding
> >     cmd fail
> >     ahc1:SCB 0x8 - timed out
> >     >>>>>>>>>>>>>>>>>> Dump Card State Begins <<<<<<<<<<<<<<<<<
> >     ahc1: Dumping Card State in Data-out phase, at SEQADDR 0x0
> >     Card was paused
> > 
> > Stack trace is
> > 
> >     ahc_timeout(c11cb1f8,c117901c,91,9e,5) at netbsd:ahc_timeout+0x3ff
> >     ahc_execute_scb(caf09180,c108cc1c,a,cbae99f0,c0af49a0) at 
> > netbsd:ahc_execute_scb+0x897
> >     ahc_action(c1179078,0,c108cb88,1,7) at netbsd:ahc_action+0x517
> >     scsipi_run_queue(c108cb88,cbae9ae2,a,c066088e,c0a773a4) at 
> > netbsd:scsipi_run_queue+0x155
> >     scsipi_execute_xs(c108cb88,cbae9ae2,a,0,0) at 
> > netbsd:scsipi_execute_xs+0x164
> >     sd_flush(c11d6e00,c0a58500,cbae9b1c,c04807f6,cbae9c30) at 
> > netbsd:sd_flush+0x85
> >     sd_suspend(c11d6e00,c11d6e00,cbae9b3c,c04592ba,c11d6e00) at 
> > netbsd:sd_suspend+0x32
> >     device_pmf_driver_suspend(c11d6e00,c11d6e1c,cbae9b3c,c0466bfa,0) at 
> > netbsd:device_pmf_driver_suspend+0x28
> >     pmf_system_shutdown(7,0,0,c0a5cc48,cba220a0) at 
> > netbsd:pmf_system_shutdown+0xba
> >     cpu_reboot(0,0,0,0,0) at netbsd:cpu_reboot+0x1b
> > 
> > Hardware in question:
> > 
> >     ahc1 at pci0 dev 15 function 0: Adaptec 29160N Ultra160 SCSI adapter
> >     ahc1: interrupting at irq 11
> >     ahc1: aic7892: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBs
> >     scsibus0 at ahc1: 16 targets, 8 luns per target
> >     scsibus0: waiting 2 seconds for devices to settle...
> >     sd0 at scsibus0 target 0 lun 0: <IBM, DPSS-309170N, S96H> disk fixed
> >     sd0: 8748 MB, 14627 cyl, 3 head, 408 sec, 512 bytes/sect x 17916240 
> > sectors
> >     sd0: sync (12.50ns offset 63), 16-bit (160.000MB/s) transfers, tagged 
> > queueing
> >     sd1 at scsibus0 target 1 lun 0: <IBM, DDYS-T18350N, S96H> disk fixed
> >     sd1: 17501 MB, 15110 cyl, 6 head, 395 sec, 512 bytes/sect x 35843670 
> > sectors
> >     sd1: sync (12.50ns offset 63), 16-bit (160.000MB/s) transfers, tagged 
> > queueing
> > 
> > I tried a kernel from 2008/1/2 11:30 UTC (works) and from 12:00 UTC (fails).
> > Config is:
> 
> I haven't changed anything in this path. Incidentally, requiring polling
> operation during shutdown is insane, the system is still alive if quiet.
> 
> Andrew

Somewhere you did ...
>From reboot I get the call chain

    sys_reboot -> cpu_reboot -> vfs_shutdown -> vfs_unmountall ->
        dounmount -> ffs_unmount -> VOP_CLOSE -> spec_close

trying to close the root spec device.  Here in spec_close() we get
"vcount == 2" and therefore bdev_close() doesn't get called and the
root disk misses one close and pmf_system_shutdown() needs to flush the
cache.
So with vmlocking2 there is a dangling reference to the root device's vnode.
Now we only need to know, where it is ...

-- 
Juergen Hannken-Illjes - hannken%eis.cs.tu-bs.de@localhost - TU Braunschweig 
(Germany)



Home | Main Index | Thread Index | Old Index