180,6 → 180,9 |
server_list[i].d_equals_t = FALSE; |
} |
|
server_list[i].Qs = contract->quality; |
server_list[i].Is = contract->importance; |
|
#ifdef FSF_DEBUG |
mul32div32to32(server_list[i].Umax,100, MAX_BANDWIDTH, temp); |
kern_printf("(Umax %d)",temp); |
203,7 → 206,7 |
} |
|
server_list[i].server=server; |
server_list[i].Qs=1; |
// server_list[i].Qs=1; |
|
contract_to_server(contract, i); |
|
220,7 → 223,7 |
#endif |
|
server_list[current_server].server=server; |
server_list[current_server].Qs=1; |
//server_list[current_server].Qs=1; |
|
contract_to_server(contract,current_server); |
|
250,6 → 253,7 |
server_list[i].Qs=server_list[i+1].Qs; |
server_list[i].deadline = server_list[i+1].deadline; |
server_list[i].d_equals_t = server_list[i+1].d_equals_t; |
server_list[i].Is = server_list[i+1].Is; |
|
i++; |
} |
582,6 → 586,7 |
int Qt; |
int isok=0; |
int i=0; |
int target_importance=1; |
|
#ifdef FSF_DEBUG |
int temp; |
599,9 → 604,13 |
current_bandwidth=0; |
Qt=0; |
for (i=0; i<current_server; i++) { |
if (server_list[i].Qs!=0 && server_list[i].U<server_list[i].Umax) |
if (server_list[i].Is==target_importance |
&& server_list[i].U<server_list[i].Umax && server_list[i].Qs>0) |
Qt+=server_list[i].Qs; |
current_bandwidth+=server_list[i].U; |
#ifdef FSF_DEBUG |
kern_printf("(Qs %d, Qt %d, Is %d)", server_list[i].Qs, Qt,server_list[i].Is); |
#endif |
} |
|
#ifdef FSF_DEBUG |
609,7 → 618,7 |
#endif |
isok=1; |
for (i=0; i<current_server; i++) { |
if (server_list[i].Qs!=0 && server_list[i].U<server_list[i].Umax) { |
if (server_list[i].Is==target_importance && server_list[i].U<server_list[i].Umax && server_list[i].Qs>0) { |
temp_U=server_list[i].U; |
server_list[i].U=U-current_bandwidth; |
mul32div32to32(server_list[i].U, server_list[i].Qs, Qt, server_list[i].U); |
628,8 → 637,8 |
#endif |
} |
} |
|
} while (!isok); |
target_importance++; |
} while (!isok && target_importance<6); |
|
return 0; |
} |