1. 03 4月, 2018 1 次提交
  2. 08 3月, 2018 3 次提交
    • C
      s390x/sclp: proper support of larger send and receive masks · bc61c8c6
      Claudio Imbrenda 提交于
      Until 67915de9 ("s390x/event-facility: variable-length event masks")
      we only supported sclp event masks with a size of exactly 4 bytes, even
      though the architecture allows the guests to set up sclp event masks
      from 1 to 1021 bytes in length.
      After that patch, the behaviour was almost compliant, but some issues
      were still remaining, in particular regarding the handling of selective
      reads and migration.
      
      When setting the sclp event mask, a mask size is also specified. Until
      now we only considered the size in order to decide which bits to save
      in the internal state. On the other hand, when a guest performs a
      selective read, it sends a mask, but it does not specify a size; the
      implied size is the size of the last mask that has been set.
      
      Specifying bits in the mask of selective read that are not available in
      the internal mask should return an error, and bits past the end of the
      mask should obviously be ignored. This can only be achieved by keeping
      track of the lenght of the mask.
      
      The mask length is thus now part of the internal state that needs to be
      migrated.
      
      This patch fixes the handling of selective reads, whose size will now
      match the length of the event mask, as per architecture.
      
      While the default behaviour is to be compliant with the architecture,
      when using older machine models the old broken behaviour is selected
      (allowing only masks of size exactly 4), in order to be able to migrate
      toward older versions.
      
      Fixes: 67915de9 ("s390x/event-facility: variable-length event masks")
      Signed-off-by: NClaudio Imbrenda <imbrenda@linux.vnet.ibm.com>
      Message-Id: <1519407778-23095-2-git-send-email-imbrenda@linux.vnet.ibm.com>
      Reviewed-by: NChristian Borntraeger <borntraeger@de.ibm.com>
      Signed-off-by: NCornelia Huck <cohuck@redhat.com>
      bc61c8c6
    • D
      numa: we don't implement NUMA for s390x · 81ce6aa5
      David Hildenbrand 提交于
      Right now it is possible to crash QEMU for s390x by providing e.g.
          -numa node,nodeid=0,cpus=0-1
      
      Problem is, that numa.c uses mc->cpu_index_to_instance_props as an
      indicator whether NUMA is supported by a machine type. We don't
      implement NUMA for s390x ("topology") yet. However we need
      mc->cpu_index_to_instance_props for query-cpus.
      
      So let's fix this case by also checking for mc->get_default_cpu_node_id,
      which will be needed by machine_set_cpu_numa_node().
      
      qemu-system-s390x: -numa node,nodeid=0,cpus=0-1: NUMA is not supported by
                         this machine-type
      
      While at it, make s390_cpu_index_to_props() look like on other
      architectures.
      Signed-off-by: NDavid Hildenbrand <david@redhat.com>
      Message-Id: <20180227110255.20999-1-david@redhat.com>
      Reviewed-by: NChristian Borntraeger <borntraeger@de.ibm.com>
      Signed-off-by: NCornelia Huck <cohuck@redhat.com>
      81ce6aa5
    • T
      hw/s390x: Add the possibility to specify the netboot image on the command line · 3c4e9baa
      Thomas Huth 提交于
      The file name of the netboot binary is currently hard-coded to
      "s390-netboot.img", without a possibility for the user to select
      an alternative firmware image here. That's unfortunate, especially
      since the basics are already there: The filename is a property of
      the s390-ipl device. So we just have to add a check whether the user
      already provided the property and only set the default if the string
      is still empty. Now it is possible to select a different firmware
      image with "-global s390-ipl.netboot_fw=/path/to/s390-netboot.img".
      Signed-off-by: NThomas Huth <thuth@redhat.com>
      Message-Id: <1519731154-3127-1-git-send-email-thuth@redhat.com>
      Signed-off-by: NCornelia Huck <cohuck@redhat.com>
      3c4e9baa
  3. 26 2月, 2018 1 次提交
  4. 09 2月, 2018 3 次提交
  5. 19 1月, 2018 1 次提交
    • I
      possible_cpus: add CPUArchId::type field · d342eb76
      Igor Mammedov 提交于
      Remove dependency of possible_cpus on 1st CPU instance,
      which decouples configuration data from CPU instances that
      are created using that data.
      
      Also later it would be used for enabling early cpu to numa node
      configuration at runtime qmp_query_hotpluggable_cpus() should
      provide a list of available cpu slots at early stage,
      before machine_init() is called and the 1st cpu is created,
      so that mgmt might be able to call it and use output to set
      numa mapping.
      
      Use MachineClass::possible_cpu_arch_ids() callback to set
      cpu type info, along with the rest of possible cpu properties,
      to let machine define which cpu type* will be used.
      
      * for SPAPR it will be a spapr core type and for ARM/s390x/x86
        a respective descendant of CPUClass.
      
      Move parse_numa_opts() in vl.c after cpu_model is parsed into
      cpu_type so that possible_cpu_arch_ids() would know which
      cpu_type to use during layout initialization.
      Signed-off-by: NIgor Mammedov <imammedo@redhat.com>
      Reviewed-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Message-Id: <1515597770-268979-1-git-send-email-imammedo@redhat.com>
      Signed-off-by: NEduardo Habkost <ehabkost@redhat.com>
      d342eb76
  6. 15 12月, 2017 5 次提交
    • C
      s390-ccw-virtio: allow for systems larger that 7.999TB · bb223055
      Christian Borntraeger 提交于
      KVM does not allow memory regions > KVM_MEM_MAX_NR_PAGES, basically
      limiting the memory per slot to 8TB-4k. As memory slots on s390/kvm must
      be a multiple of 1MB we need start a new memory region if we cross
      8TB-1M.
      
      With that (and optimistic overcommitment in the kernel) I was able to
      start a 24TB guest on a 1TB system.
      Signed-off-by: NChristian Borntraeger <borntraeger@de.ibm.com>
      Message-Id: <20171211122146.162430-1-borntraeger@de.ibm.com>
      Reviewed-by: NDavid Hildenbrand <david@redhat.com>
      [CH: 1UL -> 1ULL in KVM_MEM_MAX_NR_PAGES; build fix on 32 bit hosts]
      Signed-off-by: NCornelia Huck <cohuck@redhat.com>
      bb223055
    • D
      s390x: change the QEMU cpu model to a stripped down z12 · 35b4df64
      David Hildenbrand 提交于
      We are good enough to boot upstream Linux kernels / Fedora 26/27. That
      should be sufficient for now.
      
      As the QEMU CPU model is migration safe, let's add compatibility code.
      Generate the feature list to reduce the chance of messing things up in the
      future.
      Signed-off-by: NDavid Hildenbrand <david@redhat.com>
      Message-Id: <20171208165529.14124-1-david@redhat.com>
      [CH: squashed 's390x/cpumodel: make qemu cpu model play with "none" machine'
      (20171213132407.5227-1-david@redhat.com) and 's390x/tcg: don't include z13
      features in the qemu model' (20171213171512.17601-1-david@redhat.com) into
      patch]
      Signed-off-by: NCornelia Huck <cohuck@redhat.com>
      35b4df64
    • H
      s390x: deprecate s390-squash-mcss machine prop · d69969e5
      Halil Pasic 提交于
      With the cssids unrestricted (commit "s390x/css: unrestrict cssids") the
      s390-squash-mcss machine property should not be used.  Actually Libvirt
      never supported this, so the expectation is that removing it should be
      pretty painless.  But let's play nice and deprecate it first.
      Signed-off-by: NHalil Pasic <pasic@linux.vnet.ibm.com>
      Message-Id: <20171206144438.28908-3-pasic@linux.vnet.ibm.com>
      Signed-off-by: NCornelia Huck <cohuck@redhat.com>
      d69969e5
    • H
      s390x/css: unrestrict cssids · 99577c49
      Halil Pasic 提交于
      The default css 0xfe is currently restricted to virtual subchannel
      devices. The hope when the decision was made was, that non-virtual
      subchannel devices will come around when guest can exploit multiple
      channel subsystems. Since the guests generally don't do, the pain
      of the partitioned (cssid) namespace outweighs the gain.
      
      Let us remove the corresponding restrictions (virtual devices
      can be put only in 0xfe and non-virtual devices in any css except
      the 0xfe -- while s390-squash-mcss then remaps everything to cssid 0).
      
      At the same time, change our schema for generating css bus ids to put
      both virtual and non-virtual devices into the default css (spilling over
      into other css images, if needed). The intention is to deprecate
      s390-squash-mcss. With this change devices without a specified devno
      won't end up hidden to guests not supporting multiple channel subsystems,
      unless this can not be avoided (default css full).
      
      Let us also advertise the changes to the management software (so it can
      tell are cssids unrestricted or restricted).
      
      The adverse effect of getting rid of the restriction on migration should
      not be too severe.  Vfio-ccw devices are not live-migratable yet, and for
      virtual devices using the extra freedom would only make sense with the
      aforementioned guest support in place.
      
      The auto-generated bus ids are affected by both changes. We hope to not
      encounter any auto-generated bus ids in production as Libvirt is always
      explicit about the bus id.  Since 8ed179c9 ("s390x/css: catch section
      mismatch on load", 2017-05-18) the worst that can happen because the same
      device ended up having a different bus id is a cleanly failed migration.
      I find it hard to reason about the impact of changed auto-generated bus
      ids on migration for command line users as I don't know which rules is
      such an user supposed to follow.
      
      Another pain-point is down- or upgrade of QEMU for command line users.
      The old way and the new way of doing vfio-ccw are mutually incompatible.
      Libvirt is only going to support the new way, so for libvirt users, the
      possible problems at QEMU downgrade are the following. If a domain
      contains virtual devices placed into a css different than 0xfe the domain
      will refuse to start with a QEMU not having this patch. Putting devices
      into a css different that 0xfe however won't make much sense in the near
      future (guest support). Libvirt will refuse to do vfio-ccw with a QEMU
      not having this patch. This is business as usual.
      Signed-off-by: NHalil Pasic <pasic@linux.vnet.ibm.com>
      Acked-by: NChristian Borntraeger <borntraeger@de.ibm.com>
      Reviewed-by: NDong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
      Message-Id: <20171206144438.28908-2-pasic@linux.vnet.ibm.com>
      Signed-off-by: NCornelia Huck <cohuck@redhat.com>
      99577c49
    • C
  7. 30 10月, 2017 1 次提交
    • C
      s390x/kvm: use cpu model for gscb on compat machines · 0280b3eb
      Christian Borntraeger 提交于
      Starting a guest with
         <os>
          <type arch='s390x' machine='s390-ccw-virtio-2.9'>hvm</type>
        </os>
        <cpu mode='host-model'/>
      
      on an IBM z14 results in
      
      "qemu-system-s390x: Some features requested in the CPU model are not
      available in the configuration: gs"
      
      This is because guarded storage is fenced for compat machines that did
      not have guarded storage support. While this prevents future migration
      abort (by not starting the guest at all), not being able to start a
      "host-model" guest is very much unexpected.  As it turns out, even if we
      would modify libvirt to not expand the cpu model to contain "gs" for
      compat machines, it cannot guarantee that a migration will succeed. For
      example if the kernel changes its features (or the user has nested=1 on
      one host but not on the other) the migration will fail nevertheless.  So
      instead of fencing "gs" for machines <= 2.9 lets allow it for all
      machine types that support the CPU model. This will make "host-model"
      runnable all the time, while relying on the CPU model to reject invalid
      migration attempts. We also need to change the migration for guarded
      storage.
      Additional discussions about host-model are still pending but are out
      of scope of this patch.
      Suggested-by: NDavid Hildenbrand <david@redhat.com>
      Signed-off-by: NChristian Borntraeger <borntraeger@de.ibm.com>
      Acked-by: NDavid Hildenbrand <david@redhat.com>
      Acked-by: NCornelia Huck &lt;Cornelia Huck <cohuck@redhat.com>
      Acked-by: NHalil Pasic <pasic@linux.vnet.ibm.com>
      0280b3eb
  8. 20 10月, 2017 4 次提交
  9. 06 10月, 2017 6 次提交
  10. 20 9月, 2017 8 次提交
  11. 31 8月, 2017 6 次提交
  12. 21 7月, 2017 1 次提交