From: Juan Quintela <quintela@redhat.com>
To: Thomas Huth <thuth@redhat.com>
Cc: qemu-devel@nongnu.org, lvivier@redhat.com, dgilbert@redhat.com,
peterx@redhat.com
Subject: Re: [Qemu-devel] [RFC 00/14] More patches to disable stuff
Date: Tue, 17 Jul 2018 19:00:48 +0200 [thread overview]
Message-ID: <87601dztj3.fsf@secure.mitica> (raw)
In-Reply-To: <eb90a7b9-5a02-b9f7-c989-f646a272c4f3@redhat.com> (Thomas Huth's message of "Tue, 17 Jul 2018 14:18:12 +0200")
Thomas Huth <thuth@redhat.com> wrote:
> On 17.07.2018 14:04, Juan Quintela wrote:
>> Hi
>>
>> Notice that this is an RFC because they don't work. As said on my
>> previous submmision, we need <foo>-softmmu/config-devices.h to make
>> this work. This series just allow us to disable the devices, but not
>> to enable it back O:-)
>>
>> Notice:
>>
>> - scsi stuff: we are testing they in cdrom-test.c, so we need to be
>> able to config them out. Notice also that #ifdefs only go in tests/<...>
>>
>> - virtio stuff: see how we need to also change hw/virtio/virtio-pci.c
>> to disable it. The problem appears in the device-instropect-test.c.
>> As they are defined in the binary, but not complied in. We can
>> change for a registration appreach, but that is more work that what
>> I intended for this series.
>>
>> What do you think?
>
> I think this is the wrong way to go. If you add #ifdefs to the sources,
> you have to make the binaries target-specific. Currently each test
> binary can work for each target architecture. With #ifdefs, that's not
> possible anymore. So please don't do that.
As the system goes now, you have something enabled if it is enabled for
any _configuration_, that is what config-all-devices.mak is supposed to
do.
> If you want to make the tests more flexible for configuration, please
> use QOM instead to check whether the devices are available or not.
QOM is the problem, not the solution (TM). Uninteresting bits deleted.
tests/device-instrospect-test.c
static void test_device_intro_concrete(void)
{
...
types = device_type_list(false);
...
}
static QList *device_type_list(bool abstract)
{
return qom_list_types("device", abstract);
}
static QList *qom_list_types(const char *implements, bool abstract)
{
QDict *resp;
QList *ret;
QDict *args = qdict_new();
qdict_put_bool(args, "abstract", abstract);
if (implements) {
qdict_put_str(args, "implements", implements);
}
resp = qmp("{'execute': 'qom-list-types',"
" 'arguments': %p }", args);
g_assert(qdict_haskey(resp, "return"));
ret = qdict_get_qlist(resp, "return");
qobject_ref(ret);
qobject_unref(resp);
return ret;
}
If I disable CONFIG_VIRTIO_RNG, then I don't compile
common-obj-$(CONFIG_VIRTIO_RNG) += virtio-rng.o
So far so good, but look at virtio-pci.c:
static void virtio_rng_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
{
...
}
static void virtio_rng_pci_class_init(ObjectClass *klass, void *data)
{
....
}
static void virtio_rng_initfn(Object *obj)
{
...
}
static const TypeInfo virtio_rng_pci_info = {
.name = TYPE_VIRTIO_RNG_PCI,
.parent = TYPE_VIRTIO_PCI,
.instance_size = sizeof(VirtIORngPCI),
.instance_init = virtio_rng_initfn,
.class_init = virtio_rng_pci_class_init,
};
static void virtio_pci_register_types(void)
{
type_register_static(&virtio_rng_pci_info);
...
}
See, we have defined the device "virtio-rng-pci", but there is no
implementation. WHen I run device-intronspection-test on that qemu with
CONFIG_VIRTIO_RNG, it fails to run. If we can agree that something is
wrong, then we can search for a solution. I send this patches as an RFC
to ask for what people think is the best solution, or if we should even
bother in fix that.
Later, JUan.
next prev parent reply other threads:[~2018-07-17 17:00 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-17 12:04 [Qemu-devel] [RFC 00/14] More patches to disable stuff Juan Quintela
2018-07-17 12:04 ` [Qemu-devel] [PATCH 01/14] check: Only test ipmi when it is compiled in Juan Quintela
2018-07-17 12:04 ` [Qemu-devel] [PATCH 02/14] check: Only test megasas " Juan Quintela
2018-07-17 12:04 ` [Qemu-devel] [PATCH 03/14] check: Only test lsi " Juan Quintela
2018-07-17 12:04 ` [Qemu-devel] [PATCH 04/14] check: Only test esp " Juan Quintela
2018-07-17 12:04 ` [Qemu-devel] [PATCH 05/14] check: Only test sga " Juan Quintela
2018-07-17 12:04 ` [Qemu-devel] [PATCH 06/14] check: Only test usb smartcard " Juan Quintela
2018-07-17 12:04 ` [Qemu-devel] [PATCH 07/14] check: Only test usb storage " Juan Quintela
2018-07-17 12:04 ` [Qemu-devel] [PATCH 08/14] check: Only test nvdim_acpi " Juan Quintela
2018-07-17 12:04 ` [Qemu-devel] [PATCH 09/14] check: Only test virtio-balloon " Juan Quintela
2018-07-17 12:19 ` Cornelia Huck
2018-07-17 17:19 ` Juan Quintela
2018-07-17 12:04 ` [Qemu-devel] [PATCH 10/14] check: Only test virtio-serial " Juan Quintela
2018-07-17 12:04 ` [Qemu-devel] [PATCH 11/14] check: Only test virtio-rng " Juan Quintela
2018-07-17 12:04 ` [Qemu-devel] [PATCH 12/14] check: Only test virtio-gpu " Juan Quintela
2018-07-17 12:04 ` [Qemu-devel] [PATCH 13/14] check: Only test virtio-input " Juan Quintela
2018-07-17 12:04 ` [Qemu-devel] [PATCH 14/14] check: Only test virtio-scsi " Juan Quintela
2018-07-17 12:18 ` [Qemu-devel] [RFC 00/14] More patches to disable stuff Thomas Huth
2018-07-17 17:00 ` Juan Quintela [this message]
2018-07-19 11:06 ` Thomas Huth
2018-07-19 11:45 ` Cornelia Huck
2018-07-19 11:58 ` Thomas Huth
2018-07-19 12:04 ` Cornelia Huck
2018-07-17 13:38 ` Paolo Bonzini
2018-07-17 17:01 ` Juan Quintela
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87601dztj3.fsf@secure.mitica \
--to=quintela@redhat.com \
--cc=dgilbert@redhat.com \
--cc=lvivier@redhat.com \
--cc=peterx@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.