Booting takes very long time on Intel Braswell caused by eMMC

Bug #1454013 reported by Adam Lee
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
HWE Next
Fix Released
High
Adam Lee
linux (Ubuntu)
Fix Released
High
Adam Lee
Trusty
Fix Released
High
Adam Lee
Utopic
Fix Released
High
Adam Lee
Vivid
Fix Released
High
Adam Lee
Wily
Fix Released
High
Adam Lee

Bug Description

This patch could fix this issue, otherwise booting will take very long time.

4e93b9a6abc0d028daf3c8a00cb77b679d8a4df4
mmc: card: Don't access RPMB partitions for normal read/write
During kernel boot, it will try to read some logical sectors
of each block device node for the possible partition table.

But since RPMB partition is special and can not be accessed
by normal eMMC read / write CMDs, it will cause below error
messages during kernel boot:
...
 mmc0: Got data interrupt 0x00000002 even though no data operation was in progress.
 mmcblk0rpmb: error -110 transferring data, sector 0, nr 32, cmd response 0x900, card status 0xb00
 mmcblk0rpmb: retrying using single block read
 mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900
 mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900
 mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900
 mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900
 mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900
 mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900
 end_request: I/O error, dev mmcblk0rpmb, sector 0
 Buffer I/O error on device mmcblk0rpmb, logical block 0
 end_request: I/O error, dev mmcblk0rpmb, sector 8
 Buffer I/O error on device mmcblk0rpmb, logical block 1
 end_request: I/O error, dev mmcblk0rpmb, sector 16
 Buffer I/O error on device mmcblk0rpmb, logical block 2
 end_request: I/O error, dev mmcblk0rpmb, sector 24
 Buffer I/O error on device mmcblk0rpmb, logical block 3
...

This patch will discard the access request in eMMC queue if
it is RPMB partition access request. By this way, it avoids
trigger above error messages.

Fixes: 090d25fe224c ("mmc: core: Expose access to RPMB partition")
Signed-off-by: Yunpeng Gao <email address hidden>
Signed-off-by: Chuanxiao Dong <email address hidden>
Tested-by: Michael Shigorin <email address hidden>
Signed-off-by: Ulf Hansson <email address hidden>

CVE References

Adam Lee (adam8157)
Changed in linux (Ubuntu):
importance: Medium → High
Changed in hwe-next:
importance: Undecided → High
assignee: nobody → Adam Lee (adam8157)
Adam Lee (adam8157)
Changed in hwe-next:
status: New → In Progress
Revision history for this message
Adam Lee (adam8157) wrote :

it needs lots of other commits too, makes no sense to backport them all, especially we don't have plan to support braswell in trusty 3.13

Changed in linux (Ubuntu):
status: In Progress → Won't Fix
Changed in hwe-next:
status: In Progress → Won't Fix
Adam Lee (adam8157)
no longer affects: linux (Ubuntu Wily)
no longer affects: linux (Ubuntu Vivid)
Changed in linux (Ubuntu Utopic):
status: New → Won't Fix
Changed in linux (Ubuntu Trusty):
status: New → Won't Fix
Revision history for this message
Adam Lee (adam8157) wrote :

Root cause was found and truns out only one patch could fix this issue, reopen then.

description: updated
summary: - Need support for Intel Braswell eMMC
+ Booting takes very long time on Intel Braswell caused by eMMC
description: updated
description: updated
Changed in hwe-next:
status: Won't Fix → In Progress
Changed in linux (Ubuntu):
status: Won't Fix → In Progress
Changed in linux (Ubuntu Trusty):
status: Won't Fix → In Progress
Changed in linux (Ubuntu Utopic):
status: Won't Fix → In Progress
Revision history for this message
Adam Lee (adam8157) wrote :

patch has been submitted to kernel-team@

Adam Lee (adam8157)
Changed in linux (Ubuntu Utopic):
importance: Undecided → High
Changed in linux (Ubuntu Trusty):
importance: Undecided → High
assignee: nobody → Adam Lee (adam8157)
Changed in linux (Ubuntu Utopic):
assignee: nobody → Adam Lee (adam8157)
Brad Figg (brad-figg)
Changed in linux (Ubuntu Trusty):
status: In Progress → Fix Committed
Changed in linux (Ubuntu Utopic):
status: In Progress → Fix Committed
Changed in linux (Ubuntu Vivid):
status: New → Fix Committed
Adam Lee (adam8157)
Changed in linux (Ubuntu Vivid):
importance: Undecided → High
assignee: nobody → Adam Lee (adam8157)
Brad Figg (brad-figg)
tags: added: verification-done-trusty
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (16.1 KiB)

