Messages in this thread |  | | Date | Tue, 24 Apr 2007 22:04:53 -0700 | | From | "Paul Menage" <> | | Subject | Re: [ckrm-tech] [PATCH 0/7] Containers (V8): Generic Process Containers |
| |
On 4/23/07, Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com> wrote: > Hi Paul, > > In [patch 3/7] Containers (V8): Add generic multi-subsystem API to > containers, you have forcefully enabled interrupt in > container_init_subsys() with spin_unlock_irq() which breaks on PPC64. > > > > +static void container_init_subsys(struct container_subsys *ss) { > > + int retval; > > + struct list_head *l; > > + printk(KERN_ERR "Initializing container subsys %s\n", > > ss->name); > > + > > + /* Create the top container state for this subsystem */ > > + ss->root = &rootnode; > > + retval = ss->create(ss, dummytop); > > + BUG_ON(retval); > > + init_container_css(ss, dummytop); > > + > > + /* Update all container groups to contain a subsys > > + * pointer to this state - since the subsystem is > > + * newly registered, all tasks and hence all container > > + * groups are in the subsystem's top container. */ > > + spin_lock_irq(&container_group_lock); > > + l = &init_container_group.list; > > + do { > > + struct container_group *cg = > > + list_entry(l, struct container_group, list); > > + cg->subsys[ss->subsys_id] = > > dummytop->subsys[ss->subsys_id]; > > + l = l->next; > > + } while (l != &init_container_group.list); > > + spin_unlock_irq(&container_group_lock); > > Interrupt gets enabled here and on PPC64, the kernel takes a pending > decrementer and crashes because it is too early to handle them. > > Use of irqsave and restore routines would fix the problem.
OK, thanks. I'll add that change.
Paul - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |