All of lore.kernel.org
 help / color / mirror / Atom feed
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: David Vrabel <david.vrabel@citrix.com>, roger.pau@citrix.com
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	linux-kernel@vger.kernel.org, xen-devel@lists.xen.org,
	boris.ostrovsky@oracle.com
Subject: Re: [Xen-devel] [PATCH 3/3] xen-blkfront: revoke foreign access for grants not mapped by the backend
Date: Fri, 9 Aug 2013 11:08:37 -0400	[thread overview]
Message-ID: <20130809150837.GA5637@phenom.dumpdata.com> (raw)
In-Reply-To: <51FA3407.7050106@citrix.com>

On Thu, Aug 01, 2013 at 11:10:15AM +0100, David Vrabel wrote:
> On 31/07/13 16:00, Roger Pau Monne wrote:
> > There's no need to keep the foreign access in a grant if it is not
> > persistently mapped by the backend. This allows us to free grants that
> > are not mapped by the backend, thus preventing blkfront from hoarding
> > all grants.
> > 
> > The main effect of this is that blkfront will only persistently map
> > the same grants as the backend, and it will always try to use grants
> > that are already mapped by the backend. Also the number of persistent
> > grants in blkfront is the same as in blkback (and is controlled by the
> > value in blkback).
> > 
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> Reviewed-by: David Vrabel <david.vrabel@citrix.com>

Roger,

Could you repost patch #2 and #3 (as #1 is in v3.11-rc4) with the
comments and the Ack from Matt and Roger's Review-by tag addressed?

Thanks.
> 
> But please see the documentation updates needed below.
> 
> > --- a/drivers/block/xen-blkfront.c
> > +++ b/drivers/block/xen-blkfront.c
> > @@ -1016,13 +1016,38 @@ static void blkif_completion(struct blk_shadow *s, struct blkfront_info *info,
> >  	}
> >  	/* Add the persistent grant into the list of free grants */
> >  	for (i = 0; i < nseg; i++) {
> > -		list_add(&s->grants_used[i]->node, &info->persistent_gnts);
> > -		info->persistent_gnts_c++;
> > +		if (gnttab_query_foreign_access(s->grants_used[i]->gref)) {
> > +			/*
> > +			 * If the grant is still mapped by the backend (the
> > +			 * backend has chosen to make this grant persistent)
> > +			 * we add it at the head of the list, so it will be
> > +			 * reused first.
> > +			 */
> > +			list_add(&s->grants_used[i]->node, &info->persistent_gnts);
> > +			info->persistent_gnts_c++;
> > +		} else {
> > +			/*
> > +			 * If the grant is not mapped by the backend we end the
> > +			 * foreign access and add it to the tail of the list,
> > +			 * so it will not be picked again unless we run out of
> > +			 * persistent grants.
> > +			 */
> > +			gnttab_end_foreign_access(s->grants_used[i]->gref, 0, 0UL);
> > +			s->grants_used[i]->gref = GRANT_INVALID_REF;
> > +			list_add_tail(&s->grants_used[i]->node, &info->persistent_gnts);
> > +		}
> 
> Because you only reclaim grants when a request is completed, can you add
> text similar to the following to xen/include/public/io/blkif.h (and the
> Linux copy).
> 
> feature-persistent:
> ...
>    When the backend driver needs to unmap a persistent grant it should
>    do so prior to completing a request that used that grant reference.
>    If a persistent grant is unmapped at any other time, the frontend
>    driver may not notice and may be unable to reclaim the grant
>    reference.
> 
> Thanks.
> 
> David
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel

  parent reply	other threads:[~2013-08-09 15:08 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-31 15:00 [PATCH 0/3] xen: fixes for gnt and block Roger Pau Monne
2013-07-31 15:00 ` [PATCH 1/3] xen-gnt: prevent adding duplicate gnt callbacks Roger Pau Monne
2013-07-31 18:33   ` Matt Wilson
2013-07-31 18:33   ` Matt Wilson
2013-08-01 10:12   ` David Vrabel
2013-08-01 10:12   ` David Vrabel
2013-07-31 15:00 ` Roger Pau Monne
2013-07-31 15:00 ` [PATCH 2/3] xen-blkfront: improve aproximation of required grants per request Roger Pau Monne
2013-07-31 15:00 ` Roger Pau Monne
2013-08-01 10:10   ` David Vrabel
2013-08-01 10:10   ` [Xen-devel] " David Vrabel
2013-07-31 15:00 ` [PATCH 3/3] xen-blkfront: revoke foreign access for grants not mapped by the backend Roger Pau Monne
2013-07-31 15:00 ` Roger Pau Monne
2013-08-01  6:35   ` Matt Wilson
2013-08-01  6:35   ` Matt Wilson
2013-08-01 10:10   ` David Vrabel
2013-08-01 10:10   ` [Xen-devel] " David Vrabel
2013-08-09 15:08     ` Konrad Rzeszutek Wilk
2013-08-09 15:08     ` Konrad Rzeszutek Wilk [this message]
2013-08-12 10:58       ` Roger Pau Monné
2013-08-12 10:58       ` [Xen-devel] " Roger Pau Monné
2013-08-12 12:02         ` Konrad Rzeszutek Wilk
2013-08-12 12:02         ` Konrad Rzeszutek Wilk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130809150837.GA5637@phenom.dumpdata.com \
    --to=konrad.wilk@oracle.com \
    --cc=boris.ostrovsky@oracle.com \
    --cc=david.vrabel@citrix.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=roger.pau@citrix.com \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.