libmbim-proxy using 100% CPU on a Dell Edge Gateway 3002

Bug #1851347 reported by Jesse Sung
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
HWE Next
Fix Released
Undecided
Jesse Sung
linux (Ubuntu)
Fix Committed
Undecided
Jesse Sung
Xenial
Fix Released
Undecided
Jesse Sung

Bug Description

== Impact ==
A Dell Edge Gateway 3002 user reported that `top` reports around 100% CPU usage for the libmbim-proxy process. Seen in at least 40% of their devices at some point during the last 6 months. The CPU keeps high at ~100% days or weeks, but does return back to normal without a reboot. The LTE connectivity is seemingly still working as usual.

The issue starts after an EPIPE error in the syslogs: 'cdc_mbim 1-3:1.12: nonzero urb status received: -EPIPE'.

== Fix ==
8fec9355a968 USB: cdc-wdm: ignore -EPIPE from GetEncapsulatedResponse
This has been in mainline kernel since 4.14.

== Testcase ==
Connect to the LTE network and see if libmbim-proxy uses 100% after some point.

== Risk of Regression ==
Low, since
1. Already tested by original reporter and no issue found after more than a week (usually it fails twice in a week).
2. Ignoring -EPIPE is the default behavior after 4.14.

CVE References

Jesse Sung (wenchien)
Changed in linux (Ubuntu Xenial):
status: New → In Progress
assignee: nobody → Jesse Sung (wenchien)
Changed in linux (Ubuntu):
status: In Progress → Fix Released
tags: added: oem-priority originate-from-1839516 plano
Jesse Sung (wenchien)
Changed in hwe-next:
status: New → Fix Released
assignee: nobody → Jesse Sung (wenchien)
Changed in linux (Ubuntu):
status: Fix Released → In Progress
Changed in linux (Ubuntu Xenial):
status: In Progress → Fix Committed
Jesse Sung (wenchien)
Changed in linux (Ubuntu):
status: In Progress → Fix Committed
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-xenial' to 'verification-done-xenial'. If the problem still exists, change the tag 'verification-needed-xenial' to 'verification-failed-xenial'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-xenial
Revision history for this message
Sultan Alsawaf (kerneltoast) wrote :

Jesse, could you please verify that this is fixed in -proposed? Thanks.

Jesse Sung (wenchien)
tags: added: verification-done-xenial
removed: verification-needed-xenial
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (12.8 KiB)

This bug was fixed in the package linux - 4.4.0-170.199

---------------
linux (4.4.0-170.199) xenial; urgency=medium

  * xenial/linux: 4.4.0-170.199 -proposed tracker (LP: #1852306)

  * update ENA driver to version 2.1.0 (LP: #1850175)
    - net: ena: fix: set freed objects to NULL to avoid failing future allocations
    - net: ena: fix swapped parameters when calling
      ena_com_indirect_table_fill_entry
    - net: ena: fix: Free napi resources when ena_up() fails
    - net: ena: fix incorrect test of supported hash function
    - net: ena: fix return value of ena_com_config_llq_info()
    - net: ena: improve latency by disabling adaptive interrupt moderation by
      default
    - net: ena: fix ena_com_fill_hash_function() implementation
    - net: ena: add handling of llq max tx burst size
    - net: ena: ethtool: add extra properties retrieval via get_priv_flags
    - net: ena: replace free_tx/rx_ids union with single free_ids field in
      ena_ring
    - net: ena: arrange ena_probe() function variables in reverse christmas tree
    - net: ena: add newline at the end of pr_err prints
    - net: ena: allow automatic fallback to polling mode
    - net: ena: add support for changing max_header_size in LLQ mode
    - net: ena: optimise calculations for CQ doorbell
    - net: ena: add good checksum counter
    - net: ena: use dev_info_once instead of static variable
    - net: ena: add MAX_QUEUES_EXT get feature admin command
    - net: ena: enable negotiating larger Rx ring size
    - net: ena: make ethtool show correct current and max queue sizes
    - net: ena: allow queue allocation backoff when low on memory
    - net: ena: add ethtool function for changing io queue sizes
    - net: ena: remove inline keyword from functions in *.c
    - net: ena: update driver version from 2.0.3 to 2.1.0
    - net: ena: Fix bug where ring allocation backoff stopped too late
    - Revert "net: ena: ethtool: add extra properties retrieval via
      get_priv_flags"
    - net: ena: don't wake up tx queue when down
    - net: ena: clean up indentation issue

  * Bionic update: upstream stable patchset 2019-08-01 (LP: #1838700) // update
    ENA driver to version 2.1.0 (LP: #1850175)
    - net: ena: gcc 8: fix compilation warning

  * Skip frame when buffer overflow on UVC camera (LP: #1849871)
    - media: uvcvideo: Mark buffer error where overflow

  * CVE-2018-20784
    - sched/fair: Fix infinite loop in update_blocked_averages() by reverting
      a9e7f6544b9c
    - sched/fair: Fix hierarchical order in rq->leaf_cfs_rq_list
    - sched/fair: Add tmp_alone_branch assertion
    - sched/fair: Fix insertion in rq->leaf_cfs_rq_list
    - sched/fair: Optimize update_blocked_averages()
    - sched/fair: Fix O(nr_cgroups) in the load balancing path

  * Xenial update: 4.4.200 upstream stable release (LP: #1852110)
    - kbuild: add -fcf-protection=none when using retpoline flags
    - regulator: ti-abb: Fix timeout in ti_abb_wait_txdone/ti_abb_clear_all_txdone
    - regulator: pfuze100-regulator: Variable "val" in pfuze100_regulator_probe()
      could be uninitialized
    - ASoc: rockchip: i2s: Fix RPM imbalance
    - ARM: dts: logicpd-torpedo-som: Remove tw...

Changed in linux (Ubuntu Xenial):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.