| # Copyright (c) 2020 Intel Corporation |
| # SPDX-License-Identifier: Apache-2.0 |
| # |
| # Demand paging sample eviction algorithms |
| |
| choice EVICTION_CHOICE |
| prompt "Page frame eviction algorithms" |
| default EVICTION_NRU |
| depends on DEMAND_PAGING |
| |
| config EVICTION_CUSTOM |
| bool "Custom eviction algorithm" |
| help |
| 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 |