Claudio Fontana <cfont...@suse.de> writes: > On 11/26/20 10:48 PM, Eduardo Habkost wrote: >> On Thu, Nov 26, 2020 at 10:06:03PM +0100, Claudio Fontana wrote: >>> On 11/26/20 3:25 PM, Paolo Bonzini wrote: >>>> On 26/11/20 15:13, Claudio Fontana wrote: >>>>> One option I see is simply to document the behavior where >>>>> accel_available() is declared in accel.h (ie do not use in fast >>>>> path), as well as in accel_find() actually, so that both accel_find() >>>>> and accel_available() are avoided in fast path and avoid being called >>>>> frequently at runtime. >>>>> >>>>> Another option could be to remove the allocation completely, and use >>>>> for example accel_find(ACCEL_CLASS_NAME("tcg")), or another option >>>>> again would be to remove the allocation and use either a fixed buffer >>>>> + snprintf, or alloca -like builtin code to use the stack, ... >>>>> >>>>> Not a big deal, but with a general utility and short name like >>>>> accel_available(name) it might be tempting to use this more in the >>>>> future? >>>> >>>> I think it's just that the usecase is not that common. "Is this >>>> accelerator compiled in the binary" is not something you need after >>>> startup (or if querying the monitor). >>>> >>>> Paolo >>>> >>>> >>> >>> A script that repeatedly uses the QMP interface to query for >>> the status could generate fragmentation this way I think. >> >> Is this a problem? Today, execution of a "query-kvm" command >> calls g_malloc() 37 times. >> > > Not ideal in my view, but not the end of the world either.
QMP's appetite for malloc is roughly comparable to a pig's for truffles.