@@ -54,6 +54,7 @@ typedef struct gst_thrd_info_t{
54
54
int server_idx ;
55
55
int thread_idx ;
56
56
} gst_thrd_info_t ;
57
+ int cas_count = 0 ;
57
58
58
59
extern __thread int offload_mode ; /* 1: server, 2: client 3: exec*/
59
60
extern void exec_func (void );
@@ -874,9 +875,11 @@ void offload_server_extra_init(void)
874
875
/* To manipulate guest thread's server.
875
876
* Short for guest thread place*/
876
877
#define GUEST_THREAD_MAX 128
877
- int gst_thrd_plc [GUEST_THREAD_MAX ] = {0 , 0 , 0 , 0 , 1 ,1 ,1 ,1 ,1 , 1 , 1 , 1 , 1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 };
878
+ int gst_thrd_plc [GUEST_THREAD_MAX ] = {1 ,1 ,1 ,1 ,2 , 2 , 2 , 2 , 3 , 3 , 3 , 3 , 0 , 0 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 };
878
879
//{0};
880
+ //{0,1,2,3,4,5,6,7,8,9,10,11};
879
881
gst_thrd_info_t gst_thrd_info [GUEST_THREAD_MAX ];
882
+ int max_server_in_use ;
880
883
881
884
pthread_t center_server_thread ;
882
885
extern void offload_client_pmd_init (void );
@@ -916,6 +919,7 @@ int main(int argc, char **argv, char **envp)
916
919
int server_idx = 0 ;
917
920
for (int i = 0 ; i < GUEST_THREAD_MAX ; i ++ ) {
918
921
server_idx = gst_thrd_plc [i ];
922
+ max_server_in_use = (server_idx > max_server_in_use ) ? server_idx : max_server_in_use ;
919
923
gst_thrd_info [i ].server_idx = server_idx ;
920
924
gst_thrd_info [i ].thread_idx = server_thread_count [server_idx ]++ ;
921
925
fprintf (stderr , "Thread %d --> [%d->%d]\n" ,
@@ -1156,6 +1160,10 @@ int main(int argc, char **argv, char **envp)
1156
1160
thread_env = env ;
1157
1161
if (offload_mode == 2 ) {
1158
1162
1163
+ if (!parallel_cpus ) {
1164
+ parallel_cpus = true;
1165
+ tb_flush (cpu );
1166
+ }
1159
1167
fprintf (stderr , "offload client mode\n" );
1160
1168
1161
1169
fprintf (stderr , "size: %x, mask: %x\n" , qemu_host_page_size , qemu_host_page_mask );
@@ -1180,8 +1188,8 @@ int main(int argc, char **argv, char **envp)
1180
1188
pthread_mutex_lock (& offload_center_init_mutex );
1181
1189
pthread_cond_wait (& offload_center_init_cond , & offload_center_init_mutex );
1182
1190
pthread_mutex_unlock (& offload_center_init_mutex );
1183
- fprintf (stderr , "Connecting online server\n" );
1184
- for (int i = 1 ; i < 3 ; i ++ ) {
1191
+ fprintf (stderr , "Connecting online server from 1 to %d \n" , max_server_in_use - 1 );
1192
+ for (int i = 1 ; i <= max_server_in_use ; i ++ ) {
1185
1193
extern void offload_connect_online_server (int idx );
1186
1194
offload_connect_online_server (i );
1187
1195
0 commit comments