Received: by 2002:ac0:950c:0:0:0:0:0 with SMTP id f12csp2273997imc; Tue, 12 Mar 2019 10:21:32 -0700 (PDT) X-Google-Smtp-Source: APXvYqyS1NlZQ3rzNtcsfY8DHRfKdZAAgrVRfMri+pOejBVy3nju7MMpQ80QM0RDp2ATVSypmYDS X-Received: by 2002:a17:902:9a5:: with SMTP id 34mr10883189pln.287.1552411291993; Tue, 12 Mar 2019 10:21:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552411291; cv=none; d=google.com; s=arc-20160816; b=QSmyYWg9KjEwm8Fu9hZ4GxgIeECj/CnUatFJ/2Nd4NUg4hCu3G8Qyz2LEsChR5UHdJ EMpONyDtkk+aaBW1BqciZ1N3KbDL0XI9NDET3S2in7vm8won8vJu0ZlHoVzNIwtwJAPx puXSFBVjcsotGLQoXQR0rJRntppg8g11vAP4utA1r0u33FZIVr/qwu7zcyNdHkoiQeNv 4pmEG2sYIeQFPJRST8OY6wjIcUyp4jotFV7f7BL6wkea6UU7vwREtAvSv3cjOYjZgTQw iAa7wRKj1uIH68vOGVEXFHV/e8umbgne4Tb0ZGgRz28cgA6Ke51BUZ+WoS3IlWs3l2qc 3ebw== 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=PMYqlz20SqLuyQ7Le0xqVtktEnGwcicaBNe9wMX9zxo=; b=0ZO1PyGmXhBPf9S6AI4Et0uNAKKY3+ME4AIkDFc3vYzGA7wAHsT70NMua+ueSbcdTf d6/zNGTI4b667DwiosYb/jC6Wq47N6isOIxYFA+bTTeqbLShYxoIKlOfnbhQkTxoWfJK 6wcOF+ykcCtS2aYJHz1AIRZtBQKiNM9U/s9wM9R8NHRKq9doCaxCUarT5cTERUAUhUxA NtIKZvdKfA7WcfD+exkkQLH2iLvKlduBaPG0gqCC4pSFu7U5aud9fRtq9b3IrQnFY2Ym WXFUKWqidyWBW0KBNwS0mliyo3gTRWRAKtNU/ilh+IXHO6ZDLw/UsbHrrAGHvyMnH6Tp di+w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Y5YI9Plm; 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 g8si8100297pgd.52.2019.03.12.10.21.16; Tue, 12 Mar 2019 10:21:31 -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=Y5YI9Plm; 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 S1730183AbfCLRS5 (ORCPT + 99 others); Tue, 12 Mar 2019 13:18:57 -0400 Received: from mail.kernel.org ([198.145.29.99]:35438 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729972AbfCLRSM (ORCPT ); Tue, 12 Mar 2019 13:18:12 -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 7C614217D4; Tue, 12 Mar 2019 17:18:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1552411091; bh=3f/9VH3Hq0FOtcN9vKMOQx5hDCYqB0rCgJGkd1iDq/E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Y5YI9PlmriedOOHSKHAhtmI7yyBAGxPKK6wet7xyCE/BT83sFhCjtpQ8vVCgKundn qEXDZCV6ZeEyo/GvpydHmsUAqBU1P+edN4LuwUV+II5GQqp7FFLFeT2E+r8d33EXdJ DMNJzTdD2yc6KUatMETEb0wFKT4mev3bfDKAWlrQ= 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.9 83/96] fs: ratelimit __find_get_block_slow() failure message. Date: Tue, 12 Mar 2019 10:10:41 -0700 Message-Id: <20190312171040.833378676@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312171034.530434962@linuxfoundation.org> References: <20190312171034.530434962@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.9-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 5d8f496d624e..e0d46d47e358 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -207,6 +207,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); @@ -234,15 +235,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