[Qemu-devel] [PATCH 0/2] Clean up the ppc default configs

Thomas Huth posted 2 patches 6 years, 3 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/1516008655-31732-1-git-send-email-thuth@redhat.com
Test checkpatch passed
Test docker passed
Test ppc passed
Test s390x passed
default-configs/ppc-softmmu.mak   | 59 +++++++++++++++----------------------
default-configs/ppc64-softmmu.mak | 61 +++++----------------------------------
2 files changed, 32 insertions(+), 88 deletions(-)
[Qemu-devel] [PATCH 0/2] Clean up the ppc default configs
Posted by Thomas Huth 6 years, 3 months ago
ppc64-softmmu is a superset of ppc-softmmu which in turn is a superset
of ppcemb-softmmu. But since the config files are currently independent
from each other, we missed to define some CONFIG switches in the super-
sets: CONFIG_SUNGEM is missing from the ppc64-softmmu config, and the
CONFIG_IDE_SII3112 switch is only defined in ppcemb-softmmu.

Let's fix this by including the subsets instead of duplicating all the
switches all over the place.

(off-topic question: Do we still need a separate ppcemb-softmmu nowadays?
It seemed to be useful 10 years ago when everybody was doing KVM on
embedded PPC, but these days seem to be pretty much over now, so IMHO
just using ppc-softmmu for embedded should be enough nowadays? We could
save quite some compilation- and "make check"-time if we could finally get
rid of ppcemb-softmmu again...)

Thomas Huth (2):
  default-configs/ppc64-softmmu: Include 32-bit configs instead of
    copying them
  default-configs/ppc-softmmu: Restructure the switches according to the
    machines

 default-configs/ppc-softmmu.mak   | 59 +++++++++++++++----------------------
 default-configs/ppc64-softmmu.mak | 61 +++++----------------------------------
 2 files changed, 32 insertions(+), 88 deletions(-)

-- 
1.8.3.1


Re: [Qemu-devel] [Qemu-ppc] [PATCH 0/2] Clean up the ppc default configs
Posted by Greg Kurz 6 years, 3 months ago
On Mon, 15 Jan 2018 10:30:53 +0100
Thomas Huth <thuth@redhat.com> wrote:

> ppc64-softmmu is a superset of ppc-softmmu which in turn is a superset

Hi Thomas,

Per curiosity. I understand that a 64-bit ppc CPU is expected to support
32-bit ppc code, but does QEMU really need to emulate setups that likely
never existed in real life (like a PowerMac G5 or a pSeries with an
internal floppy disk controller for example) ?

I ask because Murilo and I had a chat about removing CONFIG_FDC from
default-configs/ppc64-softmmu.mak the other day :)

Cheers,

--
Greg

> of ppcemb-softmmu. But since the config files are currently independent
> from each other, we missed to define some CONFIG switches in the super-
> sets: CONFIG_SUNGEM is missing from the ppc64-softmmu config, and the
> CONFIG_IDE_SII3112 switch is only defined in ppcemb-softmmu.
> 
> Let's fix this by including the subsets instead of duplicating all the
> switches all over the place.
> 
> (off-topic question: Do we still need a separate ppcemb-softmmu nowadays?
> It seemed to be useful 10 years ago when everybody was doing KVM on
> embedded PPC, but these days seem to be pretty much over now, so IMHO
> just using ppc-softmmu for embedded should be enough nowadays? We could
> save quite some compilation- and "make check"-time if we could finally get
> rid of ppcemb-softmmu again...)
> 
> Thomas Huth (2):
>   default-configs/ppc64-softmmu: Include 32-bit configs instead of
>     copying them
>   default-configs/ppc-softmmu: Restructure the switches according to the
>     machines
> 
>  default-configs/ppc-softmmu.mak   | 59 +++++++++++++++----------------------
>  default-configs/ppc64-softmmu.mak | 61 +++++----------------------------------
>  2 files changed, 32 insertions(+), 88 deletions(-)
> 


