mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-28 17:41:50 +00:00
fs: add dirtytime_expire_seconds sysctl
Add a tuning knob so we can adjust the dirtytime expiration timeout, which is very useful for testing lazytime. Signed-off-by: Theodore Ts'o <tytso@mit.edu> Reviewed-by: Jan Kara <jack@suse.cz>
This commit is contained in:
parent
a2f4870697
commit
1efff914af
3 changed files with 22 additions and 0 deletions
|
@ -1188,6 +1188,17 @@ static int __init start_dirtytime_writeback(void)
|
||||||
}
|
}
|
||||||
__initcall(start_dirtytime_writeback);
|
__initcall(start_dirtytime_writeback);
|
||||||
|
|
||||||
|
int dirtytime_interval_handler(struct ctl_table *table, int write,
|
||||||
|
void __user *buffer, size_t *lenp, loff_t *ppos)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
ret = proc_dointvec_minmax(table, write, buffer, lenp, ppos);
|
||||||
|
if (ret == 0 && write)
|
||||||
|
mod_delayed_work(system_wq, &dirtytime_work, 0);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
static noinline void block_dump___mark_inode_dirty(struct inode *inode)
|
static noinline void block_dump___mark_inode_dirty(struct inode *inode)
|
||||||
{
|
{
|
||||||
if (inode->i_ino || strcmp(inode->i_sb->s_id, "bdev")) {
|
if (inode->i_ino || strcmp(inode->i_sb->s_id, "bdev")) {
|
||||||
|
|
|
@ -130,6 +130,7 @@ extern int vm_dirty_ratio;
|
||||||
extern unsigned long vm_dirty_bytes;
|
extern unsigned long vm_dirty_bytes;
|
||||||
extern unsigned int dirty_writeback_interval;
|
extern unsigned int dirty_writeback_interval;
|
||||||
extern unsigned int dirty_expire_interval;
|
extern unsigned int dirty_expire_interval;
|
||||||
|
extern unsigned int dirtytime_expire_interval;
|
||||||
extern int vm_highmem_is_dirtyable;
|
extern int vm_highmem_is_dirtyable;
|
||||||
extern int block_dump;
|
extern int block_dump;
|
||||||
extern int laptop_mode;
|
extern int laptop_mode;
|
||||||
|
@ -146,6 +147,8 @@ extern int dirty_ratio_handler(struct ctl_table *table, int write,
|
||||||
extern int dirty_bytes_handler(struct ctl_table *table, int write,
|
extern int dirty_bytes_handler(struct ctl_table *table, int write,
|
||||||
void __user *buffer, size_t *lenp,
|
void __user *buffer, size_t *lenp,
|
||||||
loff_t *ppos);
|
loff_t *ppos);
|
||||||
|
int dirtytime_interval_handler(struct ctl_table *table, int write,
|
||||||
|
void __user *buffer, size_t *lenp, loff_t *ppos);
|
||||||
|
|
||||||
struct ctl_table;
|
struct ctl_table;
|
||||||
int dirty_writeback_centisecs_handler(struct ctl_table *, int,
|
int dirty_writeback_centisecs_handler(struct ctl_table *, int,
|
||||||
|
|
|
@ -1227,6 +1227,14 @@ static struct ctl_table vm_table[] = {
|
||||||
.proc_handler = proc_dointvec_minmax,
|
.proc_handler = proc_dointvec_minmax,
|
||||||
.extra1 = &zero,
|
.extra1 = &zero,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.procname = "dirtytime_expire_seconds",
|
||||||
|
.data = &dirtytime_expire_interval,
|
||||||
|
.maxlen = sizeof(dirty_expire_interval),
|
||||||
|
.mode = 0644,
|
||||||
|
.proc_handler = dirtytime_interval_handler,
|
||||||
|
.extra1 = &zero,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.procname = "nr_pdflush_threads",
|
.procname = "nr_pdflush_threads",
|
||||||
.mode = 0444 /* read-only */,
|
.mode = 0444 /* read-only */,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue