On Thu, Oct 22, 2026 at 02:58:16PM +0200, Markus Armbruster wrote:
> My build of qemu-system-x86_64 has device sgx-epc:
> 
>  --> {"execute": "qom-list-types", "arguments": {"implements": "sgx-epc"}}
>  <-- {"return": [{"name": "sgx-epc", "parent": "device"}]}
> 
> The device as a link property to a memory-backend-epc:
> 
>  --> {"execute": "qom-list-properties", "arguments": {"typename": "sgx-epc"}}
>  <-- {"return": [...
>                  {"name": "memdev", "type": "link<memory-backend-epc>"},
>                  ...]}
> 
> However, type memory-backend-epc does not exist:
> 
>  --> {"execute": "qom-list-types", "arguments": {"implements": 
> "memory-backend"}}
>  <-- {"return": [{"name": "memory-backend-ram", "parent": "memory-backend"}, 
> {"name": "memory-backend-file", "parent": "memory-backend"}, {"name": 
> "memory-backend-memfd", "parent": "memory-backend"}, {"name": 
> "memory-backend-shm", "parent": "memory-backend"}]}

There is some rather dubious code that conditionally registers
the type

static void register_types(void)
{
    int fd = qemu_open_old("/dev/sgx_vepc", O_RDWR);
    if (fd >= 0) {
        close(fd);

        type_register_static(&sgx_epc_backed_info);
    }
}


Normal practice is for types to be unconditionally registered.  Do we
have any examples outside of this SGX case where we conditionally
register types ?   Should we change this to follow normal practice ?

With regards,
Daniel
-- 
|: https://berrange.com       ~~        https://hachyderm.io/@berrange :|
|: https://libvirt.org          ~~          https://entangle-photo.org :|
|: https://pixelfed.art/berrange   ~~    https://fstop138.berrange.com :|


Reply via email to