Re: committed memory, mmaps and shms

From: Marcos Dione
Date: Wed Jun 03 2015 - 12:34:49 EST


On Fri, Mar 13, 2015 at 11:58:51AM -0300, Marcos Dione wrote:
> On Thu, Mar 12, 2015 at 01:56:00PM -0300, Marcos Dione wrote:
> > On Thu, Mar 12, 2015 at 11:35:13AM -0400, Michal Hocko wrote:
> > > On Wed 11-03-15 19:10:44, Marcos Dione wrote:
> > > I also read Documentation/vm/overcommit-accounting
> >
> > What would help you to understand it better?
>
> I think it's mostly a language barrier. The doc talks about of how
> the kernel handles the memory, but leaves userland people 'watching from
> outside the fence'. From the sysadmin and non-kernel developer (that not
> necesarily knows all the kinds of things that can be done with
> malloc/mmap/shem/&c) point of view, this is what I think the doc refers
> to:
>
> > How It Works
> > ------------
> >
> > The overcommit is based on the following rules
> >
> > For a file backed map
>
> mmaps. are there more?

answering myself: yes, code maps behave like this.

> > SHARED or READ-only - 0 cost (the file is the map not swap)
> > PRIVATE WRITABLE - size of mapping per instance

code is not writable, so only private writable mmaps are left. I
wonder why shared writable are accounted.

> > For an anonymous
>
> malloc'ed memory
>
> > or /dev/zero map
>
> hmmm, (read only?) mmap'ing on top of /dev/zero?
>
> > SHARED - size of mapping
>
> a shared anonymous memory is a shm?
>
> > PRIVATE READ-only - 0 cost (but of little use)
> > PRIVATE WRITABLE - size of mapping per instance
>
> I can't translate these two terms, unless the latter is the one
> refering specifically to mmalloc's. I wonder how could create several
> intances of the 'same' mapping in that case. forks?
>
> > Additional accounting
> > Pages made writable copies by mmap
>
> Hmmm, copy-on-write pages for when you write in a shared mmap? I'm
> wild guessing here, even when what I say doesn't make any sense.
>
> > shmfs memory drawn from the same pool
>
> Beats me.
[...]
> Now it seems too simple! What I'm missing? :) Cheers,

untrue, I'm still in the dark on what those mean. maybe someone can
translate those terms to userland terms? malloc, shm, mmap, code maps?
probably I'm missing some.

cheers,

-- Marcos.

--
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/