David Hildenbrand <da...@redhat.com> writes: > On 13.04.21 06:41, Markus Armbruster wrote: >> David Hildenbrand <da...@redhat.com> writes: >> >>> On 12.03.21 18:35, Paolo Bonzini wrote: >>>> Emulators are currently using OptsVisitor (via user_creatable_add_opts) >>>> to parse the -object command line option. This has one extra feature, >>>> compared to keyval, which is automatic conversion of integers to lists >>>> as well as support for lists as repeated options: >>>> -object >>>> memory-backend-ram,id=pc.ram,size=1048576000,host-nodes=0,policy=bind >>>> So we cannot replace OptsVisitor with keyval right now. Still, this >>>> patch moves the user_creatable_add_opts logic to vl.c since it is >>>> not needed anywhere else, and makes it go through user_creatable_add_qapi. >>>> In order to minimize code changes, the predicate still takes a >>>> string. >>>> This can be changed later to use the ObjectType QAPI enum directly. >>>> >>> >>> Rebasing my "noreserve"[1] series on this, I get weird errors from >>> QEMU when specifying the new "reserve=off" option for a >>> memory-backend-ram: >>> >>> "Invalid parameter 'reserve'" >>> >>> And it looks like this is the case for any new properties. Poking >>> around, I fail to find what's causing this -- or how to unlock new >>> properties. What is the magic toggle to make it work? >>> >>> Thanks! >>> >>> [1] https://lkml.kernel.org/r/20210319101230.21531-1-da...@redhat.com >> Wild guess: you didn't add your new properties in the QAPI schema. >> For a not-so-wild-guess, send us a git-fetch argument for your >> rebased >> series. >> > > Oh, there is qapi/qom.json -- maybe that does the trick. > > (I have mixed feelings about having to specify the same thing twice at > different locations)
With reason. We've talked about generating QOM boilerplate from the QAPI schema, but haven't progressed to actual patches. > I'll have a look if that makes it fly.