1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 03:47:34 +00:00

Kernel: Remove VMObject names

The VMObject name was always either the owning region's name, or the
absolute path of the underlying inode.

We can reconstitute this information if wanted, no need to keep copies
of these strings around.
This commit is contained in:
Andreas Kling 2019-08-07 16:14:08 +02:00
parent 5487f81b5d
commit 3364da388f
5 changed files with 5 additions and 14 deletions

View file

@ -311,9 +311,8 @@ Optional<KBuffer> procfs$pid_vmo(InodeIdentifier identifier)
region.vaddr().offset(region.size() - 1).get(),
region.size(),
region.name().characters());
builder.appendf("VMO: %s \"%s\" @ %x(%u)\n",
builder.appendf("VMO: %s @ %x(%u)\n",
region.vmo().is_anonymous() ? "anonymous" : "file-backed",
region.vmo().name().characters(),
&region.vmo(),
region.vmo().ref_count());
for (int i = 0; i < region.vmo().page_count(); ++i) {
@ -395,12 +394,11 @@ Optional<KBuffer> procfs$mm(InodeIdentifier)
InterruptDisabler disabler;
StringBuilder builder;
for (auto* vmo : MM.m_vmos) {
builder.appendf("VMO: %p %s(%u): p:%4u %s\n",
builder.appendf("VMO: %p %s(%u): p:%4u\n",
vmo,
vmo->is_anonymous() ? "anon" : "file",
vmo->ref_count(),
vmo->page_count(),
vmo->name().characters());
vmo->page_count());
}
builder.appendf("VMO count: %u\n", MM.m_vmos.size());
builder.appendf("Free physical pages: %u\n", MM.user_physical_pages() - MM.user_physical_pages_used());

View file

@ -340,8 +340,7 @@ int Process::do_exec(String path, Vector<String> arguments, Vector<String> envir
ProcessPagingScope paging_scope(*this);
auto vmo = VMObject::create_file_backed(description->inode());
vmo->set_name(description->absolute_path());
RefPtr<Region> region = allocate_region_with_vmo(VirtualAddress(), metadata.size, vmo, 0, vmo->name(), PROT_READ);
RefPtr<Region> region = allocate_region_with_vmo(VirtualAddress(), metadata.size, vmo, 0, description->absolute_path(), PROT_READ);
ASSERT(region);
if (this != &current->process()) {

View file

@ -12,7 +12,6 @@ Region::Region(const Range& range, const String& name, u8 access, bool cow)
, m_access(access)
, m_cow_map(Bitmap::create(m_vmo->page_count(), cow))
{
m_vmo->set_name(m_name);
MM.register_region(*this);
}

View file

@ -33,8 +33,7 @@ NonnullRefPtr<VMObject> VMObject::clone()
}
VMObject::VMObject(VMObject& other)
: m_name(other.m_name)
, m_inode_offset(other.m_inode_offset)
: m_inode_offset(other.m_inode_offset)
, m_size(other.m_size)
, m_inode(other.m_inode)
, m_physical_pages(other.m_physical_pages)

View file

@ -30,9 +30,6 @@ public:
const Inode* inode() const { return m_inode.ptr(); }
size_t inode_offset() const { return m_inode_offset; }
const String& name() const { return m_name; }
void set_name(const String& name) { m_name = name; }
int page_count() const { return m_size / PAGE_SIZE; }
const Vector<RefPtr<PhysicalPage>>& physical_pages() const { return m_physical_pages; }
Vector<RefPtr<PhysicalPage>>& physical_pages() { return m_physical_pages; }
@ -51,7 +48,6 @@ private:
template<typename Callback>
void for_each_region(Callback);
String m_name;
bool m_allow_cpu_caching { true };
off_t m_inode_offset { 0 };
size_t m_size { 0 };