WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] Re: [GIT] netback: drop some more flipping mode stuff

To: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
Subject: [Xen-devel] Re: [GIT] netback: drop some more flipping mode stuff
From: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
Date: Wed, 30 Jun 2010 12:14:01 +0200
Cc: Paul Durrant <paul.durrant@xxxxxxxxxx>, xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Wed, 30 Jun 2010 03:15:14 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <1277890375.11869.6.camel@xxxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <1277890375.11869.6.camel@xxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.9) Gecko/20100430 Fedora/3.0.4-2.fc12 Lightning/1.0b2pre Thunderbird/3.0.4
On 06/30/2010 11:32 AM, Ian Campbell wrote:
> The following changes since commit 2e8dc6f4bd9a4ee84ce1e09670d1c1240517113f:
>   Ian Campbell (1):
>         xen: netback: drop more relics of flipping mode
>
> are available in the git repository at:
>
>   git://xenbits.xensource.com/people/ianc/linux-2.6.git for-jeremy/netback
>   

Thanks.  I un-pushed the must-copy from netback, since I never intended
to merge it into netback itself, so you may need to resync your branch
accordingly.

    J

> Ian.
>
> Subject: [PATCH] xen: netback: drop more relics of flipping mode
>
> The mmu_update and gnttab_transfer arrays were only used by flipping
> mode. With those gone the multicall now consists of a single call to
> GNTTABOP_copy so drop the multicall as well and just make the one
> hypercall.
>
> Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
> Cc: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
> Cc: Paul Durrant <paul.durrant@xxxxxxxxxx>
> ---
>  drivers/xen/netback/common.h  |    3 --
>  drivers/xen/netback/netback.c |   55 
> +++--------------------------------------
>  2 files changed, 4 insertions(+), 54 deletions(-)
>
> diff --git a/drivers/xen/netback/common.h b/drivers/xen/netback/common.h
> index 0dc1959..857778c 100644
> --- a/drivers/xen/netback/common.h
> +++ b/drivers/xen/netback/common.h
> @@ -306,9 +306,6 @@ struct xen_netbk {
>       u16 pending_ring[MAX_PENDING_REQS];
>       u16 dealloc_ring[MAX_PENDING_REQS];
>  
> -     struct multicall_entry rx_mcl[NET_RX_RING_SIZE+3];
> -     struct mmu_update rx_mmu[NET_RX_RING_SIZE];
> -     struct gnttab_transfer grant_trans_op[NET_RX_RING_SIZE];
>       /*
>        * Each head or fragment can be up to 4096 bytes. Given
>        * MAX_BUFFER_OFFSET of 4096 the worst case is that each
> diff --git a/drivers/xen/netback/netback.c b/drivers/xen/netback/netback.c
> index 9a7ada2..aacb286 100644
> --- a/drivers/xen/netback/netback.c
> +++ b/drivers/xen/netback/netback.c
> @@ -368,15 +368,9 @@ int netif_be_start_xmit(struct sk_buff *skb, struct 
> net_device *dev)
>  }
>  
>  struct netrx_pending_operations {
> -     unsigned trans_prod, trans_cons;
> -     unsigned mmu_prod, mmu_mcl;
> -     unsigned mcl_prod, mcl_cons;
>       unsigned copy_prod, copy_cons;
>       unsigned meta_prod, meta_cons;
> -     struct mmu_update *mmu;
> -     struct gnttab_transfer *trans;
>       struct gnttab_copy *copy;
> -     struct multicall_entry *mcl;
>       struct netbk_rx_meta *meta;
>       int copy_off;
>       grant_ref_t copy_gref;
> @@ -577,7 +571,6 @@ static void net_rx_action(unsigned long data)
>       s8 status;
>       u16 irq, flags;
>       struct xen_netif_rx_response *resp;
> -     struct multicall_entry *mcl;
>       struct sk_buff_head rxq;
>       struct sk_buff *skb;
>       int notify_nr = 0;
> @@ -588,10 +581,7 @@ static void net_rx_action(unsigned long data)
>       struct skb_cb_overlay *sco;
>  
>       struct netrx_pending_operations npo = {
> -             .mmu   = netbk->rx_mmu,
> -             .trans = netbk->grant_trans_op,
>               .copy  = netbk->grant_copy_op,
> -             .mcl   = netbk->rx_mcl,
>               .meta  = netbk->meta,
>       };
>  
> @@ -617,50 +607,13 @@ static void net_rx_action(unsigned long data)
>  
>       BUG_ON(npo.meta_prod > ARRAY_SIZE(netbk->meta));
>  
> -     npo.mmu_mcl = npo.mcl_prod;
> -     if (npo.mcl_prod) {
> -             BUG_ON(xen_feature(XENFEAT_auto_translated_physmap));
> -             BUG_ON(npo.mmu_prod > ARRAY_SIZE(netbk->rx_mmu));
> -             mcl = npo.mcl + npo.mcl_prod++;
> -
> -             BUG_ON(mcl[-1].op != __HYPERVISOR_update_va_mapping);
> -             mcl[-1].args[MULTI_UVMFLAGS_INDEX] = UVMF_TLB_FLUSH|UVMF_ALL;
> -
> -             mcl->op = __HYPERVISOR_mmu_update;
> -             mcl->args[0] = (unsigned long)netbk->rx_mmu;
> -             mcl->args[1] = npo.mmu_prod;
> -             mcl->args[2] = 0;
> -             mcl->args[3] = DOMID_SELF;
> -     }
> -
> -     if (npo.trans_prod) {
> -             BUG_ON(npo.trans_prod > ARRAY_SIZE(netbk->grant_trans_op));
> -             mcl = npo.mcl + npo.mcl_prod++;
> -             mcl->op = __HYPERVISOR_grant_table_op;
> -             mcl->args[0] = GNTTABOP_transfer;
> -             mcl->args[1] = (unsigned long)netbk->grant_trans_op;
> -             mcl->args[2] = npo.trans_prod;
> -     }
> -
> -     if (npo.copy_prod) {
> -             BUG_ON(npo.copy_prod > ARRAY_SIZE(netbk->grant_copy_op));
> -             mcl = npo.mcl + npo.mcl_prod++;
> -             mcl->op = __HYPERVISOR_grant_table_op;
> -             mcl->args[0] = GNTTABOP_copy;
> -             mcl->args[1] = (unsigned long)netbk->grant_copy_op;
> -             mcl->args[2] = npo.copy_prod;
> -     }
> -
> -     /* Nothing to do? */
> -     if (!npo.mcl_prod)
> +     if (!npo.copy_prod)
>               return;
>  
> -     BUG_ON(npo.mcl_prod > ARRAY_SIZE(netbk->rx_mcl));
> -
> -     ret = HYPERVISOR_multicall(npo.mcl, npo.mcl_prod);
> +     BUG_ON(npo.copy_prod > ARRAY_SIZE(netbk->grant_copy_op));
> +     ret = HYPERVISOR_grant_table_op(GNTTABOP_copy, &netbk->grant_copy_op,
> +                                     npo.copy_prod);
>       BUG_ON(ret != 0);
> -     /* The mmu_machphys_update() must not fail. */
> -     BUG_ON(npo.mmu_mcl && npo.mcl[npo.mmu_mcl].result != 0);
>  
>       while ((skb = __skb_dequeue(&rxq)) != NULL) {
>               sco = (struct skb_cb_overlay *)skb->cb;
>   


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

<Prev in Thread] Current Thread [Next in Thread>