|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 2/3] xen: remove tmem from hypervisor
On Wed, Nov 28, 2018 at 07:43:25AM -0700, Jan Beulich wrote:
> >>> On 28.11.18 at 14:58, <wei.liu2@xxxxxxxxxx> wrote:
> > @@ -250,7 +249,7 @@ static void populate_physmap(struct memop_args *a)
> >
> > if ( unlikely(!page) )
> > {
> > - if ( !tmem_enabled() || a->extent_order )
> > + if ( a->extent_order )
> > gdprintk(XENLOG_INFO,
> > "Could not allocate order=%u extent:
> > id=%d memflags=%#x (%u of %u)\n",
> > a->extent_order, d->domain_id,
> > a->memflags,
>
> From an abstract pov without tmem tmem_enabled() should return constant
> "false". Which seems to mean that the if() should go away rather than its
> condition getting changed.
Ack.
>
> > @@ -949,22 +935,6 @@ static struct page_info *alloc_heap_pages(
> > return NULL;
> > }
> >
> > - /*
> > - * TMEM: When available memory is scarce due to tmem absorbing it,
> > allow
> > - * only mid-size allocations to avoid worst of fragmentation issues.
> > - * Others try tmem pools then fail. This is a workaround until all
> > - * post-dom0-creation-multi-page allocations can be eliminated.
> > - */
> > - if ( ((order == 0) || (order >= 9)) &&
> > - (total_avail_pages <= midsize_alloc_zone_pages) &&
> > - tmem_freeable_pages() )
> > - {
> > - /* Try to free memory from tmem. */
> > - pg = tmem_relinquish_pages(order, memflags);
> > - spin_unlock(&heap_lock);
> > - return pg;
> > - }
> > -
> > pg = get_free_buddy(zone_lo, zone_hi, order, memflags, d);
> > /* Try getting a dirty buddy if we couldn't get a clean one. */
> > if ( !pg && !(memflags & MEMF_no_scrub) )
> > @@ -1444,10 +1414,6 @@ static void free_heap_pages(
> > else
> > pg->u.free.first_dirty = INVALID_DIRTY_IDX;
> >
> > - if ( tmem_enabled() )
> > - midsize_alloc_zone_pages = max(
> > - midsize_alloc_zone_pages, total_avail_pages /
> > MIDSIZE_ALLOC_FRAC);
>
> Seeing these two hunks I think midsize_alloc_zone_pages and
> MIDSIZE_ALLOC_FRAC want to go away altogether.
Ack.
>
> > --- a/xen/include/xen/mm.h
> > +++ b/xen/include/xen/mm.h
> > @@ -248,8 +248,10 @@ struct npfec {
> > #define MEMF_no_refcount (1U<<_MEMF_no_refcount)
> > #define _MEMF_populate_on_demand 1
> > #define MEMF_populate_on_demand (1U<<_MEMF_populate_on_demand)
> > +#if 0
> > #define _MEMF_tmem 2
> > #define MEMF_tmem (1U<<_MEMF_tmem)
> > +#endif
>
> Why "#if 0" rather than removing the two lines?
I wanted to keep it around so that later when someone reads the code
they won't be asking "why is 2 not used".
But yes I'm fine with just deleting these two lines.
>
> With these suitably taken care of feel free to add
> Acked-by: Jan Beulich <jbeulich@xxxxxxxx>
Thanks.
>
> Jan
>
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |