Re: [PATCH 02/09] memcg: make inactive_anon_is_low()



make inactive_anon_is_low for memcgroup.
it improve active_anon vs inactive_anon ratio balancing.

The subject line of this patch seems to be truncated and the changelog
seems bit terse. While the change may be obvious to memcg developers,
it's not for the casual reader.

Yes, I'm wrong.
Will fix.




+static inline int
+mem_cgroup_inactive_anon_is_low(struct mem_cgroup *memcg, struct zone *zone)
+{
+ return 1;
+}
+
+

An extra newline here.

Will fix.


===================================================================
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -156,6 +156,9 @@ struct mem_cgroup {
unsigned long last_oom_jiffies;
int obsolete;
atomic_t refcnt;
+
+ int inactive_ratio;
+

Is there a reason why this is not unsigned long? A comment here
explaining what ->inactive_ratio is used for would be nice.

Ah sorry.
the type of zone->inactive_ratio is unsigned int.

Then, I'd like to change it to unsigned int.
because difference of the global reclaim easily cause silly mistake and bug.


+static void mem_cgroup_set_inactive_ratio(struct mem_cgroup *memcg)
+{
+ unsigned int gb, ratio;
+
+ gb = res_counter_read_u64(&memcg->res, RES_LIMIT) >> 30;
+ ratio = int_sqrt(10 * gb);

You might want to consider adding a comment explaining what the above
calculation is supposed to be doing.

Yes, Of cource.
Thanks.



static DEFINE_MUTEX(set_limit_mutex);

static int mem_cgroup_resize_limit(struct mem_cgroup *memcg,
@@ -1381,6 +1411,11 @@ static int mem_cgroup_resize_limit(struc
GFP_HIGHUSER_MOVABLE, false);
if (!progress) retry_count--;
}
+
+ if (!ret)
+ mem_cgroup_set_inactive_ratio(memcg);
+
+

An extra newline here.

Will fix.


@@ -1423,6 +1458,7 @@ int mem_cgroup_resize_memsw_limit(struct
if (curusage >= oldusage)
retry_count--;
}
+
return ret;
}

There's some diff noise here.

ditto.
thanks.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



Relevant Pages

  • [git patches] net driver fixes
    ... forcedeth: new mcp79 pci ids ... Fix possible lockup on close ... unsigned int pkt_len, status; ...
    (Linux-Kernel)
  • [git patches] libata updates
    ... A CompactFlash identification fix, ... since drivers/ide shares some definitions with libata ... ck804 has borked hardreset too ... u64 block, u32 n_block, unsigned int tf_flags, ...
    (Linux-Kernel)
  • Re: [2.6.27-rc4-git4] compilation warnings
    ... Fresh 2.6.27-rc4-git4 causes these compilation warnings on my amd64 box ... Ick, sorry about that, I said my fix was not even build tested:) ... unsigned int ss_vendor, unsigned int ss_device, ...
    (Linux-Kernel)
  • Re: [PATCH] tcp: splice as many packets as possible at once
    ... adding with this bug fix. ... The trick in socket splicing where we try to convert the skb->data ... The idea is to pass the virt_to_pagereference via the pipe ... unsigned int len, unsigned int offset, ...
    (Linux-Kernel)
  • [PULL] param sysfs oops (simple, leaky) fix, bool arrays fix
    ... param: fix lots of bugs with writing charp params from sysfs, ... an array of bools or unsigned int. ...
    (Linux-Kernel)