login
Login
/
Register
Search
Search this site:
Forums
News
Blogs
Features
Site
Home
»
Mailing list archives
»
linux-kernel
»
2010
»
August
»
23
Re: [PATCH 2/5] memcg: use array and ID for quick look up
view
thread
Previous message: [
thread
] [
date
] [
author
]
Next message: [
thread
] [
date
] [
author
]
[view in full thread]
From: KAMEZAWA Hiroyuki
Subject:
Re: [PATCH 2/5] memcg: use array and ID for quick look up
Date: Monday, August 23, 2010 - 4:51 pm
On Mon, 23 Aug 2010 12:35:33 +0900 Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp> wrote:
quoted text
> Hi, > > > +/* 0 is unused */ > > +static atomic_t mem_cgroup_num; > > +#define NR_MEMCG_GROUPS (CONFIG_MEM_CGROUP_MAX_GROUPS + 1) > > +static struct mem_cgroup *mem_cgroups[NR_MEMCG_GROUPS] __read_mostly; > > + > > +/* Must be called under rcu_read_lock */ > > +static struct mem_cgroup *id_to_memcg(unsigned short id) > > +{ > > + struct mem_cgroup *ret; > > + /* see mem_cgroup_free() */ > > + ret = rcu_dereference_check(mem_cgroups[id], rch_read_lock_held()); > > + if (likely(ret && ret->valid)) > > + return ret; > > + return NULL; > > +} > > + > I prefer "mem" to "ret". >
Hmm, ok.
quoted text
> > @@ -2231,7 +2244,7 @@ __mem_cgroup_commit_charge_swapin(struct > > > > id = swap_cgroup_record(ent, 0); > > rcu_read_lock(); > > - memcg = mem_cgroup_lookup(id); > > + memcg = id_to_memcg(id); > > if (memcg) { > > /* > > * This recorded memcg can be obsolete one. So, avoid > > @@ -2240,9 +2253,10 @@ __mem_cgroup_commit_charge_swapin(struct > > if (!mem_cgroup_is_root(memcg)) > > res_counter_uncharge(&memcg->memsw, PAGE_SIZE); > > mem_cgroup_swap_statistics(memcg, false); > > + rcu_read_unlock(); > > mem_cgroup_put(memcg); > > - } > > - rcu_read_unlock(); > > + } else > > + rcu_read_unlock(); > > } > > /* > > * At swapin, we may charge account against cgroup which has no tasks. > > @@ -2495,7 +2509,7 @@ void mem_cgroup_uncharge_swap(swp_entry_ > > > > id = swap_cgroup_record(ent, 0); > > rcu_read_lock(); > > - memcg = mem_cgroup_lookup(id); > > + memcg = id_to_memcg(id); > > if (memcg) { > > /* > > * We uncharge this because swap is freed. > > @@ -2504,9 +2518,10 @@ void mem_cgroup_uncharge_swap(swp_entry_ > > if (!mem_cgroup_is_root(memcg)) > > res_counter_uncharge(&memcg->memsw, PAGE_SIZE); > > mem_cgroup_swap_statistics(memcg, false); > > + rcu_read_unlock(); > > mem_cgroup_put(memcg); > > - } > > - rcu_read_unlock(); > > + } else > > + rcu_read_unlock(); > > } > > > > /** > Could you explain why we need rcu_read_unlock() before mem_cgroup_put() ? > I suspect that it's because mem_cgroup_put() can free the memcg, but do we > need mem->valid then ? >
mem_cgroup_put() may call synchronize_rcu(). So, we have to unlock before it. Thanks, -Kame --
unsubscribe notice
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/
Previous message: [
thread
] [
date
] [
author
]
Next message: [
thread
] [
date
] [
author
]
Messages in current thread:
[PATCH] memcg: towards I/O aware memcg v5
, KAMEZAWA Hiroyuki
, (Fri Aug 20, 2:55 am)
[PATCH 1/5] cgroup: ID notification call back
, KAMEZAWA Hiroyuki
, (Fri Aug 20, 2:58 am)
[PATCH 2/5] memcg: use array and ID for quick look up
, KAMEZAWA Hiroyuki
, (Fri Aug 20, 2:59 am)
[PATCH] memcg: use ID in page_cgroup
, KAMEZAWA Hiroyuki
, (Fri Aug 20, 3:01 am)
[PATCH 4/5] memcg: lockless update of file_mapped
, KAMEZAWA Hiroyuki
, (Fri Aug 20, 3:02 am)
[PATCH 5/5] memcg: generic file accounting update function
, KAMEZAWA Hiroyuki
, (Fri Aug 20, 3:03 am)
Re: [PATCH] memcg: use ID in page_cgroup
, KAMEZAWA Hiroyuki
, (Fri Aug 20, 3:05 am)
Re: [PATCH 2/5] memcg: use array and ID for quick look up
, Daisuke Nishimura
, (Sun Aug 22, 8:35 pm)
Re: [PATCH] memcg: use ID in page_cgroup
, Daisuke Nishimura
, (Sun Aug 22, 10:32 pm)
Re: [PATCH 4/5] memcg: lockless update of file_mapped
, Daisuke Nishimura
, (Mon Aug 23, 1:50 am)
Re: [PATCH 4/5] memcg: lockless update of file_mapped
, KAMEZAWA Hiroyuki
, (Mon Aug 23, 4:49 pm)
Re: [PATCH 2/5] memcg: use array and ID for quick look up
, KAMEZAWA Hiroyuki
, (Mon Aug 23, 4:51 pm)
Re: [PATCH] memcg: use ID in page_cgroup
, KAMEZAWA Hiroyuki
, (Mon Aug 23, 4:52 pm)
Re: [PATCH 2/5] memcg: use array and ID for quick look up
, Daisuke Nishimura
, (Mon Aug 23, 5:19 pm)
Re: [PATCH 4/5] memcg: lockless update of file_mapped
, Daisuke Nishimura
, (Mon Aug 23, 5:19 pm)
Re: [PATCH] memcg: use ID in page_cgroup
, Daisuke Nishimura
, (Mon Aug 23, 6:14 pm)
Re: [PATCH] memcg: use ID in page_cgroup
, KAMEZAWA Hiroyuki
, (Mon Aug 23, 6:54 pm)
Re: [PATCH] memcg: use ID in page_cgroup
, Daisuke Nishimura
, (Mon Aug 23, 9:04 pm)
Re: [PATCH] memcg: use ID in page_cgroup
, KAMEZAWA Hiroyuki
, (Mon Aug 23, 11:05 pm)
Re: [PATCH 1/5] cgroup: ID notification call back
, KAMEZAWA Hiroyuki
, (Tue Aug 24, 12:18 am)
Re: [PATCH 1/5] cgroup: ID notification call back
, Greg Thelen
, (Tue Aug 24, 12:19 am)
Re: [PATCH 2/5] memcg: use array and ID for quick look up
, KAMEZAWA Hiroyuki
, (Tue Aug 24, 12:42 am)
Re: [PATCH 2/5] memcg: use array and ID for quick look up
, Greg Thelen
, (Tue Aug 24, 12:44 am)
Re: [PATCH] memcg: towards I/O aware memcg v5
, Balbir Singh
, (Tue Aug 24, 12:46 am)
Re: [PATCH] memcg: use ID in page_cgroup
, Greg Thelen
, (Tue Aug 24, 12:47 am)
Re: [PATCH] memcg: use ID in page_cgroup
, KAMEZAWA Hiroyuki
, (Tue Aug 24, 12:51 am)
Re: [PATCH] memcg: towards I/O aware memcg v5
, KAMEZAWA Hiroyuki
, (Tue Aug 24, 12:59 am)
Re: [PATCH] memcg: use ID in page_cgroup
, Greg Thelen
, (Tue Aug 24, 1:35 am)
Re: [PATCH] memcg: use ID in page_cgroup
, KAMEZAWA Hiroyuki
, (Tue Aug 24, 1:38 am)
Re: [PATCH 1/5] cgroup: ID notification call back
, Li Zefan
, (Tue Aug 24, 2:04 am)
Re: [PATCH 1/5] cgroup: ID notification call back
, KAMEZAWA Hiroyuki
, (Tue Aug 24, 4:58 pm)
Re: [PATCH 1/5] cgroup: ID notification call back
, Paul Menage
, (Tue Aug 24, 5:09 pm)
Re: [PATCH 1/5] cgroup: ID notification call back
, Paul Menage
, (Tue Aug 24, 5:11 pm)
Re: [PATCH 1/5] cgroup: ID notification call back
, KAMEZAWA Hiroyuki
, (Tue Aug 24, 5:17 pm)
Re: [PATCH 1/5] cgroup: ID notification call back
, KAMEZAWA Hiroyuki
, (Tue Aug 24, 5:20 pm)
Re: [PATCH 1/5] cgroup: ID notification call back
, Paul Menage
, (Tue Aug 24, 5:25 pm)
Re: [PATCH 1/5] cgroup: ID notification call back
, Paul Menage
, (Tue Aug 24, 5:34 pm)
Re: [PATCH 1/5] cgroup: ID notification call back
, KAMEZAWA Hiroyuki
, (Tue Aug 24, 5:37 pm)
Re: [PATCH 1/5] cgroup: ID notification call back
, Paul Menage
, (Tue Aug 24, 5:46 pm)
Re: [PATCH 1/5] cgroup: ID notification call back
, KAMEZAWA Hiroyuki
, (Tue Aug 24, 6:03 pm)
Re: [PATCH 1/5] cgroup: ID notification call back
, Paul Menage
, (Tue Aug 24, 6:35 pm)
Re: [PATCH 1/5] cgroup: ID notification call back
, KAMEZAWA Hiroyuki
, (Tue Aug 24, 6:42 pm)
Re: [PATCH 1/5] cgroup: ID notification call back
, Paul Menage
, (Tue Aug 24, 6:52 pm)
Re: [PATCH 1/5] cgroup: ID notification call back
, KAMEZAWA Hiroyuki
, (Tue Aug 24, 7:29 pm)
Navigation
Mailing list archives
Recent posts
Popular discussions
linux-kernel
:
Ingo Molnar
Re: [PATCH 0/3] v2 Make hierarchical RCU less IPI-happy and add more tracing
Jeremy Fitzhardinge
Re: Linux 2.6.28.10 and Linux 2.6.29.6 XEN Guest Support Broken x86_64 in BUILD
Nick Piggin
Re: [patch] CFS (Completely Fair Scheduler), v2
Gary Hade
Re: [PATCH 0/5][RFC] Physical PCI slot objects
Dave Johnson
Re: expected behavior of PF_PACKET on NETIF_F_HW_VLAN_RX device?
linux-netdev
:
Arnd Bergmann
Re: 64-bit net_device_stats
Stephens, Allan
RE: [PATCH]: tipc: Fix oops on send prior to entering networked mode
frank.blaschka
[patch 3/5] [PATCH] qeth: support z/VM VSWITCH Port Isolation
Wu Fengguang
Re: [PATCH] dm9601: handle corrupt mac address
David Miller
Re: [PATCH net-2.6.24] Fix refcounting problem with netif_rx_reschedule()
git
:
Junio C Hamano
Re: [PATCH] [RFC] add Message-ID field to log on git-am operation
Junio C Hamano
Re: Handling large files with GIT
Karl
Re: [ANNOUNCE] pg - A patch porcelain for GIT
Josh Triplett
Re: [RFC][PATCH 00/10] Sparse: Git's "make check" target
Pierre Habouzit
Re: [PATCH] git-daemon: more powerful base-path/user-path settings, using formats.
git-commits-head
:
Linux Kernel Mailing List
MIPS: RBTX4939: Fix IOC pin-enable register updating
Linux Kernel Mailing List
regulator: update email address for Liam Girdwood
Linux Kernel Mailing List
[SCSI] ipr: add message to error table
Linux Kernel Mailing List
powerpc/32: Wire up the trampoline code for kdump
Linux Kernel Mailing List
USB: omap_udc: sync with OMAP tree
openbsd-misc
:
Josh Grosse
Re: error : pkg add phpMyAdmin
Brian Candler
Re: OBSD's perspective on SELinux
Jacob Meuser
Re: /dev/audio: Device busy
David Vasek
Re: Inexpensive, low power, "wall wart" computer
William Boshuck
Re: Richard Stallman...
Colocation donated by:
Syndicate