On Tue, Dec 10, 2019 at 03:27:06PM +0800, Wang Huaqiang wrote: > This patch introduced a bug and broke the 'resctrl' feature. > > It introduced a 'divide by zero' error if you defined any 'resctrl' > > allocation group through <cputune/cachetune/cache>. > > > Reason is 'caps->resctrl' is fully initialized through two steps, > 'virResctrlInfoNew' > > invokes 'virResctrlGetInfo' completes the first step, later, > 'virResctrlInfoGetCache' > > accomplishes the filling of > 'caps->resctrl->levels->types->control.granularity'. Urgh, that is really horribly misleading API. An object getter method should not be making changes to the object. virResctrlInfoGetCache needs splitting into two methods - one setter which updates the control granularity, and then make this getter into something with no side-effects. > The simplest way to fix the bug is drawback this patch, but still have the > undesirable overhead. I've posted the simple revert for now, since refactoring the code is a bigger job. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list