[Devel] [PATCH RHEL7 COMMIT] Revert "ve/fs/fadvise: introduce FADV_DEACTIVATE flag"
Konstantin Khorenko
khorenko at virtuozzo.com
Tue Oct 22 16:03:27 MSK 2019
The commit is pushed to "branch-rh7-3.10.0-1062.1.2.vz7.114.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-1062.1.2.vz7.114.8
------>
commit b4f99d63887beeb1eedc3a49078845f92bee229d
Author: Konstantin Khorenko <khorenko at virtuozzo.com>
Date: Tue Oct 22 16:01:15 2019 +0300
Revert "ve/fs/fadvise: introduce FADV_DEACTIVATE flag"
This reverts commit 114935b7b36b5d228fdce234f885701fe53774b2.
Drop our home brew fadvise FADV_DEACTIVATE flag which was introduced in
the scope of
https://jira.sw.ru/browse/PSBM-57915
Reasoning: it won't be used because of performance degradation:
https://pmc.acronis.com/browse/VSTOR-22963
https://jira.sw.ru/browse/PSBM-94829
Signed-off-by: Konstantin Khorenko <khorenko at virtuozzo.com>
---
include/uapi/linux/fadvise.h | 1 -
mm/fadvise.c | 43 -------------------------------------------
2 files changed, 44 deletions(-)
diff --git a/include/uapi/linux/fadvise.h b/include/uapi/linux/fadvise.h
index b6ade7ef8cc4..a3e0703f475d 100644
--- a/include/uapi/linux/fadvise.h
+++ b/include/uapi/linux/fadvise.h
@@ -17,7 +17,6 @@
#define POSIX_FADV_DONTNEED 4 /* Don't need these pages. */
#define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */
#endif
-#define FADV_DEACTIVATE 32 /* Mark pages as good candidates for reclaim */
#ifdef __KERNEL__
extern int generic_fadvise(struct file* file, loff_t off, loff_t len, int adv);
diff --git a/mm/fadvise.c b/mm/fadvise.c
index 50beef36598a..0b25007bf488 100644
--- a/mm/fadvise.c
+++ b/mm/fadvise.c
@@ -22,43 +22,6 @@
#include <asm/unistd.h>
-static void fadvise_deactivate(struct address_space *mapping,
- pgoff_t start, pgoff_t end)
-{
- struct pagevec pvec;
- pgoff_t index = start;
- int i;
-
- if (start > end)
- return;
-
- /*
- * Note: this function may get called on a shmem/tmpfs mapping:
- * pagevec_lookup() might then return 0 prematurely (because it
- * got a gangful of swap entries); but it's hardly worth worrying
- * about - it can rarely have anything to free from such a mapping
- * (most pages are dirty), and already skips over any difficulties.
- */
-
- pagevec_init(&pvec, 0);
- while (index <= end && pagevec_lookup(&pvec, mapping, index,
- min(end - index, (pgoff_t)PAGEVEC_SIZE - 1) + 1)) {
- for (i = 0; i < pagevec_count(&pvec); i++) {
- struct page *page = pvec.pages[i];
-
- /* We rely upon deletion not changing page->index */
- index = page->index;
- if (index > end)
- break;
-
- deactivate_page(page);
- }
- pagevec_release(&pvec);
- cond_resched();
- index++;
- }
-}
-
/*
* POSIX_FADV_WILLNEED could set PG_Referenced, and POSIX_FADV_NOREUSE could
* deactivate the pages and clear PG_Referenced.
@@ -84,7 +47,6 @@ int generic_fadvise(struct file *file, loff_t offset, loff_t len, int advice)
case POSIX_FADV_WILLNEED:
case POSIX_FADV_NOREUSE:
case POSIX_FADV_DONTNEED:
- case FADV_DEACTIVATE:
/* no bad return value, but ignore advice */
break;
default:
@@ -165,11 +127,6 @@ int generic_fadvise(struct file *file, loff_t offset, loff_t len, int advice)
}
}
break;
- case FADV_DEACTIVATE:
- start_index = (offset+(PAGE_CACHE_SIZE-1)) >> PAGE_CACHE_SHIFT;
- end_index = (endbyte >> PAGE_CACHE_SHIFT);
- fadvise_deactivate(mapping, start_index, end_index);
- break;
default:
ret = -EINVAL;
}
More information about the Devel
mailing list