* Upon node removal below min_child, if child pool is filled
* beyond capacity, we roll back to pigeon.
*/
- { .type_class = RCU_JA_PIGEON, .min_child = 89, .max_child = ja_type_7_max_child, .order = 10, },
+ { .type_class = RCU_JA_PIGEON, .min_child = 83, .max_child = ja_type_7_max_child, .order = 10, },
{ .type_class = RCU_JA_NULL, .min_child = 0, .max_child = ja_type_8_max_child, },
};
* Upon node removal below min_child, if child pool is filled
* beyond capacity, we roll back to pigeon.
*/
- { .type_class = RCU_JA_PIGEON, .min_child = 101, .max_child = ja_type_7_max_child, .order = 11, },
+ { .type_class = RCU_JA_PIGEON, .min_child = 95, .max_child = ja_type_7_max_child, .order = 11, },
{ .type_class = RCU_JA_NULL, .min_child = 0, .max_child = ja_type_8_max_child, },
};
ret = rcuja_delete_ht(ja->ht);
if (ret)
return ret;
- fprintf(stderr, "Waiting arbitrary time for node free accounting...\n");
- sleep(10); //wait for free TEST XXX
+
+ /* Wait for in-flight call_rcu free to complete. */
+ flavor->barrier();
+
flavor->thread_online();
if (uatomic_read(&ja->nr_fallback))
fprintf(stderr,