From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55618) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFRkC-0003fL-T4 for qemu-devel@nongnu.org; Mon, 29 May 2017 16:58:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dFRk9-0007Wp-Ru for qemu-devel@nongnu.org; Mon, 29 May 2017 16:58:28 -0400 Received: from smtp1.ntua.gr ([2001:648:2000:de::183]:49656) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFRk9-0007Qd-Gq for qemu-devel@nongnu.org; Mon, 29 May 2017 16:58:25 -0400 Date: Mon, 29 May 2017 23:57:37 +0300 From: Manos Pitsidianakis Message-ID: <20170529205737.fpbiakja36txmsnm@postretch> References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Disposition: inline In-Reply-To: Subject: Re: [Qemu-devel] Throttling groups vs filter nodes List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alberto Garcia Cc: Stefan Hajnoczi , qemu-devel , Kevin Wolf On Mon, May 29, 2017 at 05:05:17PM +0200, Alberto Garcia wrote: >On Sat 27 May 2017 09:56:03 AM CEST, Stefan Hajnoczi wrote: >> A quirk in the current implementation is that the throttling limits >> for the group are overwritten by each -drive throttling.group=group0. >> Limits for all but the last -drive in a group are ignored. > - bps or iops != 0 -> set the I/O limits of a throttling group. The > selected device is moved to that group if it > wasn't there yet. > > - bps and iops == 0 -> remove a device from a throttling group > without touching that group's I/O limits. These are very unintuitive. However, even without considering backwards compatibility, I think that using -object notation (eg "object-add throttle-group,id=foo,iops=...) is intuitive in the case of groups, but not when you need individual limits for each device as the syntax would be too verbose. Of course the old interface covers that. In any case, is having multiple interfaces a problem or not? And, is using QOM straightforward implementation-wise?