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

Re: [Xen-devel] [PATCHv12 5/5] [RFC] gnttab: steal maptrack entries from other VCPUs



>>> On 12.06.15 at 15:33, <david.vrabel@xxxxxxxxxx> wrote:
> +static int steal_maptrack_handle(struct grant_table *t, struct vcpu *v)
> +{
> +    struct domain *d = v->domain;
> +    unsigned int first, i;
> +
> +    /* Find an initial victim. */
> +    first = i = NOW() % d->max_vcpus;
> +
> +    do {
> +        unsigned int handle;
> +
> +        handle = __get_maptrack_handle(t, d->vcpu[i]);
> +        if ( handle >= 0 ) {

Coding style.

> @@ -337,10 +376,14 @@ get_maptrack_handle(
>      /*
>       * max_maptrack_frames is per domain so each VCPU gets a share of
>       * the maximum, but allow at least one frame per VCPU.
> +     *
> +     * If this VCPU has run out of frames, try stealing an entry from
> +     * another VCPU (in case the guest isn't mapping across its VCPUs
> +     * evenly).
>       */
>      if ( v->maptrack_frames
>           && v->maptrack_frames >= max_maptrack_frames / v->domain->max_vcpus 
> )
> -        return -1;
> +        return steal_maptrack_handle(lgt, v);

This "allow at least one frame per vCPU" imo needs to go away
again now.

Looks okay to me apart from that; quite nice an idea to utilize
the fact that ownership of each entry is already being tracked.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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