UBIFS: set write-buffer timout to 3-5 seconds
This patch cleans up write-buffer timeout initialization and sets it to 3-5 interval. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
This commit is contained in:
parent
0b335b9d7d
commit
2a35a3a8ab
|
@ -828,7 +828,6 @@ out:
|
||||||
int ubifs_wbuf_init(struct ubifs_info *c, struct ubifs_wbuf *wbuf)
|
int ubifs_wbuf_init(struct ubifs_info *c, struct ubifs_wbuf *wbuf)
|
||||||
{
|
{
|
||||||
size_t size;
|
size_t size;
|
||||||
ktime_t hardlimit;
|
|
||||||
|
|
||||||
wbuf->buf = kmalloc(c->min_io_size, GFP_KERNEL);
|
wbuf->buf = kmalloc(c->min_io_size, GFP_KERNEL);
|
||||||
if (!wbuf->buf)
|
if (!wbuf->buf)
|
||||||
|
@ -854,18 +853,10 @@ int ubifs_wbuf_init(struct ubifs_info *c, struct ubifs_wbuf *wbuf)
|
||||||
|
|
||||||
hrtimer_init(&wbuf->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
|
hrtimer_init(&wbuf->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
|
||||||
wbuf->timer.function = wbuf_timer_callback_nolock;
|
wbuf->timer.function = wbuf_timer_callback_nolock;
|
||||||
/*
|
wbuf->softlimit = ktime_set(WBUF_TIMEOUT_SOFTLIMIT, 0);
|
||||||
* Make write-buffer soft limit to be 20% of the hard limit. The
|
wbuf->delta = WBUF_TIMEOUT_HARDLIMIT - WBUF_TIMEOUT_SOFTLIMIT;
|
||||||
* write-buffer timer is allowed to expire any time between the soft
|
wbuf->delta *= 1000000000ULL;
|
||||||
* and hard limits.
|
ubifs_assert(wbuf->delta <= ULONG_MAX);
|
||||||
*/
|
|
||||||
hardlimit = ktime_set(DEFAULT_WBUF_TIMEOUT_SECS, 0);
|
|
||||||
wbuf->delta = DEFAULT_WBUF_TIMEOUT_SECS * 1000000000ULL * 2 / 10;
|
|
||||||
if (wbuf->delta > ULONG_MAX)
|
|
||||||
wbuf->delta = ULONG_MAX;
|
|
||||||
wbuf->softlimit = ktime_sub_ns(hardlimit, wbuf->delta);
|
|
||||||
hrtimer_set_expires_range_ns(&wbuf->timer, wbuf->softlimit,
|
|
||||||
wbuf->delta);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -95,8 +95,9 @@
|
||||||
*/
|
*/
|
||||||
#define BGT_NAME_PATTERN "ubifs_bgt%d_%d"
|
#define BGT_NAME_PATTERN "ubifs_bgt%d_%d"
|
||||||
|
|
||||||
/* Default write-buffer synchronization timeout in seconds */
|
/* Write-buffer synchronization timeout interval in seconds */
|
||||||
#define DEFAULT_WBUF_TIMEOUT_SECS 5
|
#define WBUF_TIMEOUT_SOFTLIMIT 3
|
||||||
|
#define WBUF_TIMEOUT_HARDLIMIT 5
|
||||||
|
|
||||||
/* Maximum possible inode number (only 32-bit inodes are supported now) */
|
/* Maximum possible inode number (only 32-bit inodes are supported now) */
|
||||||
#define MAX_INUM 0xFFFFFFFF
|
#define MAX_INUM 0xFFFFFFFF
|
||||||
|
|
Loading…
Reference in New Issue