linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* Best way to pin a page in ext4?
@ 2014-09-15 18:51 Theodore Ts'o
  2014-09-15 20:57 ` Andreas Dilger
  0 siblings, 1 reply; 11+ messages in thread
From: Theodore Ts'o @ 2014-09-15 18:51 UTC (permalink / raw)
  To: linux-mm, linux-ext4

Hi,

In ext4, we currently use the page cache to store the allocation
bitmaps.  The pages are associated with an internal, in-memory inode
which is located in EXT4_SB(sb)->s_buddy_cache.  Since the pages can be
reconstructed at will, either by reading them from disk (in the case of
the actual allocation bitmap), or by calculating the buddy bitmap from
the allocation bitmap, normally we allow the VM to eject the pags as
necessary.

For a specialty use case, I've been requested to have an optional mode
where the on-disk bitmaps are pinned into memory; this is a situation
where the file system size is known in advance, and the user is willing
to trade off the locked-down memory for the latency gains required by
this use case.

It seems that the simplest way to do that is to use mlock_vma_page()
when the file system is first mounted, and then use munlock_vma_page()
when the file system is unmounted.  However, these functions are in
mm/internal.h, so I figured I'd better ask permission before using
them.   Does this sound like a sane way to do things?

The other approach would be to keep an elevated refcount on the pages in
question, but it seemed it would be more efficient use the mlock
facility since that keeps the pages on an unevictable list.

Does using the mlock/munlock_vma_page() functions make sense?   Any
pitfalls I should worry about?   Note that these pages are never mapped
into userspace, so there is no associated vma; fortunately the functions
don't take a vma argument, their name notwithstanding.....

Thanks,

                                        - Ted

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2014-09-17 20:39 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-15 18:51 Best way to pin a page in ext4? Theodore Ts'o
2014-09-15 20:57 ` Andreas Dilger
2014-09-16 18:07   ` Theodore Ts'o
2014-09-16 18:34     ` Christoph Lameter
2014-09-16 18:56       ` Theodore Ts'o
2014-09-17  0:07     ` Hugh Dickins
2014-09-17  1:25       ` Theodore Ts'o
2014-09-17  3:31       ` Christoph Lameter
2014-09-17 13:57         ` Peter Zijlstra
2014-09-17 20:37           ` Hugh Dickins
2014-09-17 13:56       ` Peter Zijlstra

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).