Revert "demand_paging: add NRU algorithm"

This reverts commit 200ea42437e7f4ff9aebdac3d5b9b1ead63d3e90.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
diff --git a/subsys/demand_paging/eviction/CMakeLists.txt b/subsys/demand_paging/eviction/CMakeLists.txt
index 4b28d8e..dd1bf80 100644
--- a/subsys/demand_paging/eviction/CMakeLists.txt
+++ b/subsys/demand_paging/eviction/CMakeLists.txt
@@ -1,14 +1,2 @@
 # Copyright (c) 2020 Intel Corporation
 # SPDX-License-Identifier: Apache-2.0
-
-add_definitions(-D__ZEPHYR_SUPERVISOR__)
-
-include_directories(
-  ${ZEPHYR_BASE}/kernel/include
-  ${ARCH_DIR}/${ARCH}/include
-  )
-
-if(NOT DEFINED CONFIG_EVICTION_CUSTOM)
-  zephyr_library()
-  zephyr_library_sources_ifdef(CONFIG_EVICTION_NRU            nru.c)
-endif()
diff --git a/subsys/demand_paging/eviction/Kconfig b/subsys/demand_paging/eviction/Kconfig
index 05f8b8d..0a39d9a 100644
--- a/subsys/demand_paging/eviction/Kconfig
+++ b/subsys/demand_paging/eviction/Kconfig
@@ -5,7 +5,7 @@
 
 choice EVICTION_CHOICE
 	prompt "Page frame eviction algorithms"
-	default EVICTION_NRU
+	default EVICTION_CUSTOM
 	depends on DEMAND_PAGING
 
 config EVICTION_CUSTOM
@@ -14,27 +14,4 @@
 	  This option is chosen when the eviction algorithm will be implemented
 	  by the application, instead of using one included in Zephyr.
 
-config EVICTION_NRU
-	bool "Not Recently Used (NRU) page eviction algorithm"
-	help
-	  This implements a Not Recently Used page eviction algorithm.
-	  A periodic timer will clear the accessed state of all virtual pages.
-	  When a page frame needs to be evicted, the algorithm will prefer to
-	  evict page frames using an ascending order of priority:
-
-	   - recently accessed, dirty
-	   - recently accessed, clean
-	   - not recently accessed, dirty
-	   - not recently accessed, clean
-
 endchoice
-
-if EVICTION_NRU
-config EVICTION_NRU_PERIOD
-	int "Recently accessed period, in milliseconds"
-	default 100
-	help
-	  A periodic timer will fire that clears the accessed state of all virtual
-	  pages that are capable of being paged out. At eviction time, if a page
-	  still has the accessed property, it will be considered as recently used.
-endif # EVICTION_NRU
diff --git a/subsys/demand_paging/eviction/nru.c b/subsys/demand_paging/eviction/nru.c
deleted file mode 100644
index bfdb9ea..0000000
--- a/subsys/demand_paging/eviction/nru.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (c) 2020 Intel Corporation
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Not Recently Used (NRU) eviction algorithm for demand paging
- */
-#include <kernel.h>
-#include <mmu.h>
-#include <kernel_arch_interface.h>
-#include <init.h>
-
-/* The accessed and dirty states of each page frame are used to create
- * a hierarchy with a numerical value. When evicting a page, try to evict
- * page with the highest value (we prefer clean, not accessed pages).
- *
- * In this ontology, "accessed" means "recently accessed" and gets cleared
- * during the periodic update.
- *
- * 0 not accessed, clean
- * 1 not accessed, dirty
- * 2 accessed, clean
- * 3 accessed, dirty
- */
-static void nru_periodic_update(struct k_timer *timer)
-{
-	uintptr_t phys;
-	struct z_page_frame *pf;
-	int key = irq_lock();
-
-	Z_PAGE_FRAME_FOREACH(phys, pf) {
-		if (!z_page_frame_is_evictable(pf)) {
-			continue;
-		}
-
-		/* Clear accessed bit in page tables */
-		(void)arch_page_info_get(pf->addr, NULL, true);
-	}
-
-	irq_unlock(key);
-}
-
-struct z_page_frame *z_eviction_select(bool *dirty_ptr)
-{
-	unsigned int last_prec = 4U;
-	struct z_page_frame *last_pf = NULL, *pf;
-	bool accessed;
-	bool dirty = false;
-	uintptr_t flags, phys;
-
-	Z_PAGE_FRAME_FOREACH(phys, pf) {
-		unsigned int prec;
-
-		if (!z_page_frame_is_evictable(pf)) {
-			continue;
-		}
-
-		flags = arch_page_info_get(pf->addr, NULL, false);
-		accessed = (flags & ARCH_DATA_PAGE_ACCESSED) != 0UL;
-		dirty = (flags & ARCH_DATA_PAGE_DIRTY) != 0UL;
-
-		/* Implies a mismatch with page frame ontology and page
-		 * tables
-		 */
-		__ASSERT((flags & ARCH_DATA_PAGE_LOADED) != 0U,
-			 "non-present page, %s",
-			 ((flags & ARCH_DATA_PAGE_NOT_MAPPED) != 0U) ?
-			 "un-mapped" : "paged out");
-
-		prec = (dirty ? 1U : 0U) + (accessed ? 2U : 0U);
-		if (prec == 0) {
-			/* If we find a not accessed, clean page we're done */
-			last_pf = pf;
-			break;
-		}
-
-		if (prec < last_prec) {
-			last_prec = prec;
-			last_pf = pf;
-		}
-	}
-	/* Shouldn't ever happen unless every page is pinned */
-	__ASSERT(last_pf != NULL, "no page to evict");
-
-	*dirty_ptr = dirty;
-
-	return last_pf;
-}
-
-static K_TIMER_DEFINE(nru_timer, nru_periodic_update, NULL);
-
-void z_eviction_init(void)
-{
-	k_timer_start(&nru_timer, K_NO_WAIT,
-		      K_MSEC(CONFIG_EVICTION_NRU_PERIOD));
-}