-
Notifications
You must be signed in to change notification settings - Fork 247
Description
get_responsible_gk_mailbox() in file gk/main.c takes the reminder rss_hash_val % gk_conf->rss_conf_front.reta_size to calculate rss_hash_val and rss_hash_val is only used on a integer division and reminder on the following lines:
idx = rss_hash_val / RTE_RETA_GROUP_SIZE;
shift = rss_hash_val % RTE_RETA_GROUP_SIZE;
If gk_conf->rss_conf_front.reta_size can only be a power of 2 greater than or equal to RTE_RETA_GROUP_SIZE, which is 64, the operation rss_hash_val % gk_conf->rss_conf_front.reta_size is not need at all. It suggests that the code of get_responsible_gk_mailbox() may be simplifyable. The following questions are key to know how to simplify the code:
- Can
gk_conf->rss_conf_front.reta_sizetake a value that is not a power of 2? - Can
gk_conf->rss_conf_front.reta_sizebe less thanRTE_RETA_GROUP_SIZE?
Besides the answers above, the code simplification may require combining properties of integer divisions and reminders and employing new functions (e.g. div(3)).
Pull request #242 and its related issue #149 motivated this new issue, so reviewing them might be helpful.