[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] xl: Need help with overflow and error handling for vif rate support
On Tue, 2012-03-27 at 18:04 +0100, Mathieu Gagnà wrote: > Hi, > > I'm working a patch to add support for vif rate limiting support to > libxl/xl. [1] > > I'm especially working on using uint64_t instead of uint32_t [2] and > adding error handling. [3] > > - How should I check for overflows when multiplying 2 uint64_t together? > - I'm currently using math.h and log. Is it the correct approach? You can check if A*B > UINT64_MAX by first checking if B != 0 && A > UINT64_MAX/B WOULD OVERFLOW Assuming we are talking about rate_interval_usecs and rate_bytes_per_interval then rate_interval_usecs can probably be a 32 bit number, UINT32_MAX usecs is something like 71 minutes, which ought to be plenty. Only rate_bytes_per_interval rally needs to be a 64 bit value. > - How should I handle errors? > - Should I do something similar to libxlu_disk.c? > - Should xlu_vif_parse_rate prints an error and returns an error code? Yes, I think so. Return an appropriate error code for each failure (EINVAL, EOVERFLOW etc) > - If the error is from one of the "helpers", should they print an > error too or should xlu_vif_parse_rate deals with it? Either is fine so long as a message is printed exactly once in the case of an error. If you can give more specific messages in the helpers then it likely makes sense to do it there. > > Any help would be greatly appreciated. > > Regards, > > [1] http://lists.xen.org/archives/html/xen-devel/2012-03/msg01596.html > [2] http://lists.xen.org/archives/html/xen-devel/2012-03/msg01627.html > [3] http://lists.xen.org/archives/html/xen-devel/2012-03/msg01738.html > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |