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

From: Vyacheslav Dubeyko
Date: Sat Oct 06 2012 - 09:54:03 EST


Hi Jaegeuk,

> 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?

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/