This bug was fixed in the package linux - 3.13.0-53.88

---------------
linux (3.13.0-53.88) trusty; urgency=low

  [ Brad Figg ]

  * Release Tracking Bug
    - LP: #1454785

  [ Upstream Kernel Changes ]

  * mmc: card: Don't access RPMB partitions for normal read/write
    - LP: #1454013

linux (3.13.0-53.87) trusty; urgency=low

  [ Luis Henriques ]

  * Release Tracking Bug
    - LP: #1452736

  [ dann frazier ]

  * [Config] CONFIG_{EFI_PARAMS_FROM_FDT,GENERIC_EARLY_IOREMAP,LIBFDT}=y
    - LP: #1441876
  * Move get_dram_base to arm private file
    - LP: #1441876
  * arm64: Implement efi_enabled()
    - LP: #1441876
  * [Config] CONFIG_RTC_DRV_EFI=y on arm64
    - LP: #1441291

  [ Kamal Mostafa ]

  * Fix "mei: me: release hw from reset only during the reset flow"
    - LP: #1450813

  [ Stefan Bader ]

  * SAUCE: vesafb: Set mtrr:3 (write-combining) as default
    - LP: #1434581

  [ Upstream Kernel Changes ]

  * Revert "net: cx82310_eth: use common match macro"
    - LP: #1451900
  * netfilter: nf_conntrack: reserve two bytes for nf_ct_ext->len
    - LP: #1442080
    - CVE-2014-9715
  * add generic fixmap.h
    - LP: #1441876
  * mm: create generic early_ioremap() support
    - LP: #1441876
  * arm64: initialize pgprot info earlier in boot
    - LP: #1441876
  * arm64: add early_ioremap support
    - LP: #1441876
  * arm64: fixmap: fix missing sub-page offset for earlyprintk
    - LP: #1441876
  * efi: create memory map iteration helper
    - LP: #1441876
  * efi: Add get_dram_base() helper function
    - LP: #1441876
  * lib: add fdt_empty_tree.c
    - LP: #1441876
  * doc: efi-stub.txt updates for ARM
    - LP: #1441876
  * efi: add helper function to get UEFI params from FDT
    - LP: #1441876
  * arm64: Add function to create identity mappings
    - LP: #1441876
  * efi: Add shared FDT related functions for ARM/ARM64
    - LP: #1441876
  * arm64: add EFI runtime services
    - LP: #1441876
  * doc: arm: add UEFI support documentation
    - LP: #1441876
  * arm64: efi: add EFI stub
    - LP: #1441876
  * doc: arm64: add description of EFI stub support
    - LP: #1441876
  * efi/arm64: ignore dtb= when UEFI SecureBoot is enabled
    - LP: #1441876
  * arm64: efi: only attempt efi map setup if booting via EFI
    - LP: #1441876
  * PCI: Don't clear ASPM bits when the FADT declares it's unsupported
    - LP: #1441335
  * regmap: Skip read-only registers in regcache_sync()
    - LP: #1448830
  * rtc: ia64: allow other architectures to use EFI RTC
    - LP: #1441291
  * rtc: Disable EFI rtc for x86
    - LP: #1441291
  * mei: me: fix hw ready reset flow
    - LP: #1450813
  * Input: serio - add firmware_id sysfs attribute
    - LP: #1414930
  * Input: i8042 - add firmware_id support
    - LP: #1414930
  * Input: Add INPUT_PROP_TOPBUTTONPAD device property
    - LP: #1414930
  * Input: synaptics - report INPUT_PROP_TOPBUTTONPAD property
    - LP: #1414930
  * Input: synaptics - add a matches_pnp_id helper function
    - LP: #1414930
  * Input: synaptics - change min/max quirk table to pnp-id matching
    - LP: #1414930
  * Input: psmouse - add psmouse_matches_pnp_id helper function
    - LP: #1414930
  * Input: synaptics - split synapt...

