All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Vrabel <david.vrabel@citrix.com>
To: Wei Liu <wei.liu2@citrix.com>
Cc: <xen-devel@lists.xen.org>, <netdev@vger.kernel.org>,
	<ian.campbell@citrix.com>, <konrad.wilk@oracle.com>,
	<annie.li@oracle.com>,
	Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
	Roger Pau Monne <roger.pau@citrix.com>
Subject: Re: [Xen-devel] [PATCH 4/8] xenbus_client: Extend interface to support multi-page ring
Date: Tue, 5 Mar 2013 10:25:07 +0000	[thread overview]
Message-ID: <5135C803.7030607@citrix.com> (raw)
In-Reply-To: <1360944010-15336-5-git-send-email-wei.liu2@citrix.com>

On 15/02/13 16:00, Wei Liu wrote:
> Also bundle fixes for xen frontends and backends in this patch.

When changing APIs you don't need to call out required changes to
callers as "fixes".

> --- a/drivers/xen/xenbus/xenbus_client.c
> +++ b/drivers/xen/xenbus/xenbus_client.c
> @@ -357,17 +359,39 @@ static void xenbus_switch_fatal(struct xenbus_device *dev, int depth, int err,
>  /**
>   * xenbus_grant_ring
>   * @dev: xenbus device
> - * @ring_mfn: mfn of ring to grant
> -
> - * Grant access to the given @ring_mfn to the peer of the given device.  Return
> - * 0 on success, or -errno on error.  On error, the device will switch to
> + * @vaddr: starting virtual address of the ring
> + * @nr_pages: number of pages to be granted
> + * @grefs: grant reference array to be filled in
> + *
> + * Grant access to the given @vaddr to the peer of the given device.
> + * Then fill in @grefs with grant references.  Return 0 on success, or
> + * -errno on error.  On error, the device will switch to
>   * XenbusStateClosing, and the error will be saved in the store.
>   */
> -int xenbus_grant_ring(struct xenbus_device *dev, unsigned long ring_mfn)
> +int xenbus_grant_ring(struct xenbus_device *dev, void *vaddr,
> +		      int nr_pages, int *grefs)

This call previously return the grant ref in an int, but grant refs are
really of (unsigned) type grant_ref_t.  Make grefs an array of
grant_ref_t's.

>  static int xenbus_map_ring_valloc_pv(struct xenbus_device *dev,
> -				     int gnt_ref, void **vaddr)
> +				     int *gnt_ref, int nr_grefs, void **vaddr)
[...]
> +	/* Issue hypercall for individual entry, rollback if error occurs. */
> +	for (i = 0; i < nr_grefs; i++) {
> +		op.flags = GNTMAP_host_map | GNTMAP_contains_pte;
> +		op.ref   = gnt_ref[i];
> +		op.dom   = dev->otherend_id;
> +		op.host_addr = arbitrary_virt_to_machine(pte[i]).maddr;
> +
> +		if (HYPERVISOR_grant_table_op(GNTTABOP_map_grant_ref, &op, 1))
> +			BUG();

I think these hypercalls should be batches into one
GNTTABOP_map_grant_ref call.  I think this will make your 'rollback'
easier as well.

Similarly, for all the other places you have map/unmap in a loop.

> +int xenbus_map_ring(struct xenbus_device *dev, int *gnt_ref, int nr_grefs,
> +		    grant_handle_t *handle, void *vaddr, int *vma_leaked)

grant_ref_t for the array.

> @@ -195,15 +200,17 @@ int xenbus_watch_pathfmt(struct xenbus_device *dev, struct xenbus_watch *watch,
>  			 const char *pathfmt, ...);
>  
>  int xenbus_switch_state(struct xenbus_device *dev, enum xenbus_state new_state);
> -int xenbus_grant_ring(struct xenbus_device *dev, unsigned long ring_mfn);
> +int xenbus_grant_ring(struct xenbus_device *dev, void *vaddr,
> +		      int nr_gages, int *grefs);

nr_pages?

David

  parent reply	other threads:[~2013-03-05 10:25 UTC|newest]

Thread overview: 91+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-15 16:00 [PATCH 0/8] Bugfix and mechanical works for Xen network driver Wei Liu
2013-02-15 16:00 ` [PATCH 1/8] netback: don't bind kthread to cpu Wei Liu
2013-03-04 20:51   ` Konrad Rzeszutek Wilk
2013-03-04 20:51   ` Konrad Rzeszutek Wilk
2013-03-05 13:30     ` Wei Liu
2013-03-05 13:56       ` [Xen-devel] " Konrad Rzeszutek Wilk
2013-03-05 14:04         ` Wei Liu
2013-03-05 14:04         ` Wei Liu
2013-03-05 14:42         ` David Vrabel
2013-03-05 14:42         ` [Xen-devel] " David Vrabel
2013-03-05 15:52           ` Konrad Rzeszutek Wilk
2013-03-05 15:52           ` [Xen-devel] " Konrad Rzeszutek Wilk
2013-03-05 13:56       ` Konrad Rzeszutek Wilk
2013-03-05 13:30     ` Wei Liu
2013-02-15 16:00 ` Wei Liu
2013-02-15 16:00 ` [PATCH 2/8] netback: add module unload function Wei Liu
2013-02-15 16:00 ` Wei Liu
2013-03-04 20:55   ` [Xen-devel] " Konrad Rzeszutek Wilk
2013-03-04 20:58     ` Andrew Cooper
2013-03-04 20:58     ` [Xen-devel] " Andrew Cooper
2013-03-05 13:30     ` Wei Liu
2013-03-05 13:30     ` Wei Liu
2013-03-04 20:55   ` Konrad Rzeszutek Wilk
2013-03-04 21:58   ` Stephen Hemminger
2013-03-04 21:58   ` Stephen Hemminger
2013-03-05 13:30     ` Wei Liu
2013-03-05 13:30     ` Wei Liu
2013-02-15 16:00 ` [PATCH 3/8] netback: get/put module along with vif connect/disconnect Wei Liu
2013-03-04 20:56   ` Konrad Rzeszutek Wilk
2013-03-04 20:56   ` Konrad Rzeszutek Wilk
2013-03-05 10:02   ` [Xen-devel] " David Vrabel
2013-03-05 13:30     ` Wei Liu
2013-03-05 13:30     ` [Xen-devel] " Wei Liu
2013-03-05 14:07       ` David Vrabel
2013-03-05 14:07       ` [Xen-devel] " David Vrabel
2013-03-05 14:44         ` Wei Liu
2013-03-05 14:44         ` [Xen-devel] " Wei Liu
2013-03-05 15:53         ` Konrad Rzeszutek Wilk
2013-03-05 15:53         ` [Xen-devel] " Konrad Rzeszutek Wilk
2013-03-05 10:02   ` David Vrabel
2013-02-15 16:00 ` Wei Liu
2013-02-15 16:00 ` [PATCH 4/8] xenbus_client: Extend interface to support multi-page ring Wei Liu
2013-02-15 16:00 ` Wei Liu
2013-02-15 16:17   ` [Xen-devel] " Jan Beulich
2013-02-15 16:33     ` Wei Liu
2013-02-15 16:59       ` Jan Beulich
2013-02-15 16:59       ` [Xen-devel] " Jan Beulich
2013-02-15 17:01         ` Wei Liu
2013-02-15 17:01         ` [Xen-devel] " Wei Liu
2013-02-15 16:33     ` Wei Liu
2013-02-15 16:17   ` Jan Beulich
2013-03-04 21:12   ` Konrad Rzeszutek Wilk
2013-03-04 21:12   ` Konrad Rzeszutek Wilk
2013-03-05 10:25   ` David Vrabel
2013-03-05 10:25   ` David Vrabel [this message]
2013-02-15 16:00 ` [PATCH 5/8] netback: multi-page ring support Wei Liu
2013-03-04 21:00   ` Konrad Rzeszutek Wilk
2013-03-04 21:00   ` [Xen-devel] " Konrad Rzeszutek Wilk
2013-03-05 10:41   ` David Vrabel
2013-03-05 10:41   ` David Vrabel
2013-02-15 16:00 ` Wei Liu
2013-02-15 16:00 ` [PATCH 6/8] netfront: " Wei Liu
2013-02-15 16:00 ` Wei Liu
2013-02-26  6:52   ` ANNIE LI
2013-02-26 12:35     ` Wei Liu
2013-02-26 12:35     ` Wei Liu
2013-02-27  7:39       ` ANNIE LI
2013-02-27  7:39       ` ANNIE LI
2013-02-27 15:49         ` Wei Liu
2013-02-27 15:49         ` Wei Liu
2013-02-28  5:19           ` ANNIE LI
2013-02-28 11:02             ` Wei Liu
2013-02-28 12:55               ` annie li
2013-02-28 12:55               ` annie li
2013-02-28 11:02             ` Wei Liu
2013-02-28  5:19           ` ANNIE LI
2013-02-26  6:52   ` ANNIE LI
2013-03-04 21:16   ` Konrad Rzeszutek Wilk
2013-03-04 21:16   ` Konrad Rzeszutek Wilk
2013-02-15 16:00 ` [PATCH 7/8] netback: split event channels support Wei Liu
2013-03-04 21:22   ` Konrad Rzeszutek Wilk
2013-03-04 21:22   ` Konrad Rzeszutek Wilk
2013-02-15 16:00 ` Wei Liu
2013-02-15 16:00 ` [PATCH 8/8] netfront: " Wei Liu
2013-02-15 16:00 ` Wei Liu
2013-03-04 21:24   ` Konrad Rzeszutek Wilk
2013-03-04 21:24   ` Konrad Rzeszutek Wilk
2013-02-26  3:07 ` [PATCH 0/8] Bugfix and mechanical works for Xen network driver ANNIE LI
2013-02-26  3:07 ` [Xen-devel] " ANNIE LI
2013-02-26 11:33   ` Wei Liu
2013-02-26 11:33   ` [Xen-devel] " Wei Liu

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=5135C803.7030607@citrix.com \
    --to=david.vrabel@citrix.com \
    --cc=annie.li@oracle.com \
    --cc=ian.campbell@citrix.com \
    --cc=konrad.wilk@oracle.com \
    --cc=netdev@vger.kernel.org \
    --cc=roger.pau@citrix.com \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=wei.liu2@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.