From: Halil Pasic <pasic@linux.ibm.com>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: "Thomas Huth" <thuth@redhat.com>,
"Boris Fiuczynski" <fiuczy@linux.ibm.com>,
"Daniel P. Berrangé" <berrange@redhat.com>,
"Eduardo Habkost" <ehabkost@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Cornelia Huck" <cohuck@redhat.com>,
"Richard Henderson" <richard.henderson@linaro.org>,
qemu-devel@nongnu.org, "Bruce Rogers" <brogers@suse.com>,
"Christian Borntraeger" <borntraeger@de.ibm.com>,
qemu-s390x@nongnu.org, "Paolo Bonzini" <pbonzini@redhat.com>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"David Hildenbrand" <david@redhat.com>
Subject: Re: [PATCH v2 1/1] hw/s390x: modularize virtio-gpu-ccw
Date: Wed, 24 Feb 2021 17:46:34 +0100 [thread overview]
Message-ID: <20210224174634.58a1ecda.pasic@linux.ibm.com> (raw)
In-Reply-To: <20210224113617.6v42bfxyzvw6733h@sirius.home.kraxel.org>
On Wed, 24 Feb 2021 12:36:17 +0100
Gerd Hoffmann <kraxel@redhat.com> wrote:
> > static void virtio_ccw_gpu_register(void)
> > {
> > +#ifdef CONFIG_MODULES
> > + type_register_static_mayfail(&virtio_ccw_gpu);
> > +#else
> > type_register_static(&virtio_ccw_gpu);
> > +#endif
>
> Move the ifdef to type_register_static_mayfail, so this is not
> duplicated for every module which might need this?
I am concerned about a cluttered API. Having the documentation say:
/**
* type_register_static_mayfail:
* @info: The #TypeInfo of the new type.
*
* @info and all of the strings it points to should exist for the life time
* that the type is registered.
*
* If missing a parent type and if qom/object.c is built with CONFIG_MODULES
* type_register_static_mayfail() differs from type_register_static only in not
* printing an error and aborting but returning NULL. If qom/object.c is
* built without CONFIG_MODULES type_register_static_mayfail() is same as
* type_register_static()
* Returns: the new #Type or NULL if missing a parent type.
*/
Type type_register_static_mayfail(const TypeInfo *info);
does not feel right. Indeed modules seems to be the only
circumstance under which a failed type registration does not imply
a programming error. So I'm absolutely against shoving this logic
down into object.c. But I find the variant I posted nicer to document
and nicer to read: looking at virtio_ccw_gpu_register() one sees
immediately that if built as a module, it is OK if the registration
fails, and if built-in it is expected to work.
>
> > --- a/include/hw/s390x/css.h
> > +++ b/include/hw/s390x/css.h
>
> Move this to a separate patch?
> The "add type_register_mayfail" and "modularize virtio-gpu-ccw" changes
> should be separate patches too.
>
> > -static TypeImpl *type_register_internal(const TypeInfo *info)
> > +static TypeImpl *type_register_internal(const TypeInfo *info, bool mayfail)
> > {
> > TypeImpl *ti;
> > ti = type_new(info);
>
> Hmm, type_register_internal seems to not look at the new mayfail flag.
> Patch looks incomplete ...
It definitely is. I messed up my smoke test (used the wrong executable)
so I did not notice.
>
> take care,
> Gerd
>
>
next prev parent reply other threads:[~2021-02-24 16:50 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-22 12:55 [PATCH v2 1/1] hw/s390x: modularize virtio-gpu-ccw Halil Pasic
2021-02-22 17:18 ` Boris Fiuczynski
2021-02-22 17:30 ` Daniel P. Berrangé
2021-02-23 12:14 ` Halil Pasic
2021-02-24 11:36 ` Gerd Hoffmann
2021-02-24 16:46 ` Halil Pasic [this message]
2021-02-25 8:05 ` Gerd Hoffmann
2021-02-25 21:14 ` Halil Pasic
2021-03-03 7:07 ` Gerd Hoffmann
2021-03-03 14:36 ` Halil Pasic
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=20210224174634.58a1ecda.pasic@linux.ibm.com \
--to=pasic@linux.ibm.com \
--cc=berrange@redhat.com \
--cc=borntraeger@de.ibm.com \
--cc=brogers@suse.com \
--cc=cohuck@redhat.com \
--cc=david@redhat.com \
--cc=ehabkost@redhat.com \
--cc=fiuczy@linux.ibm.com \
--cc=kraxel@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=richard.henderson@linaro.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.