From: Erich F. <ef...@es...> - 2003-01-15 15:10:36
|
Thanks for the patience with the problems in the yesterday patches. I resend the patches in the same form. Made following changes: - moved NODE_BALANCE_{RATE,MIN,MAX} to topology.h - removed the divide in the find_busiest_node() loop (thanks, Martin) - removed the modulo (%) in in the cross-node balancing trigger - re-added node_nr_running_init() stub, nr_running_init() and comments from Christoph - removed the constant factor 4 in find_busiest_node. The find_busiest_queue routine will take care of the case where the busiest_node is running only few processes (at most one per CPU) and return busiest=3DNULL . I hope we can start tuning the parameters now. In the basic NUMA scheduler part these are: NODE_THRESHOLD : minimum percentage of node overload to trigger cross-node balancing NODE_BALANCE_RATE : arch specific, cross-node balancing is called after this many intra-node load balance calls In the extended NUMA scheduler the fixed value of NODE_BALANCE_RATE is replaced by a variable rate set to : NODE_BALANCE_MIN : if own node load is less then avg_load/2 NODE_BALANCE_MAX : if load is larger than avg_load/2 Together with the reduced number of steals across nodes this might help us in achieving equal load among nodes. I'm not aware of any simple benchmark which can demonstrate this... Regards, Erich |