ohci-pci: frame counter not updating; disabled

Bug #1634737 reported by Brent Taylor on 2016-10-19
28
This bug affects 5 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Medium
Unassigned
Yakkety
Medium
Unassigned

Bug Description

I've been running Ubuntu 16.04 inside a VirtualBox (version 5.1.6 r110634 (Qt5.5.1)) running on Windows 10 Home (version 1607 os build 14393.321) host without any incident until I upgraded to Ubuntu 16.10. I have a USB to Serial converter (pl2303) connected to a development board that is handled by the Ubuntu Linux Kernel. After upgrading to Ubuntu 16.10 the ohci-hcd driver reported that the "frame counter not updated; disabled" followed by "HC died; cleaning up" which would kill my terminal application (kermit) that was connected to the pl2303 device.

When the issue was first noticed, I rebooted the Linux virtual machine and booted the previous kernel (4.4.0-43-generic) and was able to use the pl2303 to communicate to my development board just fine. I switched back to the 4.8.0-22-generic kernel and the ohci-hcd driver reported the same problem.

I looked at the differences between the ohci-hcd.c and pl2303.[ch] drivers between 4.9-rc1 and the 4.4.0 linux kernels and the pl2303.[ch] files didn't have any changes, and only a couple of changes were made to ohci-hcd.c but nothing that would indicate an issue.

ProblemType: Bug
DistroRelease: Ubuntu 16.10
Package: linux-image-4.8.0-22-generic 4.8.0-22.24
ProcVersionSignature: Ubuntu 4.8.0-22.24-generic 4.8.0
Uname: Linux 4.8.0-22-generic x86_64
AlsaVersion: Advanced Linux Sound Architecture Driver Version k4.8.0-22-generic.
AplayDevices: Error: [Errno 2] No such file or directory: 'aplay'
ApportVersion: 2.20.3-0ubuntu8
Architecture: amd64
ArecordDevices: Error: [Errno 2] No such file or directory: 'arecord'
AudioDevicesInUse: Error: command ['fuser', '-v', '/dev/snd/by-path', '/dev/snd/pcmC0D1c', '/dev/snd/pcmC0D0c', '/dev/snd/pcmC0D0p', '/dev/snd/controlC0', '/dev/snd/seq', '/dev/snd/timer'] failed with exit code 1:
Card0.Amixer.info: Error: [Errno 2] No such file or directory: 'amixer'
Card0.Amixer.values: Error: [Errno 2] No such file or directory: 'amixer'
Date: Tue Oct 18 22:30:12 2016
HibernationDevice: RESUME=/dev/mapper/cartman--vg-swap_1
InstallationDate: Installed on 2014-08-02 (808 days ago)
InstallationMedia: Ubuntu-Server 14.04.1 LTS "Trusty Tahr" - Release amd64 (20140722.3)
IwConfig:
 lo no wireless extensions.

 eth0 no wireless extensions.
Lsusb: Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
MachineType: innotek GmbH VirtualBox
ProcEnviron:
 TERM=xterm
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=en_US.UTF-8
 SHELL=/bin/bash
ProcFB: 0 vboxdrmfb
ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-4.8.0-22-generic root=/dev/mapper/hostname--vg-root ro nomdmonddf nomdmonisw nomdmonddf nomdmonisw nomdmonddf nomdmonisw
RelatedPackageVersions:
 linux-restricted-modules-4.8.0-22-generic N/A
 linux-backports-modules-4.8.0-22-generic N/A
 linux-firmware 1.161