Re: [Qemu-devel] [Qemu-ppc] [PATCH 0/2] Clean up the ppc default configs
Posted by Thomas Huth 6 years, 3 months ago
On 15.01.2018 12:05, Greg Kurz wrote:
> On Mon, 15 Jan 2018 10:30:53 +0100
> Thomas Huth <thuth@redhat.com> wrote:
> 
>> ppc64-softmmu is a superset of ppc-softmmu which in turn is a superset
> 
> Hi Thomas,
> 
> Per curiosity. I understand that a 64-bit ppc CPU is expected to support
> 32-bit ppc code, but does QEMU really need to emulate setups that likely
> never existed in real life (like a PowerMac G5 or a pSeries with an
> internal floppy disk controller for example) ?

I think the CONFIG_FDC switch is there for the PReP machine, not for the
Macs.

 Thomas

Re: [Qemu-devel] [Qemu-ppc] [PATCH 0/2] Clean up the ppc default configs
Posted by BALATON Zoltan 6 years, 3 months ago
On Mon, 15 Jan 2018, Thomas Huth wrote:
> ppc64-softmmu is a superset of ppc-softmmu which in turn is a superset
> of ppcemb-softmmu. But since the config files are currently independent
> from each other, we missed to define some CONFIG switches in the super-
> sets: CONFIG_SUNGEM is missing from the ppc64-softmmu config, and the
> CONFIG_IDE_SII3112 switch is only defined in ppcemb-softmmu.

I'm not sure about this. The Sun GEM network interface is a device 
typically found on Apple PowerMacs but also seems to be found on G5 based 
Macs so it's probably OK to add. The SiI3112 is now only used on the (not 
yet fully merged) Sam460EX emulation which is to be added to ppcemb, 
that's why I've only added it to that target. Defining it on other targets 
does no harm (other than making the binary bigger) just maybe not 
necessary. If you think this makes the configs simpler I'm OK with this 
change just note that it probably makes it impossible to add options only 
for ppcemb without also adding them to ppc and ppc64. If that's OK then go 
ahead.

> (off-topic question: Do we still need a separate ppcemb-softmmu nowadays?
> It seemed to be useful 10 years ago when everybody was doing KVM on
> embedded PPC, but these days seem to be pretty much over now, so IMHO
> just using ppc-softmmu for embedded should be enough nowadays? We could
> save quite some compilation- and "make check"-time if we could finally get
> rid of ppcemb-softmmu again...)

I've also noticed that most of the boards were available both in ppcemb 
and ppc targets so maybe these could be merged now to avoid confusion but 
I don't know the reason why ppcemb existed in the first place so I don't 
know what other implications dropping ppcemb may have.

Regards,
BALATON Zoltan

Re: [Qemu-devel] [Qemu-ppc] [PATCH 0/2] Clean up the ppc default configs
Posted by Thomas Huth 6 years, 3 months ago
On 15.01.2018 13:00, BALATON Zoltan wrote:
> On Mon, 15 Jan 2018, Thomas Huth wrote:
>> ppc64-softmmu is a superset of ppc-softmmu which in turn is a superset
>> of ppcemb-softmmu. But since the config files are currently independent
>> from each other, we missed to define some CONFIG switches in the super-
>> sets: CONFIG_SUNGEM is missing from the ppc64-softmmu config, and the
>> CONFIG_IDE_SII3112 switch is only defined in ppcemb-softmmu.
> 
> I'm not sure about this. The Sun GEM network interface is a device
> typically found on Apple PowerMacs but also seems to be found on G5
> based Macs so it's probably OK to add. The SiI3112 is now only used on
> the (not yet fully merged) Sam460EX emulation which is to be added to
> ppcemb, that's why I've only added it to that target.

But as I wrote: ppc-softmmu is currently a superset of ppcemb-softmmu. I
think people expect to be able to run the same amount of machines with
ppc-softmmu than with ppcemb-softmmu, don't they?

>> (off-topic question: Do we still need a separate ppcemb-softmmu nowadays?
>> It seemed to be useful 10 years ago when everybody was doing KVM on
>> embedded PPC, but these days seem to be pretty much over now, so IMHO
>> just using ppc-softmmu for embedded should be enough nowadays? We could
>> save quite some compilation- and "make check"-time if we could finally
>> get rid of ppcemb-softmmu again...)
> 
> I've also noticed that most of the boards were available both in ppcemb
> and ppc targets so maybe these could be merged now to avoid confusion
> but I don't know the reason why ppcemb existed in the first place so I
> don't know what other implications dropping ppcemb may have.

