<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/f2fs/super.c, branch linux-3.14.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.14.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.14.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2014-01-20T01:27:12Z</updated>
<entry>
<title>f2fs: clean checkpatch warnings</title>
<updated>2014-01-20T01:27:12Z</updated>
<author>
<name>Chris Fries</name>
</author>
<published>2014-01-17T20:44:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6c311ec6c2d9e015d454b4e3fda8008b5bebf316'/>
<id>urn:sha1:6c311ec6c2d9e015d454b4e3fda8008b5bebf316</id>
<content type='text'>
Fixed a variety of trivial checkpatch warnings.  The only delta should
be some minor formatting on log strings that were split / too long.

Signed-off-by: Chris Fries &lt;cfries@motorola.com&gt;
Signed-off-by: Jaegeuk Kim &lt;jaegeuk.kim@samsung.com&gt;
</content>
</entry>
<entry>
<title>f2fs: add a sysfs entry to control max_victim_search</title>
<updated>2014-01-08T04:45:08Z</updated>
<author>
<name>Jaegeuk Kim</name>
</author>
<published>2014-01-08T04:45:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b1c57c1caa753cec299e62bb4272da0e85a01ef0'/>
<id>urn:sha1:b1c57c1caa753cec299e62bb4272da0e85a01ef0</id>
<content type='text'>
Previously during SSR and GC, the maximum number of retrials to find a victim
segment was hard-coded by MAX_VICTIM_SEARCH, 4096 by default.

This number makes an effect on IO locality, when SSR mode is activated, which
results in performance fluctuation on some low-end devices.

If max_victim_search = 4, the victim will be searched like below.
("D" represents a dirty segment, and "*" indicates a selected victim segment.)

 D1 D2 D3 D4 D5 D6 D7 D8 D9
[   *       ]
      [   *    ]
            [         * ]
	                [ ....]

This patch adds a sysfs entry to control the number dynamically through:
  /sys/fs/f2fs/$dev/max_victim_search

Signed-off-by: Jaegeuk Kim &lt;jaegeuk.kim@samsung.com&gt;
</content>
</entry>
<entry>
<title>f2fs: introduce sysfs entry to control in-place-update policy</title>
<updated>2013-12-23T01:18:07Z</updated>
<author>
<name>Jaegeuk Kim</name>
</author>
<published>2013-11-07T04:13:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=216fbd64437452d23db54ae845916facd7215caa'/>
<id>urn:sha1:216fbd64437452d23db54ae845916facd7215caa</id>
<content type='text'>
This patch introduces new sysfs entries for users to control the policy of
in-place-updates, namely IPU, in f2fs.

Sometimes f2fs suffers from performance degradation due to its out-of-place
update policy that produces many additional node block writes.
If the storage performance is very dependant on the amount of data writes
instead of IO patterns, we'd better drop this out-of-place update policy.

This patch suggests 5 polcies and their triggering conditions as follows.

[sysfs entry name = ipu_policy]

0: F2FS_IPU_FORCE       all the time,
1: F2FS_IPU_SSR         if SSR mode is activated,
2: F2FS_IPU_UTIL        if FS utilization is over threashold,
3: F2FS_IPU_SSR_UTIL    if SSR mode is activated and FS utilization is over
                        threashold,
4: F2FS_IPU_DISABLE    disable IPU. (=default option)

[sysfs entry name = min_ipu_util]

This parameter controls the threshold to trigger in-place-updates.
The number indicates percentage of the filesystem utilization, and used by
F2FS_IPU_UTIL and F2FS_IPU_SSR_UTIL policies.

For more details, see need_inplace_update() in segment.h.

Signed-off-by: Jaegeuk Kim &lt;jaegeuk.kim@samsung.com&gt;
</content>
</entry>
<entry>
<title>f2fs: missing kmem_cache_destroy for discard_entry</title>
<updated>2013-12-23T01:18:07Z</updated>
<author>
<name>Changman Lee</name>
</author>
<published>2013-12-11T05:32:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5dcd8a71505186a124640f9f7c5c81fb269cc476'/>
<id>urn:sha1:5dcd8a71505186a124640f9f7c5c81fb269cc476</id>
<content type='text'>
insmod f2fs.ko is failed after insmod and rmmod firstly.

$ sudo insmod fs/f2fs/f2fs.ko
insmod: error inserting 'fs/f2fs/f2fs.ko': -1 Cannot allocate memory

-- dmesg --
kmem_cache_sanity_check (free_nid): Cache name already exists.

Signed-off-by: Changman Lee &lt;cm224.lee@samsung.com&gt;
Signed-off-by: Jaegeuk Kim &lt;jaegeuk.kim@samsung.com&gt;
</content>
</entry>
<entry>
<title>f2fs: refactor bio-&gt;rw handling</title>
<updated>2013-12-23T01:18:06Z</updated>
<author>
<name>Jaegeuk Kim</name>
</author>
<published>2013-12-11T04:54:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=458e6197c37de53f7be0a837644daabb900c3036'/>
<id>urn:sha1:458e6197c37de53f7be0a837644daabb900c3036</id>
<content type='text'>
This patch introduces f2fs_io_info to mitigate the complex parameter list.

