From: Alexander Graf <agraf@suse.de>
To: David Gibson <david@gibson.dropbear.id.au>
Cc: "aik@ozlabs.ru" <aik@ozlabs.ru>,
"paulus@samba.org" <paulus@samba.org>,
"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
"mdroth@us.ibm.com" <mdroth@us.ibm.com>
Subject: Re: [Qemu-devel] [PATCH 1/5] pseries: Move sPAPR RTC code into its own file
Date: Fri, 19 Dec 2014 00:36:11 +0100 [thread overview]
Message-ID: <549364EB.3070108@suse.de> (raw)
In-Reply-To: <20141218054328.GF12159@voom.redhat.com>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 18.12.14 06:43, David Gibson wrote:
> On Tue, Dec 16, 2014 at 10:41:16AM +0100, Alexander Graf wrote:
>>
>>
>>
>>> Am 16.12.2014 um 02:24 schrieb David Gibson
>>> <david@gibson.dropbear.id.au>:
>>>
>>>> On Tue, Dec 16, 2014 at 01:59:01AM +0100, Alexander Graf
>>>> wrote:
>>>>
>>>>
>>>>> On 16.12.14 01:43, David Gibson wrote: At the moment the
>>>>> RTAS (firmware/hypervisor) time of day functions are
>>>>> implemented in spapr_rtas.c along with a bunch of other
>>>>> things. Since we're going to be expanding these a bit,
>>>>> move the RTAS RTC related code out into new file
>>>>> spapr_rtc.c. Also add its own initialization function,
>>>>> spapr_rtc_init() called from the main machine init
>>>>> routine.
>>>>>
>>>>> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
>>>>> --- hw/ppc/Makefile.objs | 2 +- hw/ppc/spapr.c |
>>>>> 3 ++ hw/ppc/spapr_rtas.c | 49
>>>>> ----------------------------- hw/ppc/spapr_rtc.c | 83
>>>>> ++++++++++++++++++++++++++++++++++++++++++++++++++
>>>>> include/hw/ppc/spapr.h | 1 + 5 files changed, 88
>>>>> insertions(+), 50 deletions(-) create mode 100644
>>>>> hw/ppc/spapr_rtc.c
>>>>>
>>>>> diff --git a/hw/ppc/Makefile.objs b/hw/ppc/Makefile.objs
>>>>> index 19d9920..437955d 100644 --- a/hw/ppc/Makefile.objs
>>>>> +++ b/hw/ppc/Makefile.objs @@ -3,7 +3,7 @@ obj-y += ppc.o
>>>>> ppc_booke.o # IBM pSeries (sPAPR) obj-$(CONFIG_PSERIES) +=
>>>>> spapr.o spapr_vio.o spapr_events.o obj-$(CONFIG_PSERIES) +=
>>>>> spapr_hcall.o spapr_iommu.o spapr_rtas.o
>>>>> -obj-$(CONFIG_PSERIES) += spapr_pci.o
>>>>> +obj-$(CONFIG_PSERIES) += spapr_pci.o spapr_rtc.o ifeq
>>>>> ($(CONFIG_PCI)$(CONFIG_PSERIES)$(CONFIG_LINUX), yyy) obj-y
>>>>> += spapr_pci_vfio.o endif diff --git a/hw/ppc/spapr.c
>>>>> b/hw/ppc/spapr.c index 30de25d..16377a3 100644 ---
>>>>> a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -1446,6 +1446,9 @@
>>>>> static void ppc_spapr_init(MachineState *machine) /* Set up
>>>>> EPOW events infrastructure */ spapr_events_init(spapr);
>>>>>
>>>>> + /* Set up the RTC RTAS interfaces */ +
>>>>> spapr_rtc_init();
>>>>
>>>> Do you think we could make it a device instead?
>>>
>>> Um.. I guess. Is there a standard place to put such
>>> pseudo-devices in the bus heirarchy?
>>
>> How about we combine this with some cleanup work and create a
>> new spapr bus that (in the long term) exposes all the details we
>> carry around in the spapr struct to its children via the bus?
>
> I've thought about this a bit more. It really doesn't make sense
> to put the rtc device anywhere except the root bus (which
> optionally could become an spapr sub-type of the default root bus
> type).
Well, we could always just leave sysbus completely unused and instead
create our own global spapr root bus. In fact, that's probably what we
should do ;).
If that blows your mind for this patch set, we can make the RTC a
sysbus device too though.
> But, while splitting this into its own device would be cleaner, I
> don't think we should delay real behavioural fixes for that
> cleanup. Working out how to split out the device without breaking
> old machine types, and keeping migration working is making my head
> hurt.
I don't think it's that hard. Just create a compat version for version
2 of "spapr" vmstates and have a post_load hook in there that shoves
the rtc offset into the new rtc device via a qom property. You should
even be able to just find the RTC device by path.
Keep in mind that we don't support new -> old migration.
Alex
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.22 (Darwin)
Comment: GPGTools - http://gpgtools.org
iQIcBAEBAgAGBQJUk2TrAAoJECszeR4D/txglhEP/jey0NvjfAan3LKNxHZhseF+
1gS9/5A648w+tsuR4NzAeTTWVbSsCiDvlS8AmISkUHmMb+Zx1J6NMzuAso8xtEeL
ahMQUrtcskzz+o5b7U4ZDRMRyejRaT4fq5ryYENkxrUXZLjMf82FxbRVSFgYb4s5
89Ct8Ts9ad0OSWQYJXuHYbFRBQCyMKBpFbmW0c5FO275oH+dspsjHpyKjtU9fvaV
XE/4gnF93rXLnZNBhPKNR74jiSZYv364wb1q8Pb8OiuMacKLlBxCby0PKLfcGwEy
o13S7T7v1yrbeB/6/zGT092DpjONQRkkQ5LWZXH9UfwWPcMThg4ByoYRT9ULocUj
PRrwIm8JeXgTyJC6YcZJwxGZhFJAipLJ5SxW56YFqNvAvi2Kdp2SllZFBHy6G1zQ
tmm3CMKkHkQ4DOao48NfRlncZB49UC8MUz80eLq/fUFs2F+SEPJl3s8HN79fo2/r
N8OBnOqSaPRJ28XhZ1Lk6ytkzeE+ymHQWuDJCeiFegJ75G0CeQDG7CrI1N6w4M9V
H/7C0/vooGYDxcnprLSZpeUYdHOR7EqkGZ+ppZ6kCeRWuH7hZS8I5rqMNPeCDZpJ
v1kgmcwhFcbPo3vJ1TXNhkFQe3iU+qh/DMnWogw6NwXXLBrb1XFeslqTFi+lI2Ln
3dC64uWiOQnhllmpHz6Z
=X0rP
-----END PGP SIGNATURE-----
next prev parent reply other threads:[~2014-12-18 23:36 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-16 0:43 [Qemu-devel] [PATCH 0/5] pseries: Fix and extend PAPR RTC implementation David Gibson
2014-12-16 0:43 ` [Qemu-devel] [PATCH 1/5] pseries: Move sPAPR RTC code into its own file David Gibson
2014-12-16 0:59 ` Alexander Graf
2014-12-16 1:24 ` David Gibson
2014-12-16 9:41 ` Alexander Graf
2014-12-18 5:43 ` David Gibson
2014-12-18 23:36 ` Alexander Graf [this message]
2014-12-19 5:39 ` David Gibson
2014-12-19 9:59 ` Alexander Graf
2014-12-16 0:43 ` [Qemu-devel] [PATCH 2/5] pseries: Add spapr_rtc_read() helper function David Gibson
2014-12-16 1:01 ` Alexander Graf
2014-12-16 1:25 ` David Gibson
2014-12-16 0:43 ` [Qemu-devel] [PATCH 3/5] pseries: Add more parameter validation in RTAS time of day functions David Gibson
2014-12-16 0:43 ` [Qemu-devel] [PATCH 4/5] pseries: Export /machine "rtc-time" property David Gibson
2014-12-16 1:04 ` Alexander Graf
2014-12-16 2:18 ` David Gibson
2014-12-16 9:42 ` Alexander Graf
2014-12-16 0:43 ` [Qemu-devel] [PATCH 5/5] pseries: Make RTAS time of day functions respect -rtc options David Gibson
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=549364EB.3070108@suse.de \
--to=agraf@suse.de \
--cc=aik@ozlabs.ru \
--cc=david@gibson.dropbear.id.au \
--cc=mdroth@us.ibm.com \
--cc=paulus@samba.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).