>>> On Tue, Feb 5, 2008 at 4:58 PM, in message <20080205215805.GD18613@xxxxxxxxxxxxxxxxxxx>, Daniel Walker <dwalker@xxxxxxxxxxxxxxxxxxx> wrote: > On Tue, Feb 05, 2008 at 11:25:18AM -0700, Gregory Haskins wrote: >> @@ -6241,7 +6242,7 @@ static void rq_attach_root(struct rq *rq, struct > root_domain *rd) >> cpu_clear(rq->cpu, old_rd->online); >> >> if (atomic_dec_and_test(&old_rd->refcount)) >> - kfree(old_rd); >> + reap = old_rd; > > Unrelated to the in atomic issue, I was wondering if this if statement > isn't true can the old_rd memory get leaked, or is it cleaned up > someplace else? Each RQ always has a reference to one root-domain and is thus represented by the rd->refcount. When the last RQ drops its reference to a particular instance, we free the structure. So this is the only place where we clean up, but it should also be the only place we need to (unless I am misunderstanding you?) Note that there is one exception: the default root-domain is never freed, which is why we initialize it with a refcount = 1. So it is theoretically possible to have this particular root-domain dangling with no RQs associated with it, but that is by design. Regards, -Greg - To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html