Alan Stern wrote:

On Thu, 9 Jun 2005, Adam Kropelin wrote:

Pete Zaitcev wrote:
OK, here is the interesting part of the trace.
Thanks for the decode...

Up to this point, something hits the UPS with control messages every 4ms (sounds crazy, but here it is: the daemon is obviously out of control).
That is insane. No wonder the thing locks up eventually.

Christian, back in mid-May I suggested a way you might be able to reproduce the lockup faster:

   | One other thing to try on the apcupsd end is to edit
   | src/drivers/usb/linux/linux-usb.c and modify the
   | pusb_ups_check_state() function. Replace the entire
   | body of that function with "return 1;" and| then
   | rebuild apcupsd and run it.

You're not still running with that change, are you? It would certainly account for why the UPS is getting blasted with control transfers. But I don't think this is the case since we'd see them in the HID debug output.

Something else to try: Turn on the usbfs_snoop module parameter for usbcore.ko. The system log will then show if any processes are using usbfs to communicate with the UPS.

Alan Stern


Here another one, btw I did pass usbfs_snoop on to the kernel during boot, but have no entries in my logfile. Hmmm, usbcore is not a module so usbcore.usbfs_snoop=1 should have done the job isn't it??? Currently my apcupsd is hanging in state 'D' again ;-) whats next? FYI, I have removed all previous patches given for testing.

-- Martin


HC status
  usbcmd    =     00c1   Maxp64 CF RS 
  usbstat   =     0000   
  usbint    =     000f
  usbfrnum  =   (0)b28
  flbaseadd = 1dd44b28
  sof       =       40
  stat1     =     01a5   LowSpeed Enabled Connected
  stat2     =     0080  
Frame List
Skeleton QH's
- skel_int128_qh
    [de2d4000] link (1e2d4152) element (00000001)
      urbp == NULL
- skel_int64_qh
    [de2d4030] link (1e2d4242) element (00000001)
      urbp == NULL
    [de2d4240] link (1e2d4152) element (1f3d2000)
      0: [df3d2000] link (00000001) e3 LS IOC Active NAK Length=7ff MaxLen=2 
DT1 EndPt=1 Dev=2, PID=69(IN) (buf=1f0b9000)
- skel_int32_qh
    [de2d4060] link (1e2d4152) element (00000001)
      urbp == NULL
- skel_int16_qh
    [de2d4090] link (1e2d4152) element (00000001)
      urbp == NULL
- skel_int8_qh
    [de2d40c0] link (1e2d4152) element (00000001)
      urbp == NULL
- skel_int4_qh
    [de2d40f0] link (1e2d4152) element (00000001)
      urbp == NULL
- skel_int2_qh
    [de2d4120] link (1e2d4152) element (00000001)
      urbp == NULL
- skel_int1_qh
    [de2d4150] link (1e2d4182) element (00000001)
      urbp == NULL
- skel_ls_control_qh
    [de2d4180] link (1e2d42a2) element (00000001)
      urbp == NULL
    [de2d42a0] link (1e2d41b2) element (1f3d20c0)
     Element != First TD
      0: [df3d2080] link (1f3d20c0) e3 LS Length=7 MaxLen=7 DT0 EndPt=0 Dev=2, 
PID=2d(SETUP) (buf=1deb2020)
      1: [df3d20c0] link (1f3d2100) e3 SPD LS Active NAK Length=7ff MaxLen=7 
DT1 EndPt=0 Dev=2, PID=69(IN) (buf=1f0b9100)
      2: [df3d2100] link (00000001) e3 LS IOC Active Length=0 MaxLen=7ff DT1 
EndPt=0 Dev=2, PID=e1(OUT) (buf=00000000)
- skel_fs_control_qh
    [de2d41b0] link (1e2d41e2) element (00000001)
      urbp == NULL
- skel_bulk_qh
    [de2d41e0] link (1e2d4212) element (00000001)
      urbp == NULL
- skel_term_qh
    [de2d4210] link (00000001) element (1dd54000)
      urbp == NULL
Main list URBs:
  1: urb_priv [dc121330] urb [df0ba380] qh [de2d42a0] Dev=2 EP=0(IN) CTL TDs=3 
queued URBs=0
  2: urb_priv [dc12135c] urb [df0ba400] qh [de2d4240] Dev=2 EP=1(IN) INT TDs=1 
queued URBs=0
Remove list URBs: Empty
Complete list URBs: Empty

Reply via email to