btrfs: generic readeahead interface
From: | Arne Jansen <sensille@gmx.net> | |
To: | chris.mason@oracle.com, linux-btrfs@vger.kernel.org | |
Subject: | [PATCH v1 0/5] btrfs: generic readeahead interface | |
Date: | Mon, 23 May 2011 14:59:03 +0200 | |
Message-ID: | <cover.1306154794.git.sensille@gmx.net> | |
Archive‑link: | Article |
This series introduces a generic readahead interface for btrfs trees. The intention is to use it to speed up scrub in a first run, but balance is another hot candidate. In general, every tree walk could be accompanied by a readahead. Deletion of large files comes to mind, where the fetching of the csums takes most of the time. To make testing easier, a simple ioctl interface is added to trigger a read- ahead from user mode. It also implements a tree walk in the traditional way. A tool to send the ioctl follows shortly. A simple demonstration from my 7-disk test btrfs: - enumerating the extent tree (traditional): 351s - enumerating the extent tree (readahead): 41s - enumerating extents+csum tree (readahead): 49s The implementation is also tested with this tool in various combinations of parallel reads of the same and of different trees. Arne Jansen (5): btrfs: add READAHEAD extent state btrfs: state information for readahead btrfs: initial readahead code and prototypes btrfs: hooks for readahead btrfs: test ioctl for readahead fs/btrfs/Makefile | 2 +- fs/btrfs/ctree.h | 13 + fs/btrfs/disk-io.c | 56 +++ fs/btrfs/disk-io.h | 2 + fs/btrfs/extent_io.c | 12 +- fs/btrfs/extent_io.h | 1 + fs/btrfs/ioctl.c | 86 +++++- fs/btrfs/ioctl.h | 16 + fs/btrfs/reada.c | 963 ++++++++++++++++++++++++++++++++++++++++++++++++++ fs/btrfs/volumes.c | 8 + fs/btrfs/volumes.h | 8 + 11 files changed, 1163 insertions(+), 4 deletions(-) create mode 100644 fs/btrfs/reada.c -- 1.7.3.4 -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html