1. Jan 11, 2020
    • Miles Chen's avatar
      Input: evdev - convert kzalloc()/vzalloc() to kvzalloc() · 7f439bc2
      Miles Chen authored
      
      
      We observed a large(order-3) allocation in evdev_open() and it may
      cause an OOM kernel panic in kzalloc(), before we getting to the
      vzalloc() fallback.
      
      Fix it by converting kzalloc()/vzalloc() to kvzalloc() to avoid the
      OOM killer logic as we have a vmalloc fallback.
      
      InputReader invoked oom-killer: gfp_mask=0x240c2c0
      (GFP_KERNEL|__GFP_NOWARN|__GFP_COMP|__GFP_ZERO), nodemask=0, order=3,
      oom_score_adj=-900
      ...
      (dump_backtrace) from (show_stack+0x18/0x1c)
      (show_stack) from (dump_stack+0x94/0xa8)
      (dump_stack) from (dump_header+0x7c/0xe4)
      (dump_header) from (out_of_memory+0x334/0x348)
      (out_of_memory) from (__alloc_pages_nodemask+0xe9c/0xeb8)
      (__alloc_pages_nodemask) from (kmalloc_order_trace+0x34/0x128)
      (kmalloc_order_trace) from (__kmalloc+0x258/0x36c)
      (__kmalloc) from (evdev_open+0x5c/0x17c)
      (evdev_open) from (chrdev_open+0x100/0x204)
      (chrdev_open) from (do_dentry_open+0x21c/0x354)
      (do_dentry_open) from (vfs_open+0x58/0x84)
      (vfs_open) from (path_openat+0x640/0xc98)
      (path_openat) from (do_filp_open+0x78/0x11c)
      (do_filp_open) from (do_sys_open+0x130/0x244)
      (do_sys_open) from (SyS_openat+0x14/0x18)
      (SyS_openat) from (__sys_trace_return+0x0/0x10)
      ...
      Normal: 12488*4kB (UMEH) 6984*8kB (UMEH) 2101*16kB (UMEH) 0*32kB
      0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 139440kB
      HighMem: 206*4kB (H) 131*8kB (H) 42*16kB (H) 2*32kB (H) 0*64kB
      0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 2608kB
      ...
      Kernel panic - not syncing: Out of memory and no killable processes...
      
      Signed-off-by: default avatarMiles Chen <miles.chen@mediatek.com>
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      7f439bc2
  2. Dec 14, 2019
  3. Dec 07, 2019
  4. Dec 05, 2019
  5. Nov 26, 2019
  6. Nov 23, 2019
  7. Nov 16, 2019
  8. Nov 13, 2019
  9. Nov 12, 2019
  10. Nov 05, 2019