Changed in linux (Ubuntu Trusty):
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (16.0 KiB)

This bug was fixed in the package linux - 3.19.0-20.20

---------------
linux (3.19.0-20.20) vivid; urgency=low

  [ Luis Henriques ]

  * Release Tracking Bug
    - LP: #1459957
  * Revert "SAUCE: Call i915_bpo specific functions from the hda driver"
    - LP: #1457369

linux (3.19.0-19.19) vivid; urgency=low

  [ Brad Figg ]

  * Release Tracking Bug
    - LP: #1458964

  [ Duc Dang ]

  * SAUCE: (no-up) [PCIE] APM X-Gene: Remove debug messages in MSI
    interrupt handler path.
    - LP: #1451593

  [ Luis Henriques ]

  * [Config] updateconfigs for 3.19.7 stable update

  [ Paolo Pisati ]

  * [Config] armhf: CPUFREQ_DT=y
    - LP: #1457781
  * annotations: enforce CPUFREQ_DT
    - LP: #1457781

  [ Tanmay Inamdar ]

  * SAUCE: (no-up) Add MSI/MSI-X driver for APM PCI bus
    - LP: #1451593

  [ Timo Aaltonen ]

  * SAUCE: i915_bpo: Rebase to v4.1-rc4.
    - LP: #1456123
  * SAUCE: i915_bpo: Revert dma-buf: cleanup dma_buf_export() to make it
    easily extensible
    - LP: #1456123

  [ Tuan Phan ]

  * SAUCE: (no-up) pci-xgene-msi: fixed deadlock in irq_set_affinity
    - LP: #1451593

  [ Upstream Kernel Changes ]

  * Revert "nfs: replace nfs_add_stats with nfs_inc_stats when add one"
    - LP: #1454699
  * cpufreq: powernv: Report cpu frequency throttling
    - LP: #1452547
  * x86: kvm: Revert "remove sched notifier for cross-cpu migrations"
    - LP: #1450584
  * x86: vdso: fix pvclock races with task migration
    - LP: #1450584
  * ip_forward: Drop frames with attached skb->sk
    - LP: #1454699
  * net: add skb_checksum_complete_unset
    - LP: #1454699
  * ppp: call skb_checksum_complete_unset in ppp_receive_frame
    - LP: #1454699
  * tcp: fix possible deadlock in tcp_send_fin()
    - LP: #1454699
  * tcp: avoid looping in tcp_send_fin()
    - LP: #1454699
  * net: do not deplete pfmemalloc reserve
    - LP: #1454699
  * net: fix crash in build_skb()
    - LP: #1454699
  * pxa168: fix double deallocation of managed resources
    - LP: #1454699
  * net/mlx4_en: Prevent setting invalid RSS hash function
    - LP: #1454699
  * md: fix md io stats accounting broken
    - LP: #1454699
  * x86/asm/decoder: Fix and enforce max instruction size in the insn
    decoder
    - LP: #1454699
  * sched/idle/x86: Restore mwait_idle() to fix boot hangs, to improve
    power savings and to improve performance
    - LP: #1454699
  * sched/idle/x86: Optimize unnecessary mwait_idle() resched IPIs
    - LP: #1454699
  * perf/x86/intel: Fix Core2,Atom,NHM,WSM cycles:pp events
    - LP: #1454699
  * KVM: x86: Fix MSR_IA32_BNDCFGS in msrs_to_save
    - LP: #1454699
  * Btrfs: fix log tree corruption when fs mounted with -o discard
    - LP: #1454699
  * btrfs: don't accept bare namespace as a valid xattr
    - LP: #1454699
  * Btrfs: fix inode eviction infinite loop after cloning into it
    - LP: #1454699
  * Btrfs: fix inode eviction infinite loop after extent_same ioctl
    - LP: #1454699
  * usb: gadget: printer: enqueue printer's response for setup request
    - LP: #1454699
  * KVM: s390: fix handling of write errors in the tpi handler
    - LP: #1454699
  * KVM: s390: reinjection of irqs can fail in the tpi handler
    - LP: #1454699
  * KVM:...

Changed in linux (Ubuntu Wily):
status: In Progress → Fix Released
Revision history for this message
Luis Henriques (henrix) 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-utopic' to 'verification-done-utopic'.

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-utopic
Revision history for this message
Luis Henriques (henrix) 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-vivid' to 'verification-done-vivid'.

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-vivid
Revision history for this message
Tsung-Han Lin (tsunghan-tw) wrote :

