diff for duplicates of <20100301103836.GC2087@linux> diff --git a/a/1.txt b/N1/1.txt index c1189a0..8b9f69a 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -2,125 +2,125 @@ On Mon, Mar 01, 2010 at 10:58:35AM +0200, Kirill A. Shutemov wrote: [snip] > > +static u64 mem_cgroup_dirty_ratio_read(struct cgroup *cgrp, struct cftype *cft) > > +{ -> > + struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp); +> > + struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp); > > + -> > + return get_dirty_param(memcg, MEM_CGROUP_DIRTY_RATIO); +> > + return get_dirty_param(memcg, MEM_CGROUP_DIRTY_RATIO); > > +} > > + > > +static int > > +mem_cgroup_dirty_ratio_write(struct cgroup *cgrp, struct cftype *cft, u64 val) > > +{ -> > + struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp); +> > + struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp); > > + -> > + if ((cgrp->parent == NULL) || (val > 100)) -> > + return -EINVAL; +> > + if ((cgrp->parent == NULL) || (val > 100)) +> > + return -EINVAL; > > + -> > + spin_lock(&memcg->reclaim_param_lock); -> > + memcg->dirty_ratio = val; -> > + memcg->dirty_bytes = 0; -> > + spin_unlock(&memcg->reclaim_param_lock); +> > + spin_lock(&memcg->reclaim_param_lock); +> > + memcg->dirty_ratio = val; +> > + memcg->dirty_bytes = 0; +> > + spin_unlock(&memcg->reclaim_param_lock); > > + -> > + return 0; +> > + return 0; > > +} > > + > > +static u64 mem_cgroup_dirty_bytes_read(struct cgroup *cgrp, struct cftype *cft) > > +{ -> > + struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp); +> > + struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp); > > + -> > + return get_dirty_param(memcg, MEM_CGROUP_DIRTY_BYTES); +> > + return get_dirty_param(memcg, MEM_CGROUP_DIRTY_BYTES); > > +} > > + > > +static int > > +mem_cgroup_dirty_bytes_write(struct cgroup *cgrp, struct cftype *cft, u64 val) > > +{ -> > + struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp); +> > + struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp); > > + -> > + if (cgrp->parent == NULL) -> > + return -EINVAL; +> > + if (cgrp->parent == NULL) +> > + return -EINVAL; > > + -> > + spin_lock(&memcg->reclaim_param_lock); -> > + memcg->dirty_ratio = 0; -> > + memcg->dirty_bytes = val; -> > + spin_unlock(&memcg->reclaim_param_lock); +> > + spin_lock(&memcg->reclaim_param_lock); +> > + memcg->dirty_ratio = 0; +> > + memcg->dirty_bytes = val; +> > + spin_unlock(&memcg->reclaim_param_lock); > > + -> > + return 0; +> > + return 0; > > +} > > + > > +static u64 > > +mem_cgroup_dirty_background_ratio_read(struct cgroup *cgrp, struct cftype *cft) > > +{ -> > + struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp); +> > + struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp); > > + -> > + return get_dirty_param(memcg, MEM_CGROUP_DIRTY_BACKGROUND_RATIO); +> > + return get_dirty_param(memcg, MEM_CGROUP_DIRTY_BACKGROUND_RATIO); > > +} > > + > > +static int mem_cgroup_dirty_background_ratio_write(struct cgroup *cgrp, -> > + struct cftype *cft, u64 val) +> > + struct cftype *cft, u64 val) > > +{ -> > + struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp); +> > + struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp); > > + -> > + if ((cgrp->parent == NULL) || (val > 100)) -> > + return -EINVAL; +> > + if ((cgrp->parent == NULL) || (val > 100)) +> > + return -EINVAL; > > + -> > + spin_lock(&memcg->reclaim_param_lock); -> > + memcg->dirty_background_ratio = val; -> > + memcg->dirty_background_bytes = 0; -> > + spin_unlock(&memcg->reclaim_param_lock); +> > + spin_lock(&memcg->reclaim_param_lock); +> > + memcg->dirty_background_ratio = val; +> > + memcg->dirty_background_bytes = 0; +> > + spin_unlock(&memcg->reclaim_param_lock); > > + -> > + return 0; +> > + return 0; > > +} > > + > > +static u64 > > +mem_cgroup_dirty_background_bytes_read(struct cgroup *cgrp, struct cftype *cft) > > +{ -> > + struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp); +> > + struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp); > > + -> > + return get_dirty_param(memcg, MEM_CGROUP_DIRTY_BACKGROUND_BYTES); +> > + return get_dirty_param(memcg, MEM_CGROUP_DIRTY_BACKGROUND_BYTES); > > +} > > + > > +static int mem_cgroup_dirty_background_bytes_write(struct cgroup *cgrp, -> > + struct cftype *cft, u64 val) +> > + struct cftype *cft, u64 val) > > +{ -> > + struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp); +> > + struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp); > > + -> > + if (cgrp->parent == NULL) -> > + return -EINVAL; +> > + if (cgrp->parent == NULL) +> > + return -EINVAL; > > + -> > + spin_lock(&memcg->reclaim_param_lock); -> > + memcg->dirty_background_ratio = 0; -> > + memcg->dirty_background_bytes = val; -> > + spin_unlock(&memcg->reclaim_param_lock); +> > + spin_lock(&memcg->reclaim_param_lock); +> > + memcg->dirty_background_ratio = 0; +> > + memcg->dirty_background_bytes = val; +> > + spin_unlock(&memcg->reclaim_param_lock); > > + -> > + return 0; +> > + return 0; > > +} > > + -> > static struct cftype mem_cgroup_files[] = { -> > { -> > .name = "usage_in_bytes", +> > static struct cftype mem_cgroup_files[] = { +> > { +> > .name = "usage_in_bytes", > > @@ -3518,6 +3785,26 @@ static struct cftype mem_cgroup_files[] = { -> > .write_u64 = mem_cgroup_swappiness_write, -> > }, -> > { -> > + .name = "dirty_ratio", -> > + .read_u64 = mem_cgroup_dirty_ratio_read, -> > + .write_u64 = mem_cgroup_dirty_ratio_write, -> > + }, -> > + { -> > + .name = "dirty_bytes", -> > + .read_u64 = mem_cgroup_dirty_bytes_read, -> > + .write_u64 = mem_cgroup_dirty_bytes_write, -> > + }, -> > + { -> > + .name = "dirty_background_ratio", -> > + .read_u64 = mem_cgroup_dirty_background_ratio_read, -> > + .write_u64 = mem_cgroup_dirty_background_ratio_write, -> > + }, -> > + { -> > + .name = "dirty_background_bytes", -> > + .read_u64 = mem_cgroup_dirty_background_bytes_read, -> > + .write_u64 = mem_cgroup_dirty_background_bytes_write, -> > + }, -> > + { +> > .write_u64 = mem_cgroup_swappiness_write, +> > }, +> > { +> > + .name = "dirty_ratio", +> > + .read_u64 = mem_cgroup_dirty_ratio_read, +> > + .write_u64 = mem_cgroup_dirty_ratio_write, +> > + }, +> > + { +> > + .name = "dirty_bytes", +> > + .read_u64 = mem_cgroup_dirty_bytes_read, +> > + .write_u64 = mem_cgroup_dirty_bytes_write, +> > + }, +> > + { +> > + .name = "dirty_background_ratio", +> > + .read_u64 = mem_cgroup_dirty_background_ratio_read, +> > + .write_u64 = mem_cgroup_dirty_background_ratio_write, +> > + }, +> > + { +> > + .name = "dirty_background_bytes", +> > + .read_u64 = mem_cgroup_dirty_background_bytes_read, +> > + .write_u64 = mem_cgroup_dirty_background_bytes_write, +> > + }, +> > + { > > mem_cgroup_dirty_background_* functions are too similar to > mem_cgroup_dirty_bytes_*. I think they should be combined @@ -131,3 +131,9 @@ Agreed. Thanks, -Andrea + +-- +To unsubscribe, send a message with 'unsubscribe linux-mm' in +the body to majordomo@kvack.org. For more info on Linux MM, +see: http://www.linux-mm.org/ . +Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> diff --git a/a/content_digest b/N1/content_digest index 1d504d2..139deac 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -20,125 +20,125 @@ "[snip]\n" "> > +static u64 mem_cgroup_dirty_ratio_read(struct cgroup *cgrp, struct cftype *cft)\n" "> > +{\n" - "> > + \302\240 \302\240 \302\240 struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp);\n" + "> > + struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp);\n" "> > +\n" - "> > + \302\240 \302\240 \302\240 return get_dirty_param(memcg, MEM_CGROUP_DIRTY_RATIO);\n" + "> > + return get_dirty_param(memcg, MEM_CGROUP_DIRTY_RATIO);\n" "> > +}\n" "> > +\n" "> > +static int\n" "> > +mem_cgroup_dirty_ratio_write(struct cgroup *cgrp, struct cftype *cft, u64 val)\n" "> > +{\n" - "> > + \302\240 \302\240 \302\240 struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp);\n" + "> > + struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp);\n" "> > +\n" - "> > + \302\240 \302\240 \302\240 if ((cgrp->parent == NULL) || (val > 100))\n" - "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 return -EINVAL;\n" + "> > + if ((cgrp->parent == NULL) || (val > 100))\n" + "> > + return -EINVAL;\n" "> > +\n" - "> > + \302\240 \302\240 \302\240 spin_lock(&memcg->reclaim_param_lock);\n" - "> > + \302\240 \302\240 \302\240 memcg->dirty_ratio = val;\n" - "> > + \302\240 \302\240 \302\240 memcg->dirty_bytes = 0;\n" - "> > + \302\240 \302\240 \302\240 spin_unlock(&memcg->reclaim_param_lock);\n" + "> > + spin_lock(&memcg->reclaim_param_lock);\n" + "> > + memcg->dirty_ratio = val;\n" + "> > + memcg->dirty_bytes = 0;\n" + "> > + spin_unlock(&memcg->reclaim_param_lock);\n" "> > +\n" - "> > + \302\240 \302\240 \302\240 return 0;\n" + "> > + return 0;\n" "> > +}\n" "> > +\n" "> > +static u64 mem_cgroup_dirty_bytes_read(struct cgroup *cgrp, struct cftype *cft)\n" "> > +{\n" - "> > + \302\240 \302\240 \302\240 struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp);\n" + "> > + struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp);\n" "> > +\n" - "> > + \302\240 \302\240 \302\240 return get_dirty_param(memcg, MEM_CGROUP_DIRTY_BYTES);\n" + "> > + return get_dirty_param(memcg, MEM_CGROUP_DIRTY_BYTES);\n" "> > +}\n" "> > +\n" "> > +static int\n" "> > +mem_cgroup_dirty_bytes_write(struct cgroup *cgrp, struct cftype *cft, u64 val)\n" "> > +{\n" - "> > + \302\240 \302\240 \302\240 struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp);\n" + "> > + struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp);\n" "> > +\n" - "> > + \302\240 \302\240 \302\240 if (cgrp->parent == NULL)\n" - "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 return -EINVAL;\n" + "> > + if (cgrp->parent == NULL)\n" + "> > + return -EINVAL;\n" "> > +\n" - "> > + \302\240 \302\240 \302\240 spin_lock(&memcg->reclaim_param_lock);\n" - "> > + \302\240 \302\240 \302\240 memcg->dirty_ratio = 0;\n" - "> > + \302\240 \302\240 \302\240 memcg->dirty_bytes = val;\n" - "> > + \302\240 \302\240 \302\240 spin_unlock(&memcg->reclaim_param_lock);\n" + "> > + spin_lock(&memcg->reclaim_param_lock);\n" + "> > + memcg->dirty_ratio = 0;\n" + "> > + memcg->dirty_bytes = val;\n" + "> > + spin_unlock(&memcg->reclaim_param_lock);\n" "> > +\n" - "> > + \302\240 \302\240 \302\240 return 0;\n" + "> > + return 0;\n" "> > +}\n" "> > +\n" "> > +static u64\n" "> > +mem_cgroup_dirty_background_ratio_read(struct cgroup *cgrp, struct cftype *cft)\n" "> > +{\n" - "> > + \302\240 \302\240 \302\240 struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp);\n" + "> > + struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp);\n" "> > +\n" - "> > + \302\240 \302\240 \302\240 return get_dirty_param(memcg, MEM_CGROUP_DIRTY_BACKGROUND_RATIO);\n" + "> > + return get_dirty_param(memcg, MEM_CGROUP_DIRTY_BACKGROUND_RATIO);\n" "> > +}\n" "> > +\n" "> > +static int mem_cgroup_dirty_background_ratio_write(struct cgroup *cgrp,\n" - "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 struct cftype *cft, u64 val)\n" + "> > + struct cftype *cft, u64 val)\n" "> > +{\n" - "> > + \302\240 \302\240 \302\240 struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp);\n" + "> > + struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp);\n" "> > +\n" - "> > + \302\240 \302\240 \302\240 if ((cgrp->parent == NULL) || (val > 100))\n" - "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 return -EINVAL;\n" + "> > + if ((cgrp->parent == NULL) || (val > 100))\n" + "> > + return -EINVAL;\n" "> > +\n" - "> > + \302\240 \302\240 \302\240 spin_lock(&memcg->reclaim_param_lock);\n" - "> > + \302\240 \302\240 \302\240 memcg->dirty_background_ratio = val;\n" - "> > + \302\240 \302\240 \302\240 memcg->dirty_background_bytes = 0;\n" - "> > + \302\240 \302\240 \302\240 spin_unlock(&memcg->reclaim_param_lock);\n" + "> > + spin_lock(&memcg->reclaim_param_lock);\n" + "> > + memcg->dirty_background_ratio = val;\n" + "> > + memcg->dirty_background_bytes = 0;\n" + "> > + spin_unlock(&memcg->reclaim_param_lock);\n" "> > +\n" - "> > + \302\240 \302\240 \302\240 return 0;\n" + "> > + return 0;\n" "> > +}\n" "> > +\n" "> > +static u64\n" "> > +mem_cgroup_dirty_background_bytes_read(struct cgroup *cgrp, struct cftype *cft)\n" "> > +{\n" - "> > + \302\240 \302\240 \302\240 struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp);\n" + "> > + struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp);\n" "> > +\n" - "> > + \302\240 \302\240 \302\240 return get_dirty_param(memcg, MEM_CGROUP_DIRTY_BACKGROUND_BYTES);\n" + "> > + return get_dirty_param(memcg, MEM_CGROUP_DIRTY_BACKGROUND_BYTES);\n" "> > +}\n" "> > +\n" "> > +static int mem_cgroup_dirty_background_bytes_write(struct cgroup *cgrp,\n" - "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 struct cftype *cft, u64 val)\n" + "> > + struct cftype *cft, u64 val)\n" "> > +{\n" - "> > + \302\240 \302\240 \302\240 struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp);\n" + "> > + struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp);\n" "> > +\n" - "> > + \302\240 \302\240 \302\240 if (cgrp->parent == NULL)\n" - "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 return -EINVAL;\n" + "> > + if (cgrp->parent == NULL)\n" + "> > + return -EINVAL;\n" "> > +\n" - "> > + \302\240 \302\240 \302\240 spin_lock(&memcg->reclaim_param_lock);\n" - "> > + \302\240 \302\240 \302\240 memcg->dirty_background_ratio = 0;\n" - "> > + \302\240 \302\240 \302\240 memcg->dirty_background_bytes = val;\n" - "> > + \302\240 \302\240 \302\240 spin_unlock(&memcg->reclaim_param_lock);\n" + "> > + spin_lock(&memcg->reclaim_param_lock);\n" + "> > + memcg->dirty_background_ratio = 0;\n" + "> > + memcg->dirty_background_bytes = val;\n" + "> > + spin_unlock(&memcg->reclaim_param_lock);\n" "> > +\n" - "> > + \302\240 \302\240 \302\240 return 0;\n" + "> > + return 0;\n" "> > +}\n" "> > +\n" - "> > \302\240static struct cftype mem_cgroup_files[] = {\n" - "> > \302\240 \302\240 \302\240 \302\240{\n" - "> > \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240.name = \"usage_in_bytes\",\n" + "> > static struct cftype mem_cgroup_files[] = {\n" + "> > {\n" + "> > .name = \"usage_in_bytes\",\n" "> > @@ -3518,6 +3785,26 @@ static struct cftype mem_cgroup_files[] = {\n" - "> > \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240.write_u64 = mem_cgroup_swappiness_write,\n" - "> > \302\240 \302\240 \302\240 \302\240},\n" - "> > \302\240 \302\240 \302\240 \302\240{\n" - "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 .name = \"dirty_ratio\",\n" - "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 .read_u64 = mem_cgroup_dirty_ratio_read,\n" - "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 .write_u64 = mem_cgroup_dirty_ratio_write,\n" - "> > + \302\240 \302\240 \302\240 },\n" - "> > + \302\240 \302\240 \302\240 {\n" - "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 .name = \"dirty_bytes\",\n" - "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 .read_u64 = mem_cgroup_dirty_bytes_read,\n" - "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 .write_u64 = mem_cgroup_dirty_bytes_write,\n" - "> > + \302\240 \302\240 \302\240 },\n" - "> > + \302\240 \302\240 \302\240 {\n" - "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 .name = \"dirty_background_ratio\",\n" - "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 .read_u64 = mem_cgroup_dirty_background_ratio_read,\n" - "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 .write_u64 = mem_cgroup_dirty_background_ratio_write,\n" - "> > + \302\240 \302\240 \302\240 },\n" - "> > + \302\240 \302\240 \302\240 {\n" - "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 .name = \"dirty_background_bytes\",\n" - "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 .read_u64 = mem_cgroup_dirty_background_bytes_read,\n" - "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 .write_u64 = mem_cgroup_dirty_background_bytes_write,\n" - "> > + \302\240 \302\240 \302\240 },\n" - "> > + \302\240 \302\240 \302\240 {\n" + "> > .write_u64 = mem_cgroup_swappiness_write,\n" + "> > },\n" + "> > {\n" + "> > + .name = \"dirty_ratio\",\n" + "> > + .read_u64 = mem_cgroup_dirty_ratio_read,\n" + "> > + .write_u64 = mem_cgroup_dirty_ratio_write,\n" + "> > + },\n" + "> > + {\n" + "> > + .name = \"dirty_bytes\",\n" + "> > + .read_u64 = mem_cgroup_dirty_bytes_read,\n" + "> > + .write_u64 = mem_cgroup_dirty_bytes_write,\n" + "> > + },\n" + "> > + {\n" + "> > + .name = \"dirty_background_ratio\",\n" + "> > + .read_u64 = mem_cgroup_dirty_background_ratio_read,\n" + "> > + .write_u64 = mem_cgroup_dirty_background_ratio_write,\n" + "> > + },\n" + "> > + {\n" + "> > + .name = \"dirty_background_bytes\",\n" + "> > + .read_u64 = mem_cgroup_dirty_background_bytes_read,\n" + "> > + .write_u64 = mem_cgroup_dirty_background_bytes_write,\n" + "> > + },\n" + "> > + {\n" "> \n" "> mem_cgroup_dirty_background_* functions are too similar to\n" "> mem_cgroup_dirty_bytes_*. I think they should be combined\n" @@ -148,6 +148,12 @@ "Agreed.\n" "\n" "Thanks,\n" - -Andrea + "-Andrea\n" + "\n" + "--\n" + "To unsubscribe, send a message with 'unsubscribe linux-mm' in\n" + "the body to majordomo@kvack.org. For more info on Linux MM,\n" + "see: http://www.linux-mm.org/ .\n" + "Don't email: <a href=mailto:\"dont@kvack.org\"> email@kvack.org </a>" -9fe9df5ef558fa44c58554ed4813f680148735d93e62c704c834a7f73278f1dd +03547d4f41f464b52cf8019ae6d2b8f71da9e1e847548fa1f44a99a331ed750b
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.