Re: [patch] Real-Time Preemption, -RT-2.6.12-rc4-V0.7.47-06

Oleg Nesterov
2005-06-01T14:35:37Z

Daniel Walker wrote:
>
> On Wed, 1 Jun 2005, Ingo Molnar wrote:
>
> > * Oleg Nesterov <oleg@tv-sign.ru> wrote:
> >
> > > > existing_sp_head:
> > > > itr_pl2 = container_of(itr_pl->dp_node.prev, struct plist, dp_node);
> > > > list_add(&pl->sp_node, &itr_pl2->sp_node);
> > >
> > > This breaks fifo ordering.
> >
> > Daniel, is the issue (and other issues) Oleg noticed still present? I'm
> > still a bit uneasy about the complexity of the plist changes.
>
> I think this one isn't right. We could make a test quite to check
> correctness. Find the errors before they find us. Oleg may even have
> something like that already half done.

Ok, I'll do the testing...

int main(void)
{
struct plist head, node[3], *pos;
int i;

plist_init(&head, INT_MAX);

for (i = 0; i < 3; ++i) {
plist_init(node + i, 0);
plist_add(node + i, &head);
}

plist_for_each(pos, &head)
printf("fifo? %d\n", pos - node);

return 0;
}

output:

fifo? 2
fifo? 1
fifo? 0

Oleg.