RfKill: Error: [Errno 2] No such file or directory: 'rfkill'
SourcePackage: linux
UpgradeStatus: Upgraded to yakkety on 2016-10-15 (3 days ago)
dmi.bios.date: 12/01/2006
dmi.bios.vendor: innotek GmbH
dmi.bios.version: VirtualBox
dmi.board.name: VirtualBox
dmi.board.vendor: Oracle Corporation
dmi.board.version: 1.2
dmi.chassis.type: 1
dmi.chassis.vendor: Oracle Corporation
dmi.modalias: dmi:bvninnotekGmbH:bvrVirtualBox:bd12/01/2006:svninnotekGmbH:pnVirtualBox:pvr1.2:rvnOracleCorporation:rnVirtualBox:rvr1.2:cvnOracleCorporation:ct1:cvr:
dmi.product.name: VirtualBox
dmi.product.version: 1.2
dmi.sys.vendor: innotek GmbH
---
ApportVersion: 2.20.3-0ubuntu8
Architecture: amd64
DistroRelease: Ubuntu 16.10
InstallationDate: Installed on 2014-08-02 (810 days ago)
InstallationMedia: Ubuntu-Server 14.04.1 LTS "Trusty Tahr" - Release amd64 (20140722.3)
Package: linux (not installed)
ProcEnviron:
 TERM=xterm
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=en_US.UTF-8
 SHELL=/bin/bash
Tags: yakkety
Uname: Linux 4.9.0-040900rc1-generic x86_64
UnreportableReason: The running kernel is not an Ubuntu kernel
UpgradeStatus: Upgraded to yakkety on 2016-10-15 (4 days ago)
UserGroups: adm cdrom dialout dip lpadmin plugdev sambashare sudo users vboxsf
_MarkForUpload: True

Brent Taylor (motobud) wrote :

This change was made by a bot.

Changed in linux (Ubuntu):
status: New → Confirmed
Joseph Salisbury (jsalisbury) wrote :

Would it be possible for you to test the latest upstream kernel? Refer to https://wiki.ubuntu.com/KernelMainlineBuilds . Please test the latest v4.9 kernel[0].

If this bug is fixed in the mainline kernel, please add the following tag 'kernel-fixed-upstream'.

If the mainline kernel does not fix this bug, please add the tag: 'kernel-bug-exists-upstream'.

Once testing of the upstream kernel is complete, please mark this bug as "Confirmed".

Thanks in advance.

[0] http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9-rc1/

Changed in linux (Ubuntu):
importance: Undecided → Medium
Changed in linux (Ubuntu Yakkety):
importance: Undecided → Medium
status: New → Incomplete
Changed in linux (Ubuntu):
status: Confirmed → Incomplete

I think this is somewhat related to this bug:
https://bugs.launchpad.net/ubuntu/+bug/1635012

Brent Taylor (motobud) on 2016-10-20
tags: added: kernel-bug-exists-upstream

apport information

tags: added: apport-collected
description: updated
Brent Taylor (motobud) wrote :

Please ignore all the information in JournalErrors.txt that relate to the sshd process. I had some trouble with w3m and submitting the apport-collect because I'm running Ubuntu 16.10 without a GUI.

Brent Taylor (motobud) on 2016-10-20
Changed in linux (Ubuntu Yakkety):
status: Incomplete → Confirmed
Changed in linux (Ubuntu):
status: Incomplete → Confirmed
Michael Thayer (michael-thayer) wrote :

The problem is not caused by any changes in the Linux OHCI or USB code (and obviously the VirtualBox USB emulation did not change either). It's almost certainly triggered by the timer wheel rework which went into the 4.8 kernel.

There is a watchdog routine in the OHCI driver which is meant to be run every 250 milliseconds and check whether the frame counter is updating (which happens at most every millisecond). In Linux 4.8, the watchdog routine can be run again after 4 milliseconds or possibly even less. If it sees the same frame counter value twice, it declares the HC dead and unloads the driver. That is the problem.

The "irq 22: nobody cared" and subsequent "Disabling IRQ #22" errors are caused by a bug in VirtualBox which is only triggered by unloading the OHCI driver. The "frame counter not updating" error is the real issue and highly likely to be an unintentional change in Linux 4.8 behavior. As far as the OHCI driver is concerned, it's OK to run the watchdog routine later than requested, but it must not be run too soon.

And yes, https://bugs.launchpad.net/ubuntu/+bug/1635012 is almost certainly the same problem occurring on physical hardware.

Brent Taylor (motobud) wrote :

After noticing the following commit https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=a8006bd915095c40098bfcb684cc2bdfb414dc0d I tested the latest mainline build (4.9.0-040900rc3-generic) and the issue has not occurred after several hours of usage. Before the commit, the issue would occur as soon as the ohci-hcd was in use.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers