Received: by 2002:ac0:950c:0:0:0:0:0 with SMTP id f12csp2307000imc; Tue, 12 Mar 2019 11:03:20 -0700 (PDT) X-Google-Smtp-Source: APXvYqyoNVyB3VDW5k1VhxygQCP1SPEJcfDGbuYAK9UyfiQ0gyrQo5EqLCPqWoAXQTfeNx6p+vWG X-Received: by 2002:a62:11c6:: with SMTP id 67mr39465901pfr.68.1552413800469; Tue, 12 Mar 2019 11:03:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552413800; cv=none; d=google.com; s=arc-20160816; b=aRnB7iTUxjhEoGdsKRGc60yfQiKWZngS2dZAieb/vz9DsT/gsYMRK4b5/t89wCITzV /+J0T6Lejc7FYa4YoNXLkS9Koaz3TKTA8vOpK0tzy33EH9axP2V6du6JbBpAO31J33tM kglO6+vqjsMFAxkB2TWpZ+43cV5ypUoYDjWs8FR4U89SXzO+CidcCQuMZSwxKByRZR31 5f4QPmXNzqF9kVRvfT0pBIkzCiIJfwFeDb87Jf2xoaOusqlSe80bq1T2sT4rtjOL8nFd CjcS653IT1UneLbKlEjkuQYqd44za1RCpjZuHr/O3tsjo5GhHqFMeA7to8Bd6Pr3942M ZHKw== 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:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=VAzep8Xjq8I2dBV4HTj8d4Q508I+O4nnXkjIZK9RjaY=; b=REz09nMYn8pLTaQs0S2DLzopPChMhy0EmzhIWxmvmI7+fbDdWUdS/WZi1Z6J/+dNX2 r21GXTBGcsPJ3OF0LT3M2tPPg7MVqOZVfxxd9VfBucqQLr27hmnfijXa+tw0g/xmA1z3 xM1i8ecZQMDEIefT3V0VDBs/waFJUWBmD5xUVDrzhELSD7vPZ+YpWXzzuZp7i0IT/Bqr 5s8zmnZLH/pAPXjVUfFeWEcj1ztlGg7M4nO6ykgBtYqWDlp7AgAoDHKZZuXnzwP7dFR6 EHC2K52F+hpA1/dgjCJL8bk69GKf+44eWamIZSo2lHo5cF1sKr4of56kQy7MWr78ufNL dXKg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Epfj9YQE; 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 32si8793909pls.415.2019.03.12.11.03.04; Tue, 12 Mar 2019 11:03:20 -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.org header.s=default header.b=Epfj9YQE; 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 S1728359AbfCLSBB (ORCPT + 99 others); Tue, 12 Mar 2019 14:01:01 -0400 Received: from mail.kernel.org ([198.145.29.99]:49898 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727852AbfCLRNQ (ORCPT ); Tue, 12 Mar 2019 13:13:16 -0400 Received: from localhost (unknown [104.133.8.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 72A63217D9; Tue, 12 Mar 2019 17:13:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1552410795; bh=EYXDwpgXngUtfWbJylkfNLOCuaYyKRjKOMstTx+7360=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Epfj9YQEMGCYPrMmfZCY5yQeSFwTETVd1O66k9YJ5syStd2BxAzaKOUQ/alV5kFrd kmRzcdCqZuyIlnMhrSWfiFHqZa6QiFIrEQoua1JUk0DqmlZcQahm0KVPglN5UIxHCV t+TzdeimpplCMMilIK3CM0kH3lZRbqzhPY5HhSuQ= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Tetsuo Handa , Jan Kara , Dmitry Vyukov , Jens Axboe , Sasha Levin Subject: [PATCH 4.20 141/171] fs: ratelimit __find_get_block_slow() failure message. Date: Tue, 12 Mar 2019 10:08:41 -0700 Message-Id: <20190312170359.796672074@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312170347.868927101@linuxfoundation.org> References: <20190312170347.868927101@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.20-stable review patch. If anyone has any objections, please let me know. ------------------ [ Upstream commit 43636c804df0126da669c261fc820fb22f62bfc2 ] When something let __find_get_block_slow() hit all_mapped path, it calls printk() for 100+ times per a second. But there is no need to print same message with such high frequency; it is just asking for stall warning, or at least bloating log files. [ 399.866302][T15342] __find_get_block_slow() failed. block=1, b_blocknr=8 [ 399.873324][T15342] b_state=0x00000029, b_size=512 [ 399.878403][T15342] device loop0 blocksize: 4096 [ 399.883296][T15342] __find_get_block_slow() failed. block=1, b_blocknr=8 [ 399.890400][T15342] b_state=0x00000029, b_size=512 [ 399.895595][T15342] device loop0 blocksize: 4096 [ 399.900556][T15342] __find_get_block_slow() failed. block=1, b_blocknr=8 [ 399.907471][T15342] b_state=0x00000029, b_size=512 [ 399.912506][T15342] device loop0 blocksize: 4096 This patch reduces frequency to up to once per a second, in addition to concatenating three lines into one. [ 399.866302][T15342] __find_get_block_slow() failed. block=1, b_blocknr=8, b_state=0x00000029, b_size=512, device loop0 blocksize: 4096 Signed-off-by: Tetsuo Handa Reviewed-by: Jan Kara Cc: Dmitry Vyukov Signed-off-by: Jens Axboe Signed-off-by: Sasha Levin --- fs/buffer.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/fs/buffer.c b/fs/buffer.c index 1286c2b95498..72e33ffa00ff 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -200,6 +200,7 @@ __find_get_block_slow(struct block_device *bdev, sector_t block) struct buffer_head *head; struct page *page; int all_mapped = 1; + static DEFINE_RATELIMIT_STATE(last_warned, HZ, 1); index = block >> (PAGE_SHIFT - bd_inode->i_blkbits); page = find_get_page_flags(bd_mapping, index, FGP_ACCESSED); @@ -227,15 +228,15 @@ __find_get_block_slow(struct block_device *bdev, sector_t block) * file io on the block device and getblk. It gets dealt with * elsewhere, don't buffer_error if we had some unmapped buffers */ - if (all_mapped) { - printk("__find_get_block_slow() failed. " - "block=%llu, b_blocknr=%llu\n", - (unsigned long long)block, - (unsigned long long)bh->b_blocknr); - printk("b_state=0x%08lx, b_size=%zu\n", - bh->b_state, bh->b_size); - printk("device %pg blocksize: %d\n", bdev, - 1 << bd_inode->i_blkbits); + ratelimit_set_flags(&last_warned, RATELIMIT_MSG_ON_RELEASE); + if (all_mapped && __ratelimit(&last_warned)) { + printk("__find_get_block_slow() failed. block=%llu, " + "b_blocknr=%llu, b_state=0x%08lx, b_size=%zu, " + "device %pg blocksize: %d\n", + (unsigned long long)block, + (unsigned long long)bh->b_blocknr, + bh->b_state, bh->b_size, bdev, + 1 << bd_inode->i_blkbits); } out_unlock: spin_unlock(&bd_mapping->private_lock); -- 2.19.1