David Wolfskill wrote: > On Wed, Feb 03, 2010 at 07:40:06PM +0200, Alexander Motin wrote: >> David Wolfskill wrote: >>> On Wed, Feb 03, 2010 at 06:40:37AM -0800, David Wolfskill wrote: >>>> Just updated my build machine from r203376 to r203425, which seeme dto >>>> go well, but after I issued "shutdown -p now" (as I leave the machine >>>> off when it's not in use), I saw the following on the serial console: >>>> >>>> Uptime: 1m45s >>>> (noperiph:aacp0:0:0:0): Device power down failed >>>> (noperiph:aacp0:0:1:0): Device power down failed >>>> ... >> That was my change r203420. `sysctl kern.cam.power_down=0` should >> disable new behavior. It can be a bug of aac driver. Is it repeatable >> each time at the same place? > > Well, I just tried it a second time, and the failure mode appears > identical, yes. I won't (quite) claim that it's "repeatable each time > at the same place" yet, but the evidence certainly tends toward that > direction. > >>> Tried the same experiment with the laptop; didn't get the above failure, >>> but am seeing many (as in "hundreds") of >>> >>> atapi_poll called! >>> atapi_poll called! >> This looks like atapicam misfeature. I'll look on it. >> ... > > Cool; thanks! > > I'm quite willing to test patches &c. Attached patch implements poll method for atapicam. It is probably not good from the locking point of view. But it is better then nothing and seems enough for now, especially because atapicam is going to die. As there can be other controllers with poll problems, I've disabled this feature by default for now. -- Alexander Motin diff -ruNp ata.prev/atapi-cam.c ata/atapi-cam.c --- ata.prev/atapi-cam.c 2010-02-03 23:30:12.000000000 +0200 +++ ata/atapi-cam.c 2010-02-03 23:29:37.000000000 +0200 _at__at_ -682,8 +682,12 _at__at_ action_invalid: static void atapi_poll(struct cam_sim *sim) { - /* do nothing - we do not actually service any interrupts */ - printf("atapi_poll called!\n"); + struct atapi_xpt_softc *softc = + (struct atapi_xpt_softc*)cam_sim_softc(sim); + + mtx_unlock(&softc->state_lock); + ata_interrupt(softc->ata_ch); + mtx_lock(&softc->state_lock); } static voidReceived on Wed Feb 03 2010 - 20:40:28 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:00 UTC