2009/8/24 Krzysztof Taraszka <krzysztof.taraszka@xxxxxxxxxxxxxx> > 2009/8/24 Daniel Lezcano <daniel.lezcano@xxxxxxx> > >> Krzysztof Taraszka wrote: >> >>> 2009/8/24 Daniel Lezcano <daniel.lezcano@xxxxxxx> >>> >>> >>>> [ snip ] >>>> >>>> i think that /proc/meminfo should be mounted after /proc . why? i >>>>> think >>>>> >>>>>> that, because mounting /proc may override /proc/meminfo >>>>>>> Am I right? :) >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> Ha ! haha ! arrgh ! no way ! You are right :/ >>>>>> >>>>>> >>>>>> >>>>>> Hehe ;) >>>>> >>>>> >>>>> >>>>> In the case of application container, lxc mounts /proc but in the case >>>>>> of >>>>>> system container it is the system who do that so after the >>>>>> /proc/meminfo >>>>>> has >>>>>> been mounted. >>>>>> >>>>>> Maybe we can look at modifying fs/proc/meminfo.c instead. Let me do a >>>>>> small >>>>>> patch for the kernel... >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> Okey. I am waiting for your patch :) >>>>> >>>>> Quick and dirty patch but at least working. It is no synced on the >>>> latest >>>> kernel version. >>>> I do not really like to touch fs/proc/meminfo.c but it's an example >>>> here. >>>> >>>> >>> >>> Hi Daniel, >>> >>> I tried to compile my kernel tree (2.6.30.5) with your patch using >>> gcc-4.4, >>> gcc-4.3 and gcc-4.2 and i got this error on every gcc when linking >>> kernel: >>> >>> mm/built-in.o: In function `mem_cgroup_info': >>> (.text+0x27651): undefined reference to `__udivdi3' >>> mm/built-in.o: In function `mem_cgroup_info': >>> (.text+0x27678): undefined reference to `__udivdi3' >>> mm/built-in.o: In function `mem_cgroup_info': >>> (.text+0x276b0): undefined reference to `__udivdi3' >>> mm/built-in.o: In function `mem_cgroup_info': >>> (.text+0x276dd): undefined reference to `__udivdi3' >>> make: *** [.tmp_vmlinux1] Error 1 >>> >>> this can be gcc based error. What kernel and gcc did you use for compile >>> your kernel? >>> >> >> I used a 2.6.30 kernel and >> gcc (GCC) 4.3.0 20080428 (Red Hat 4.3.0-8) >> Compiled on a x86_64 host. >> >> Do you have any warning at the compile time ? >> >> > No, did not see any warnings when memcontrol.c or fs/meminfo.c was > compiled. > Anyway, I will try to build in on the stable (lenny) version of debian > (right now I am working on unstable debian tree). > That might be gcc from unstable problem. > > I will let you know what exactly problem is. > > ok Daniel, i found a problem. I am runnning my debian box under vmware 32bit box so your patch can not be compiled propertly on the 32bit system, so I decided to make a little change in your patch. I used shift operation instead of div. in the asm/div64.h is macro do_div() but using shift instead of div is easier that implementing do_div macro, so here is a small patch: --- memcontrol.c.orig 2009-08-24 21:19:36.000000000 +0200 +++ memcontrol.c 2009-08-24 21:20:37.000000000 +0200 @@ -1834,14 +1834,13 @@ si_swapinfo(info); if (limit != LLONG_MAX) { - info->totalram = limit / info->mem_unit; - info->freeram = (limit - mystat.stat[MCS_RSS]) / info->mem_unit; + info->totalram = limit >> info->mem_unit; + info->freeram = (limit - mystat.stat[MCS_RSS]) >> info->mem_unit; } if (memsw_limit != LLONG_MAX) { - info->totalswap = memsw_limit / info->mem_unit; - info->freeswap = (memsw_limit - swap_in_u) / info->mem_unit; - + info->totalswap = memsw_limit >> info->mem_unit; + info->freeswap = (memsw_limit - swap_in_u) >> info->mem_unit; } return 0; I hope that simple change won't to break on your 64bit :) -- Krzysztof Taraszka dzimi@xxxxxxxxxxxxx _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/containers