qres_lib.h File Reference

QRES Library Application Programming Interface. More...

#include <linux/aquosa/qos_types.h>
#include <linux/aquosa/qos_debug.h>
#include <linux/aquosa/qres_gw.h>

Go to the source code of this file.

Functions

qos_rv qres_init (void)
 Initializes the QoS RES library.
qos_rv qres_cleanup (void)
 Cleanup resources associated to the QoS RES Library.
qos_rv qres_create_server (qres_params_t *p_params, qres_sid_t *p_sid)
 : in the following functions, if pid == 0 -> apply to itself
qos_rv qres_attach_thread (qres_sid_t server_id, pid_t pid, tid_t tid)
 Attach a task to an already existing server.
qos_rv qres_detach_thread (qres_sid_t sid, pid_t pid, tid_t tid)
 Detach from the QoS Server and possibly destroy it.
qos_rv qres_destroy_server (qres_sid_t sid)
 Detach all processes from a server and destroy it.
qos_rv qres_get_sid (pid_t pid, tid_t tid, qres_sid_t *p_sid)
 Get a thread server id, or QOS_E_NOT_FOUND if it is not attached to any server.
qos_rv qres_set_bandwidth (qres_sid_t sid, qos_bw_t bw)
 Change bandwidth.
qos_rv qres_get_params (qres_sid_t sid, qres_params_t *p_params)
 Retrieve QoS scheduling parameters.
qos_rv qres_set_params (qres_sid_t sid, qres_params_t *p_params)
 Change QoS scheduling parameters.
qos_rv qres_get_bandwidth (qres_sid_t sid, float *bw)
 Get the bandwidth of the server with the supplied ID.
qos_rv qres_module_exists ()
 Detect module in /proc/modules.
qos_rv qres_get_exec_time (qres_sid_t sid, qres_time_t *exec_time, qres_atime_t *abs_time)
 Retrieve time info relative to the current server.
qos_rv qres_get_curr_budget (qres_sid_t sid, qres_time_t *curr_budget)
 Retrieve remaining budget for the current server instance.
qos_rv qres_get_next_budget (qres_sid_t sid, qres_time_t *next_budget)
 Retrieve the budget that is likely to be used for the very next server instance.
qos_rv qres_get_appr_budget (qres_sid_t sid, qres_time_t *appr_budget)
 Retrieve the budget that has been approved for the subsequent server instances.
qos_rv qres_get_deadline (qres_sid_t sid, struct timespec *p_deadline)
 Retrieve current scheduling deadline.
qos_rv qres_set_weight (qres_sid_t sid, unsigned int weight)
 Set scheduling weight (i.e., used by shrub).
qos_rv qres_get_weight (qres_sid_t sid, unsigned int *p_weight)
 Retrieve scheduling weight (i.e., used by shrub).
qos_rv qres_get_servers (qres_sid_t *sids, size_t *p_num_sids)
 Retrieve the existing servers.

Detailed Description

QRES Library Application Programming Interface.

Todo:

Check status of library/QRESMod inside each function

qres library level calls take pid_t; qres supervisor-filtered calls take struct task_struct (they use task info in order to enforce qossup policy); qres lowest level calls (cbs) take struct cbs_struct;

Todo:
Supervisor (Tom) Invariant-based Ctrl and Pred (Tom) Translation of qosres to IRIS (Luca) Port to 2.4.27 Test inside 2.4.27 Overhead measurements

Definition in file qres_lib.h.

Generated on Mon Aug 2 22:39:17 2010 for qosres by  doxygen 1.6.3