From 9ee0fc9a6151f828ea815b5ccca4e80f6587209b Mon Sep 17 00:00:00 2001 From: Mathieu Desnoyers Date: Mon, 19 Sep 2011 13:27:08 -0400 Subject: [PATCH] rculfhash: add TODO for resize worker threads Signed-off-by: Mathieu Desnoyers --- rculfhash.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/rculfhash.c b/rculfhash.c index 2ed570c..6ac53ea 100644 --- a/rculfhash.c +++ b/rculfhash.c @@ -883,6 +883,12 @@ end: * Holding RCU read lock to protect _cds_lfht_add against memory * reclaim that could be performed by other call_rcu worker threads (ABA * problem). + * + * TODO: when we reach a certain length, we can split this population phase over + * many worker threads, based on the number of CPUs available in the system. + * This should therefore take care of not having the expand lagging behind too + * many concurrent insertion threads by using the scheduler's ability to + * schedule dummy node population fairly with insertions. */ static void init_table_populate(struct cds_lfht *ht, unsigned long i, unsigned long len) @@ -967,6 +973,11 @@ void init_table(struct cds_lfht *ht, * * Logical removal and garbage collection can therefore be done in batch or on a * node-per-node basis, as long as the guarantee above holds. + * + * TODO: when we reach a certain length, we can split this removal over many + * worker threads, based on the number of CPUs available in the system. This + * should take care of not letting resize process lag behind too many concurrent + * updater threads actively inserting into the hash table. */ static void remove_table(struct cds_lfht *ht, unsigned long i, unsigned long len) -- 2.34.1