|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 3 of 4] xl: add support for vif rate limiting
On Tue, 2012-03-20 at 11:16 +0000, Stefano Stabellini wrote:
> On Tue, 20 Mar 2012, Mathieu Gagnà wrote:
[...]
> > +void xlu_vif_parse_rate(const char *rate, uint32_t *bytes_per_interval,
> > + uint32_t *interval_usecs)
> > +{
> > + uint32_t bytes_per_sec = 0;
> > + uint64_t tmp_bytes_per_interval = 0;
> > + char *tmprate, *ratetok;
> > +
> > + tmprate = strdup(rate);
> > +
> > + ratetok = strtok(tmprate, "@");
> > + vif_parse_rate_bytes_per_sec(ratetok, &bytes_per_sec);
> > +
> > + ratetok = strtok(NULL, "@");
> > + if (ratetok != NULL)
> > + vif_parse_rate_interval_usecs(ratetok, interval_usecs);
> > + else
> > + *interval_usecs = 50000; /* Default to 50ms */
> > +
> > + free(tmprate);
> > +
> > + tmp_bytes_per_interval =
> > + (((uint64_t) bytes_per_sec * (uint64_t) *interval_usecs) /
> > 1000000L);
> > +
> > + /* overflow checking: default to unlimited rate */
> > + if ((tmp_bytes_per_interval == 0) || (tmp_bytes_per_interval >
> > UINT32_MAX)) {
> > + tmp_bytes_per_interval = UINT32_MAX;
> > + *interval_usecs = 0;
> > + }
> > + *bytes_per_interval = tmp_bytes_per_interval;
> > +}
>
> wouldn't it make sense to just use a uint64_t for
> rate_bytes_per_interval and rate_interval_usecs?
It needn't be a barrier to this but FWIW Linux parses these into
"unsigned long", but it does at least appear to do proper overflow
checking.
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |