mirror of
https://github.com/mmueller41/genode.git
synced 2026-01-21 20:42:56 +01:00
enabled sched
This commit is contained in:
@@ -3,6 +3,9 @@
|
||||
#define GENODE // use genodes stdint header
|
||||
#include "../uos-intel-gpgpu/driver/gpgpu_driver.h"
|
||||
|
||||
#include "../virt/scheduler.h"
|
||||
extern gpgpu_virt::Scheduler* _global_sched;
|
||||
|
||||
namespace gpgpu
|
||||
{
|
||||
|
||||
@@ -11,7 +14,8 @@ void gpgpu_genode::handleInterrupt()
|
||||
// handle the gpu interrupt
|
||||
GPGPU_Driver& gpgpudriver = GPGPU_Driver::getInstance();
|
||||
gpgpudriver.handleInterrupt();
|
||||
gpgpudriver.runNext();
|
||||
gpgpudriver.runNext(); // drivers integrated fifo scheduler does nothing... still required to clean up finished task
|
||||
_global_sched->handle_gpu_event(); // message our sched to choose the next kernel
|
||||
|
||||
// ack the irq
|
||||
irq->ack_irq();
|
||||
|
||||
@@ -77,6 +77,15 @@ public:
|
||||
*/
|
||||
void* aligned_alloc(uint32_t alignment, uint32_t size);
|
||||
|
||||
/**
|
||||
* @brief Get the Alloc object
|
||||
*
|
||||
* @return Genode::Allocator_avl&
|
||||
*/
|
||||
Genode::Allocator_avl& getAlloc() {
|
||||
return alloc;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief free memory
|
||||
*
|
||||
|
||||
@@ -53,20 +53,15 @@ int Session_component::start_task(unsigned long kconf)
|
||||
kc->kernelName = (char*)((Genode::addr_t)kc->kernelName + mapped_base);
|
||||
kc->binary = (Genode::uint8_t*)((Genode::addr_t)kc->binary + mapped_base);
|
||||
|
||||
// set maximum frequency
|
||||
GPGPU_Driver& gpgpudriver = GPGPU_Driver::getInstance();
|
||||
gpgpudriver.setMaxFreq();
|
||||
|
||||
// start gpu task
|
||||
gpgpudriver.enqueueRun(*kc);
|
||||
|
||||
/*Kernel* kernel = (Kernel*)_global_gpgpu_genode->aligned_alloc(0, sizeof(Kernel));
|
||||
// add kernel
|
||||
Kernel* kernel = new(_global_gpgpu_genode->getAlloc()) Kernel(kc);
|
||||
vgpu.add_kernel(kernel);
|
||||
|
||||
// trigger sched if its idle
|
||||
if(_global_sched->is_idle())
|
||||
{
|
||||
_global_sched->handle_gpu_event();
|
||||
}*/
|
||||
}
|
||||
|
||||
static int id = 0;
|
||||
/*Genode::log("Kernel ", id);
|
||||
|
||||
Reference in New Issue
Block a user