From 603bdbe33c15ee0e62c86bd1f4d3c98feb403926 Mon Sep 17 00:00:00 2001 From: John Jenkins Date: Mon, 11 Aug 2014 14:34:55 -0500 Subject: [PATCH] Fix packet size determination when using prio scheduler --- src/models/networks/model-net/model-net-lp.c | 29 ++++++++++++-------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/src/models/networks/model-net/model-net-lp.c b/src/models/networks/model-net/model-net-lp.c index b6881ab..16ffed1 100644 --- a/src/models/networks/model-net/model-net-lp.c +++ b/src/models/networks/model-net/model-net-lp.c @@ -159,18 +159,6 @@ static void base_read_config(const char * anno, model_net_base_params *p){ p->sched_params.type = MN_SCHED_FCFS; } - if (p->sched_params.type == MN_SCHED_FCFS_FULL){ - // override packet size to something huge (leave a bit in the unlikely - // case that an op using packet size causes overflow) - packet_size = 1ull << 62; - } - else if (!packet_size && p->sched_params.type != MN_SCHED_FCFS_FULL) - { - packet_size = 512; - fprintf(stderr, "Warning, no packet size specified, setting packet " - "size to %llu\n", packet_size); - } - // get scheduler-specific parameters if (p->sched_params.type == MN_SCHED_PRIO){ // prio scheduler uses default parameters @@ -206,6 +194,23 @@ static void base_read_config(const char * anno, model_net_base_params *p){ } } + if (p->sched_params.type == MN_SCHED_FCFS_FULL || + (p->sched_params.type == MN_SCHED_PRIO && + p->sched_params.u.prio.sub_stype == MN_SCHED_FCFS_FULL)){ + // override packet size to something huge (leave a bit in the unlikely + // case that an op using packet size causes overflow) + packet_size = 1ull << 62; + } + else if (!packet_size && + (p->sched_params.type != MN_SCHED_FCFS_FULL || + (p->sched_params.type == MN_SCHED_PRIO && + p->sched_params.u.prio.sub_stype != MN_SCHED_FCFS_FULL))){ + packet_size = 512; + fprintf(stderr, "WARNING, no packet size specified, setting packet " + "size to %llu\n", packet_size); + } + + p->packet_size = packet_size; } -- 2.26.2