2017-11-27 16:37 GMT+08:00 Michal Hocko <mhocko@xxxxxxxx>: > On Mon 27-11-17 16:32:42, Yafang Shao wrote: >> 2017-11-27 16:29 GMT+08:00 Yafang Shao <laoar.shao@xxxxxxxxx>: >> > 2017-11-27 16:21 GMT+08:00 Michal Hocko <mhocko@xxxxxxxx>: >> >> On Mon 27-11-17 16:06:50, Yafang Shao wrote: >> >>> +cc fcicq >> >> [...] >> >>> diff --git a/mm/page-writeback.c b/mm/page-writeback.c >> >>> index 8a15511..6c5c018 100644 >> >>> --- a/mm/page-writeback.c >> >>> +++ b/mm/page-writeback.c >> >>> @@ -377,7 +377,16 @@ static unsigned long global_dirtyable_memory(void) >> >>> if (!vm_highmem_is_dirtyable) >> >>> x -= highmem_dirtyable_memory(x); >> >>> >> >>> - return x + 1; /* Ensure that we never return 0 */ >> >>> + /* >> >>> + * - Why 100 ? >> >>> + * - Because the return value will be used by dirty ratio and >> >>> + * dirty background ratio to calculate dirty thresh and bg thresh, >> >>> + * so if the return value is two small, the thresh value maybe >> >>> + * calculated to 0. >> >>> + * As the max value of ratio is 100, so the return value is added >> >>> + * by 100 here. >> >>> + */ >> >>> + return x + 100; >> >> >> >> No. We should just revert 0f6d24f87856 ("mm/page-writeback.c: print a >> >> warning if the vm dirtiness settings are illogical") because it is of a >> >> dubious value and it causes problems. I am not even sure why it got >> >> merged. It doesn't have any ack or review and I remember objecting to >> >> the patch previously as pointless. >> >> -- >> > >> > It is reviewed and merged by Andrew. >> > >> > From Andrew: >> >> I think this means that a script which alters both dirty_bytes and >> > dirty_background_bytes must alter dirty_background_bytes first if they >> > are being decreased and must alter dirty_bytes first if they are being >> > increased. Or something like that. >> > >> > It will help us to find the error if we don't change these values like this. >> > >> >> And actually it help us find another issue that when availble_memroy >> is too small, the thresh and bg_thresh will be 0, that's absolutely >> wrong. > > Why is it wrong? > -- For example, the writeback threads will be wakeup on every write. I don't think it is meaningful to wakeup the writeback thread when the dirty pages is very low. Thanks Yafang -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>