Skip to content

Commit

Permalink
frontswap: remove frontswap_writethrough
Browse files Browse the repository at this point in the history
frontswap_writethrough is never called, so remove it.

Link: https://lkml.kernel.org/r/[email protected]
Signed-off-by: Christoph Hellwig <[email protected]>
Reviewed-by: Juergen Gross <[email protected]>
Cc: Dan Streetman <[email protected]>
Cc: Geert Uytterhoeven <[email protected]>
Cc: Hugh Dickins <[email protected]>
Cc: Konrad Rzeszutek Wilk <[email protected]>
Cc: Matthew Wilcox (Oracle) <[email protected]>
Cc: Seth Jennings <[email protected]>
Cc: Vitaly Wool <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
Christoph Hellwig authored and torvalds committed Jan 22, 2022
1 parent 0a4ee51 commit 3d6035f
Show file tree
Hide file tree
Showing 3 changed files with 1 addition and 29 deletions.
6 changes: 0 additions & 6 deletions Documentation/vm/frontswap.rst
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,6 @@ a disk write and, if the data is later read back, a disk read are avoided.
If a store returns failure, transcendent memory has rejected the data, and the
page can be written to swap as usual.

If a backend chooses, frontswap can be configured as a "writethrough
cache" by calling frontswap_writethrough(). In this mode, the reduction
in swap device writes is lost (and also a non-trivial performance advantage)
in order to allow the backend to arbitrarily "reclaim" space used to
store frontswap pages to more completely manage its memory usage.

Note that if a page is stored and the page already exists in transcendent memory
(a "duplicate" store), either the store succeeds and the data is overwritten,
or the store fails AND the page is invalidated. This ensures stale data may
Expand Down
1 change: 0 additions & 1 deletion include/linux/frontswap.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ struct frontswap_ops {
extern void frontswap_register_ops(struct frontswap_ops *ops);
extern void frontswap_shrink(unsigned long);
extern unsigned long frontswap_curr_pages(void);
extern void frontswap_writethrough(bool);
#define FRONTSWAP_HAS_EXCLUSIVE_GETS
extern void frontswap_tmem_exclusive_gets(bool);

Expand Down
23 changes: 1 addition & 22 deletions mm/frontswap.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,16 +32,6 @@ static struct frontswap_ops *frontswap_ops __read_mostly;
#define for_each_frontswap_ops(ops) \
for ((ops) = frontswap_ops; (ops); (ops) = (ops)->next)

/*
* If enabled, frontswap_store will return failure even on success. As
* a result, the swap subsystem will always write the page to swap, in
* effect converting frontswap into a writethrough cache. In this mode,
* there is no direct reduction in swap writes, but a frontswap backend
* can unilaterally "reclaim" any pages in use with no data loss, thus
* providing increases control over maximum memory usage due to frontswap.
*/
static bool frontswap_writethrough_enabled __read_mostly;

/*
* If enabled, the underlying tmem implementation is capable of doing
* exclusive gets, so frontswap_load, on a successful tmem_get must
Expand Down Expand Up @@ -170,15 +160,6 @@ void frontswap_register_ops(struct frontswap_ops *ops)
}
EXPORT_SYMBOL(frontswap_register_ops);

/*
* Enable/disable frontswap writethrough (see above).
*/
void frontswap_writethrough(bool enable)
{
frontswap_writethrough_enabled = enable;
}
EXPORT_SYMBOL(frontswap_writethrough);

/*
* Enable/disable frontswap exclusive gets (see above).
*/
Expand Down Expand Up @@ -283,9 +264,7 @@ int __frontswap_store(struct page *page)
} else {
inc_frontswap_failed_stores();
}
if (frontswap_writethrough_enabled)
/* report failure so swap also writes to swap device */
ret = -1;

return ret;
}
EXPORT_SYMBOL(__frontswap_store);
Expand Down

0 comments on commit 3d6035f

Please sign in to comment.