struct f2fs_io_info {
	enum page_type type;		/* contains DATA/NODE/META/META_FLUSH */
	int rw;				/* contains R/RS/W/WS */
	int rw_flag;			/* contains REQ_META/REQ_PRIO */
}

1. f2fs_write_data_pages
 - DATA
 - WRITE_SYNC is set when wbc-&gt;WB_SYNC_ALL.

2. sync_node_pages
 - NODE
 - WRITE_SYNC all the time

3. sync_meta_pages
 - META
 - WRITE_SYNC all the time
 - REQ_META | REQ_PRIO all the time

 ** f2fs_submit_merged_bio() handles META_FLUSH.

4. ra_nat_pages, ra_sit_pages, ra_sum_pages
 - META
 - READ_SYNC

Cc: Fan Li &lt;fanofcode.li@samsung.com&gt;
Cc: Changman Lee &lt;cm224.lee@samsung.com&gt;
Signed-off-by: Jaegeuk Kim &lt;jaegeuk.kim@samsung.com&gt;
</content>
</entry>
<entry>
<title>f2fs: add unlikely() macro for compiler more aggressively</title>
<updated>2013-12-23T01:18:06Z</updated>
<author>
<name>Jaegeuk Kim</name>
</author>
<published>2013-12-06T06:00:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6bacf52fb58aeb3e89d9a62970b85a5570aa8ace'/>
<id>urn:sha1:6bacf52fb58aeb3e89d9a62970b85a5570aa8ace</id>
<content type='text'>
This patch adds unlikely() macro into the most of codes.
The basic rule is to add that when:
- checking unusual errors,
- checking page mappings,
- and the other unlikely conditions.

Change log from v1:
 - Don't add unlikely for the NULL test and error test: advised by Andi Kleen.

Cc: Chao Yu &lt;chao2.yu@samsung.com&gt;
Cc: Andi Kleen &lt;andi@firstfloor.org&gt;
Reviewed-by: Chao Yu &lt;chao2.yu@samsung.com&gt;
Signed-off-by: Jaegeuk Kim &lt;jaegeuk.kim@samsung.com&gt;
</content>
</entry>
<entry>
<title>f2fs: use inner macro GFP_F2FS_ZERO for simplification</title>
<updated>2013-12-23T01:18:05Z</updated>
<author>
<name>Chao Yu</name>
</author>
<published>2013-12-05T01:54:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a0acdfe05a954363861a65eb537573ab417cb7ed'/>
<id>urn:sha1:a0acdfe05a954363861a65eb537573ab417cb7ed</id>
<content type='text'>
Use inner macro GFP_F2FS_ZERO to instead of GFP_NOFS | __GFP_ZERO for
simplification of code.

Signed-off-by: Chao Yu &lt;chao2.yu@samsung.com&gt;
Signed-off-by: Jaegeuk Kim &lt;jaegeuk.kim@samsung.com&gt;
</content>
</entry>
<entry>
<title>f2fs: convert recover_orphan_inodes to void</title>
<updated>2013-12-23T01:18:05Z</updated>
<author>
<name>Chao Yu</name>
</author>
<published>2013-11-28T07:43:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8f99a946f360c4083d6e323e10a5928e1ce385a4'/>
<id>urn:sha1:8f99a946f360c4083d6e323e10a5928e1ce385a4</id>
<content type='text'>
The recover_orphan_inodes() returns no error all the time, so we don't need to
check its errors.

Signed-off-by: Chao Yu &lt;chao2.yu@samsung.com&gt;
[Jaegeuk Kim: add description]
Signed-off-by: Jaegeuk Kim &lt;jaegeuk.kim@samsung.com&gt;
</content>
</entry>
<entry>
<title>f2fs: add a new mount option: inline_data</title>
<updated>2013-12-23T01:18:03Z</updated>
<author>
<name>Huajun Li</name>
</author>
<published>2013-11-10T15:13:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8274de77b7072d983fe4b452b981b3e520f12698'/>
<id>urn:sha1:8274de77b7072d983fe4b452b981b3e520f12698</id>
<content type='text'>
Add a mount option: inline_data. If the mount option is set,
data of New created small files can be stored in their inode.

Signed-off-by: Huajun Li &lt;huajun.li@intel.com&gt;
Signed-off-by: Haicheng Li &lt;haicheng.li@linux.intel.com&gt;
Signed-off-by: Weihong Xu &lt;weihong.xu@intel.com&gt;
Signed-off-by: Jaegeuk Kim &lt;jaegeuk.kim@samsung.com&gt;
</content>
</entry>
<entry>
<title>f2fs: add a new function to support for merging contiguous read</title>
<updated>2013-12-23T01:18:02Z</updated>
<author>
<name>Chao Yu</name>
</author>
<published>2013-11-20T06:46:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=924b720b589f91311657216c97edbb3337449270'/>
<id>urn:sha1:924b720b589f91311657216c97edbb3337449270</id>
<content type='text'>
For better read performance, we add a new function to support for merging
contiguous read as the one for write.

v1--&gt;v2:
 o add declarations here as Gu Zheng suggested.
 o use new structure f2fs_bio_info introduced by Jaegeuk Kim.

Signed-off-by: Chao Yu &lt;chao2.yu@samsung.com&gt;
Acked-by: Gu Zheng &lt;guz.fnst@cn.fujitsu.com&gt;
</content>
</entry>
</feed>
