@@ -992,43 +992,31 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list,
992
992
pollers_mask = ""
993
993
app_thread_mask = ""
994
994
jm_cpu_mask = ""
995
- alceml_cpu_cores = []
996
- distrib_cpu_cores = []
997
- alceml_worker_cpu_cores = []
998
-
999
995
alceml_cpu_index = 0
1000
996
alceml_worker_cpu_index = 0
1001
997
distrib_cpu_index = 0
1002
998
jc_singleton_mask = ""
1003
999
1000
+ cores_config = node_info ["cores_config" ]
1001
+ spdk_cpu_mask = cores_config ["cpu_mask" ]
1002
+ app_thread_core = cores_config ["cores_distribution" ]["app_thread_core" ]
1003
+ jm_cpu_core = cores_config ["cores_distribution" ]["jm_cpu_core" ]
1004
+ poller_cpu_cores = cores_config ["cores_distribution" ]["poller_cpu_cores" ]
1005
+ alceml_cpu_cores = cores_config ["cores_distribution" ]["alceml_cpu_cores" ]
1006
+ alceml_worker_cpu_cores = cores_config ["cores_distribution" ]["alceml_worker_cpu_cores" ]
1007
+ distrib_cpu_cores = cores_config ["cores_distribution" ]["distrib_cpu_cores" ]
1008
+ jc_singleton_core = cores_config ["cores_distribution" ]["jc_singleton_core" ]
1009
+ if is_secondary_node :
1010
+ distrib_cpu_cores = distrib_cpu_cores + alceml_cpu_cores
1004
1011
1005
- poller_cpu_cores = []
1006
-
1007
- if not spdk_cpu_mask :
1008
- spdk_cpu_mask = hex (int (math .pow (2 , cpu_count ))- 2 )
1009
-
1010
- spdk_cores = utils .hexa_to_cpu_list (spdk_cpu_mask )
1011
- if cpu_count < spdk_cores [- 1 ]:
1012
- print (f"ERROR: The cpu mask { spdk_cpu_mask } is greater than the total cpus on the system { cpu_count } " )
1013
- return False
1014
- if spdk_cores [- 1 ] >= 64 :
1015
- print (f"ERROR: The provided cpu mask { spdk_cpu_mask } has values greater than 63, which is not allowed" )
1016
- return False
1017
- if len (spdk_cores ) >= 4 :
1018
- app_thread_core , jm_cpu_core , poller_cpu_cores , alceml_cpu_cores , alceml_worker_cpu_cores , distrib_cpu_cores , jc_singleton_core = utils .calculate_core_allocation (
1019
- spdk_cores )
1020
-
1021
- if is_secondary_node :
1022
- distrib_cpu_cores = distrib_cpu_cores + alceml_cpu_cores
1023
-
1024
- pollers_mask = utils .generate_mask (poller_cpu_cores )
1012
+ if jc_singleton_core :
1013
+ jc_singleton_mask = utils .decimal_to_hex_power_of_2 (jc_singleton_core [0 ])
1014
+ if app_thread_core :
1025
1015
app_thread_mask = utils .generate_mask (app_thread_core )
1026
- if jc_singleton_core :
1027
- jc_singleton_mask = utils .decimal_to_hex_power_of_2 (jc_singleton_core [0 ])
1028
- #spdk_cpu_mask = utils.generate_mask(spdk_cores)
1016
+ if jm_cpu_core :
1029
1017
jm_cpu_mask = utils .generate_mask (jm_cpu_core )
1030
- #distrib_cpu_mask = utils.generate_mask(distrib_cpu_cores)
1031
-
1018
+ if poller_cpu_cores :
1019
+ pollers_mask = utils . generate_mask ( poller_cpu_cores )
1032
1020
# Calculate pool count
1033
1021
if cloud_instance ['type' ]:
1034
1022
ins_type = cloud_instance ['type' ]
@@ -2558,10 +2546,12 @@ def get_node_port_iostats(port_id, history=None, records_count=20):
2558
2546
return utils .print_table (out )
2559
2547
2560
2548
2561
- def deploy (ifname ):
2549
+ def deploy (ifname , spdk_cpu_mask ):
2562
2550
if not ifname :
2563
2551
ifname = "eth0"
2564
-
2552
+ cpu_count = os .cpu_count ()
2553
+ if not spdk_cpu_mask :
2554
+ spdk_cpu_mask = hex (int (math .pow (2 , cpu_count ))- 2 )
2565
2555
dev_ip = utils .get_iface_ip (ifname )
2566
2556
if not dev_ip :
2567
2557
logger .error (f"Error getting interface ip: { ifname } " )
@@ -2579,6 +2569,10 @@ def deploy(ifname):
2579
2569
ret = scripts .configure_docker (dev_ip )
2580
2570
2581
2571
start_storage_node_api_container (dev_ip )
2572
+ isolated_full = utils .prepare_cores (spdk_cpu_mask )
2573
+ if isolated_full :
2574
+ utils .generate_realtime_variables_file (isolated_full )
2575
+ utils .run_tuned ()
2582
2576
return f"{ dev_ip } :5000"
2583
2577
2584
2578
def start_storage_node_api_container (node_ip ):
0 commit comments