From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pavel Emelyanov Subject: Re: [RFC][PATCH 2/4] res_counter check usage under val Date: Mon, 21 Jul 2008 21:41:35 +0400 Message-ID: <4884CA4F.9060003@openvz.org> References: <20080718193123.cf74b574.kamezawa.hiroyu@jp.fujitsu.com> <20080718193530.578fb1e3.kamezawa.hiroyu@jp.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20080718193530.578fb1e3.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: KAMEZAWA Hiroyuki Cc: "yamamoto-jCdQPDEk3idL9jVzuh4AOg@public.gmane.org" , "nishimura-YQH0OdQVrdy45+QrQBaojngSJqDPrsil@public.gmane.org" , "kosaki.motohiro-+CUm20s59erQFUHtdCDX3A@public.gmane.org" , "containers-qjLDD68F18O7TbgM5vRIOg@public.gmane.org" , "menage-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org" , "balbir-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org" List-Id: containers.vger.kernel.org KAMEZAWA Hiroyuki wrote: > Add an interface to check usage is below "val" > > Signed-off-by: KAMEZAWA Hiroyuki > > include/linux/res_counter.h | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > Index: mmtom-stamp-2008-07-15-15-39/include/linux/res_counter.h > =================================================================== > --- mmtom-stamp-2008-07-15-15-39.orig/include/linux/res_counter.h > +++ mmtom-stamp-2008-07-15-15-39/include/linux/res_counter.h > @@ -191,4 +191,17 @@ static inline int res_counter_set_limit( > return ret; > } > > +static inline int res_counter_check_under_val(struct res_counter *cnt, > + unsigned long long val) > +{ > + unsigned long flags; > + int ret = 0; > + > + spin_lock_irqsave(&cnt->flags, flags); Is this spilock protection *really* required? As far as I see from its usage it is racy itself wrt to res_counter update, so this locking looks superfluous. > + if (cnt->usage < val) > + ret = 1; > + spin_unlock_irqrestore(&cnt->flags, flags); > + return ret; > +} > + > #endif > >