Tested trusty, utopic and vivid kernels on the problematic platform, they all work and solve the long boot time issue.

tags: added: verification-done-utopic verification-done-vivid
removed: verification-needed-utopic verification-needed-vivid
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (16.0 KiB)

This bug was fixed in the package linux - 3.19.0-20.20

---------------
linux (3.19.0-20.20) vivid; urgency=low

  [ Luis Henriques ]

  * Release Tracking Bug
    - LP: #1459957
  * Revert "SAUCE: Call i915_bpo specific functions from the hda driver"
    - LP: #1457369

linux (3.19.0-19.19) vivid; urgency=low

  [ Brad Figg ]

  * Release Tracking Bug
    - LP: #1458964

  [ Duc Dang ]

  * SAUCE: (no-up) [PCIE] APM X-Gene: Remove debug messages in MSI
    interrupt handler path.
    - LP: #1451593

  [ Luis Henriques ]

  * [Config] updateconfigs for 3.19.7 stable update

  [ Paolo Pisati ]

  * [Config] armhf: CPUFREQ_DT=y
    - LP: #1457781
  * annotations: enforce CPUFREQ_DT
    - LP: #1457781

  [ Tanmay Inamdar ]

  * SAUCE: (no-up) Add MSI/MSI-X driver for APM PCI bus
    - LP: #1451593

  [ Timo Aaltonen ]

  * SAUCE: i915_bpo: Rebase to v4.1-rc4.
    - LP: #1456123
  * SAUCE: i915_bpo: Revert dma-buf: cleanup dma_buf_export() to make it
    easily extensible
    - LP: #1456123

  [ Tuan Phan ]

  * SAUCE: (no-up) pci-xgene-msi: fixed deadlock in irq_set_affinity
    - LP: #1451593

  [ Upstream Kernel Changes ]

  * Revert "nfs: replace nfs_add_stats with nfs_inc_stats when add one"
    - LP: #1454699
  * cpufreq: powernv: Report cpu frequency throttling
    - LP: #1452547
  * x86: kvm: Revert "remove sched notifier for cross-cpu migrations"
    - LP: #1450584
  * x86: vdso: fix pvclock races with task migration
    - LP: #1450584
  * ip_forward: Drop frames with attached skb->sk
    - LP: #1454699
  * net: add skb_checksum_complete_unset
    - LP: #1454699
  * ppp: call skb_checksum_complete_unset in ppp_receive_frame
    - LP: #1454699
  * tcp: fix possible deadlock in tcp_send_fin()
    - LP: #1454699
  * tcp: avoid looping in tcp_send_fin()
    - LP: #1454699
  * net: do not deplete pfmemalloc reserve
    - LP: #1454699
  * net: fix crash in build_skb()
    - LP: #1454699
  * pxa168: fix double deallocation of managed resources
    - LP: #1454699
  * net/mlx4_en: Prevent setting invalid RSS hash function
    - LP: #1454699
  * md: fix md io stats accounting broken
    - LP: #1454699
  * x86/asm/decoder: Fix and enforce max instruction size in the insn
    decoder
    - LP: #1454699
  * sched/idle/x86: Restore mwait_idle() to fix boot hangs, to improve
    power savings and to improve performance
    - LP: #1454699
  * sched/idle/x86: Optimize unnecessary mwait_idle() resched IPIs
    - LP: #1454699
  * perf/x86/intel: Fix Core2,Atom,NHM,WSM cycles:pp events
    - LP: #1454699
  * KVM: x86: Fix MSR_IA32_BNDCFGS in msrs_to_save
    - LP: #1454699
  * Btrfs: fix log tree corruption when fs mounted with -o discard
    - LP: #1454699
  * btrfs: don't accept bare namespace as a valid xattr
    - LP: #1454699
  * Btrfs: fix inode eviction infinite loop after cloning into it
    - LP: #1454699
  * Btrfs: fix inode eviction infinite loop after extent_same ioctl
    - LP: #1454699
  * usb: gadget: printer: enqueue printer's response for setup request
    - LP: #1454699
  * KVM: s390: fix handling of write errors in the tpi handler
    - LP: #1454699
  * KVM: s390: reinjection of irqs can fail in the tpi handler
    - LP: #1454699
  * KVM:...

Changed in linux (Ubuntu Vivid):
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (14.6 KiB)

This bug was fixed in the package linux - 3.16.0-39.53

---------------
linux (3.16.0-39.53) utopic; urgency=low

  [ Luis Henriques ]

  * Release Tracking Bug
    - LP: #1458778

  [ Brad Figg ]

  * hyper-v -- add hid and fb drivers to linux-virtual
    - LP: #1444179

  [ Chris J Arges ]

  * [Config] CONFIG_VIRT_CPU_ACCOUNTING_NATIVE=y on ppc64el
    - LP: #1450497

  [ Luis Henriques ]

  * SAUCE: (no-up) trace: fix trace_open_exec() invocation
    - LP: #1453848

  [ Paolo Pisati ]

  * [Config] armhf: GENERIC_CPUFREQ_CPU0=y
    - LP: #1457781

  [ Upstream Kernel Changes ]

  * DT doc: net: cpsw mac-address is optional
    - LP: #1452628
  * net: cpsw: Add missing return value
    - LP: #1452628
  * net: cpsw: header, Add missing include
    - LP: #1452628
  * net: cpsw: Replace pr_err by dev_err
    - LP: #1452628
  * net: cpsw: Add am33xx MACID readout
    - LP: #1452628
  * am33xx: define syscon control module device node
    - LP: #1452628
  * arm: dts: am33xx, Add syscon phandle to cpsw node
    - LP: #1452628
  * x86: kvm: Revert "remove sched notifier for cross-cpu migrations"
    - LP: #1450584
  * x86: vdso: fix pvclock races with task migration
    - LP: #1450584
  * n_tty: Fix read buffer overwrite when no newline
    - LP: #1454202
  * spi: spidev: fix possible arithmetic overflow for multi-transfer
    message
    - LP: #1454202
  * arm64: vdso: fix build error when switching from LE to BE
    - LP: #1454202
  * uas: Do not blacklist ASM1153 disk enclosures
    - LP: #1454202
  * KVM: x86: Fix lost interrupt on irr_pending race
    - LP: #1454202
  * tcp: prevent fetching dst twice in early demux code
    - LP: #1454202
  * ipv6: protect skb->sk accesses from recursive dereference inside the
    stack
    - LP: #1454202
  * tcp: tcp_make_synack() should clear skb->tstamp
    - LP: #1454202
  * usbnet: Fix tx_packets stat for FLAG_MULTI_FRAME drivers
    - LP: #1454202
  * usbnet: Fix tx_bytes statistic running backward in cdc_ncm
    - LP: #1454202
  * bonding: Bonding Overriding Configuration logic restored.
    - LP: #1454202
  * HID: add ALWAYS_POLL quirk for a Logitech 0xc007
    - LP: #1454202
  * PCI/AER: Avoid info leak in __print_tlp_header()
    - LP: #1454202
  * PCI: cpcihp: Add missing curly braces in cpci_configure_slot()
    - LP: #1454202
  * sh_veu: v4l2_dev wasn't set
    - LP: #1454202
  * media: s5p-mfc: fix mmap support for 64bit arch
    - LP: #1454202
  * cpufreq: Schedule work for the first-online CPU on resume
    - LP: #1454202
  * cpuidle: remove state_count field from struct cpuidle_device
    - LP: #1454202
  * cpuidle: ACPI: do not overwrite name and description of C0
    - LP: #1454202
  * ioctx_alloc(): fix vma (and file) leak on failure
    - LP: #1454202
  * drm/i915/vlv: save/restore the power context base reg
    - LP: #1454202
  * drm/i915/chv: Remove Wait for a previous gfx force-off
    - LP: #1454202
  * drm/i915/vlv: remove wait for previous GFX clk disable request
    - LP: #1454202
  * ALSA: hda/realtek - Make more stable to get pin sense for ALC283
    - LP: #1454202
  * ALSA: bebob: fix to processing in big-endian machine for sending cue
    - LP: #1454202
  * be2iscsi: Fix kern...

Changed in linux (Ubuntu Utopic):
status: Fix Committed → Fix Released
Adam Lee (adam8157)
Changed in hwe-next:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers