Re: Repeatable block allocation problem.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 9/17/18 11:40 AM, Joshi wrote:
> It's not that I need specific values for extents/blocks for a file. It
> is just about being able to create/prepare a file of given size with
> same (repeatable) number of extents and block numbers, in a controlled
> environment.


> I thought it would happen naturally, if I keep preconditions same
> (i.e. post format with lazy initialization disabled. I had not
> disabled lazy-allocation though).
> But extent count differed, at times.
> And I wondered whether Ext4 code makes any conscious attempt to
> randomize the extent/block allocation?

find_group_orlov() randomly selects block groups for root directories,
but AFAIK there is no explicit random behavior in the block allocator.

It's more of a chaotic system than intentional random selection.  :)

> End objective of above was to create fragmented file, with repeatable
> extent-count/block-numbers.

I understand that you want repeatable allocation behavior.

I still don't know exactly what behavior you are ultimately trying to
test, though.

> I'll check xfstests as well.

The tests marked as being in the defrag group are:

tests/btrfs/005
tests/btrfs/021
tests/btrfs/062
tests/btrfs/067
tests/btrfs/070
tests/btrfs/072
tests/btrfs/074
tests/ext4/020
tests/ext4/301
tests/ext4/302
tests/ext4/303
tests/ext4/304
tests/ext4/307
tests/ext4/308
tests/generic/018
tests/generic/324

-Eric
 
> Thanks,
> 
> On Mon, Sep 17, 2018 at 9:31 PM Eric Sandeen <sandeen@xxxxxxxxxx> wrote:
>>
>> On 9/17/18 10:59 AM, Joshi wrote:
>>> Sorry if i gave the impression that i needed something in user-mode only. I am fine even if change involves modifying ext4 source.
>>
>> Perhaps you can describe what defrag behavior you are trying to test,
>> and we can offer some suggestions for good ways to construct that test?
>>
>> There are already a handful of defrag tests in xfstests, fwiw.
>>
>> Thanks,
>> -Eric
>>
>>> On Mon, 17 Sep 2018, 21:14 Eric Sandeen, <esandeen@xxxxxxxxxx <mailto:esandeen@xxxxxxxxxx>> wrote:
>>>
>>>     On 9/17/18 6:22 AM, Joshi wrote:
>>>     > I've been doing some defrag related tests, and for that I needed to be
>>>     > able to create file with same set of block numbers (i.e. extents), for
>>>     > at least two times.
>>>
>>>     Userspace cannot control that.
>>>
>>>     > May I know if there is any randomness in Ext4 allocator, and if there
>>>     > is any, can I disable it for the purpose of getting repeatable
>>>     > block-allocation patterns.
>>>     >
>>>     > Here are experiment details -
>>>     > For a 100K file (created using dd if=/dev/zero of=/mnt/f100k bs=4K
>>>     > count=100, oflag=direct) I got extent info in one run as this -
>>>     >
>>>     > File size of /mnt/file400k is 409600 (100 blocks of 4096 bytes)
>>>     >  ext:     logical_offset:        physical_offset: length:   expected: flags:
>>>     >    0:        0..      15:      34816..     34831:     16:
>>>     >    1:       16..      99:      33824..     33907:     84:      34832: last,eof
>>>     >
>>>     > while in the the second run I got somewhat different runs -
>>>     > File size of /mnt/file400k is 409600 (100 blocks of 4096 bytes)
>>>     >  ext:     logical_offset:        physical_offset: length:   expected: flags:
>>>     >    0:        0..       0:      34816..     34816:      1:
>>>     >    1:        1..      15:      34320..     34334:     15:      34817:
>>>     >    2:       16..      99:      33824..     33907:     84:      34335: last,eof
>>>     >
>>>     > Each run beings with a mkfs.ext4 with lazy inode/journal
>>>     > initialization disabled.
>>>
>>>     Userspace doesn't get to pick physical locations for allocations, you cannot
>>>     write a test which depends on doing so.
>>>
>>>     -Eric
>>>
>>
> 
> 




[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux