Message ID | 1586599916-15456-3-git-send-email-qiwuchen55@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [RESEND,1/3] mm: Replace zero-length array with flexible-array member | expand |
On Sat, Apr 11, 2020 at 06:11:56PM +0800, qiwuchen55@gmail.com wrote: > 1) Simplify the code of initializing some variables. > - unsigned long scan, total_scan, nr_pages; > + unsigned long scan = 0, total_scan = 0, nr_pages; > > - total_scan = 0; > - scan = 0; I do not find this to be a simplification.
On Sat, Apr 11, 2020 at 09:10:21AM -0700, Matthew Wilcox wrote: > On Sat, Apr 11, 2020 at 06:11:56PM +0800, qiwuchen55@gmail.com wrote: > > 1) Simplify the code of initializing some variables. > > - unsigned long scan, total_scan, nr_pages; > > + unsigned long scan = 0, total_scan = 0, nr_pages; > > > > - total_scan = 0; > > - scan = 0; > > I do not find this to be a simplification. > Hi willy, This slightly simplify the code by definition and initialization meanwhile instead of separating them into the two steps. This can save two lines of code. Qiwu
On Sun, Apr 12, 2020 at 03:35:16PM +0800, chenqiwu wrote: > On Sat, Apr 11, 2020 at 09:10:21AM -0700, Matthew Wilcox wrote: > > On Sat, Apr 11, 2020 at 06:11:56PM +0800, qiwuchen55@gmail.com wrote: > > > 1) Simplify the code of initializing some variables. > > > - unsigned long scan, total_scan, nr_pages; > > > + unsigned long scan = 0, total_scan = 0, nr_pages; > > > > > > - total_scan = 0; > > > - scan = 0; > > > > I do not find this to be a simplification. > > > Hi willy, > This slightly simplify the code by definition and initialization > meanwhile instead of separating them into the two steps. > This can save two lines of code. And it buries the initialisation on a more complicated line. Number of lines is not the only metric.
diff --git a/mm/vmscan.c b/mm/vmscan.c index b06868f..2f65a91 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -1638,16 +1638,15 @@ static unsigned long isolate_lru_pages(unsigned long nr_to_scan, struct list_head *src = &lruvec->lists[lru]; unsigned long nr_taken = 0; unsigned long nr_zone_taken[MAX_NR_ZONES] = { 0 }; - unsigned long nr_skipped[MAX_NR_ZONES] = { 0, }; + unsigned long nr_skipped[MAX_NR_ZONES] = { 0 }; unsigned long skipped = 0; - unsigned long scan, total_scan, nr_pages; + unsigned long scan = 0, total_scan = 0, nr_pages; LIST_HEAD(pages_skipped); - isolate_mode_t mode = (sc->may_unmap ? 0 : ISOLATE_UNMAPPED); + const isolate_mode_t mode = (sc->may_unmap ? 0 : ISOLATE_UNMAPPED); - total_scan = 0; - scan = 0; while (scan < nr_to_scan && !list_empty(src)) { struct page *page; + enum zone_type page_zoneidx; page = lru_to_page(src); prefetchw_prev_lru_page(page, src, flags); @@ -1657,9 +1656,10 @@ static unsigned long isolate_lru_pages(unsigned long nr_to_scan, nr_pages = compound_nr(page); total_scan += nr_pages; - if (page_zonenum(page) > sc->reclaim_idx) { + page_zoneidx = page_zonenum(page); + if (page_zoneidx > sc->reclaim_idx) { list_move(&page->lru, &pages_skipped); - nr_skipped[page_zonenum(page)] += nr_pages; + nr_skipped[page_zoneidx] += nr_pages; continue; } @@ -1677,7 +1677,7 @@ static unsigned long isolate_lru_pages(unsigned long nr_to_scan, switch (__isolate_lru_page(page, mode)) { case 0: nr_taken += nr_pages; - nr_zone_taken[page_zonenum(page)] += nr_pages; + nr_zone_taken[page_zoneidx] += nr_pages; list_move(&page->lru, dst); break;