tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
re: AMAP_SHARED (was Re: XIP)
> > > > > - 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.
> >
> > but why is it unfriendly? i don't see why. there's going to
> > be the same number of pages allocated for writeable data in
> > both cases, so the same amount of resources will be consumed.
>
> What do you mean by "both cases" here?
i mean moving stuff from .data to elsewhere, compared to the
normal method.
> If a small program has both .data and .bss, and if .data is small,
> I'd use .rodata and copy it to .bss explicitly, so that resulting
> process allocates only .bss anon instead .data + .bss.
why is this useful? what's the saving? maybe one page if
roundup(data + bss) is smaller than roundup(data) +
roundup(bss).
my point is that if a program needs data, whether it is from
the .data or .bss, the same amount of resources will be
consumed when pages are written to (or not.) (possibly there
is a one-page saving...)
.mrg.
Home |
Main Index |
Thread Index |
Old Index