On 12/13/2013 12:24 AM, Vladimir Davydov wrote:
> On 12/12/2013 01:50 PM, Vladimir Davydov wrote:
>> +int memcg_list_lru_init(struct list_lru *lru)
>> +{
>> +int err = 0;
>> +int i;
>> +struct mem_cgroup *memcg;
>> +
>> +lru->memcg =
On 12/13/2013 12:24 AM, Vladimir Davydov wrote:
On 12/12/2013 01:50 PM, Vladimir Davydov wrote:
+int memcg_list_lru_init(struct list_lru *lru)
+{
+int err = 0;
+int i;
+struct mem_cgroup *memcg;
+
+lru-memcg = NULL;
+lru-memcg_old = NULL;
+
+
> OK, as far as I can tell, this is introducing a per-node, per-memcg
> LRU lists. Is that correct?
>
> If so, then that is not what Glauber and I originally intended for
> memcg LRUs. per-node LRUs are expensive in terms of memory and cross
> multiplying them by the number of memcgs in a system
On 12/12/2013 01:50 PM, Vladimir Davydov wrote:
> +int memcg_list_lru_init(struct list_lru *lru)
> +{
> + int err = 0;
> + int i;
> + struct mem_cgroup *memcg;
> +
> + lru->memcg = NULL;
> + lru->memcg_old = NULL;
> +
> + mutex_lock(_create_mutex);
> +
On 12/12/2013 05:40 AM, Dave Chinner wrote:
+int list_lru_grow_memcg(struct list_lru *lru, size_t new_array_size)
+{
+ int i;
+ struct list_lru_one **memcg_lrus;
+
+ memcg_lrus = kcalloc(new_array_size, sizeof(*memcg_lrus), GFP_KERNEL);
+ if (!memcg_lrus)
On 12/12/2013 05:40 AM, Dave Chinner wrote:
+int list_lru_grow_memcg(struct list_lru *lru, size_t new_array_size)
+{
+ int i;
+ struct list_lru_one **memcg_lrus;
+
+ memcg_lrus = kcalloc(new_array_size, sizeof(*memcg_lrus), GFP_KERNEL);
+ if (!memcg_lrus)
+ return -ENOMEM;
+
On 12/12/2013 01:50 PM, Vladimir Davydov wrote:
+int memcg_list_lru_init(struct list_lru *lru)
+{
+ int err = 0;
+ int i;
+ struct mem_cgroup *memcg;
+
+ lru-memcg = NULL;
+ lru-memcg_old = NULL;
+
+ mutex_lock(memcg_create_mutex);
+ if (!memcg_kmem_enabled())
+ goto
OK, as far as I can tell, this is introducing a per-node, per-memcg
LRU lists. Is that correct?
If so, then that is not what Glauber and I originally intended for
memcg LRUs. per-node LRUs are expensive in terms of memory and cross
multiplying them by the number of memcgs in a system was not
On Tue, Dec 10, 2013 at 02:05:47PM +0400, Vladimir Davydov wrote:
> Hi, David
>
> First of all, let me thank you for such a thorough review. It is really
> helpful. As usual, I can't help agreeing with most of your comments, but
> there are a couple of things I'd like to clarify. Please, see
On Tue, Dec 10, 2013 at 02:05:47PM +0400, Vladimir Davydov wrote:
Hi, David
First of all, let me thank you for such a thorough review. It is really
helpful. As usual, I can't help agreeing with most of your comments, but
there are a couple of things I'd like to clarify. Please, see comments
Hi, David
First of all, let me thank you for such a thorough review. It is really
helpful. As usual, I can't help agreeing with most of your comments, but
there are a couple of things I'd like to clarify. Please, see comments
inline.
On 12/10/2013 09:00 AM, Dave Chinner wrote:
> On Mon, Dec 09,
Hi, David
First of all, let me thank you for such a thorough review. It is really
helpful. As usual, I can't help agreeing with most of your comments, but
there are a couple of things I'd like to clarify. Please, see comments
inline.
On 12/10/2013 09:00 AM, Dave Chinner wrote:
On Mon, Dec 09,
On Mon, Dec 09, 2013 at 12:05:52PM +0400, Vladimir Davydov wrote:
> There are several FS shrinkers, including super_block::s_shrink, that
> keep reclaimable objects in the list_lru structure. That said, to turn
> them to memcg-aware shrinkers, it is enough to make list_lru per-memcg.
>
> This
There are several FS shrinkers, including super_block::s_shrink, that
keep reclaimable objects in the list_lru structure. That said, to turn
them to memcg-aware shrinkers, it is enough to make list_lru per-memcg.
This patch does the trick. It adds an array of LRU lists to the list_lru
structure,
There are several FS shrinkers, including super_block::s_shrink, that
keep reclaimable objects in the list_lru structure. That said, to turn
them to memcg-aware shrinkers, it is enough to make list_lru per-memcg.
This patch does the trick. It adds an array of LRU lists to the list_lru
structure,
On Mon, Dec 09, 2013 at 12:05:52PM +0400, Vladimir Davydov wrote:
There are several FS shrinkers, including super_block::s_shrink, that
keep reclaimable objects in the list_lru structure. That said, to turn
them to memcg-aware shrinkers, it is enough to make list_lru per-memcg.
This patch
16 matches
Mail list logo