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

Re: [Xen-devel] [RFC PATCH V2 13/14] Infrastructure for manipulating 3-level event channel pages

>>> On 28.01.13 at 18:21, Wei Liu <wei.liu2@xxxxxxxxxx> wrote:
> On Mon, 2013-01-21 at 16:50 +0000, Jan Beulich wrote:
>> >>> On 21.01.13 at 15:30, Wei Liu <wei.liu2@xxxxxxxxxx> wrote:
>> > +    evtchn_pending = xzalloc_array(xen_pfn_t, r.nr_pages);
>> > +    evtchn_mask = xzalloc_array(xen_pfn_t, r.nr_pages);
>> > +    l2sel_mfns = xzalloc_array(xen_pfn_t, r.nr_vcpus);
>> > +    l2sel_offsets = xzalloc_array(xen_pfn_t, r.nr_vcpus);
>> While the former two are okay, the latter two aren't since
>> this can easily amount to an allocation of more than a page.
>> This needs to be broken up.
> Judging from the code, the underlying _xmalloc is able to handle
> situation when allocation is more than a page, isn't it?

Oh, yes, it is capable of doing so, and it is fine to call it that
way at boot time. But any such allocation at run time is prone
to fail just because of memory fragmentation (and they are
particularly bad when tmem is active). We've gone through
the code several times to eliminate such run time allocations,
so I don't see us permitting you to re-introduce such.

And you should, just for future consideration, also take note
of xmalloc() allocations being inefficient for exact page size
(or multiple thereof) allocations.


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.