22#ifndef __DATA_REQUEST_H__
23#define __DATA_REQUEST_H__
35#define MAX_PENDING_REQUESTS_PER_NODE 20
36#define MAX_PENDING_PREFETCH_REQUESTS_PER_NODE 10
37#define MAX_PENDING_IDLE_REQUESTS_PER_NODE 1
39#define MAX_PUSH_TIME 1000
45 void (*callback_func)(
void *);
52LIST_TYPE(_starpu_data_request,
57 starpu_data_handle_t handle;
65 unsigned handling_node;
75 enum starpu_data_access_mode mode;
98 struct _starpu_data_request *next_req[STARPU_MAXNODES+1];
100 unsigned next_req_count;
104 unsigned long com_id;
106PRIO_LIST_TYPE(_starpu_data_request, prio)
110LIST_TYPE(_starpu_data_requester,
112 enum starpu_data_access_mode mode;
115 unsigned is_requested_by_codelet;
119 unsigned buffer_index;
126 void (*ready_data_callback)(
void *argcb);
129PRIO_LIST_TYPE(_starpu_data_requester, prio)
131void _starpu_init_data_request_lists(
void);
132void _starpu_deinit_data_request_lists(
void);
133void _starpu_post_data_request(
struct _starpu_data_request *r);
135int _starpu_handle_node_data_requests(
unsigned src_node,
unsigned may_alloc,
unsigned *pushed);
136int _starpu_handle_node_prefetch_requests(
unsigned src_node,
unsigned may_alloc,
unsigned *pushed);
137int _starpu_handle_node_idle_requests(
unsigned src_node,
unsigned may_alloc,
unsigned *pushed);
139int _starpu_handle_pending_node_data_requests(
unsigned src_node);
140int _starpu_handle_all_pending_node_data_requests(
unsigned src_node);
142int _starpu_check_that_no_data_request_exists(
unsigned node);
143int _starpu_check_that_no_data_request_is_pending(
unsigned node);
145struct _starpu_data_request *_starpu_create_data_request(starpu_data_handle_t handle,
149 enum starpu_data_access_mode mode,
153 unsigned is_write_invalidation,
154 const char *origin) STARPU_ATTRIBUTE_MALLOC;
156int _starpu_wait_data_request_completion(
struct _starpu_data_request *r,
unsigned may_alloc);
158void _starpu_data_request_append_callback(
struct _starpu_data_request *r,
159 void (*callback_func)(
void *),
162void _starpu_update_prefetch_status(
struct _starpu_data_request *r,
enum _starpu_is_prefetch prefetch);
Definition: coherency.h:45
_starpu_is_prefetch
Definition: copy_driver.h:51
Definition: copy_driver.h:127
Definition: starpu_spinlock.h:82
Definition: data_request.h:44