[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 |