All of lore.kernel.org
 help / color / mirror / Atom feed
From: Xiaoguang Wang <wangxg.fnst@cn.fujitsu.com>
To: Andreas Dilger <adilger@dilger.ca>
Cc: "<linux-ext4@vger.kernel.org>" <linux-ext4@vger.kernel.org>,
	"<tytso@mit.edu>" <tytso@mit.edu>,
	"<darrick.wong@oracle.com>" <darrick.wong@oracle.com>
Subject: Re: [PATCH] misc/e4defrag: output extent's status(written or unwritten)
Date: Wed, 24 Sep 2014 09:11:03 +0800	[thread overview]
Message-ID: <54221A27.6020201@cn.fujitsu.com> (raw)
In-Reply-To: <C0C311EB-9F6E-4F6D-8157-F81F8246B868@dilger.ca>

Hi,

On 09/24/2014 03:02 AM, Andreas Dilger wrote:
> It would be nice if the output would match the format used by filefrag.
OK, will send a V2 version, thanks!

Regards,
Xiaoguang Wang
 
> 
> Cheers, Andreas
> 
>> On Sep 23, 2014, at 12:41, Xiaoguang Wang <wangxg.fnst@cn.fujitsu.com> wrote:
>>
>> Before this patch, the output woulld be(e4defrag -c -v testfile):
>> <File>
>> [ext 1]:        start 33796:    logical 0:      len 1
>> [ext 2]:        start 9267:     logical 1:      len 29
>> [ext 3]:        start 9296:     logical 30:     len 1
>> [ext 4]:        start 9297:     logical 31:     len 29
>> [ext 5]:        start 9326:     logical 60:     len 1
>> [ext 6]:        start 9327:     logical 61:     len 29
>> ...
>> [ext 32]:       start 9265:     logical 800:    len 1
>> [ext 33]:       start 9266:     logical 900:    len 1
>>
>> Total/best extents                             33/1
>> Average size per extent                        61 KB
>> Fragmentation score                            51
>> [0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag]
>> This file (/mnt/xfstests/scratch/test.10) does not need defragmentation.
>> Done.
>>
>> After this patch, the output would be:
>> <File>
>> [ext 1]:   start 33796:    logical 0:      len 1   [written]
>> [ext 2]:   start 9267:     logical 1:      len 29  [unwritten]
>> [ext 3]:   start 9296:     logical 30:     len 1   [written]
>> [ext 4]:   start 9297:     logical 31:     len 29  [unwritten]
>> [ext 5]:   start 9326:     logical 60:     len 1   [written]
>> [ext 6]:   start 9327:     logical 61:     len 29  [unwritten]
>> ...
>> [ext 32]:  start 9265:     logical 800:    len 1   [unwritten]
>> [ext 33]:  start 9266:     logical 900:    len 1   [unwritten]
>>
>> Total/best extents                             33/1
>> Average size per extent                        61 KB
>> Fragmentation score                            51
>> [0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag]
>> This file (/mnt/xfstests/scratch/test.10) does not need defragmentation.
>> Done.
>>
>> Signed-off-by: Xiaoguang Wang <wangxg.fnst@cn.fujitsu.com>
>> ---
>> misc/e4defrag.c | 14 ++++++++++----
>> 1 file changed, 10 insertions(+), 4 deletions(-)
>>
>> diff --git a/misc/e4defrag.c b/misc/e4defrag.c
>> index d0eac60..b39e263 100644
>> --- a/misc/e4defrag.c
>> +++ b/misc/e4defrag.c
>> @@ -129,6 +129,7 @@ struct fiemap_extent_data {
>>    __u64 len;            /* blocks count */
>>    __u64 logical;        /* start logical block number */
>>    ext4_fsblk_t physical;        /* start physical block number */
>> +    __u32 fe_flags;        /* FIEMAP_EXTENT_* flags for this extent */
>> };
>>
>> struct fiemap_extent_list {
>> @@ -831,6 +832,7 @@ static int get_file_extents(int fd, struct fiemap_extent_list **ext_list_head)
>>                        / block_size;
>>            ext_list->data.len = ext_buf[i].fe_length
>>                        / block_size;
>> +            ext_list->data.fe_flags = ext_buf[i].fe_flags;
>>
>>            ret = insert_extent_by_physical(
>>                    ext_list_head, ext_list);
>> @@ -1170,12 +1172,16 @@ static int file_statistic(const char *file, const struct stat64 *buf,
>>
>>            /* Print extents info */
>>            do {
>> +                char *status = ext_list_tmp->data.fe_flags &
>> +                    FIEMAP_EXTENT_UNWRITTEN ?
>> +                    "unwritten" : "written";
>>                count++;
>>                printf("[ext %d]:\tstart %llu:\tlogical "
>> -                        "%llu:\tlen %llu\n", count,
>> -                        ext_list_tmp->data.physical,
>> -                        ext_list_tmp->data.logical,
>> -                        ext_list_tmp->data.len);
>> +                       "%llu:\tlen %llu \t[%s]\n", count,
>> +                       ext_list_tmp->data.physical,
>> +                       ext_list_tmp->data.logical,
>> +                       ext_list_tmp->data.len,
>> +                       status);
>>                ext_list_tmp = ext_list_tmp->next;
>>            } while (ext_list_tmp != logical_list_head);
>>
>> -- 
>> 1.8.2.1
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> .
> 


  reply	other threads:[~2014-09-24  1:11 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-23 10:41 [PATCH] misc/e4defrag: output extent's status(written or unwritten) Xiaoguang Wang
2014-09-23 19:02 ` Andreas Dilger
2014-09-24  1:11   ` Xiaoguang Wang [this message]
2014-09-24 13:44     ` Eric Sandeen
2014-10-06 11:04       ` Xiaoguang Wang
2014-10-06 11:05       ` [PATCH] filefrag: fix wrong extent count calculation when using FIBMAP Xiaoguang Wang
2014-10-06 22:29         ` Andreas Dilger
2014-10-07  1:43           ` Xiaoguang Wang
2014-10-07  2:43         ` Darrick J. Wong
2014-10-07  3:50           ` Xiaoguang Wang
2014-10-07  3:59             ` Darrick J. Wong
2014-10-07  4:12               ` Xiaoguang Wang
2014-10-07  8:31                 ` [PATCH v2] " Xiaoguang Wang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54221A27.6020201@cn.fujitsu.com \
    --to=wangxg.fnst@cn.fujitsu.com \
    --cc=adilger@dilger.ca \
    --cc=darrick.wong@oracle.com \
    --cc=linux-ext4@vger.kernel.org \
    --cc=tytso@mit.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.