From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755365AbbCFEiA (ORCPT ); Thu, 5 Mar 2015 23:38:00 -0500 Received: from cn.fujitsu.com ([59.151.112.132]:29594 "EHLO heian.cn.fujitsu.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1752360AbbCFEh4 convert rfc822-to-8bit (ORCPT ); Thu, 5 Mar 2015 23:37:56 -0500 X-IronPort-AV: E=Sophos;i="5.04,848,1406563200"; d="scan'208";a="66934302" From: Zhao Lei To: "'Christoph Hellwig'" CC: "'Tejun Heo'" , "'Jan Kara'" , "'Jens Axboe'" , "'LKML'" Subject: Regression caused by using node_to_bdi() Date: Fri, 6 Mar 2015 12:37:21 +0800 Message-ID: <004001d057c7$3cc1b2e0$b64518a0$@cn.fujitsu.com> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8BIT X-Mailer: Microsoft Outlook 15.0 Thread-Index: AdBXxx++0Qalfy7IR6quUEorrEXFog== Content-Language: zh-cn Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Christoph Hellwig resend: + cc lkml I found regression in v4.0-rc1 caused by this patch: Author: Christoph Hellwig Date: Wed Jan 14 10:42:36 2015 +0100 fs: export inode_to_bdi and use it in favor of mapping->backing_dev_info Test process is following: 2015-02-25 15:50:22: Start 2015-02-25 15:50:22: Linux version:Linux btrfs 4.0.0-rc1_HEAD_c517d838eb7d07bbe9507871fab3931deccff539_ #1 SMP Wed Feb 25 10:59:10 CST 2015 x86_64 x86_64 x86_64 GNU/Linux 2015-02-25 15:50:25: mkfs.btrfs -f /dev/sdb1 2015-02-25 15:50:27: mount /dev/sdb1 /data/ltf/tester 2015-02-25 15:50:28: sysbench --test=fileio --num-threads=1 --file-num=1 --file-block-size=32768 --file-total-size=4G --file-test-mode=seqwr --file-io-mode=sync --file-extra-flags= --file-fsync-freq=0 --file-fsync-end=off --max-requests=131072 2015-02-25 15:51:40: done sysbench Result is following: v3.19-rc1: testcnt=40 average=135.677 range=[132.460,139.130] stdev=1.610 cv=1.19% v4.0-rc1: testcnt=40 average=130.970 range=[127.980,132.050] stdev=1.012 cv=0.77% Then I bisect above case between v3.19-rc1 and v4.0-rc1, and found this patch caused the regresstion. Maybe it is because kernel need more time to call node_to_bdi(), compared with "using inode->i_mapping->backing_dev_info directly" in old code. Is there some way to speed up it(inline, or some access some variant in struct directly, ...)? Thanks Zhaolei