Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet/tcp_hpts.c
Show First 20 Lines • Show All 1,397 Lines • ▼ Show 20 Lines | KASSERT((((TAILQ_EMPTY(&hpts->p_dropq) != 0) && (hpts->p_dropq_cnt == 0)) || | ||||
__FUNCTION__, hpts, hpts->p_dropq_cnt)); | __FUNCTION__, hpts, hpts->p_dropq_cnt)); | ||||
if (hpts->p_on_queue_cnt == 0) { | if (hpts->p_on_queue_cnt == 0) { | ||||
goto no_one; | goto no_one; | ||||
} | } | ||||
for (i = 0; i < slots_to_run; i++) { | for (i = 0; i < slots_to_run; i++) { | ||||
struct inpcb *inp, *ninp; | struct inpcb *inp, *ninp; | ||||
TAILQ_HEAD(, inpcb) head = TAILQ_HEAD_INITIALIZER(head); | TAILQ_HEAD(, inpcb) head = TAILQ_HEAD_INITIALIZER(head); | ||||
struct hptsh *hptsh; | struct hptsh *hptsh; | ||||
uint32_t runningslot, gencnt; | uint32_t runningslot; | ||||
/* | /* | ||||
* Calculate our delay, if there are no extra ticks there | * Calculate our delay, if there are no extra ticks there | ||||
* was not any (i.e. if slots_to_run == 1, no delay). | * was not any (i.e. if slots_to_run == 1, no delay). | ||||
*/ | */ | ||||
hpts->p_delayed_by = (slots_to_run - (i + 1)) * | hpts->p_delayed_by = (slots_to_run - (i + 1)) * | ||||
HPTS_TICKS_PER_SLOT; | HPTS_TICKS_PER_SLOT; | ||||
runningslot = hpts->p_runningslot; | runningslot = hpts->p_runningslot; | ||||
hptsh = &hpts->p_hptss[runningslot]; | hptsh = &hpts->p_hptss[runningslot]; | ||||
TAILQ_SWAP(&head, &hptsh->head, inpcb, inp_hpts); | TAILQ_SWAP(&head, &hptsh->head, inpcb, inp_hpts); | ||||
hpts->p_on_queue_cnt -= hptsh->count; | hpts->p_on_queue_cnt -= hptsh->count; | ||||
hptsh->count = 0; | hptsh->count = 0; | ||||
gencnt = hptsh->gencnt++; | hptsh->gencnt++; | ||||
HPTS_UNLOCK(hpts); | HPTS_UNLOCK(hpts); | ||||
TAILQ_FOREACH_SAFE(inp, &head, inp_hpts, ninp) { | TAILQ_FOREACH_SAFE(inp, &head, inp_hpts, ninp) { | ||||
bool set_cpu; | bool set_cpu; | ||||
if (ninp != NULL) { | if (ninp != NULL) { | ||||
/* We prefetch the next inp if possible */ | /* We prefetch the next inp if possible */ | ||||
▲ Show 20 Lines • Show All 747 Lines • Show Last 20 Lines |