xfs: Print name and pid when memory allocation loops
This patch adds comm name and pid to warning messages printed by kmem_alloc(), kmem_zone_alloc() and xfs_buf_allocate_memory(). This will help telling which memory allocations (e.g. kernel worker threads, OOM victim tasks, neither) are stalling because these functions are passing __GFP_NOWARN which suppresses not only backtrace but comm name and pid. Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
committed by
Dave Chinner
parent
1f93e4a96c
commit
5bf97b1cb4
@@ -55,7 +55,8 @@ kmem_alloc(size_t size, xfs_km_flags_t flags)
|
|||||||
return ptr;
|
return ptr;
|
||||||
if (!(++retries % 100))
|
if (!(++retries % 100))
|
||||||
xfs_err(NULL,
|
xfs_err(NULL,
|
||||||
"possible memory allocation deadlock in %s (mode:0x%x)",
|
"%s(%u) possible memory allocation deadlock in %s (mode:0x%x)",
|
||||||
|
current->comm, current->pid,
|
||||||
__func__, lflags);
|
__func__, lflags);
|
||||||
congestion_wait(BLK_RW_ASYNC, HZ/50);
|
congestion_wait(BLK_RW_ASYNC, HZ/50);
|
||||||
} while (1);
|
} while (1);
|
||||||
@@ -120,7 +121,8 @@ kmem_zone_alloc(kmem_zone_t *zone, xfs_km_flags_t flags)
|
|||||||
return ptr;
|
return ptr;
|
||||||
if (!(++retries % 100))
|
if (!(++retries % 100))
|
||||||
xfs_err(NULL,
|
xfs_err(NULL,
|
||||||
"possible memory allocation deadlock in %s (mode:0x%x)",
|
"%s(%u) possible memory allocation deadlock in %s (mode:0x%x)",
|
||||||
|
current->comm, current->pid,
|
||||||
__func__, lflags);
|
__func__, lflags);
|
||||||
congestion_wait(BLK_RW_ASYNC, HZ/50);
|
congestion_wait(BLK_RW_ASYNC, HZ/50);
|
||||||
} while (1);
|
} while (1);
|
||||||
|
|||||||
@@ -354,7 +354,8 @@ retry:
|
|||||||
*/
|
*/
|
||||||
if (!(++retries % 100))
|
if (!(++retries % 100))
|
||||||
xfs_err(NULL,
|
xfs_err(NULL,
|
||||||
"possible memory allocation deadlock in %s (mode:0x%x)",
|
"%s(%u) possible memory allocation deadlock in %s (mode:0x%x)",
|
||||||
|
current->comm, current->pid,
|
||||||
__func__, gfp_mask);
|
__func__, gfp_mask);
|
||||||
|
|
||||||
XFS_STATS_INC(xb_page_retries);
|
XFS_STATS_INC(xb_page_retries);
|
||||||
|
|||||||
Reference in New Issue
Block a user