mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2026-02-04 00:41:41 +01:00
CLEANUP: listener: remove old thread bit mapping
Now that the P2C algorithm for the accept queue is removed, we don't need to map a number to a thread bit anymore, so let's remove all these fields which are taking quite some space for no reason.
This commit is contained in:
parent
0fe703bd50
commit
9f1d4e7f7f
@ -170,8 +170,6 @@ struct bind_conf {
|
||||
struct list listeners; /* list of listeners using this bind config */
|
||||
unsigned long bind_proc; /* bitmask of processes allowed to use these listeners */
|
||||
unsigned long bind_thread; /* bitmask of threads allowed to use these listeners */
|
||||
unsigned long thr_2, thr_4, thr_8, thr_16; /* intermediate values for bind_thread counting */
|
||||
unsigned int thr_count; /* #threads bound */
|
||||
unsigned int thr_idx; /* thread indexes for queue distribution : (t2<<16)+t1 */
|
||||
uint32_t ns_cip_magic; /* Excepted NetScaler Client IP magic number */
|
||||
struct list by_fe; /* next binding for the same frontend, or NULL */
|
||||
|
||||
@ -2328,8 +2328,6 @@ int check_config_validity()
|
||||
curproxy->id, bind_conf->arg, bind_conf->file, bind_conf->line, new_mask);
|
||||
}
|
||||
|
||||
bind_recount_thread_bits(bind_conf);
|
||||
|
||||
/* detect process and nbproc affinity inconsistencies */
|
||||
mask = proc_mask(bind_conf->bind_proc) & proc_mask(curproxy->bind_proc);
|
||||
if (!(mask & all_proc_mask)) {
|
||||
|
||||
@ -1117,33 +1117,6 @@ void bind_dump_kws(char **out)
|
||||
}
|
||||
}
|
||||
|
||||
/* recompute the bit counts per parity for the bind_thread value. This will be
|
||||
* used to quickly map a thread number from 1 to #thread to a thread ID among
|
||||
* the ones bound. This is the preparation phase of the bit rank counting algo
|
||||
* described here: https://graphics.stanford.edu/~seander/bithacks.html
|
||||
*/
|
||||
void bind_recount_thread_bits(struct bind_conf *conf)
|
||||
{
|
||||
unsigned long m;
|
||||
|
||||
m = thread_mask(conf->bind_thread);
|
||||
conf->thr_count = my_popcountl(m);
|
||||
mask_prep_rank_map(m, &conf->thr_2, &conf->thr_4, &conf->thr_8, &conf->thr_16);
|
||||
}
|
||||
|
||||
/* Report the ID of thread <r> in bind_conf <conf> according to its thread_mask.
|
||||
* <r> must be between 0 and LONGBITS-1. This makes use of the pre-computed
|
||||
* bits resulting from bind_recount_thread_bits. See this function for more
|
||||
* info.
|
||||
*/
|
||||
unsigned int bind_map_thread_id(const struct bind_conf *conf, unsigned int r)
|
||||
{
|
||||
unsigned long m;
|
||||
|
||||
m = thread_mask(conf->bind_thread);
|
||||
return mask_find_rank_bit_fast(r, m, conf->thr_2, conf->thr_4, conf->thr_8, conf->thr_16);
|
||||
}
|
||||
|
||||
/************************************************************************/
|
||||
/* All supported sample and ACL keywords must be declared here. */
|
||||
/************************************************************************/
|
||||
@ -1354,7 +1327,6 @@ static int bind_parse_process(char **args, int cur_arg, struct proxy *px, struct
|
||||
|
||||
conf->bind_proc |= proc;
|
||||
conf->bind_thread |= thread;
|
||||
bind_recount_thread_bits(conf);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user