Re: [PATCH 00/16] f2fs: introduce flash-friendly file system

From: Vyacheslav Dubeyko
Date: Sun Oct 07 2012 - 06:15:30 EST



Hi,

On Oct 7, 2012, at 12:06 AM, Jaegeuk Kim wrote:

> 2012-10-06 (í), 17:54 +0400, Vyacheslav Dubeyko:
>> Hi Jaegeuk,
>
> Hi.
> We know each other, right? :)
>

Yes, you are correct. :-)

>>
>>> From: êìê <jaegeuk.kim@xxxxxxxxxxx>
>>> To: viro@xxxxxxxxxxxxxxxxxx, 'Theodore Ts'o' <tytso@xxxxxxx>, gregkh@xxxxxxxxxxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, chur.lee@xxxxxxxxxxx, cm224.lee@xxxxxxxxxxx, jaegeuk.kim@xxxxxxxxxxx, jooyoung.hwang@xxxxxxxxxxx
>>> Subject: [PATCH 00/16] f2fs: introduce flash-friendly file system
>>> Date: Fri, 05 Oct 2012 20:55:07 +0900
>>>
>>> This is a new patch set for the f2fs file system.
>>>
>>> What is F2FS?
>>> =============
>>>
>>> NAND flash memory-based storage devices, such as SSD, eMMC, and SD cards, have
>>> been widely being used for ranging from mobile to server systems. Since they are
>>> known to have different characteristics from the conventional rotational disks,
>>> a file system, an upper layer to the storage device, should adapt to the changes
>>> from the sketch.
>>>
>>> F2FS is a new file system carefully designed for the NAND flash memory-based storage
>>> devices. We chose a log structure file system approach, but we tried to adapt it
>>> to the new form of storage. Also we remedy some known issues of the very old log
>>> structured file system, such as snowball effect of wandering tree and high cleaning
>>> overhead.
>>>
>>> Because a NAND-based storage device shows different characteristics according to
>>> its internal geometry or flash memory management scheme aka FTL, we add various
>>> parameters not only for configuring on-disk layout, but also for selecting allocation
>>> and cleaning algorithms.
>>>
>>
>> What about F2FS performance? Could you share benchmarking results of the new file system?
>>
>> It is very interesting the case of aged file system. How is GC's implementation efficient? Could you share benchmarking results for the very aged file system state?
>>
>
> Although I have benchmark results, currently I'd like to see the results
> measured by community as a black-box. As you know, the results are very
> dependent on the workloads and parameters, so I think it would be better
> to see other results for a while.
> Thanks,

It is a good strategy. But it exists known bottlenecks and, maybe, it makes sense to begin discussion in the community.

With the best regards,
Vyacheslav Dubeyko.

