Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp3017144ybt; Mon, 29 Jun 2020 13:01:39 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwBsLq+EFhh+JaWbx8vcBJ6bh+WyUadlPJVEzaweJGe5sfdYywa/FW36ip5bzafv5v4f3zW X-Received: by 2002:a17:906:594c:: with SMTP id g12mr15295379ejr.255.1593460898998; Mon, 29 Jun 2020 13:01:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1593460898; cv=none; d=google.com; s=arc-20160816; b=XzQ6VnUyXQkJSj0ZOb6ymLkqo04g8zNwOiK0Fwr3Pj7EmnbSQN+mUkKo7wqneOsbGS hEQsgXBkKgPgbB/GuT8/65F2OEXfTitIDlR/glmTL3o+IJDnnfoGvdVp5WzbpG2gWVlv 1EeTLxYVd4zAxxqhOSk81vNz4H1JJTn2HO4w6WzVKn9VI12P0onxVNUHj5kS9W7N/hDd RssQW5YQjXv0tI1z6kgSUL3yefWZ1qXpMO0rU6Y0Qrkz06ql6I4TGJRwS4z8aA5ucNpG OzUdj1hWclBvBkR6mxsjRmTu+r6JsCTRMjQzl/Hk18u2ItXbNzU5Z0uCJ/YNO7gOdLL7 eG/w== 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 :message-id:date:subject:cc:to:from; bh=QtcHJuX6xYR8W+974zoB2LYgZtbZk6PbuKR4Z/lYWN4=; b=uIjsr/sk6HGMWhajdpODkqfE0o3bYZf7EcPL2H4WG74s66epqDKAhUfLESMYgU4/ZS cNTdaSz4qt73nWjy3132RnYXBPVnmS5oavpTwUNhFDNa3B8dj3Cla2/b2OlkZonFPC0f YW+wyvaYo4wIsHh7qDbYxxG6o1EM8NqSWc5glxOAM+Uk9MwL9zgGHObIdQGPH06ANnPL Z1EBwzeP233YseoJGjeUhSR46yM0DeEpp0772FXSTE3lyV+PIh3BA4+13mgw/icFNk5m 96mYUdcqkb41Me8s6bQXl/w5rr9LThflSOoIkhQfvZg7pA5GvTe0RlCRzK6u0C7XpkAo w83Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id c94si369990edf.589.2020.06.29.13.01.15; Mon, 29 Jun 2020 13:01:38 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388532AbgF2T7I (ORCPT + 99 others); Mon, 29 Jun 2020 15:59:08 -0400 Received: from szxga06-in.huawei.com ([45.249.212.32]:50686 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2388517AbgF2T7C (ORCPT ); Mon, 29 Jun 2020 15:59:02 -0400 Received: from DGGEMS404-HUB.china.huawei.com (unknown [172.30.72.60]) by Forcepoint Email with ESMTP id F099BE347D5E59611496; Mon, 29 Jun 2020 20:13:34 +0800 (CST) Received: from szvp000203569.huawei.com (10.120.216.130) by DGGEMS404-HUB.china.huawei.com (10.3.19.204) with Microsoft SMTP Server id 14.3.487.0; Mon, 29 Jun 2020 20:13:27 +0800 From: Chao Yu To: CC: , , , Chao Yu Subject: [PATCH v2 2/3] f2fs: support to trace f2fs_bmap() Date: Mon, 29 Jun 2020 20:13:12 +0800 Message-ID: <20200629121313.68072-1-yuchao0@huawei.com> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [10.120.216.130] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org to show f2fs_bmap()'s result as below: f2fs_bmap: dev = (251,0), ino = 7, lblock:0, pblock:396800 Signed-off-by: Chao Yu --- v2: - use show_dev_ino() to avoid compile warning. fs/f2fs/data.c | 14 +++++++++++--- include/trace/events/f2fs.h | 26 ++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 91dc7b598961..c07a50e4d967 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -3713,18 +3713,26 @@ static sector_t f2fs_bmap_compress(struct inode *inode, sector_t block) static sector_t f2fs_bmap(struct address_space *mapping, sector_t block) { struct inode *inode = mapping->host; + struct buffer_head tmp = { + .b_size = i_blocksize(inode), + }; + sector_t blknr = 0; if (f2fs_has_inline_data(inode)) - return 0; + goto out; /* make sure allocating whole blocks */ if (mapping_tagged(mapping, PAGECACHE_TAG_DIRTY)) filemap_write_and_wait(mapping); if (f2fs_compressed_file(inode)) - return f2fs_bmap_compress(inode, block); + blknr = f2fs_bmap_compress(inode, block); - return generic_block_bmap(mapping, block, get_data_block_bmap); + if (!get_data_block_bmap(inode, block, &tmp, 0)) + blknr = tmp.b_blocknr; +out: + trace_f2fs_bmap(inode, block, blknr); + return blknr; } #ifdef CONFIG_MIGRATION diff --git a/include/trace/events/f2fs.h b/include/trace/events/f2fs.h index 8639ab962a71..2e8713a52d76 100644 --- a/include/trace/events/f2fs.h +++ b/include/trace/events/f2fs.h @@ -1891,6 +1891,32 @@ TRACE_EVENT(f2fs_iostat, __entry->fs_cdrio, __entry->fs_nrio, __entry->fs_mrio) ); +TRACE_EVENT(f2fs_bmap, + + TP_PROTO(struct inode *inode, sector_t lblock, sector_t pblock), + + TP_ARGS(inode, lblock, pblock), + + TP_STRUCT__entry( + __field(dev_t, dev) + __field(ino_t, ino) + __field(sector_t, lblock) + __field(sector_t, pblock) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->lblock = lblock; + __entry->pblock = pblock; + ), + + TP_printk("dev = (%d,%d), ino = %lu, lblock:%lld, pblock:%lld", + show_dev_ino(__entry), + (unsigned long long)__entry->lblock, + (unsigned long long)__entry->pblock) +); + #endif /* _TRACE_F2FS_H */ /* This part must be outside protection */ -- 2.26.2