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