>
>> With the best regards,
>> Vyacheslav Dubeyko.
>>
>>> Patch set
>>> =========
>>>
>>> The patch #1 adds a document to Documentation/filesystems/.
>>> The patch #2 adds a header file of on-disk layout to include/linux/.
>>> The patches #3-#15 adds f2fs source files to fs/f2fs/.
>>> The Last patch, patch #16, updates Makefile and Kconfig.
>>>
>>> mkfs.f2fs
>>> =========
>>>
>>> The file system formatting tool, "mkfs.f2fs", is available from the following
>>> download page:
>>> http://sourceforge.net/projects/f2fs-tools/
>>>
>>>
>>> Usage
>>> =====
>>>
>>> If you'd like to experience f2fs, simply:
>>> # mkfs.f2fs /dev/sdb1
>>> # mount -t f2fs /dev/sdb1 /mnt/f2fs
>>>
>>> Short log
>>> =========
>>>
>>> Jaegeuk Kim (16):
>>> f2fs: add document
>>> f2fs: add on-disk layout
>>> f2fs: add superblock and major in-memory structure
>>> f2fs: add super block operations
>>> f2fs: add checkpoint operations
>>> f2fs: add node operations
>>> f2fs: add segment operations
>>> f2fs: add file operations
>>> f2fs: add address space operations for data
>>> f2fs: add core inode operations
>>> f2fs: add inode operations for special inodes
>>> f2fs: add core directory operations
>>> f2fs: add xattr and acl functionalities
>>> f2fs: add garbage collection functions
>>> f2fs: add recovery routines for roll-forward
>>> f2fs: update Kconfig and Makefile
>>>
>>> Documentation/filesystems/00-INDEX | 2 +
>>> Documentation/filesystems/f2fs.txt | 314 +++++++
>>> fs/Kconfig | 1 +
>>> fs/Makefile | 1 +
>>> fs/f2fs/Kconfig | 55 ++
>>> fs/f2fs/Makefile | 6 +
>>> fs/f2fs/acl.c | 402 ++++++++
>>> fs/f2fs/acl.h | 57 ++
>>> fs/f2fs/checkpoint.c | 791 ++++++++++++++++
>>> fs/f2fs/data.c | 700 ++++++++++++++
>>> fs/f2fs/dir.c | 657 +++++++++++++
>>> fs/f2fs/f2fs.h | 981 ++++++++++++++++++++
>>> fs/f2fs/file.c | 643 +++++++++++++
>>> fs/f2fs/gc.c | 1140 +++++++++++++++++++++++
>>> fs/f2fs/gc.h | 203 +++++
>>> fs/f2fs/hash.c | 98 ++
>>> fs/f2fs/inode.c | 258 ++++++
>>> fs/f2fs/namei.c | 549 +++++++++++
>>> fs/f2fs/node.c | 1773 ++++++++++++++++++++++++++++++++++++
>>> fs/f2fs/node.h | 331 +++++++
>>> fs/f2fs/recovery.c | 372 ++++++++
>>> fs/f2fs/segment.c | 1755 +++++++++++++++++++++++++++++++++++
>>> fs/f2fs/segment.h | 627 +++++++++++++
>>> fs/f2fs/super.c | 550 +++++++++++
>>> fs/f2fs/xattr.c | 387 ++++++++
>>> fs/f2fs/xattr.h | 142 +++
>>> include/linux/f2fs_fs.h | 359 ++++++++
>>> 27 files changed, 13154 insertions(+)
>>> create mode 100644 Documentation/filesystems/f2fs.txt
>>> create mode 100644 fs/f2fs/Kconfig
>>> create mode 100644 fs/f2fs/Makefile
>>> create mode 100644 fs/f2fs/acl.c
>>> create mode 100644 fs/f2fs/acl.h
>>> create mode 100644 fs/f2fs/checkpoint.c
>>> create mode 100644 fs/f2fs/data.c
>>> create mode 100644 fs/f2fs/dir.c
>>> create mode 100644 fs/f2fs/f2fs.h
>>> create mode 100644 fs/f2fs/file.c
>>> create mode 100644 fs/f2fs/gc.c
>>> create mode 100644 fs/f2fs/gc.h
>>> create mode 100644 fs/f2fs/hash.c
>>> create mode 100644 fs/f2fs/inode.c
>>> create mode 100644 fs/f2fs/namei.c
>>> create mode 100644 fs/f2fs/node.c
>>> create mode 100644 fs/f2fs/node.h
>>> create mode 100644 fs/f2fs/recovery.c
>>> create mode 100644 fs/f2fs/segment.c
>>> create mode 100644 fs/f2fs/segment.h
>>> create mode 100644 fs/f2fs/super.c
>>> create mode 100644 fs/f2fs/xattr.c
>>> create mode 100644 fs/f2fs/xattr.h
>>> create mode 100644 include/linux/f2fs_fs.h
>>>
>>> --
>>> 1.7.9.5
>>>
>>>
>>>
>>>
>>> ---
>>> Jaegeuk Kim
>>> Samsung
>>>
>>>
>>>
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>>> More majordomo info at
>>> http://vger.kernel.org/majordomo-info.html
>>>
>>> Please read the FAQ at http://www.tux.org/lkml/
>>>
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>> Please read the FAQ at http://www.tux.org/lkml/
>
> --
> Jaegeuk Kim
> Samsung
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/