Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 85b4e4d5 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "mm, vmscan: show the number of skipped pages in mm_vmscan_lru_isolate"

parents fe4bfed4 4d7658d3
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -274,17 +274,19 @@ TRACE_EVENT(mm_vmscan_lru_isolate,
		int order,
		unsigned long nr_requested,
		unsigned long nr_scanned,
		unsigned long nr_skipped,
		unsigned long nr_taken,
		isolate_mode_t isolate_mode,
		int file),

	TP_ARGS(classzone_idx, order, nr_requested, nr_scanned, nr_taken, isolate_mode, file),
	TP_ARGS(classzone_idx, order, nr_requested, nr_scanned, nr_skipped, nr_taken, isolate_mode, file),

	TP_STRUCT__entry(
		__field(int, classzone_idx)
		__field(int, order)
		__field(unsigned long, nr_requested)
		__field(unsigned long, nr_scanned)
		__field(unsigned long, nr_skipped)
		__field(unsigned long, nr_taken)
		__field(isolate_mode_t, isolate_mode)
		__field(int, file)
@@ -295,17 +297,19 @@ TRACE_EVENT(mm_vmscan_lru_isolate,
		__entry->order = order;
		__entry->nr_requested = nr_requested;
		__entry->nr_scanned = nr_scanned;
		__entry->nr_skipped = nr_skipped;
		__entry->nr_taken = nr_taken;
		__entry->isolate_mode = isolate_mode;
		__entry->file = file;
	),

	TP_printk("isolate_mode=%d classzone=%d order=%d nr_requested=%lu nr_scanned=%lu nr_taken=%lu file=%d",
	TP_printk("isolate_mode=%d classzone=%d order=%d nr_requested=%lu nr_scanned=%lu nr_skipped=%lu nr_taken=%lu file=%d",
		__entry->isolate_mode,
		__entry->classzone_idx,
		__entry->order,
		__entry->nr_requested,
		__entry->nr_scanned,
		__entry->nr_skipped,
		__entry->nr_taken,
		__entry->file)
);
+7 −6
Original line number Diff line number Diff line
@@ -1508,6 +1508,7 @@ static unsigned long isolate_lru_pages(unsigned long nr_to_scan,
	unsigned long nr_taken = 0;
	unsigned long nr_zone_taken[MAX_NR_ZONES] = { 0 };
	unsigned long nr_skipped[MAX_NR_ZONES] = { 0, };
	unsigned long skipped = 0, total_skipped = 0;
	unsigned long scan, nr_pages;
	LIST_HEAD(pages_skipped);

@@ -1559,14 +1560,13 @@ static unsigned long isolate_lru_pages(unsigned long nr_to_scan,
	 */
	if (!list_empty(&pages_skipped)) {
		int zid;
		unsigned long total_skipped = 0;

		for (zid = 0; zid < MAX_NR_ZONES; zid++) {
			if (!nr_skipped[zid])
				continue;

			__count_zid_vm_events(PGSCAN_SKIP, zid, nr_skipped[zid]);
			total_skipped += nr_skipped[zid];
			skipped += nr_skipped[zid];
		}

		/*
@@ -1574,13 +1574,14 @@ static unsigned long isolate_lru_pages(unsigned long nr_to_scan,
		 * close to unreclaimable. If the LRU list is empty, account
		 * skipped pages as a full scan.
		 */
		scan += list_empty(src) ? total_skipped : total_skipped >> 2;
		total_skipped = list_empty(src) ? skipped : skipped >> 2;

		list_splice(&pages_skipped, src);
	}
	*nr_scanned = scan;
	trace_mm_vmscan_lru_isolate(sc->reclaim_idx, sc->order, nr_to_scan, scan,
				    nr_taken, mode, is_file_lru(lru));
	*nr_scanned = scan + total_skipped;
	trace_mm_vmscan_lru_isolate(sc->reclaim_idx, sc->order, nr_to_scan,
				    scan, skipped, nr_taken, mode,
				    is_file_lru(lru));
	update_lru_sizes(lruvec, lru, nr_zone_taken);
	return nr_taken;
}