On 12/09/13(Thu) 08:16, RD Thrush wrote:
> On 09/12/13 05:15, Martin Pieuchot wrote:
> > [...]
> > 
> > Could you try the diff below on the v1 machine and tell me if it helps?
> 
> Thanks, I don't think it helped...

By looking at your new log, I believe it did ;)

> After booting the new kernel, upon first use of the kvm switch, the serial
> console began filling with diagnostics which (to my untrained eye) looked
> similar to the pre-patch session. v1-2.  Since I was unable to remotely ssh, I
> interrupted ddb and set ehcidebug=1 but was unable to remotely ssh.  
> ehcidebug=0
> allowed remote ssh and normal operations resumed.
> 
> <http://arp.thrush.com/openbsd/ehci_idone/v1/v1-3> has the associated serial
> console.
> 
> Let me know if I can provide further info.

Could you reproduce once again this manipulation with the diff below
applied on top of the previous one?

> >> WRT to the other machine, x4, I installed the patch and have not yet had a
> >> problem.  However, with ehcidebug=5, the following 2 line message is issued
> >> about once per second:
> >> ehci_intrlist_timeout
> >> ehci_check_intr: ex=0xffff800000238c00
> > 
> > That's expected, thanks for confirming the problem cannot be reproduced
> > with this diff with an ATI controller.
> 
> Since the problem has been intermittent since Nov 2012, I'm not sure enough
> time/kvm usage has occurred for certainty about that fix.

Since this diff is a backport of what has been done in FreeBSD and I
already had a similar report from another developer with the same
controller, I'm quite confident.

> I will run a custom MP kernel with your pci/ehci_pci.c patch on the x4 machine
> whenever I install a new snapshot and let you know if I notice the ehci_idone 
> issue.

Please let me know.

Index: uhidev.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/usb/uhidev.c,v
retrieving revision 1.44
diff -u -p -r1.44 uhidev.c
--- uhidev.c    7 May 2013 08:44:38 -0000       1.44
+++ uhidev.c    12 Sep 2013 14:25:52 -0000
@@ -393,7 +393,7 @@ uhidev_intr(struct usbd_xfer *xfer, void
        }
 #endif
 
-       if (status == USBD_CANCELLED)
+       if (status == USBD_CANCELLED || status == USBD_IOERROR)
                return;
 
        if (status != USBD_NORMAL_COMPLETION) {

Reply via email to