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; } { return fRefCount; }
// backing store operations // backing store operations
virtual bool CanOvercommit();
virtual status_t Commit(off_t size, int priority); virtual status_t Commit(off_t size, int priority);
virtual bool HasPage(off_t offset); virtual bool HasPage(off_t offset);
@@ -738,6 +738,13 @@ VMAnonymousCache::Commit(off_t size, int priority)
} }
bool
VMAnonymousCache::CanOvercommit()
{
return fCanOvercommit;
}
bool bool
VMAnonymousCache::HasPage(off_t offset) VMAnonymousCache::HasPage(off_t offset)
{ {
+1
View File
@@ -49,6 +49,7 @@ public:
virtual status_t Discard(off_t offset, off_t size); virtual status_t Discard(off_t offset, off_t size);
virtual bool CanOvercommit();
virtual status_t Commit(off_t size, int priority); virtual status_t Commit(off_t size, int priority);
virtual bool HasPage(off_t offset); virtual bool HasPage(off_t offset);
virtual bool DebugHasPage(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 bool
VMAnonymousNoSwapCache::HasPage(off_t offset) VMAnonymousNoSwapCache::HasPage(off_t offset)
{ {
@@ -22,6 +22,7 @@ public:
int32 numGuardPages, int32 numGuardPages,
uint32 allocationFlags); uint32 allocationFlags);
virtual bool CanOvercommit();
virtual status_t Commit(off_t size, int priority); virtual status_t Commit(off_t size, int priority);
virtual bool HasPage(off_t offset); virtual bool HasPage(off_t offset);
+7
View File
@@ -1298,6 +1298,13 @@ VMCache::FlushAndRemoveAllPages()
} }
bool
VMCache::CanOvercommit()
{
return false;
}
status_t status_t
VMCache::Commit(off_t size, int priority) VMCache::Commit(off_t size, int priority)
{ {