Commit b0b8350f authored by Kirill Smelkov's avatar Kirill Smelkov

.

parent 6c998ca4
......@@ -414,6 +414,20 @@ PyFunc(pyfileh_invalidate_page, "invalidate_page(pgoffset) - invalidate fileh pa
}
PyFunc(pyfileh_uses_mmap_overlay, "uses_mmap_overlay() - whether base data for all VMAs"
" of this fileh are taken as base-layer mmap")
(PyObject *pyfileh0, PyObject *args)
{
PyBigFileH *pyfileh = container_of(pyfileh0, PyBigFileH, pyobj);
BigFileH *fileh = &pyfileh->fileh;
if (!PyArg_ParseTuple(args, ""))
return NULL;
return PyBool_FromLong(fileh->mmap_overlay);
}
static void
pyfileh_dealloc(PyObject *pyfileh0)
{
......@@ -458,7 +472,8 @@ static /*const*/ PyMethodDef pyfileh_methods[] = {
{"dirty_writeout", pyfileh_dirty_writeout, METH_VARARGS, pyfileh_dirty_writeout_doc},
{"dirty_discard", pyfileh_dirty_discard, METH_VARARGS, pyfileh_dirty_discard_doc},
{"isdirty", pyfileh_isdirty, METH_VARARGS, pyfileh_isdirty_doc},
{"invalidate_page", pyfileh_invalidate_page,METH_VARARGS, pyfileh_invalidate_page_doc},
{"invalidate_page", pyfileh_invalidate_page, METH_VARARGS, pyfileh_invalidate_page_doc},
{"uses_mmap_overlay", pyfileh_uses_mmap_overlay, METH_VARARGS, pyfileh_uses_mmap_overlay_doc},
{NULL}
};
......
......@@ -781,6 +781,10 @@ class _ZBigFileH(object):
def invalidate_page(self, pgoffset):
return self.zfileh.invalidate_page(pgoffset)
@property
def uses_mmap_overlay(self):
return self.zfileh.uses_mmap_overlay
# ~~~~ ISynchronizer ~~~~
def beforeCompletion(self, txn):
......
......@@ -137,6 +137,9 @@ def test_bigfile_filezodb():
# evict all loaded pages and test loading them again
# (verifies ZBlk.loadblkdata() & loadblk logic when loading data the second time)
reclaimed = ram_reclaim_all()
if fh.uses_mmap_overlay:
assert reclaimed == 0
else:
assert reclaimed >= blen # XXX assumes pagesize=blksize
for i in xrange(blen):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment