Refix operation on sparse CPU mappings as in r302372, temporarily broken

by r304716.

PR:		kern/210106
MFC after:	2 days
This commit is contained in:
Nathan Whitehorn 2016-08-31 04:02:52 +00:00
parent 0b1c7ee322
commit c9a124dc9a
2 changed files with 8 additions and 2 deletions

View File

@ -1105,6 +1105,9 @@ __elfN(freebsd_fixup)(register_t **stack_base, struct image_params *imgp)
AUXARGS_ENTRY(pos, AT_TIMEKEEP,
imgp->sysent->sv_timekeep_base);
}
#ifdef AT_HWCAP
AUXARGS_ENTRY(pos, AT_HWCAP, cpu_features);
#endif
AUXARGS_ENTRY(pos, AT_STACKPROT, imgp->sysent->sv_shared_page_obj
!= NULL && imgp->stack_prot != 0 ? imgp->stack_prot :
imgp->sysent->sv_stackprot);

View File

@ -742,7 +742,7 @@ _taskqgroup_adjust(struct taskqgroup *qgroup, int cnt, int stride)
LIST_HEAD(, grouptask) gtask_head = LIST_HEAD_INITIALIZER(NULL);
cpuset_t mask;
struct grouptask *gtask;
int i, old_cnt, qid;
int i, k, old_cnt, qid, cpu;
mtx_assert(&qgroup->tqg_lock, MA_OWNED);
@ -806,8 +806,11 @@ _taskqgroup_adjust(struct taskqgroup *qgroup, int cnt, int stride)
/*
* Set new CPU and IRQ affinity
*/
cpu = CPU_FIRST();
for (i = 0; i < cnt; i++) {
qgroup->tqg_queue[i].tgc_cpu = i * qgroup->tqg_stride;
qgroup->tqg_queue[i].tgc_cpu = cpu;
for (k = 0; k < qgroup->tqg_stride; k++)
cpu = CPU_NEXT(cpu);
CPU_ZERO(&mask);
CPU_SET(qgroup->tqg_queue[i].tgc_cpu, &mask);
LIST_FOREACH(gtask, &qgroup->tqg_queue[i].tgc_tasks, gt_list) {