hw: remove unused object pool of pager ojects

Fix genodelabs/genode#5417
This commit is contained in:
Stefan Kalkowski 2025-01-13 13:30:01 +01:00 committed by Christian Helmuth
parent 0d648eae62
commit b0052a71be
2 changed files with 6 additions and 19 deletions

View File

@ -75,11 +75,7 @@ void Pager_object::wake_up()
void Pager_object::start_paging(Kernel_object<Kernel::Signal_receiver> &receiver, void Pager_object::start_paging(Kernel_object<Kernel::Signal_receiver> &receiver,
Platform_thread &pager_thread) Platform_thread &pager_thread)
{ {
using Object = Kernel_object<Kernel::Signal_context>;
using Entry = Object_pool<Pager_object>::Entry;
create(*receiver, (unsigned long)this); create(*receiver, (unsigned long)this);
Entry::cap(Object::_cap);
_pager_thread = &pager_thread; _pager_thread = &pager_thread;
} }
@ -101,7 +97,6 @@ Pager_object::Pager_object(Cpu_session_capability cpu_session_cap,
Affinity::Location location, Session_label const &, Affinity::Location location, Session_label const &,
Cpu_session::Name const &) Cpu_session::Name const &)
: :
Object_pool<Pager_object>::Entry(Kernel_object<Kernel::Signal_context>::_cap),
_badge(badge), _location(location), _badge(badge), _location(location),
_cpu_session_cap(cpu_session_cap), _thread_cap(thread_cap) _cpu_session_cap(cpu_session_cap), _thread_cap(thread_cap)
{ } { }
@ -198,12 +193,6 @@ Pager_entrypoint::Thread::Thread(Affinity::Location cpu)
void Pager_entrypoint::dissolve(Pager_object &o) void Pager_entrypoint::dissolve(Pager_object &o)
{ {
Kernel::kill_signal_context(Capability_space::capid(o.cap())); Kernel::kill_signal_context(Capability_space::capid(o.cap()));
unsigned const cpu = o.location().xpos();
if (cpu >= _cpus)
error("Invalid location of pager object ", cpu);
else
_threads[cpu].remove(&o);
} }
@ -215,7 +204,6 @@ Pager_capability Pager_entrypoint::manage(Pager_object &o)
} else { } else {
o.start_paging(_threads[cpu]._kobj, o.start_paging(_threads[cpu]._kobj,
*_threads[cpu].native_thread().platform_thread); *_threads[cpu].native_thread().platform_thread);
_threads[cpu].insert(&o);
} }
return reinterpret_cap_cast<Pager_object>(o.cap()); return reinterpret_cap_cast<Pager_object>(o.cap());

View File

@ -17,7 +17,6 @@
/* Genode includes */ /* Genode includes */
#include <base/session_label.h> #include <base/session_label.h>
#include <base/thread.h> #include <base/thread.h>
#include <base/object_pool.h>
#include <base/signal.h> #include <base/signal.h>
#include <pager/capability.h> #include <pager/capability.h>
@ -100,11 +99,9 @@ class Core::Ipc_pager
}; };
class Core::Pager_object : private Object_pool<Pager_object>::Entry, class Core::Pager_object : private Kernel_object<Kernel::Signal_context>
private Kernel_object<Kernel::Signal_context>
{ {
friend class Pager_entrypoint; friend class Pager_entrypoint;
friend class Object_pool<Pager_object>;
private: private:
@ -138,6 +135,8 @@ class Core::Pager_object : private Object_pool<Pager_object>::Entry,
Affinity::Location, Session_label const&, Affinity::Location, Session_label const&,
Cpu_session::Name const&); Cpu_session::Name const&);
virtual ~Pager_object() {}
/** /**
* User identification of pager object * User identification of pager object
*/ */
@ -215,7 +214,8 @@ class Core::Pager_object : private Object_pool<Pager_object>::Entry,
Cpu_session_capability cpu_session_cap() const { return _cpu_session_cap; } Cpu_session_capability cpu_session_cap() const { return _cpu_session_cap; }
Thread_capability thread_cap() const { return _thread_cap; } Thread_capability thread_cap() const { return _thread_cap; }
using Object_pool<Pager_object>::Entry::cap; Untyped_capability cap() {
return Kernel_object<Kernel::Signal_context>::_cap; }
}; };
@ -225,8 +225,7 @@ class Core::Pager_entrypoint
friend class Platform; friend class Platform;
class Thread : public Object_pool<Pager_object>, class Thread : public Genode::Thread,
public Genode::Thread,
private Ipc_pager private Ipc_pager
{ {
private: private: