Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
  • android-msm-bullhead-3.10-nougat_kgdb_less_changes
  • android-msm-bullhead-3.10-nougat_kgdb
  • android-msm-bullhead-3.10-nougat_klist
  • android-4.4
  • android-msm-vega-4.4-oreo-daydream
  • android-msm-wahoo-4.4-p-preview-5
  • android-msm-wahoo-4.4-pie
  • android-msm-marlin-3.18-p-preview-5
  • android-msm-marlin-3.18-pie
  • android-msm-wahoo-2018.07-oreo-m2
  • android-msm-wahoo-2018.07-oreo-m4
  • android-msm-wahoo-4.4-p-preview-4
  • android-msm-bullhead-3.10-oreo-m6
  • android-msm-angler-3.10-oreo-m6
  • android-msm-marlin-3.18-p-preview-4
  • android-msm-stargazer-3.18-oreo-wear-dr
  • android-msm-catshark-3.18-oreo-wear-dr
  • android-msm-wahoo-4.4-oreo-m2
  • android-msm-wahoo-4.4-oreo-m4
  • android-daydreamos-8.0.0_r0.5
  • android-8.1.0_r0.92
  • android-8.1.0_r0.91
  • android-daydreamos-8.0.0_r0.4
  • android-p-preview-5_r0.2
  • android-p-preview-5_r0.1
  • android-9.0.0_r0.5
  • android-9.0.0_r0.4
  • android-9.0.0_r0.2
  • android-9.0.0_r0.1
  • android-8.1.0_r0.81
  • android-8.1.0_r0.80
  • android-8.1.0_r0.78
  • android-8.1.0_r0.76
  • android-8.1.0_r0.75
  • android-8.1.0_r0.72
  • android-8.1.0_r0.70
  • android-p-preview-4_r0.2
  • android-p-preview-4_r0.1
  • android-wear-8.0.0_r0.30
40 results

AndroidKernelMSM

  • Clone with SSH
  • Clone with HTTPS
  • user avatar
    Laura Abbott authored
    Both ashmem_mmap and ashmem_shrink take the ashmem_lock. It may
    be possible for ashmem_mmap to invoke ashmem_shrink:
    
    -000|mutex_lock(lock = 0x0)
    -001|ashmem_shrink(?, sc = 0x0) <--- try to take ashmem_mutex again
    -002|shrink_slab(shrink = 0xDA5F1CC0, nr_pages_scanned = 0, lru_pages
    -002|=
    -002|124)
    -003|try_to_free_pages(zonelist = 0x0, ?, ?, ?)
    -004|__alloc_pages_nodemask(gfp_mask = 21200, order = 1, zonelist =
    -004|0xC11D0940,
    -005|new_slab(s = 0xE4841E80, ?, node = -1)
    -006|__slab_alloc.isra.43.constprop.50(s = 0xE4841E80, gfpflags =
    -006|2148925462, ad
    -007|kmem_cache_alloc(s = 0xE4841E80, gfpflags = 208)
    -008|shmem_alloc_inode(?)
    -009|alloc_inode(sb = 0xE480E800)
    -010|new_inode_pseudo(?)
    -011|new_inode(?)
    -012|shmem_get_inode(sb = 0xE480E800, dir = 0x0, ?, dev = 0, flags =
    -012|187)
    -013|shmem_file_setup(?, ?, flags = 187)
    -014|ashmem_mmap(?, vma = 0xC5D64210) <---- Acquire ashmem_mutex
    -015|mmap_region(file = 0xDF8E2C00, addr = 1772974080, len = 233472,
    -015|flags = 57,
    -016|sys_mmap_pgoff(addr = 0, len = 230400, prot = 3, flags = 1, fd =
    -016|157, pgoff
    -017|ret_fast_syscall(asm)
    -->|exception
    -018|NUR:0x40097508(asm)
    ---|end of frame
    
    Avoid this deadlock by using mutex_trylock in ashmem_shrink; if the mutex
    is already held, do not attempt to shrink.
    
    Change-Id: I222bbf55856d5849da813b730de0636c80966c8e
    Reported-by: default avatarMatt Wagantall <mattw@codeaurora.org>
    Reported-by: default avatarSyed Rameez Mustafa <rameezmustafa@codeaurora.org>
    Reported-by: default avatarOsvaldo Banuelos <osvaldob@codeaurora.org>
    Reported-by: default avatarSubbaraman Narayanamurthy <subbaram@codeaurora.org>
    Signed-off-by: default avatarLaura Abbott <lauraa@codeaurora.org>
    03485a63
    History
    Name Last commit Last update