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:
parent
5487f81b5d
commit
3364da388f
5 changed files with 5 additions and 14 deletions
|
@ -311,9 +311,8 @@ Optional<KBuffer> procfs$pid_vmo(InodeIdentifier identifier)
|
||||||
region.vaddr().offset(region.size() - 1).get(),
|
region.vaddr().offset(region.size() - 1).get(),
|
||||||
region.size(),
|
region.size(),
|
||||||
region.name().characters());
|
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().is_anonymous() ? "anonymous" : "file-backed",
|
||||||
region.vmo().name().characters(),
|
|
||||||
®ion.vmo(),
|
®ion.vmo(),
|
||||||
region.vmo().ref_count());
|
region.vmo().ref_count());
|
||||||
for (int i = 0; i < region.vmo().page_count(); ++i) {
|
for (int i = 0; i < region.vmo().page_count(); ++i) {
|
||||||
|
@ -395,12 +394,11 @@ Optional<KBuffer> procfs$mm(InodeIdentifier)
|
||||||
InterruptDisabler disabler;
|
InterruptDisabler disabler;
|
||||||
StringBuilder builder;
|
StringBuilder builder;
|
||||||
for (auto* vmo : MM.m_vmos) {
|
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,
|
||||||
vmo->is_anonymous() ? "anon" : "file",
|
vmo->is_anonymous() ? "anon" : "file",
|
||||||
vmo->ref_count(),
|
vmo->ref_count(),
|
||||||
vmo->page_count(),
|
vmo->page_count());
|
||||||
vmo->name().characters());
|
|
||||||
}
|
}
|
||||||
builder.appendf("VMO count: %u\n", MM.m_vmos.size());
|
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());
|
builder.appendf("Free physical pages: %u\n", MM.user_physical_pages() - MM.user_physical_pages_used());
|
||||||
|
|
|
@ -340,8 +340,7 @@ int Process::do_exec(String path, Vector<String> arguments, Vector<String> envir
|
||||||
ProcessPagingScope paging_scope(*this);
|
ProcessPagingScope paging_scope(*this);
|
||||||
|
|
||||||
auto vmo = VMObject::create_file_backed(description->inode());
|
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, description->absolute_path(), PROT_READ);
|
||||||
RefPtr<Region> region = allocate_region_with_vmo(VirtualAddress(), metadata.size, vmo, 0, vmo->name(), PROT_READ);
|
|
||||||
ASSERT(region);
|
ASSERT(region);
|
||||||
|
|
||||||
if (this != ¤t->process()) {
|
if (this != ¤t->process()) {
|
||||||
|
|
|
@ -12,7 +12,6 @@ Region::Region(const Range& range, const String& name, u8 access, bool cow)
|
||||||
, m_access(access)
|
, m_access(access)
|
||||||
, m_cow_map(Bitmap::create(m_vmo->page_count(), cow))
|
, m_cow_map(Bitmap::create(m_vmo->page_count(), cow))
|
||||||
{
|
{
|
||||||
m_vmo->set_name(m_name);
|
|
||||||
MM.register_region(*this);
|
MM.register_region(*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -33,8 +33,7 @@ NonnullRefPtr<VMObject> VMObject::clone()
|
||||||
}
|
}
|
||||||
|
|
||||||
VMObject::VMObject(VMObject& other)
|
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_size(other.m_size)
|
||||||
, m_inode(other.m_inode)
|
, m_inode(other.m_inode)
|
||||||
, m_physical_pages(other.m_physical_pages)
|
, m_physical_pages(other.m_physical_pages)
|
||||||
|
|
|
@ -30,9 +30,6 @@ public:
|
||||||
const Inode* inode() const { return m_inode.ptr(); }
|
const Inode* inode() const { return m_inode.ptr(); }
|
||||||
size_t inode_offset() const { return m_inode_offset; }
|
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; }
|
int page_count() const { return m_size / PAGE_SIZE; }
|
||||||
const Vector<RefPtr<PhysicalPage>>& physical_pages() const { return m_physical_pages; }
|
const Vector<RefPtr<PhysicalPage>>& physical_pages() const { return m_physical_pages; }
|
||||||
Vector<RefPtr<PhysicalPage>>& physical_pages() { return m_physical_pages; }
|
Vector<RefPtr<PhysicalPage>>& physical_pages() { return m_physical_pages; }
|
||||||
|
@ -51,7 +48,6 @@ private:
|
||||||
template<typename Callback>
|
template<typename Callback>
|
||||||
void for_each_region(Callback);
|
void for_each_region(Callback);
|
||||||
|
|
||||||
String m_name;
|
|
||||||
bool m_allow_cpu_caching { true };
|
bool m_allow_cpu_caching { true };
|
||||||
off_t m_inode_offset { 0 };
|
off_t m_inode_offset { 0 };
|
||||||
size_t m_size { 0 };
|
size_t m_size { 0 };
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue