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

Re: [Xen-devel] Insane contiguous physical memory requirements in blkbk/blktap



Hi,

On Thu, 2006-10-05 at 16:47 +0100, Keir Fraser wrote:

> > I've been looking at the exact same question, but don't know the
> > answer.  If you come up with a patch before I do, I'd be thrilled to
> > test it.
> 
> This is easily fixable. Anywhere we use the virtual address to compute an
> offset into a state structure, we can instead store the appropriate 'slot
> index' in a spare field in the appropriate 'struct page'.

As far as I can tell, nothing uses the VA in any way --- it can't,
because the start of the order-10 kmalloc area is not actually used
anywhere after the initial mmap setup.  After making the variable
mmap_vstart local to the __init function, everything still compiles, so
I don't think there's anything lurking in header files that implicitly
relies on it.

There is a

                ret = HYPERVISOR_memory_op(XENMEM_decrease_reservation,
                                           &reservation);

call on the entire range, though, if (xen_feature
(XENFEAT_auto_translated_physmap)) is true.  Those reservations are one-
off requests, aren't they?  I don't think we're adding overhead by doing
this for 1024 separate pages rather than a single order-10 chunk, but
I'd appreciate a second opinion there.

> That really only leaves the question of how much of this can be put in a
> helper function (probably in balloon driver again) for use of all our
> drivers.

Right --- a helper which returns a vm-detached page vector rather than a
vaddr is exactly what I had in mind.

--Stephen



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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