From: ANNIE LI <annie.li@oracle.com>
To: Ian Campbell <Ian.Campbell@citrix.com>
Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"konrad.wilk@oracle.com" <konrad.wilk@oracle.com>
Subject: Re: [PATCH 2/4] xen/netback: Split one page pool into two(tx/rx) page pool.
Date: Fri, 16 Nov 2012 11:10:01 +0800 [thread overview]
Message-ID: <50A5AE89.3090500@oracle.com> (raw)
In-Reply-To: <1352970913.3499.47.camel@zakaz.uk.xensource.com>
On 2012-11-15 17:15, Ian Campbell wrote:
> On Thu, 2012-11-15 at 07:04 +0000, Annie Li wrote:
>> For tx path, this implementation simplifies the work of searching out
>> grant page from page pool based on grant reference.
> It's still a linear search though, and it doesn't look much simpler to
> me:
> for (i = 0; i< count; i++) {
> if (tx_pool)
> vif = netbk->gnttab_tx_vif[i];
> else
> vif = netbk->gnttab_rx_vif[i];
>
> pers_entry = vif->persistent_gnt;
> gnt_count =&vif->persistent_gntcnt;
> gnt_total = MAXIMUM_OUTSTANDING_BLOCK_REQS;
> becomes:
> for (i = 0; i< count; i++) {
> if (tx_pool) {
> vif = netbk->gnttab_tx_vif[i];
> gnt_count =&vif->persistent_tx_gntcnt;
> gnt_total = XEN_NETIF_TX_RING_SIZE;
> pers_entry = vif->persistent_tx_gnt;
> } else {
> vif = netbk->gnttab_rx_vif[i];
> gnt_count =&vif->persistent_rx_gntcnt;
> gnt_total = 2*XEN_NETIF_RX_RING_SIZE;
> pers_entry = vif->persistent_rx_gnt;
> }
Yes, the code is not simpler. If we make netback per-VIF based, then
these code will disappear.
The simplifying here means for tx path, the max search index is
XEN_NETIF_TX_RING_SIZE(256 here), and this change can save some time
when searching out grant page for specific grant reference.
>
>> @@ -111,8 +109,16 @@ struct xenvif {
>>
>> wait_queue_head_t waiting_to_free;
>>
>> - struct persistent_entry *persistent_gnt[MAXIMUM_OUTSTANDING_BLOCK_REQS];
>> - unsigned int persistent_gntcnt;
>> + struct persistent_entry *persistent_tx_gnt[XEN_NETIF_TX_RING_SIZE];
>> +
>> + /*
>> + * 2*XEN_NETIF_RX_RING_SIZE is for the case of each head/fragment page
> Shouldn't that been incorporated into MAXIMUM_OUTSTANDING_BLOCK_REQS
> (sic) too?
Yes, the total value is same as MAXIMUM_OUTSTANDING_BLOCK_REQS. But here
2*XEN_NETIF_RX_RING_SIZE means it is only used by rx path, and it is used just like other elements in netback structure, such as grant_copy_op, meta, etc.
>> + * using 2 copy operations.
>> + */
>> + struct persistent_entry *persistent_rx_gnt[2*XEN_NETIF_RX_RING_SIZE];
> What is the per-vif memory overhead after this change?
Per-vif memory overhead is following,
for tx path, it is about XEN_NETIF_RX_RING_SIZE*PAGE_SIZE (256
PAGE_SIZE here)
for rx path, it is about 2*XEN_NETIF_RX_RING_SIZE*PAGE_SIZE (512
PAGE_SIZE here)
I can add some comment here.
Thanks
Annie
>
> Ian.
>
next prev parent reply other threads:[~2012-11-16 3:10 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-15 7:03 [PATCH 0/4] Implement persistent grant in xen-netfront/netback Annie Li
2012-11-15 7:04 ` [PATCH 1/4] xen/netback: implements persistent grant with one page pool Annie Li
2012-11-15 9:10 ` Ian Campbell
2012-11-16 2:18 ` [Xen-devel] " ANNIE LI
2012-11-16 9:27 ` Ian Campbell
2012-11-16 9:55 ` ANNIE LI
2012-11-15 9:57 ` Roger Pau Monné
2012-11-16 2:49 ` ANNIE LI
2012-11-16 7:57 ` ANNIE LI
2012-11-16 9:32 ` Ian Campbell
2012-11-16 11:34 ` ANNIE LI
2012-11-15 7:04 ` [PATCH 2/4] xen/netback: Split one page pool into two(tx/rx) " Annie Li
2012-11-15 9:15 ` Ian Campbell
2012-11-16 3:10 ` ANNIE LI [this message]
2012-11-15 7:05 ` [PATCH 3/4] Xen/netfront: Implement persistent grant in netfront Annie Li
2012-11-15 10:52 ` [Xen-devel] " Roger Pau Monné
2012-11-16 5:22 ` ANNIE LI
2012-11-16 7:58 ` ANNIE LI
2012-11-15 7:05 ` [PATCH 4/4] fix code indent issue in xen-netfront Annie Li
2012-11-15 7:40 ` [PATCH 0/4] Implement persistent grant in xen-netfront/netback Pasi Kärkkäinen
2012-11-15 8:38 ` [Xen-devel] " ANNIE LI
2012-11-15 8:51 ` Ian Campbell
2012-11-15 9:02 ` ANNIE LI
2012-11-15 9:35 ` Wei Liu
2012-11-15 11:12 ` [Xen-devel] " ANNIE LI
2012-11-16 15:34 ` Konrad Rzeszutek Wilk
2012-11-15 10:56 ` Roger Pau Monné
2012-11-15 11:14 ` ANNIE LI
2012-11-15 11:15 ` Ian Campbell
2012-11-15 18:29 ` Konrad Rzeszutek Wilk
2012-11-15 19:11 ` Ian Campbell
2012-11-16 15:23 ` Konrad Rzeszutek Wilk
2012-11-16 15:21 ` Konrad Rzeszutek Wilk
2012-11-15 8:53 ` Ian Campbell
2012-11-15 11:14 ` ANNIE LI
2012-11-15 8:56 ` Ian Campbell
2012-11-15 11:14 ` [Xen-devel] " ANNIE LI
2012-11-16 9:57 ` Ian Campbell
2012-11-16 11:37 ` ANNIE LI
2012-11-16 11:46 ` Ian Campbell
2012-11-17 4:39 ` annie li
2012-11-16 15:18 ` 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=50A5AE89.3090500@oracle.com \
--to=annie.li@oracle.com \
--cc=Ian.Campbell@citrix.com \
--cc=konrad.wilk@oracle.com \
--cc=netdev@vger.kernel.org \
--cc=xen-devel@lists.xensource.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).