Received: by 2002:a25:b794:0:0:0:0:0 with SMTP id n20csp7036019ybh; Thu, 8 Aug 2019 09:15:12 -0700 (PDT) X-Google-Smtp-Source: APXvYqxAeNU1vf9scFnUAqootfFhKa7Adt2FHd4Iw7WX364hQPIto8LOAwQv4juIwiL9hdqTQVKQ X-Received: by 2002:a63:5225:: with SMTP id g37mr13284242pgb.236.1565280912522; Thu, 08 Aug 2019 09:15:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565280912; cv=none; d=google.com; s=arc-20160816; b=dqxYPgkvWxjyFCK8rF1ckHlNO+yIEJR4xGrS+sXYFvlpzllVJopUTDM8PmjjEZ+2s+ GQxTb5Ybzq1TO5XdML1Ibmjd8tmUqZxahV5STyTXNIvw9HCr+htqL2r9afWF9/J74TO3 RYGtCcSyg9F+OtUhAvAWCmUfvpswjNq9f983CeMAffcfOSjYmnyZT6AW9rKhomDdBAZ0 efAv7b0BotsFswGR4NyRiyAdTIIcVECHQcPNxLPqnHZ5kQnm4hlWcEkGav0fLHcZI7wP sWZ5/zemQhosVWH+5po7QbpOHCM2jmzNt+ECcWGps98mt5OmjZ5yuelOKWeO1yYH/UpS 6+iw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=GbKZkWdFW3/LathJiTmUB/es7Gx9lbtHm6GJXlHv5+E=; b=L/nF4I6eFJMTdOoCGGIj9xwDgU/pwBhB+OIErc2TMifdw/ghqQP0yGrXvO/6XzwyPT o9mwgCdnpPVopR2xRCMOnHwtJpks2/hhwRr7KTEjA44Hy1N8pqYc0k5laCu4CS7Ew165 UgeHh7cF/jXfFoCsz4wTBJ0dnQ/3Yq76PvUiAhIaWi5JPxfGkLKkm4mk+ty8LL4p486Z O1g3P8YkMwWFqtKx+PjiTZ3AM6nu6tR0x9eqXEdj37c0q1m0oHXLuXeKUkJuy0z5tpSM 59+EsovNBi6vxaRPk9WPB9393NxSKEAbN7KipwI7mZvCdmsEZESLq9mSRC0SgVCd9aJd VKPw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel-dk.20150623.gappssmtp.com header.s=20150623 header.b=aHd3BMPy; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p6si15284869pgm.294.2019.08.08.09.14.56; Thu, 08 Aug 2019 09:15:12 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel-dk.20150623.gappssmtp.com header.s=20150623 header.b=aHd3BMPy; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2404136AbfHHQMl (ORCPT + 99 others); Thu, 8 Aug 2019 12:12:41 -0400 Received: from mail-pg1-f193.google.com ([209.85.215.193]:39400 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2404095AbfHHQMk (ORCPT ); Thu, 8 Aug 2019 12:12:40 -0400 Received: by mail-pg1-f193.google.com with SMTP id u17so44304995pgi.6 for ; Thu, 08 Aug 2019 09:12:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20150623.gappssmtp.com; s=20150623; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=GbKZkWdFW3/LathJiTmUB/es7Gx9lbtHm6GJXlHv5+E=; b=aHd3BMPydi+5PV5TxAyyoXAB2//OlcpWaOb9Ulv9m4G+dGQDsVHyoJELks6vv29zZs +l9YLHqxG6PA7RsVkwpwZLjgZzwTnKooalsTD+ERQtN8bpHaq1JEAX79Q/0Q4JFzQWqX Zv7Za4X5k+/VUeEYrNZJJSLO7c+scqObfiMwnA2GipbI5hhnzUw2LCdhtgUFP2BnLpE2 et7yYRwFoml44eQaKQF8+SGCmFWcKVzwtMQTEXAtjYSre8zV7f3nMDxyKkS/3fiM3pd8 5g+VisQ2Yg7qdOQWYCT5hJZbqMllgcveePnnq+gYbnNhRPiHgqBwxulg0iqhWdshus0G /Fjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=GbKZkWdFW3/LathJiTmUB/es7Gx9lbtHm6GJXlHv5+E=; b=qmQCYttp+owNl22Nlt3UR+jIpDKJoSWO/xV5Z5CETkWzToqjK/haWpX960nGIXsBDh okoA3Bqtv8I2O/GkDSPUNGDuAeCX443hvbfj2Tt3gyiI2Q2v2FCc/GaZ2N1j3UlLl/+8 NVi5iSZm/P8VyC4fFIvrpdehLChNYp/tr0nEvAcCC+irK9tUl2KjMHCke56c7/BKGuy2 PLxAoH7muLczSN4pKcCPMAM0bjJJveVgvfiRx5XsU4sqqiDnrHCcAsAY163Af1wCb0D3 XtnAiU358MxzA7t2OYROHNOXke2c9c8Rrm4r1zJDPKxVPB5BWnY6C8i5yzn32PVlQYlN nvUQ== X-Gm-Message-State: APjAAAUlO2lmJakZSFsC/JOZLxeh0ASpCqr02iup/kYFvb+PS7Nlhehp VkRXOPVBZhRCpbqGQDp+G0DKzQ== X-Received: by 2002:a65:690e:: with SMTP id s14mr13663644pgq.47.1565280759945; Thu, 08 Aug 2019 09:12:39 -0700 (PDT) Received: from ?IPv6:2605:e000:100e:83a1:4042:6c37:d29d:2320? ([2605:e000:100e:83a1:4042:6c37:d29d:2320]) by smtp.gmail.com with ESMTPSA id 196sm103224711pfy.167.2019.08.08.09.12.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 08 Aug 2019 09:12:38 -0700 (PDT) Subject: Re: [PATCH] loop: set PF_MEMALLOC_NOIO for the worker thread To: Mikulas Patocka , Matthew Wilcox Cc: Alexander Viro , "Darrick J. Wong" , Mike Snitzer , junxiao.bi@oracle.com, dm-devel@redhat.com, Alasdair Kergon , honglei.wang@oracle.com, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-xfs@vger.kernel.org, linux-block@vger.kernel.org References: <20190808135329.GG5482@bombadil.infradead.org> From: Jens Axboe Message-ID: <4625547c-f172-a0bf-720e-849fb7ff85a2@kernel.dk> Date: Thu, 8 Aug 2019 09:12:37 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 8/8/19 8:17 AM, Mikulas Patocka wrote: > A deadlock with this stacktrace was observed. > > The loop thread does a GFP_KERNEL allocation, it calls into dm-bufio > shrinker and the shrinker depends on I/O completion in the dm-bufio > subsystem. > > In order to fix the deadlock (and other similar ones), we set the flag > PF_MEMALLOC_NOIO at loop thread entry. > > PID: 474 TASK: ffff8813e11f4600 CPU: 10 COMMAND: "kswapd0" > #0 [ffff8813dedfb938] __schedule at ffffffff8173f405 > #1 [ffff8813dedfb990] schedule at ffffffff8173fa27 > #2 [ffff8813dedfb9b0] schedule_timeout at ffffffff81742fec > #3 [ffff8813dedfba60] io_schedule_timeout at ffffffff8173f186 > #4 [ffff8813dedfbaa0] bit_wait_io at ffffffff8174034f > #5 [ffff8813dedfbac0] __wait_on_bit at ffffffff8173fec8 > #6 [ffff8813dedfbb10] out_of_line_wait_on_bit at ffffffff8173ff81 > #7 [ffff8813dedfbb90] __make_buffer_clean at ffffffffa038736f [dm_bufio] > #8 [ffff8813dedfbbb0] __try_evict_buffer at ffffffffa0387bb8 [dm_bufio] > #9 [ffff8813dedfbbd0] dm_bufio_shrink_scan at ffffffffa0387cc3 [dm_bufio] > #10 [ffff8813dedfbc40] shrink_slab at ffffffff811a87ce > #11 [ffff8813dedfbd30] shrink_zone at ffffffff811ad778 > #12 [ffff8813dedfbdc0] kswapd at ffffffff811ae92f > #13 [ffff8813dedfbec0] kthread at ffffffff810a8428 > #14 [ffff8813dedfbf50] ret_from_fork at ffffffff81745242 > > PID: 14127 TASK: ffff881455749c00 CPU: 11 COMMAND: "loop1" > #0 [ffff88272f5af228] __schedule at ffffffff8173f405 > #1 [ffff88272f5af280] schedule at ffffffff8173fa27 > #2 [ffff88272f5af2a0] schedule_preempt_disabled at ffffffff8173fd5e > #3 [ffff88272f5af2b0] __mutex_lock_slowpath at ffffffff81741fb5 > #4 [ffff88272f5af330] mutex_lock at ffffffff81742133 > #5 [ffff88272f5af350] dm_bufio_shrink_count at ffffffffa03865f9 [dm_bufio] > #6 [ffff88272f5af380] shrink_slab at ffffffff811a86bd > #7 [ffff88272f5af470] shrink_zone at ffffffff811ad778 > #8 [ffff88272f5af500] do_try_to_free_pages at ffffffff811adb34 > #9 [ffff88272f5af590] try_to_free_pages at ffffffff811adef8 > #10 [ffff88272f5af610] __alloc_pages_nodemask at ffffffff811a09c3 > #11 [ffff88272f5af710] alloc_pages_current at ffffffff811e8b71 > #12 [ffff88272f5af760] new_slab at ffffffff811f4523 > #13 [ffff88272f5af7b0] __slab_alloc at ffffffff8173a1b5 > #14 [ffff88272f5af880] kmem_cache_alloc at ffffffff811f484b > #15 [ffff88272f5af8d0] do_blockdev_direct_IO at ffffffff812535b3 > #16 [ffff88272f5afb00] __blockdev_direct_IO at ffffffff81255dc3 > #17 [ffff88272f5afb30] xfs_vm_direct_IO at ffffffffa01fe3fc [xfs] > #18 [ffff88272f5afb90] generic_file_read_iter at ffffffff81198994 > #19 [ffff88272f5afc50] __dta_xfs_file_read_iter_2398 at ffffffffa020c970 [xfs] > #20 [ffff88272f5afcc0] lo_rw_aio at ffffffffa0377042 [loop] > #21 [ffff88272f5afd70] loop_queue_work at ffffffffa0377c3b [loop] > #22 [ffff88272f5afe60] kthread_worker_fn at ffffffff810a8a0c > #23 [ffff88272f5afec0] kthread at ffffffff810a8428 > #24 [ffff88272f5aff50] ret_from_fork at ffffffff81745242 Applied, thanks. -- Jens Axboe