On 01/06/2012 07:51 AM, David Sterba wrote:
Hi, I've let it run through xfstests and ended at 091, patches applied
on top of 3.2, mount options
compress-force=lzo,discard,inode_cache,space_cache,autodefrag
fresh mkfs with defaults.
Hi David,
Thanks a lot for your work!
I also find this
On 22/12/2011 2:24 μμ, Chris Samuel wrote:
Christoph,
On Sat, 2 Apr 2011 12:40:11 AM Chris Mason wrote:
Excerpts from Christoph Hellwig's message of 2011-04-01 09:34:05
-0400:
I don't think it's a good idea to introduce any user visible
operations over subvolume boundaries. Currently we
Hi,
I have setup up a btrfs RAID1 using two 1TB drives. How long should a
'btrfs filesystem balance' take? It is running now for more than 3 days
on about 30% CPU and 40% wait state.
I am using stock btrfs from ubuntu 11.10 kernel 3.0.0
Regards
Dirk
--
To unsubscribe from this list:
{data,metadata,system}_alloc_profile fields have been unused for a long
time now. Get rid of them.
Signed-off-by: Ilya Dryomov idryo...@gmail.com
---
fs/btrfs/ctree.h |3 ---
fs/btrfs/disk-io.c |3 ---
fs/btrfs/extent-tree.c | 10 --
fs/btrfs/volumes.c |6
Chunk's type and profile are encoded in u64 flags field. Introduce
masks to easily access them. Also fix the type of BTRFS_BLOCK_GROUP_*
constants, it should be ULL.
Signed-off-by: Ilya Dryomov idryo...@gmail.com
---
fs/btrfs/ctree.h | 26 +-
Right now on-disk BTRFS_BLOCK_GROUP_* profile bits are used for
avail_{data,metadata,system}_alloc_bits fields, which gather info about
available allocation profiles in the FS. When chunk is created or read
from disk, its profile is OR'ed with the corresponding avail_alloc_bits
field. Since
Currently when new chunks are created respective avail_alloc_bits field
is updated to reflect profiles of all chunks present in the system.
However when chunks are removed profile bits are never cleared.
This patch clears profile bit of respective avail_alloc_bits field when
the last chunk with
This allows to have a separate set of filters for each chunk type
(data,meta,sys). The code however is generic and switch on chunk type
is only done once.
This commit also adds a type filter: it allows to balance for example
meta and system chunks w/o touching data ones.
Signed-off-by: Ilya
Select chunks based on a given profile mask.
Signed-off-by: Ilya Dryomov idryo...@gmail.com
---
fs/btrfs/volumes.c | 24
fs/btrfs/volumes.h |4
2 files changed, 28 insertions(+), 0 deletions(-)
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index
Select chunks that are less than X percent full.
Signed-off-by: Ilya Dryomov idryo...@gmail.com
---
fs/btrfs/volumes.c | 36
fs/btrfs/volumes.h |1 +
2 files changed, 37 insertions(+), 0 deletions(-)
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
Add basic restriper infrastructure: extended balancing ioctl and all
related ioctl data structures, add data structure for tracking
restriper's state to fs_info, etc. The semantics of the old balancing
ioctl are fully preserved.
Explicitly disallow any volume operations when balance is in
Relocate chunks which have at least one stripe located on a device with
devid X.
Signed-off-by: Ilya Dryomov idryo...@gmail.com
---
fs/btrfs/volumes.c | 23 +++
fs/btrfs/volumes.h |1 +
2 files changed, 24 insertions(+), 0 deletions(-)
diff --git a/fs/btrfs/volumes.c
Select chunks which have at least one byte of at least one stripe
located on a device with devid X in a given [pstart,pend) physical
address range.
This filter only works when devid filter is turned on.
Signed-off-by: Ilya Dryomov idryo...@gmail.com
---
fs/btrfs/volumes.c | 45
Select chunks which have at least one byte located inside a given
[vstart, vend) virtual address space range.
Signed-off-by: Ilya Dryomov idryo...@gmail.com
---
fs/btrfs/volumes.c | 20
fs/btrfs/volumes.h |1 +
2 files changed, 21 insertions(+), 0 deletions(-)
diff
Every caller of do_chunk_alloc() feeds it the reduced allocation
profile, so stop trying to reduce it one more time. Instead check the
validity of the passed profile.
Signed-off-by: Ilya Dryomov idryo...@gmail.com
---
fs/btrfs/ctree.h | 18 ++
fs/btrfs/extent-tree.c |
Profile changing is done by launching a balance with
BTRFS_BALANCE_CONVERT bits set and target fields of respective
btrfs_balance_args structs initialized. Profile reducing code in this
case will pick restriper's target profile if it's available instead of
doing a blind reduce. If target profile
When doing convert from one profile to another if soft mode is on
restriper won't touch chunks that already have the profile we are
converting to. This is useful if e.g. half of the FS was converted
earlier.
The soft mode switch is (like every other filter) per-type. This means
that we can
Introduce a new btree objectid for storing balance item. The reason is
to be able to resume restriper after a crash with the same parameters.
Balance item has a very high objectid and goes into tree of tree roots.
The key for the new item is as follows:
[ BTRFS_BALANCE_OBJECTID ;
On mount, if balance item is found, resume balance in a separate
kernel thread.
Try to be smart to continue roughly where previous balance (or convert)
was interrupted. For chunk types that were being converted to some
profile we turn on soft convert, in case of a simple balance we turn on
usage
Since restriper kthread starts involuntarily on mount and can suck cpu
and memory bandwidth add a mount option to forcefully skip it. The
restriper in that case hangs around in paused state and can be resumed
from userspace when it's convenient.
Signed-off-by: Ilya Dryomov idryo...@gmail.com
---
Implement an ioctl for pausing restriper. This pauses the relocation,
but balance is still considered to be in progress: balance item is
not deleted, other volume operations cannot be started, etc. If paused
in the middle of profile changing operation we will continue making
allocations with the
Implement an ioctl for cancelling restriper. Currently we wait until
relocation of the current block group is finished, in future this can be
done by triggering a commit. Balance item is deleted and no memory
about the interrupted balance is kept.
Signed-off-by: Ilya Dryomov idryo...@gmail.com
Implement an ioctl for resuming restriper. We use the same heuristics
used when recovering balance after a crash to try to start where we left
off last time.
Signed-off-by: Ilya Dryomov idryo...@gmail.com
---
fs/btrfs/ioctl.c |2 ++
fs/btrfs/ioctl.h |1 +
fs/btrfs/volumes.c | 27
Signed-off-by: Ilya Dryomov idryo...@gmail.com
---
fs/btrfs/ioctl.c | 51 +++
fs/btrfs/ioctl.h |6 ++
fs/btrfs/volumes.c | 35 +--
fs/btrfs/volumes.h |3 +++
4 files changed, 93 insertions(+), 2
Hello,
This is an update of userspace restriper interface. The main change is
that restriper commands have been moved under balance prefix. So now we
have:
btrfs fi balance start
btrfs fi balance pause
btrfs fi balance cancel
btrfs fi balance resume
btrfs fi balance status
This breaks
Import restriper commands under btrfs fi balance:
btrfs fi balance start
btrfs fi balance cancel
btrfs fi balance pause
btrfs fi balance resume
btrfs fi balance status
NOTE: Backwards compatibility is broken for now, to get the old balance
everything behaviour one has to call 'btrfs fi
On Fri, Jan 06, 2012 at 11:51:16AM +0800, Miao Xie wrote:
On thu, 5 Jan 2012 10:15:50 -0500, Josef Bacik wrote:
+ trans = btrfs_start_transaction(root, 2);
+ if (IS_ERR(trans))
+ return PTR_ERR(trans);
/*
* setattr is responsible for setting the ordered_data_close
Raid array setup code creates an extent buffer in an usual way. When the
PAGE_CACHE_SIZE is super block size, the extent pages are not marked
up-to-date, which triggers a WARN_ON in the following
write_extent_buffer call. Add an explicit SetPageUptodate call to
silence the warning.
On Fri, Jan 06, 2012 at 03:17:59PM +0800, Li Zefan wrote:
[ 1499.946409] BUG: unable to handle kernel NULL pointer dereference at
0001
[ 1499.946437] IP: [a0456dd7] io_ctl_drop_pages+0x37/0x70 [btrfs]
0x01 is weired, don't know how it occured. Nevertheless we need
On Fri, Jan 06, 2012 at 02:04:12PM +0200, Konstantinos Skarlatos wrote:
Me too wants cp --reflink across subvolumes. Please make this feature
available to us, as its a poor man's dedupe and would give big space
savings for many use cases.
The simple case of 'cp --reflink' works fine, the
Signed-off-by: David Sterba dste...@suse.cz
---
v2-v3: manpage updated, added ... around file in command description
btrfs.c|9 ++-
btrfs_cmds.c | 68
btrfs_cmds.h |1 +
ioctl.h| 13 ++
Chris Mason chris.mason at oracle.com writes:
So over the next two weeks I'm juggling the merge window and the fsck
release. My goal is to demo fsck at linuxcon europe. Thanks again for
all of your patience and help with Btrfs!
So we have a lot of new features which is awesome but still
On Wed, Jan 4, 2012 at 2:30 PM, Dan Garton dan.gar...@gmail.com wrote:
Assuming that this is the case, do I stand a chance of retrieving that
volume and accessing that data again?
Or does destructive imply total loss? (In which case, I'll cut my
losses)
unfortunately i really don't know
33 matches
Mail list logo