tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: AMAP_SHARED (was Re: XIP)



On Tue, Nov 02, 2010 at 02:36:30PM +1100, matthew green wrote:
> 
> > - AMAP_SHARED itself is a fine concept; it's used by shared memory.
> > 
> >     sys/kern/sysv_shm.c:
> >         452         error = uvm_map(&vm->vm_map, &attach_va, size, uobj, 0, 
> > 0,
> >         453             UVM_MAPFLAG(prot, prot, UVM_INH_SHARE, 
> > UVM_ADV_RANDOM, flags));
> > 
> >   (Note UVM_INH_SHARE == MAP_INHERIT_SHARE).
> > 
> >   I guess MAP_INHERIT_SHARE was added because adding it was easy
> >   after shared amap was implemented for shared memory?
> 
> MAP_INHERIT_SHARE was originally MAP_INHERIT, and came from
> machvm.

This was a reply to:

        http://mail-index.netbsd.org/tech-kern/2010/10/26/msg009085.html

        > - MAP_INHERIT_SHARE, used to implement minherit().
        >   this is the one that is the most trouble, since it's what 
AMAP_SHARED
        >   was invented for.  however, it's also of least importance since

Even if MAP_INHERIT_SHARE preceded SYSV SHM, we need AMAP_SHARED anyway.

(I don't know if Mach had shared memory.)

> 
> > - For highly tuned, XIP'ed systems, programs should be designed to
> >   avoid .data, because they're COW'ed to page cache sooner or later.
> 
> why is this a problem?
> 
> if the data is needed, and it will be written to, then these pages
> will be allocated (COW'd) eventually, and the same space will be used.

Not a problem, as in it works.

As already explained, we allocate PV for XIP segments, only for
vnode-backed AMAP_SHARED == shared .data.  Careful users may design
the whole system to not allocate PV at all, by giving up that
feature.  To help user's design decision, I stated the obvious -
.data is XIP-unfriendly.

> 
> 
> .mrg.


Home | Main Index | Thread Index | Old Index