writeback: skip tmpfs early in balance_dirty_pages_ratelimited_nr()
This helps prevent tmpfs dirtiers from skewing the per-cpu bdp_ratelimits. Acked-by: Jan Kara <jack@suse.cz> Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
This commit is contained in:
@@ -490,9 +490,6 @@ static void balance_dirty_pages(struct address_space *mapping,
|
|||||||
bool dirty_exceeded = false;
|
bool dirty_exceeded = false;
|
||||||
struct backing_dev_info *bdi = mapping->backing_dev_info;
|
struct backing_dev_info *bdi = mapping->backing_dev_info;
|
||||||
|
|
||||||
if (!bdi_cap_account_dirty(bdi))
|
|
||||||
return;
|
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
struct writeback_control wbc = {
|
struct writeback_control wbc = {
|
||||||
.sync_mode = WB_SYNC_NONE,
|
.sync_mode = WB_SYNC_NONE,
|
||||||
@@ -631,9 +628,13 @@ static DEFINE_PER_CPU(unsigned long, bdp_ratelimits) = 0;
|
|||||||
void balance_dirty_pages_ratelimited_nr(struct address_space *mapping,
|
void balance_dirty_pages_ratelimited_nr(struct address_space *mapping,
|
||||||
unsigned long nr_pages_dirtied)
|
unsigned long nr_pages_dirtied)
|
||||||
{
|
{
|
||||||
|
struct backing_dev_info *bdi = mapping->backing_dev_info;
|
||||||
unsigned long ratelimit;
|
unsigned long ratelimit;
|
||||||
unsigned long *p;
|
unsigned long *p;
|
||||||
|
|
||||||
|
if (!bdi_cap_account_dirty(bdi))
|
||||||
|
return;
|
||||||
|
|
||||||
ratelimit = ratelimit_pages;
|
ratelimit = ratelimit_pages;
|
||||||
if (mapping->backing_dev_info->dirty_exceeded)
|
if (mapping->backing_dev_info->dirty_exceeded)
|
||||||
ratelimit = 8;
|
ratelimit = 8;
|
||||||
|
Reference in New Issue
Block a user