Browse Source

Add control of pedantry about size of data.

Add ENSURE_BUFSIZE macro to control wether or not BatchQueue should
control the amount of data trying to be sent or receive.
bq-ompstream
Thomas Preud'homme 10 years ago
parent
commit
8eb6e4a338
  1. 25
      libgomp/stream.c

25
libgomp/stream.c

@ -42,6 +42,7 @@
#define AGGREGATION_FACTOR 32
#define ENSURE_BUFSIZE
//#define OMP_STREAM_DEBUG
#ifdef OMP_STREAM_DEBUG
#define debug_log_init(S, V1, V2) printf (S, V1, V2); fflush (stdout)
@ -727,9 +728,17 @@ GOMP_batchQ_update (void *v, const unsigned long long act_start,
low_idx = act_start * view->burst_size;
up_idx = act_end * view->burst_size + view->pxxk_size - 1;
#ifdef ENSURE_BUFSIZE
if (up_idx - low_idx + 1 != stream->buffer_size)
if (!view->termination_flag)
{
#endif
if (up_idx - low_idx + 1 > stream->buffer_size)
gomp_fatal ("GOMP_batchQ: update requested access to more than buffer_size data.");
#ifdef ENSURE_BUFSIZE
else if (!view->termination_flag)
gomp_fatal ("GOMP_batchQ: update requested access to less than buffer_size data.");
}
#endif
while (!stream->state);
@ -791,9 +800,19 @@ GOMP_batchQ_stall (void *v, const unsigned long long act_start,
low_idx = act_start * view->burst_size + stream->pre_shift;
up_idx = act_end * view->burst_size + view->pxxk_size + stream->pre_shift - 1;
#ifdef ENSURE_BUFSIZE
if (up_idx - low_idx + 1 != stream->buffer_size)
if (!view->termination_flag)
gomp_fatal ("GOMP_stream: stall requested access to an amount of data different that buffer_size.");
{
#endif
if (up_idx - low_idx + 1 > stream->buffer_size)
{
gomp_fatal ("GOMP_batchQ: stall requested access to more than buffer_size.");
}
#ifdef ENSURE_BUFSIZE
else if (!view->termination_flag)
gomp_fatal ("GOMP_stream: stall requested access to less than buffer_size.");
}
#endif
return (void *) stream->sender_ptr;
}

Loading…
Cancel
Save