kernel/vm: Introduce VMCache::CanOvercommit().

Allows the Anonymous caches to report overcommitting status.
This commit is contained in:
Augustin Cavalier
2024-12-13 14:25:40 -05:00
parent 8308c16a5c
commit e7af1dd2e0
6 changed files with 24 additions and 0 deletions
+1
View File
@@ -149,6 +149,7 @@ public:
{ return fRefCount; }
// backing store operations
virtual bool CanOvercommit();
virtual status_t Commit(off_t size, int priority);
virtual bool HasPage(off_t offset);
@@ -738,6 +738,13 @@ VMAnonymousCache::Commit(off_t size, int priority)
}
bool
VMAnonymousCache::CanOvercommit()
{
return fCanOvercommit;
}
bool
VMAnonymousCache::HasPage(off_t offset)
{
+1
View File
@@ -49,6 +49,7 @@ public:
virtual status_t Discard(off_t offset, off_t size);
virtual bool CanOvercommit();
virtual status_t Commit(off_t size, int priority);
virtual bool HasPage(off_t offset);
virtual bool DebugHasPage(off_t offset);
@@ -94,6 +94,13 @@ VMAnonymousNoSwapCache::Commit(off_t size, int priority)
}
bool
VMAnonymousNoSwapCache::CanOvercommit()
{
return fCanOvercommit;
}
bool
VMAnonymousNoSwapCache::HasPage(off_t offset)
{
@@ -22,6 +22,7 @@ public:
int32 numGuardPages,
uint32 allocationFlags);
virtual bool CanOvercommit();
virtual status_t Commit(off_t size, int priority);
virtual bool HasPage(off_t offset);
+7
View File
@@ -1298,6 +1298,13 @@ VMCache::FlushAndRemoveAllPages()
}
bool
VMCache::CanOvercommit()
{
return false;
}
status_t
VMCache::Commit(off_t size, int priority)
{