An alternative would be to remove the embedded configs from the
ppc-softmmu.mak and only include them in ppcemb-softmmu.mak, so that
there is a stricter distinction. I think the current situation is rather
confusing, where it is possible that the user could try to run a pseries
machine with an embedded PPC CPU for example ... so strictly separating
the embedded stuff into ppcemb-softmmu would maybe really make sense.

 Thomas

Re: [Qemu-devel] [Qemu-ppc] [PATCH 0/2] Clean up the ppc default configs
Posted by Thomas Huth 6 years, 3 months ago
On 15.01.2018 13:00, BALATON Zoltan wrote:
[...]
> I've also noticed that most of the boards were available both in ppcemb
> and ppc targets so maybe these could be merged now to avoid confusion
> but I don't know the reason why ppcemb existed in the first place so I
> don't know what other implications dropping ppcemb may have.

FYI: I've had a chat with Alexander Graf this morning in IRC, and the
qemu-system-ppcemb was indeed only created for supporting the CPUs with
page sizes < 4k. Everything else is supposed to work with
qemu-system-ppc, too. Since likely nobody is using page sizes < 4k on
embedded PPCs nowadays anymore (and Alex was also only aware of one
home-brew OS that did this in the past is likely not available now
anymore), I think we can go forward and start the deprecation of ppcemb.

 Thomas

Re: [Qemu-devel] [Qemu-ppc] [PATCH 0/2] Clean up the ppc default configs
Posted by Peter Maydell 6 years, 3 months ago
On 16 January 2018 at 10:41, Thomas Huth <thuth@redhat.com> wrote:
> On 15.01.2018 13:00, BALATON Zoltan wrote:
> [...]
>> I've also noticed that most of the boards were available both in ppcemb
>> and ppc targets so maybe these could be merged now to avoid confusion
>> but I don't know the reason why ppcemb existed in the first place so I
>> don't know what other implications dropping ppcemb may have.
>
> FYI: I've had a chat with Alexander Graf this morning in IRC, and the
> qemu-system-ppcemb was indeed only created for supporting the CPUs with
> page sizes < 4k. Everything else is supposed to work with
> qemu-system-ppc, too. Since likely nobody is using page sizes < 4k on
> embedded PPCs nowadays anymore (and Alex was also only aware of one
> home-brew OS that did this in the past is likely not available now
> anymore), I think we can go forward and start the deprecation of ppcemb.

We do now support runtime-settable page sizes (as a board model property),
so you could roll support for 1K pages into ppc-softmmu/ppc64-softmmu
if you wanted.

thanks
-- PMM

Re: [Qemu-devel] [Qemu-ppc] [PATCH 0/2] Clean up the ppc default configs
Posted by Thomas Huth 6 years, 3 months ago
On 16.01.2018 11:51, Peter Maydell wrote:
> On 16 January 2018 at 10:41, Thomas Huth <thuth@redhat.com> wrote:
>> On 15.01.2018 13:00, BALATON Zoltan wrote:
>> [...]
>>> I've also noticed that most of the boards were available both in ppcemb
>>> and ppc targets so maybe these could be merged now to avoid confusion
>>> but I don't know the reason why ppcemb existed in the first place so I
>>> don't know what other implications dropping ppcemb may have.
>>
>> FYI: I've had a chat with Alexander Graf this morning in IRC, and the
>> qemu-system-ppcemb was indeed only created for supporting the CPUs with
>> page sizes < 4k. Everything else is supposed to work with
>> qemu-system-ppc, too. Since likely nobody is using page sizes < 4k on
>> embedded PPCs nowadays anymore (and Alex was also only aware of one
>> home-brew OS that did this in the past is likely not available now
>> anymore), I think we can go forward and start the deprecation of ppcemb.
> 
> We do now support runtime-settable page sizes (as a board model property),
> so you could roll support for 1K pages into ppc-softmmu/ppc64-softmmu
> if you wanted.

Yes, I've noticed this TARGET_PAGE_BITS_VARY stuff in target/arm/
already ... I think that's a good plan B if someone speaks up claiming
that <4k page sizes are still required after we've marked ppcemb as
deprecated.

 Thomas

Re: [Qemu-devel] [PATCH 0/2] Clean up the ppc default configs
Posted by Peter Maydell 6 years, 3 months ago
On 15 January 2018 at 09:30, Thomas Huth <thuth@redhat.com> wrote:
> (off-topic question: Do we still need a separate ppcemb-softmmu nowadays?
> It seemed to be useful 10 years ago when everybody was doing KVM on
> embedded PPC, but these days seem to be pretty much over now, so IMHO
> just using ppc-softmmu for embedded should be enough nowadays? We could
> save quite some compilation- and "make check"-time if we could finally get
> rid of ppcemb-softmmu again...)

There are some specific differences guarded by TARGET_PPCEMB, like
the way it has a different TARGET_PAGE_BITS value, and some code
in target/ppc/kvm.c related to telling KVM about interrupts. You
would need to make those all be runtime decisions I assume.

thanks
-- PMM

Re: [Qemu-devel] [Qemu-ppc] [PATCH 0/2] Clean up the ppc default configs
Posted by Thomas Huth 6 years, 3 months ago
On 15.01.2018 14:01, Peter Maydell wrote:
> On 15 January 2018 at 09:30, Thomas Huth <thuth@redhat.com> wrote:
>> (off-topic question: Do we still need a separate ppcemb-softmmu nowadays?
>> It seemed to be useful 10 years ago when everybody was doing KVM on
>> embedded PPC, but these days seem to be pretty much over now, so IMHO
>> just using ppc-softmmu for embedded should be enough nowadays? We could
>> save quite some compilation- and "make check"-time if we could finally get
>> rid of ppcemb-softmmu again...)
> 
> There are some specific differences guarded by TARGET_PPCEMB, like
> the way it has a different TARGET_PAGE_BITS value, and some code
> in target/ppc/kvm.c related to telling KVM about interrupts. You
> would need to make those all be runtime decisions I assume.

True ... but while we maybe could turn those into runtime checks, I now
rather think it's maybe better to go the other way round: Maybe we
should not include each and everything into ppc64-softmmu, but put the
embedded stuff only in ppcemb-softmmu and the 32-bit stuff only in
ppc-softmmu instead? That way we could, for example, also make the
output of "-cpu help" and "-device help" a little bit more user friendly...

 Thomas

Re: [Qemu-devel] [Qemu-ppc] [PATCH 0/2] Clean up the ppc default configs
Posted by David Gibson 6 years, 3 months ago
On Mon, Jan 15, 2018 at 03:42:09PM +0100, Thomas Huth wrote:
> On 15.01.2018 14:01, Peter Maydell wrote:
> > On 15 January 2018 at 09:30, Thomas Huth <thuth@redhat.com> wrote:
> >> (off-topic question: Do we still need a separate ppcemb-softmmu nowadays?
> >> It seemed to be useful 10 years ago when everybody was doing KVM on
> >> embedded PPC, but these days seem to be pretty much over now, so IMHO
> >> just using ppc-softmmu for embedded should be enough nowadays? We could
> >> save quite some compilation- and "make check"-time if we could finally get
> >> rid of ppcemb-softmmu again...)
> > 
> > There are some specific differences guarded by TARGET_PPCEMB, like
> > the way it has a different TARGET_PAGE_BITS value, and some code
> > in target/ppc/kvm.c related to telling KVM about interrupts. You
> > would need to make those all be runtime decisions I assume.
> 
> True ... but while we maybe could turn those into runtime checks, I now
> rather think it's maybe better to go the other way round: Maybe we
> should not include each and everything into ppc64-softmmu, but put the
> embedded stuff only in ppcemb-softmmu and the 32-bit stuff only in
> ppc-softmmu instead? That way we could, for example, also make the
> output of "-cpu help" and "-device help" a little bit more user friendly...

I tend to agree.

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson