1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 02:27:43 +00:00

Kernel+SystemMonitor: Expose the number of set CoW bits in each Region

This number tells us how many more pages in a given region will trigger
a CoW fault if written to.
This commit is contained in:
Andreas Kling 2019-12-15 16:53:00 +01:00
parent 9ad151c665
commit 3fbc50a350
4 changed files with 14 additions and 0 deletions

View file

@ -273,6 +273,7 @@ Optional<KBuffer> procfs$pid_vm(InodeIdentifier identifier)
region_object.add("address", region.vaddr().get());
region_object.add("size", (u32)region.size());
region_object.add("amount_resident", (u32)region.amount_resident());
region_object.add("cow_pages", region.cow_pages());
region_object.add("name", region.name());
}
array.finish();

View file

@ -113,6 +113,16 @@ int Region::commit()
return 0;
}
u32 Region::cow_pages() const
{
if (!m_cow_map)
return 0;
u32 count = 0;
for (int i = 0; i < m_cow_map->size(); ++i)
count += m_cow_map->get(i);
return count;
}
size_t Region::amount_resident() const
{
size_t bytes = 0;

View file

@ -105,6 +105,8 @@ public:
bool should_cow(size_t page_index) const;
void set_should_cow(size_t page_index, bool);
u32 cow_pages() const;
void set_writable(bool b)
{
if (b)