BTW, I have forwarded the email to [email protected].
Sorry for the trouble caused if the email should not be sent to "xen-api"
maillist:-)

Best Regards,
Luwei Cheng

On Sat, Mar 12, 2011 at 3:47 PM, Luwei Cheng <[email protected]> wrote:

> Hi,
>
> These days I use netperf to evaluate Xen's network bandwidth control.
> I found that somehow the bandwidth is always inaccurate (slightly less than
> the promised bandwidth)
>
> After reading the source code of Linux-2.6.3** (domain 0), I am a bit
> curious about the following algorithm.
> file: /linux-main-dir/drivers/xen/netback/netback.c
> =============================================================
> static void tx_add_credit(netif_t *netif)
> {
>         unsigned long max_burst, max_credit;
>
>         /*
>          * Allow a burst big enough to transmit a jumbo packet of up to
> 128kB.
>          * Otherwise the interface can seize up due to insufficient credit.
>          */
>         max_burst = RING_GET_REQUEST(&netif->tx, netif->tx.req_cons)->size;
>         max_burst = min(max_burst, 131072UL);
>         max_burst = max(max_burst, netif->credit_bytes);
>
>         /* Take care that adding a new chunk of credit doesn't wrap to
> zero. */
>         max_credit = netif->remaining_credit + netif->credit_bytes;
>         if (max_credit < netif->remaining_credit)
>                 max_credit = ULONG_MAX; /* wrapped: clamp to ULONG_MAX */
>
>         netif->remaining_credit = min(max_credit, max_burst);
> }
> =============================================================
>
>
> Setting: rate=512Kb/s@30ms, Then,
> -----------------------
> "netif->credit_bytes" will be 1,920
> "netif->credit_usecs" will be 30,000
> =============================================================
> Suppose that at some moment:
> -----------------------
> "request size" is 1514
> "netif->remaining_credit" is 406
> -----------------------
> Since there's not enough credits for transmitting, the netif
> will be delayed for 30,000 usecs to refill credits (using timer).
> =============================================================
> Question:
> After the timer wakes up, should the netif get (406+1920) credits, or
> (1920) credits?
> =============================================================
> In my mind, I think it should be fair to let the netif get (406+1920)
> credits.
> However, the above algorithm will eventually give only (1920) credits.
>
> Just wonder whether there's some undocumented consideration to control in
> this way
> (only give 1920 credits)?
>
> Kindly please correct me if my analysis is incorrect.
>
> Thanks for your attention.
>
> Best Regards,
> Luwei Cheng
>
_______________________________________________
xen-api mailing list
[email protected]
http://lists.xensource.com/mailman/listinfo/xen-api

Reply via email to