mirror of
https://github.com/mmueller41/genode.git
synced 2026-01-21 12:32:56 +01:00
use WFQueue for vGPUs ready list
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
#ifndef KERNEL_H
|
||||
#define KERNEL_H
|
||||
|
||||
#include <util/fifo.h>
|
||||
#include "strategies/util/wf_queue.h"
|
||||
|
||||
#define GENODE
|
||||
#include "../uos-intel-gpgpu/driver/gpgpu_driver.h"
|
||||
@@ -13,7 +13,7 @@ namespace gpgpu_virt {
|
||||
* @class This class represents a kernel
|
||||
*
|
||||
*/
|
||||
class Kernel : public Genode::Fifo<Kernel>::Element
|
||||
class Kernel : public util::WFQueue::Chain
|
||||
{
|
||||
private:
|
||||
struct kernel_config* kconf;
|
||||
|
||||
@@ -7,9 +7,8 @@
|
||||
|
||||
#ifdef SCHED_CFS
|
||||
#include "strategies/cfs_entry.h"
|
||||
#else
|
||||
#include "strategies/util/wf_queue.h"
|
||||
#endif // SCHED_CFS
|
||||
#include "strategies/util/wf_queue.h"
|
||||
|
||||
// driver
|
||||
#define GENODE
|
||||
@@ -29,7 +28,7 @@ namespace gpgpu_virt {
|
||||
context* ctx;
|
||||
|
||||
/// list of gpgpu tasks for this vpgu
|
||||
Genode::Fifo<Kernel> ready_list;
|
||||
util::WFQueue ready_list;
|
||||
|
||||
/// priority of vgpu
|
||||
int prio;
|
||||
@@ -67,7 +66,7 @@ namespace gpgpu_virt {
|
||||
*/
|
||||
void add_kernel(Kernel* kernel) {
|
||||
kernel->get_config()->ctx = ctx; // set context
|
||||
ready_list.enqueue(*kernel);
|
||||
ready_list.enqueue((util::WFQueue::Chain*)kernel);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -105,11 +104,7 @@ namespace gpgpu_virt {
|
||||
* @return First kernel image in ready list
|
||||
*/
|
||||
Kernel* take_kernel() {
|
||||
Kernel* ret = nullptr;
|
||||
ready_list.dequeue([&ret](Kernel& k){
|
||||
ret = &k;
|
||||
});
|
||||
return ret;
|
||||
return (Kernel*)ready_list.dequeue();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user