From: Christian Borntraeger <borntraeger@de.ibm.com>
To: Paolo Bonzini <pbonzini@redhat.com>,
Cornelia Huck <cornelia.huck@de.ibm.com>,
peter.maydell@linaro.org
Cc: Alexander Yarygin <yarygin@linux.vnet.ibm.com>,
agraf@suse.de, qemu-devel@nongnu.org, jfrei@linux.vnet.ibm.com
Subject: Re: [Qemu-devel] [PULL 09/20] s390x/ipl: Remove redundant usage of gr7
Date: Wed, 18 May 2016 12:09:09 +0200 [thread overview]
Message-ID: <573C3F45.6050203@de.ibm.com> (raw)
In-Reply-To: <a5a4493a-3163-cf77-b1b8-6a3a30bef347@redhat.com>
On 05/18/2016 12:01 PM, Paolo Bonzini wrote:
>
>
> On 17/05/2016 16:46, Cornelia Huck wrote:
>> From: Alexander Yarygin <yarygin@linux.vnet.ibm.com>
>>
>> We don't need to pass device address for pc-bios using gr7 anymore as
>> the pcbios completely relies on diag308 now, so we can remove it from
>> qemu. devno, ssid and cssid are migrated but the value was never reused,
>> so we can safely ignore these fields and migrate 0.
>>
>> Signed-off-by: Alexander Yarygin <yarygin@linux.vnet.ibm.com>
>> Reviewed-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
>> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
>
> This probably breaks reboot after migration from 2.6.
>
> If that's fine, all the better. :)
Our BIOS is in RAM and usually overwritten by the guest.
On reboot this is reloaded from whatever BIOS is on the target,
so migration should still work.
I have verified that migration between 2.4 and 2.6 plus these
patches forth and back still allows to reboot.
In other words the bios and the code in ipl.c have to be updated
in lockstep, then everything is fine.
>
> Thanks,
>
> Paolo
>
>> ---
>> hw/s390x/ipl.c | 33 ++++++---------------------------
>> 1 file changed, 6 insertions(+), 27 deletions(-)
>>
>> diff --git a/hw/s390x/ipl.c b/hw/s390x/ipl.c
>> index 2da0f1e..5786b5e 100644
>> --- a/hw/s390x/ipl.c
>> +++ b/hw/s390x/ipl.c
>> @@ -208,50 +208,27 @@ static Property s390_ipl_properties[] = {
>> DEFINE_PROP_END_OF_LIST(),
>> };
>>
>> -/*
>> - * In addition to updating the iplstate, this function returns:
>> - * - 0 if system was ipled with external kernel
>> - * - -1 if no valid boot device was found
>> - * - ccw id of the boot device otherwise
>> - */
>> -static uint64_t s390_update_iplstate(S390IPLState *ipl)
>> +static bool s390_gen_initial_iplb(S390IPLState *ipl)
>> {
>> DeviceState *dev_st;
>>
>> - if (ipl->iplb_valid) {
>> - ipl->cssid = 0;
>> - ipl->ssid = 0;
>> - ipl->devno = ipl->iplb.devno;
>> - goto out;
>> - }
>> -
>> - if (ipl->kernel) {
>> - return 0;
>> - }
>> -
>> dev_st = get_boot_device(0);
>> if (dev_st) {
>> VirtioCcwDevice *ccw_dev = (VirtioCcwDevice *) object_dynamic_cast(
>> OBJECT(qdev_get_parent_bus(dev_st)->parent),
>> TYPE_VIRTIO_CCW_DEVICE);
>> if (ccw_dev) {
>> - ipl->cssid = ccw_dev->sch->cssid;
>> - ipl->ssid = ccw_dev->sch->ssid;
>> - ipl->devno = ccw_dev->sch->devno;
>> ipl->iplb.len = cpu_to_be32(S390_IPLB_MIN_CCW_LEN);
>> ipl->iplb.blk0_len =
>> cpu_to_be32(S390_IPLB_MIN_CCW_LEN - S390_IPLB_HEADER_LEN);
>> ipl->iplb.pbt = S390_IPL_TYPE_CCW;
>> ipl->iplb.ccw.devno = cpu_to_be16(ccw_dev->sch->devno);
>> ipl->iplb.ccw.ssid = ccw_dev->sch->ssid & 3;
>> - ipl->iplb_valid = true;
>> - goto out;
>> + return true;
>> }
>> }
>>
>> - return -1;
>> -out:
>> - return (uint32_t) (ipl->cssid << 24 | ipl->ssid << 16 | ipl->devno);
>> + return false;
>> }
>>
>> void s390_ipl_update_diag308(IplParameterBlock *iplb)
>> @@ -289,7 +266,9 @@ void s390_ipl_prepare_cpu(S390CPU *cpu)
>>
>> if (!ipl->kernel || ipl->iplb_valid) {
>> cpu->env.psw.addr = ipl->bios_start_addr;
>> - cpu->env.regs[7] = s390_update_iplstate(ipl);
>> + if (!ipl->iplb_valid) {
>> + ipl->iplb_valid = s390_gen_initial_iplb(ipl);
>> + }
>> }
>> }
>>
>>
>
next prev parent reply other threads:[~2016-05-18 10:09 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-17 14:45 [Qemu-devel] [PULL 00/20] First round of s390x patches for 2.7 Cornelia Huck
2016-05-17 14:45 ` [Qemu-devel] [PULL 01/20] s390x: add compat machine " Cornelia Huck
2016-05-17 14:45 ` [Qemu-devel] [PULL 02/20] s390x: enable runtime instrumentation Cornelia Huck
2016-05-17 14:46 ` [Qemu-devel] [PULL 03/20] s390x/ipl: Extend the IplParameterBlock struct Cornelia Huck
2016-05-17 14:46 ` [Qemu-devel] [PULL 04/20] s390x/ipl: Add type and length checks for IplParameterBlock values Cornelia Huck
2016-05-17 14:46 ` [Qemu-devel] [PULL 05/20] s390x/ipl: Provide ipl parameter block Cornelia Huck
2016-05-17 14:46 ` [Qemu-devel] [PULL 06/20] s390x/ipl: Add ssid field to IplParameterBlock Cornelia Huck
2016-05-17 14:46 ` [Qemu-devel] [PULL 07/20] pc-bios/s390-ccw: Get device address via diag 308/6 Cornelia Huck
2016-05-17 14:46 ` [Qemu-devel] [PULL 08/20] s390-ccw.img: rebuild image Cornelia Huck
2016-05-17 14:46 ` [Qemu-devel] [PULL 09/20] s390x/ipl: Remove redundant usage of gr7 Cornelia Huck
2016-05-18 10:01 ` Paolo Bonzini
2016-05-18 10:09 ` Christian Borntraeger [this message]
2016-05-18 10:37 ` Paolo Bonzini
2016-05-17 14:46 ` [Qemu-devel] [PULL 10/20] hw/char: QOM'ify sclpconsole-lm.c Cornelia Huck
2016-05-17 14:46 ` [Qemu-devel] [PULL 11/20] hw/char: QOM'ify sclpconsole.c Cornelia Huck
2016-05-17 14:46 ` [Qemu-devel] [PULL 12/20] s390x/pci: fix reg_irqs() Cornelia Huck
2016-05-17 14:46 ` [Qemu-devel] [PULL 13/20] s390x/pci: separate s390_sclp_configure function Cornelia Huck
2016-05-17 14:46 ` [Qemu-devel] [PULL 14/20] s390x/pci: separate s390_pcihost_iommu_configure function Cornelia Huck
2016-05-17 14:46 ` [Qemu-devel] [PULL 15/20] s390x/pci: export pci_dereg_ioat and pci_dereg_irqs Cornelia Huck
2016-05-17 14:46 ` [Qemu-devel] [PULL 16/20] s390x/pci: introduce S390PCIBusDevice.iommu_enabled Cornelia Huck
2016-05-17 14:46 ` [Qemu-devel] [PULL 17/20] s390x/pci: fix s390_pci_sclp_deconfigure Cornelia Huck
2016-05-17 14:46 ` [Qemu-devel] [PULL 18/20] s390x/pci: enhance mpcifc_service_call Cornelia Huck
2016-05-17 14:46 ` [Qemu-devel] [PULL 19/20] s390x/pci: add length checking for pci sclp handlers Cornelia Huck
2016-05-17 14:46 ` [Qemu-devel] [PULL 20/20] s390x/pci: remove whitespace Cornelia Huck
2016-05-17 16:26 ` [Qemu-devel] [PULL 00/20] First round of s390x patches for 2.7 Peter Maydell
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=573C3F45.6050203@de.ibm.com \
--to=borntraeger@de.ibm.com \
--cc=agraf@suse.de \
--cc=cornelia.huck@de.ibm.com \
--cc=jfrei@linux.vnet.ibm.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=yarygin@linux.vnet.ibm.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.