Hello Hackers, I think I found a bug in ksched_setscheduler() function. 178 int 179 ksched_setscheduler(struct ksched *ksched, 180 struct thread *td, int policy, const struct sched_param *param) 181 { 182 int e = 0; 183 struct rtprio rtp; 184 185 switch(policy) 186 { 187 case SCHED_RR: 188 case SCHED_FIFO: 189 190 if (param->sched_priority >= P1B_PRIO_MIN && 191 param->sched_priority <= P1B_PRIO_MAX) 192 { 193 rtp.prio = p4prio_to_rtpprio(param->sched_priority); 194 rtp.type = (policy == SCHED_FIFO) 195 ? RTP_PRIO_FIFO : RTP_PRIO_REALTIME; 196 197 rtp_to_pri(&rtp, td); 198 } 199 else 200 e = EPERM; 201 202 203 break; 204 205 case SCHED_OTHER: 206 if (param->sched_priority >= 0 && 207 param->sched_priority <= (PRI_MAX_TIMESHARE - PRI_MIN_TIMESHARE)) { 208 rtp.type = RTP_PRIO_NORMAL; 209 rtp.prio = p4prio_to_rtpprio(param->sched_priority); 210 rtp_to_pri(&rtp, td); 211 } else 212 e = EINVAL; 213 214 break; 215 216 default: 217 e = EINVAL; 218 break; 219 } 220 221 return e; 222 }
Shouldn't we use p4prio_to_tsprio instead of p4prio_to_rtpprio at the line 209? This macro is defined but never used in kernel code: $ grep -r 'p4prio_to_tsprio' /usr/src/sys/ /usr/src/sys/kern/ksched.c:#define p4prio_to_tsprio(P) ((PRI_MAX_TIMESHARE - PRI_MIN_TIMESHARE) - (P)) $ Is it a real bug or just my misunderstanding of something? Thanks! -- Sincerely yours, Dmitry V. Krivenok e-mail: krivenok.dmi...@gmail.com skype: krivenok_dmitry jabber: krivenok_dmi...@jabber.ru icq: 242-526-443 _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"