OpenVZ Forum


Home » Mailing lists » Devel » [PATCH 2/2] Make res_counter hierarchical
Re: [PATCH 2/2] Make res_counter hierarchical [message #28271 is a reply to message #28270] Wed, 12 March 2008 23:36 Go to previous messageGo to previous message
yamamoto is currently offline  yamamoto
Messages: 97
Registered: July 2007
Member
> > @@ -36,10 +37,26 @@ int res_counter_charge(struct res_counter *counter, unsigned long val)
> >  {
> >  	int ret;
> >  	unsigned long flags;
> > +	struct res_counter *c, *unroll_c;
> > +
> > +	local_irq_save(flags);
> > +	for (c = counter; c != NULL; c = c->parent) {
> > +		spin_lock(&c->lock);
> > +		ret = res_counter_charge_locked(c, val);
> > +		spin_unlock(&c->lock);
> > +		if (ret < 0)
> > +			goto unroll;
> > +	}
> > +	local_irq_restore(flags);
> > +	return 0;
> >  
> > -	spin_lock_irqsave(&counter->lock, flags);
> > -	ret = res_counter_charge_locked(counter, val);
> > -	spin_unlock_irqrestore(&counter->lock, flags);
> > +unroll:
> > +	for (unroll_c = counter; unroll_c != c; unroll_c = unroll_c->parent) {
> > +		spin_lock(&unroll_c->lock);
> > +		res_counter_uncharge_locked(unroll_c, val);
> > +		spin_unlock(&unroll_c->lock);
> > +	}
> > +	local_irq_restore(flags);
> >  	return ret;
> >  }
> 
> what prevents the topology (in particular, ->parent pointers) from
> changing behind us?
> 
> YAMAMOTO Takashi

to answer myself: cgroupfs rename doesn't allow topological changes
in the first place.

btw, i think you need to do the same for res_counter_limit_check_locked
as well.  i'm skeptical about doing these complicated stuffs in kernel,
esp. in this potentially performance critical code.

YAMAMOTO Takashi
_______________________________________________
Containers mailing list
Containers@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: [PATCH -mm 1/3] cgroup: use a hash table for css_set finding
Next Topic: [PATCH net-2.6.26 3/3][TUN][NETNS]: Allow to register tun devices in namespace.
Goto Forum:
  


Current Time: Fri Sep 05 19:51:29 GMT 2025

Total time taken to generate the page: 0.24035 seconds