From: annie li <annie.li@oracle.com>
To: David Vrabel <david.vrabel@citrix.com>
Cc: Ma JieYue <jieyue.majy@aliyun-inc.com>, xen-devel@lists.xen.org
Subject: Re: [PATCH] fix netfront alloc_page error handling bug, need to raise up rx_refill timer if rx request buffer not big enough for backend
Date: Fri, 15 Nov 2013 11:09:08 +0800 [thread overview]
Message-ID: <52859054.8080109@oracle.com> (raw)
In-Reply-To: <5284B61B.5030604@citrix.com>
On 2013-11-14 19:38, David Vrabel wrote:
> On 14/11/13 02:39, annie li wrote:
>> With this assumption, is it easier to fix this issue by moving mod_timer
>> directly
>> mod_timer(&np->rx_refill_timer,
>> jiffies + (HZ/10));
>> above
>> if (i != 0)
>> goto refill;
>>
>> in xennet_alloc_rx_buffers?
> Yes, always setting the timer if we didn't reach the target is a better
> fix I think.
>
> However, we probably want to reduce the fill target if we are under
> memory pressure.
>
> Something like:
>
> no_skb:
> /* Memory pressure, reduce fill target. */
> if (--np->rx_target < np->rx_target_min)
> np->rx_target = np->rx_target_min;
> mod_timer(...);
> goto refill;
>
> perhaps?
Sounds reasonable.
When less memory is availble, then reduce rx_target to decrease
requirement of memory. And rx_target can be adjusted back after memory
is enough in following code,
if (((req_prod - np->rx.sring->rsp_prod) < (np->rx_target / 4)) &&
((np->rx_target *= 2) > np->rx_max_target))
np->rx_target = np->rx_max_target;
Thanks
Annie
>
> David
prev parent reply other threads:[~2013-11-15 3:09 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-13 16:15 [PATCH] fix netfront alloc_page error handling bug, need to raise up rx_refill timer if rx request buffer not big enough for backend Ma JieYue
2013-11-13 17:27 ` Wei Liu
2013-11-14 2:39 ` annie li
2013-11-14 11:38 ` David Vrabel
2013-11-15 3:09 ` annie li [this message]
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=52859054.8080109@oracle.com \
--to=annie.li@oracle.com \
--cc=david.vrabel@citrix.com \
--cc=jieyue.majy@aliyun-inc.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.