From: Jan Kiszka <jan.kiszka@siemens.com>
To: andrzej zaborowski <balrogg@gmail.com>
Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [RESEND][PATCH 3/9] microdrive: qdevify
Date: Tue, 17 May 2011 13:33:38 +0200 [thread overview]
Message-ID: <4DD25D12.7030903@siemens.com> (raw)
In-Reply-To: <BANLkTikbxnS409sLDsEEV2gUAqh_XNvMLg@mail.gmail.com>
On 2011-05-17 13:08, andrzej zaborowski wrote:
> On 17 May 2011 07:44, Jan Kiszka <jan.kiszka@web.de> wrote:
>> On 2011-05-17 03:38, andrzej zaborowski wrote:
>>> On 16 May 2011 15:08, Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> wrote:
>>>> On 5/16/11, andrzej zaborowski <balrogg@gmail.com> wrote:
>>>>> On 16 May 2011 06:54, Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> wrote:
>>>>>> Socket is required, as we have to know the QBus before creating the
>>>>>> device on it.
>>>>>
>>>>> Let's skip the qbusification then. It seems that qbus is a wrong
>>>>> choice for pcmcia and there are no new features or bugs fixed by the
>>>>> conversion, it's code motion? I also don't see why the socket
>>>>> structure should be needed at the creation time of a PCI device for
>>>>> example, the BusInfo should be enough logically.
>>>>
>>>> Major point for qbus'ification was ability to create PCMCIA devices from
>>>> command line/via other management tools. This would also allow us e.g.
>>>> to move microdrive driver to common ide parts, etc.
>>>
>>> That would be nice but it may be better to use separate command line
>>> switches / monitor commands for hotpluggable busses.
>>>
>>>>
>>>> For creation of a DeviceState via qdev_create you need BusState (which
>>>> is a part of PCMCIASocket). Of course I can make one global QBus for
>>>> all PCMCIA devices and make some artificial hacks to attach/detach cards
>>>> to artificial sockets, but this seems like a hack.
>>>
>>> I considered that for a moment too but it's uglier than current code
>>> and doesn't achieve what you want, because the command line has no
>>> provision for triggering attachment. A major problem with qdev I see
>>> now is that the creation and attachment of a device are one event
>>> instead of two, which is the case for pcmcia. So your patch tries to
>>> merge these two events.
>>
>> What is the point of allowing the existence of unattached pcmcia
>> devices? I think there was similar discussion about usb to allow attach
>> detach without delete, but IIRC that was finally rejected as there is no
>> real benefit in avoiding full creation/destruction.
>
> It's more about being able to detach and re-attach (in the same socket
> or another)
I haven't looked at the details of this particular issue, but from 10000
meters I do not yet understand how qdev prevents this. Do we lack
addressability via qdev for these sockets? Then that would have to be fixed.
>, migrate, savevm/loadvm separately from the machine
> although this possibility is not used now anyway. I just think it's
> logical for a hotpluggable bus that this be possible and it's wrong to
> require the socket structure when creating a device, although I'll
> ack/push the patches if that's a general opinion.
>
>>
>> Keep in mind that there may be a day where we finally obsolete support
>> for non-qdev (or whatever it's name will be then) devices.
>
> Not allowing non-qdev devices would be difficult to do because a
> "device" is just a set of memory mappings and it's a fuzzy term
> altogether (in SoCs especially).
Even in the SoC domain, I did not come across any set of "memory
mappings" that could not reasonably be abstractable to a device, thus
could be wrapped by qdev. That there is usually no chip containing such
a device in reality does not mean you can't and shouldn't handle it as
an abstract one, encapsulating separate functions in a more complex chip.
> What I'd like to avoid is shuffling
> a piece of code into an api it does not fit just because there's a
> trend to use it, you can burn cycles endlessly reordering code with no
> new features/bugs fixed.
No longer having arbitrary, untraceable memory and io mappings but only
well organized devices is a feature worth such shuffling. Usually that
also offers the chance to clean up legacy code or complete half-done
device models.
We are good in inventing new APIs in QEMU, but so far we are not that
successful getting rid of old ones.
Jan
--
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux
next prev parent reply other threads:[~2011-05-17 11:33 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-25 9:06 [Qemu-devel] [RESEND][PATCH 1/9] pxa2xx_pcmcia: qdevify Dmitry Eremin-Solenikov
2011-04-25 9:06 ` [Qemu-devel] [RESEND][PATCH 2/9] PCMCIA: start qdev'ication Dmitry Eremin-Solenikov
2011-05-16 1:52 ` andrzej zaborowski
2011-05-16 5:10 ` Dmitry Eremin-Solenikov
2011-04-25 9:06 ` [Qemu-devel] [RESEND][PATCH 3/9] microdrive: qdevify Dmitry Eremin-Solenikov
2011-05-16 2:01 ` andrzej zaborowski
2011-05-16 4:54 ` Dmitry Eremin-Solenikov
2011-05-16 12:26 ` andrzej zaborowski
2011-05-16 13:08 ` Dmitry Eremin-Solenikov
2011-05-17 1:38 ` andrzej zaborowski
2011-05-17 5:44 ` Jan Kiszka
2011-05-17 11:08 ` andrzej zaborowski
2011-05-17 11:33 ` Jan Kiszka [this message]
2011-04-25 9:06 ` [Qemu-devel] [RESEND][PATCH 4/9] pcmcia: move all card callbacks to PCMCIACardInfo Dmitry Eremin-Solenikov
2011-04-25 9:06 ` [Qemu-devel] [RESEND][PATCH 5/9] pcmcia: move attach and detach socket methods to PCMCIASocket Dmitry Eremin-Solenikov
2011-04-25 9:06 ` [Qemu-devel] [RESEND][PATCH 6/9] pxa: change order of pcmcia devices instantiation, so that the socket 0 will be default Dmitry Eremin-Solenikov
2011-04-25 9:06 ` [Qemu-devel] [RESEND][PATCH 7/9] ide-core: allocate metadata storage for CFATA drives Dmitry Eremin-Solenikov
2011-04-25 9:06 ` [Qemu-devel] [RESEND][PATCH 8/9] strongarm: add PCMCIA support Dmitry Eremin-Solenikov
2011-04-25 9:06 ` [Qemu-devel] [RESEND][PATCH 9/9] collie: add support for PCMCIA bus Dmitry Eremin-Solenikov
2011-04-29 19:40 ` [Qemu-devel] [RESEND][PATCH 1/9] pxa2xx_pcmcia: qdevify Dmitry Eremin-Solenikov
2011-05-03 9:02 ` Dmitry Eremin-Solenikov
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=4DD25D12.7030903@siemens.com \
--to=jan.kiszka@siemens.com \
--cc=balrogg@gmail.com \
--cc=dbaryshkov@gmail.com \
--cc=qemu-devel@nongnu.org \
/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.