The 20MB isn't, the pages_shared is, i meant pages_sharing .. oops :)

Guillaume

On 05/17/2013 04:35 AM, Ting-Yuan Huang wrote:
>> Paged saved counted in /sys/kernel/mm/ksm/pages_shared
> 
> If the 20MB saved is based on the above which is not a typo, it could 
> actually be even better:
> 
> In Documents/vm/ksm.txt:
> pages_shared     - how many shared pages are being used
> pages_sharing    - how many more sites are sharing them i.e. how much saved
> 
> Since pages_sharing >= pages_shared.
> 
> ----- Original Message -----
> From: "Guillaume Destuynder" <gdestuyn...@mozilla.com>
> To: dev-b2g@lists.mozilla.org
> Sent: Friday, May 17, 2013 7:55:36 AM
> Subject: Re: [b2g] Introduce COW for B2G
> 
> Out of curiousity I tried KSM on the current B2G and I had some memory
> savings (about 20megs saved with a few apps running)
> 
> Your arguments are 100% valid however.
> I've also tested pksm, which seems to do something in between, hooking
> the mmap calls and not scanning memory (http://code.google.com/p/pksm/)
> 
> The KSM scan does not seems to impact perf from a very non-scientific
> measurement (top ;-)
> 
> If you're curious, here's the code:
> 
> https://github.com/gdestuynder/releases-mozilla-central/commit/edd4c7d638639a6200703560f885f5c249aee2fb
> 
> Need KSM enabled in kernel as well, then:
> adb shell echo 1 > /sys/kernel/mm/ksm/run
> Scanning happens every 20ms which is pretty often actually, but can be
> set to anything. Long timers will actually use more CPU as there is more
> to do in one run.
> 
> Paged saved counted in /sys/kernel/mm/ksm/pages_shared
> 
> Finally, I think it would be interesting to have something like memcow
> in mainline, specially so that desktop can use it as well if they go
> multiprocess.
> 
> Guillaume
> 
> On 05/04/2013 01:51 AM, Thinker K.F. Li wrote:
>> KSM is with higher overhead on scanning equivalent pages with MAC.
>> Memcow does not scan since the userspace requests COWs directly.
>>
>> KSM is working in async fashion that can not treat memory burst in a
>> very short time.
>> Memcow applys COW immediately once the userspace makes a request.
>>
>> KSM will scan all dirty pages with madvised periodically.
>> Memcow never do that.
>>
> t
>> Guillaume Destuynder <gdestuyn...@mozilla.com> writes:
>>
>>> Out of curiosity, is the end result very different from KSM? (as in
>>> Kernel SamePage Merging)
>>>
>>> While I'm no expert with this, KSM scans for memory areas selected in
>>> userspace via madvise (madvise(addr, size, MADV_MERGEABLE)) then
>>> deduplicate it in a similar fashion and set the page as COW (it can also
>>> rerun the deduplication several times AFAIR, so if more identical pages
>>> are found overtime [that have been madvised] those would be dedup'd too)
>>>
>>>
>>> Guillaume
>>>
>>> On 05/03/2013 12:57 AM, Thinker K.F. Li wrote:
>>>> In bug 850175 and previous discussion at this list, we learnt memory
>>>> duplications eating out devices memory in some cases.  Ting-Yuan had
>>>> mentioned about KSM that can merge pages with same content to avoid
>>>> duplication.  But, it takes CPU times and is not reliable while it can
>>>> not merge pages in time/immediately during memory peaks.  So, to
>>>> trigger it for OOM can not solve our issues.
>>>>
>>>> After some discussions, Ting-Yuan is trying to implement a COW
>>>> mechanism at userspace for sharing pages of source and target memory
>>>> blocks passed to memcpy.  He expect to use a memdup() function to
>>>> replace all malloc() & memcpy() paired function calls.  So, we do some
>>>> tricky magic to make COW applied.  (I believe he will explain it
>>>> later.)
>>>>
>>>> Last few days, I am working on a kernel module to implement COW; call
>>>> it memcow.  memcow provides a function that user space processes can
>>>> map a block of annonymous memory block to another annonymous memory
>>>> block, so they are sharing the same set of pages but COW; page aligned
>>>> of course.  In another word, you can use memcow to map pages of A
>>>> block to the address range of B block, A and B are allocated through
>>>> malloc(), instead of calling memcpy.  It saves a lot of memory,
>>>> especially for the cases like bug 850175.
>>>>
>>>> So, what do you think?
>>>>
>>>>  - https://bitbucket.org/thinker/memcow
>>>> _______________________________________________
>>
> _______________________________________________
> dev-b2g mailing list
> dev-b2g@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-b2g
> 
_______________________________________________
dev-b2g mailing list
dev-b2g@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-b2g

Reply via email to