> > > <snip> > > > > > > > struct scan_control *sc) > > > > { > > > > + enum bdi_queue_status ret = QUEUEWRITE_DENIED; > > > > + > > > > if (current->flags & PF_SWAPWRITE) > > > > - return 1; > > > > + return QUEUEWRITE_ALLOWED; > > > > if (!bdi_write_congested(bdi)) > > > > - return 1; > > > > + return QUEUEWRITE_ALLOWED; > > > > + else > > > > + ret = QUEUEWRITE_CONGESTED; > > > > if (bdi == current->backing_dev_info) > > > > - return 1; > > > > + return QUEUEWRITE_ALLOWED; > > > > > > > > /* lumpy reclaim for hugepage often need a lot of write */ > > > > if (sc->order > PAGE_ALLOC_COSTLY_ORDER) > > > > - return 1; > > > > - return 0; > > > > + return QUEUEWRITE_ALLOWED; > > > > + return ret; > > > > } > > > > > > The function can't return QUEUEXXX_DENIED. > > > It can affect disable_lumpy_reclaim. > > > > > > > Yes, but that change was made in "vmscan: Narrow the scenarios lumpy > > reclaim uses synchrounous reclaim". Maybe I am misunderstanding your > > objection. > > I means current may_write_to_queue never returns QUEUEWRITE_DENIED. > What's the role of it? > As of now, little point because QUEUEWRITE_CONGESTED implies denied. I was allowing the possibility of distinguishing between these cases in the future depending on what happened with wait_iff_congested(). I will drop it for simplicity and reintroduce it when or if there is a distinction between denied and congested. > In addition, we don't need disable_lumpy_reclaim_mode() in pageout. > That's because both PAGE_KEEP and PAGE_KEEP_CONGESTED go to keep_locked > and calls disable_lumpy_reclaim_mode at last. > True, good spot. -- Mel Gorman Part-time Phd Student Linux Technology Center University of Limerick IBM Dublin Software Lab -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>