All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH for-2.5 0/4] s390x fixes for 2.5-rc3
@ 2015-11-27 10:07 Cornelia Huck
  2015-11-27 10:07 ` [Qemu-devel] [PATCH for-2.5 1/4] pc-bios/s390-ccw: build for z900 Cornelia Huck
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Cornelia Huck @ 2015-11-27 10:07 UTC (permalink / raw)
  To: qemu-devel; +Cc: Cornelia Huck, borntraeger, jfrei, agraf

Last round of s390x fixes for 2.5:
- The bios should be built for the first z machine, so that newer
  instructions don't creep in.
- Silence annoying message when running make check.
- Fix a problem with the pci iommu exposed by recent changes.

Christian Borntraeger (1):
  pc-bios/s390-ccw: build for z900

Cornelia Huck (2):
  pc-bios/s390-ccw: rebuild image
  s390x: no deprecation warning while testing

Yi Min Zhao (1):
  s390x/pci: fix up IOMMU size

 hw/s390x/s390-pci-bus.c   |  26 ++++++++++++++++++++++----
 hw/s390x/s390-pci-bus.h   |   2 ++
 hw/s390x/s390-pci-inst.c  |   7 ++++++-
 hw/s390x/s390-virtio.c    |   9 ++++++---
 pc-bios/s390-ccw.img      | Bin 17760 -> 17760 bytes
 pc-bios/s390-ccw/Makefile |   2 +-
 6 files changed, 37 insertions(+), 9 deletions(-)

-- 
2.6.3

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Qemu-devel] [PATCH for-2.5 1/4] pc-bios/s390-ccw: build for z900
  2015-11-27 10:07 [Qemu-devel] [PATCH for-2.5 0/4] s390x fixes for 2.5-rc3 Cornelia Huck
@ 2015-11-27 10:07 ` Cornelia Huck
  2015-11-27 10:07 ` [Qemu-devel] [PATCH for-2.5 2/4] pc-bios/s390-ccw: rebuild image Cornelia Huck
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 7+ messages in thread
From: Cornelia Huck @ 2015-11-27 10:07 UTC (permalink / raw)
  To: qemu-devel; +Cc: Cornelia Huck, borntraeger, jfrei, agraf

From: Christian Borntraeger <borntraeger@de.ibm.com>

Newer distributions have an architecture level set to z9, z196
or similar - also as default option for the compiler.

We should build the bios for z900 to allow it to run with
all 64bit CPUs. This will become more important as soon as
QEMU/KVM does support CPU models.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Reviewed-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
Reviewed-By: Sascha Silbe <silbe@linux.vnet.ibm.com>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
---
 pc-bios/s390-ccw/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pc-bios/s390-ccw/Makefile b/pc-bios/s390-ccw/Makefile
index 15e4232..11c5dd4 100644
--- a/pc-bios/s390-ccw/Makefile
+++ b/pc-bios/s390-ccw/Makefile
@@ -10,7 +10,7 @@ $(call set-vpath, $(SRC_PATH)/pc-bios/s390-ccw)
 .PHONY : all clean build-all
 
 OBJECTS = start.o main.o bootmap.o sclp-ascii.o virtio.o
-CFLAGS += -fPIE -fno-stack-protector -ffreestanding
+CFLAGS += -fPIE -fno-stack-protector -ffreestanding -march=z900
 CFLAGS += -fno-delete-null-pointer-checks -msoft-float
 LDFLAGS += -Wl,-pie -nostdlib
 
-- 
2.6.3

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Qemu-devel] [PATCH for-2.5 2/4] pc-bios/s390-ccw: rebuild image
  2015-11-27 10:07 [Qemu-devel] [PATCH for-2.5 0/4] s390x fixes for 2.5-rc3 Cornelia Huck
  2015-11-27 10:07 ` [Qemu-devel] [PATCH for-2.5 1/4] pc-bios/s390-ccw: build for z900 Cornelia Huck
@ 2015-11-27 10:07 ` Cornelia Huck
  2015-11-27 10:07 ` [Qemu-devel] [PATCH for-2.5 3/4] s390x: no deprecation warning while testing Cornelia Huck
  2015-11-27 10:07 ` [Qemu-devel] [PATCH for-2.5 4/4] s390x/pci: fix up IOMMU size Cornelia Huck
  3 siblings, 0 replies; 7+ messages in thread
From: Cornelia Huck @ 2015-11-27 10:07 UTC (permalink / raw)
  To: qemu-devel; +Cc: Cornelia Huck, borntraeger, jfrei, agraf

Contains:
- pc-bios/s390-ccw: build for z900

Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
---
 pc-bios/s390-ccw.img | Bin 17760 -> 17760 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/pc-bios/s390-ccw.img b/pc-bios/s390-ccw.img
index e0d9452945668fa74402c2caf942fc6eec1a9701..bd8f21050fd7c396eb0e37213d284fe557caa01e 100644
GIT binary patch
literal 17760
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
Zv+%j)j}^Z>m-6_k%|Ukxkh>N={TG%vUitt4

literal 17760
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
aKAs>BpXvB##qS6-Pnij5A2DFbqyGtKI58~%

-- 
2.6.3

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Qemu-devel] [PATCH for-2.5 3/4] s390x: no deprecation warning while testing
  2015-11-27 10:07 [Qemu-devel] [PATCH for-2.5 0/4] s390x fixes for 2.5-rc3 Cornelia Huck
  2015-11-27 10:07 ` [Qemu-devel] [PATCH for-2.5 1/4] pc-bios/s390-ccw: build for z900 Cornelia Huck
  2015-11-27 10:07 ` [Qemu-devel] [PATCH for-2.5 2/4] pc-bios/s390-ccw: rebuild image Cornelia Huck
@ 2015-11-27 10:07 ` Cornelia Huck
  2015-11-27 11:11   ` Christian Borntraeger
  2015-11-30 11:49   ` Michael S. Tsirkin
  2015-11-27 10:07 ` [Qemu-devel] [PATCH for-2.5 4/4] s390x/pci: fix up IOMMU size Cornelia Huck
  3 siblings, 2 replies; 7+ messages in thread
From: Cornelia Huck @ 2015-11-27 10:07 UTC (permalink / raw)
  To: qemu-devel; +Cc: Cornelia Huck, borntraeger, jfrei, agraf

'make check' tries to start all available machines; the deprecation
message for the s390-virtio machine is both useless and annoying
there. Silence it while testing.

Reported-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
---
 hw/s390x/s390-virtio.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/hw/s390x/s390-virtio.c b/hw/s390x/s390-virtio.c
index 51dc0a8..ae55760 100644
--- a/hw/s390x/s390-virtio.c
+++ b/hw/s390x/s390-virtio.c
@@ -33,6 +33,7 @@
 #include "hw/virtio/virtio.h"
 #include "sysemu/kvm.h"
 #include "exec/address-spaces.h"
+#include "sysemu/qtest.h"
 
 #include "hw/s390x/s390-virtio-bus.h"
 #include "hw/s390x/sclp.h"
@@ -268,9 +269,11 @@ static void s390_init(MachineState *machine)
     hwaddr virtio_region_len;
     hwaddr virtio_region_start;
 
-    error_printf("WARNING\n"
-                 "The s390-virtio machine (non-ccw) is deprecated.\n"
-                 "It will be removed in 2.6. Please use s390-ccw-virtio\n");
+    if (!qtest_enabled()) {
+        error_printf("WARNING\n"
+                     "The s390-virtio machine (non-ccw) is deprecated.\n"
+                     "It will be removed in 2.6. Please use s390-ccw-virtio\n");
+    }
 
     if (machine->ram_slots) {
         error_report("Memory hotplug not supported by the selected machine.");
-- 
2.6.3

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Qemu-devel] [PATCH for-2.5 4/4] s390x/pci: fix up IOMMU size
  2015-11-27 10:07 [Qemu-devel] [PATCH for-2.5 0/4] s390x fixes for 2.5-rc3 Cornelia Huck
                   ` (2 preceding siblings ...)
  2015-11-27 10:07 ` [Qemu-devel] [PATCH for-2.5 3/4] s390x: no deprecation warning while testing Cornelia Huck
@ 2015-11-27 10:07 ` Cornelia Huck
  3 siblings, 0 replies; 7+ messages in thread
From: Cornelia Huck @ 2015-11-27 10:07 UTC (permalink / raw)
  To: qemu-devel; +Cc: Cornelia Huck, borntraeger, jfrei, Yi Min Zhao, agraf

From: Yi Min Zhao <zyimin@linux.vnet.ibm.com>

Present code uses @size==UINT64_MAX to initialize IOMMU. It infers that it
can map any 64-bit IOVA whatsoever. But in fact, the largest DMA range for
each PCI Device on s390x is from ZPCI_SDMA_ADDR to ZPCI_EDMA_ADDR. The largest
value is returned from hardware, which is to indicate the largest range
hardware can support. But the real IOMMU size for specific PCI Device is
obtained once qemu intercepts mpcifc instruction that guest is requesting a
DMA range for that PCI Device. Therefore, before intercepting mpcifc instruction,
qemu cannot be aware of the size of IOMMU region that guest will use.

Moreover, iommu replay during device initialization for the whole region in
4k steps takes a very long time.

In conclusion, this patch intializes IOMMU region for each PCI Device when
intercept mpcifc instruction which is to register DMA range for the PCI Device.
And then, destroy IOMMU region when guest wants to deregister IOAT.

Signed-off-by: Yi Min Zhao <zyimin@linux.vnet.ibm.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
---
 hw/s390x/s390-pci-bus.c  | 26 ++++++++++++++++++++++----
 hw/s390x/s390-pci-bus.h  |  2 ++
 hw/s390x/s390-pci-inst.c |  7 ++++++-
 3 files changed, 30 insertions(+), 5 deletions(-)

diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c
index d5712ae..98c726c 100644
--- a/hw/s390x/s390-pci-bus.c
+++ b/hw/s390x/s390-pci-bus.c
@@ -308,7 +308,7 @@ static IOMMUTLBEntry s390_translate_iommu(MemoryRegion *iommu, hwaddr addr,
 {
     uint64_t pte;
     uint32_t flags;
-    S390PCIBusDevice *pbdev = container_of(iommu, S390PCIBusDevice, mr);
+    S390PCIBusDevice *pbdev = container_of(iommu, S390PCIBusDevice, iommu_mr);
     S390pciState *s;
     IOMMUTLBEntry ret = {
         .target_as = &address_space_memory,
@@ -454,14 +454,32 @@ static const MemoryRegionOps s390_msi_ctrl_ops = {
     .endianness = DEVICE_LITTLE_ENDIAN,
 };
 
+void s390_pcihost_iommu_configure(S390PCIBusDevice *pbdev, bool enable)
+{
+    pbdev->configured = false;
+
+    if (enable) {
+        uint64_t size = pbdev->pal - pbdev->pba + 1;
+        memory_region_init_iommu(&pbdev->iommu_mr, OBJECT(&pbdev->mr),
+                                 &s390_iommu_ops, "iommu-s390", size);
+        memory_region_add_subregion(&pbdev->mr, pbdev->pba, &pbdev->iommu_mr);
+    } else {
+        memory_region_del_subregion(&pbdev->mr, &pbdev->iommu_mr);
+    }
+
+    pbdev->configured = true;
+}
+
 static void s390_pcihost_init_as(S390pciState *s)
 {
     int i;
+    S390PCIBusDevice *pbdev;
 
     for (i = 0; i < PCI_SLOT_MAX; i++) {
-        memory_region_init_iommu(&s->pbdev[i].mr, OBJECT(s),
-                                 &s390_iommu_ops, "iommu-s390", UINT64_MAX);
-        address_space_init(&s->pbdev[i].as, &s->pbdev[i].mr, "iommu-pci");
+        pbdev = &s->pbdev[i];
+        memory_region_init(&pbdev->mr, OBJECT(s),
+                           "iommu-root-s390", UINT64_MAX);
+        address_space_init(&pbdev->as, &pbdev->mr, "iommu-pci");
     }
 
     memory_region_init_io(&s->msix_notify_mr, OBJECT(s),
diff --git a/hw/s390x/s390-pci-bus.h b/hw/s390x/s390-pci-bus.h
index 464a92e..80345da 100644
--- a/hw/s390x/s390-pci-bus.h
+++ b/hw/s390x/s390-pci-bus.h
@@ -231,6 +231,7 @@ typedef struct S390PCIBusDevice {
     AdapterRoutes routes;
     AddressSpace as;
     MemoryRegion mr;
+    MemoryRegion iommu_mr;
 } S390PCIBusDevice;
 
 typedef struct S390pciState {
@@ -244,6 +245,7 @@ typedef struct S390pciState {
 int chsc_sei_nt2_get_event(void *res);
 int chsc_sei_nt2_have_event(void);
 void s390_pci_sclp_configure(int configure, SCCB *sccb);
+void s390_pcihost_iommu_configure(S390PCIBusDevice *pbdev, bool enable);
 S390PCIBusDevice *s390_pci_find_dev_by_idx(uint32_t idx);
 S390PCIBusDevice *s390_pci_find_dev_by_fh(uint32_t fh);
 S390PCIBusDevice *s390_pci_find_dev_by_fid(uint32_t fid);
diff --git a/hw/s390x/s390-pci-inst.c b/hw/s390x/s390-pci-inst.c
index f9151a9..8c1dc82 100644
--- a/hw/s390x/s390-pci-inst.c
+++ b/hw/s390x/s390-pci-inst.c
@@ -528,7 +528,7 @@ int rpcit_service_call(S390CPU *cpu, uint8_t r1, uint8_t r2)
         goto out;
     }
 
-    mr = pci_device_iommu_address_space(pbdev->pdev)->root;
+    mr = &pbdev->iommu_mr;
     while (start < end) {
         entry = mr->iommu_ops->translate(mr, start, 0);
 
@@ -689,6 +689,9 @@ static int reg_ioat(CPUS390XState *env, S390PCIBusDevice *pbdev, ZpciFib fib)
     pbdev->pba = pba;
     pbdev->pal = pal;
     pbdev->g_iota = g_iota;
+
+    s390_pcihost_iommu_configure(pbdev, true);
+
     return 0;
 }
 
@@ -697,6 +700,8 @@ static void dereg_ioat(S390PCIBusDevice *pbdev)
     pbdev->pba = 0;
     pbdev->pal = 0;
     pbdev->g_iota = 0;
+
+    s390_pcihost_iommu_configure(pbdev, false);
 }
 
 int mpcifc_service_call(S390CPU *cpu, uint8_t r1, uint64_t fiba, uint8_t ar)
-- 
2.6.3

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] [PATCH for-2.5 3/4] s390x: no deprecation warning while testing
  2015-11-27 10:07 ` [Qemu-devel] [PATCH for-2.5 3/4] s390x: no deprecation warning while testing Cornelia Huck
@ 2015-11-27 11:11   ` Christian Borntraeger
  2015-11-30 11:49   ` Michael S. Tsirkin
  1 sibling, 0 replies; 7+ messages in thread
From: Christian Borntraeger @ 2015-11-27 11:11 UTC (permalink / raw)
  To: Cornelia Huck, qemu-devel; +Cc: jfrei, agraf

On 11/27/2015 11:07 AM, Cornelia Huck wrote:
> 'make check' tries to start all available machines; the deprecation
> message for the s390-virtio machine is both useless and annoying
> there. Silence it while testing.
> 
> Reported-by: Michael S. Tsirkin <mst@redhat.com>
> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>

Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>

> ---
>  hw/s390x/s390-virtio.c | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/hw/s390x/s390-virtio.c b/hw/s390x/s390-virtio.c
> index 51dc0a8..ae55760 100644
> --- a/hw/s390x/s390-virtio.c
> +++ b/hw/s390x/s390-virtio.c
> @@ -33,6 +33,7 @@
>  #include "hw/virtio/virtio.h"
>  #include "sysemu/kvm.h"
>  #include "exec/address-spaces.h"
> +#include "sysemu/qtest.h"
> 
>  #include "hw/s390x/s390-virtio-bus.h"
>  #include "hw/s390x/sclp.h"
> @@ -268,9 +269,11 @@ static void s390_init(MachineState *machine)
>      hwaddr virtio_region_len;
>      hwaddr virtio_region_start;
> 
> -    error_printf("WARNING\n"
> -                 "The s390-virtio machine (non-ccw) is deprecated.\n"
> -                 "It will be removed in 2.6. Please use s390-ccw-virtio\n");
> +    if (!qtest_enabled()) {
> +        error_printf("WARNING\n"
> +                     "The s390-virtio machine (non-ccw) is deprecated.\n"
> +                     "It will be removed in 2.6. Please use s390-ccw-virtio\n");
> +    }
> 
>      if (machine->ram_slots) {
>          error_report("Memory hotplug not supported by the selected machine.");
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] [PATCH for-2.5 3/4] s390x: no deprecation warning while testing
  2015-11-27 10:07 ` [Qemu-devel] [PATCH for-2.5 3/4] s390x: no deprecation warning while testing Cornelia Huck
  2015-11-27 11:11   ` Christian Borntraeger
@ 2015-11-30 11:49   ` Michael S. Tsirkin
  1 sibling, 0 replies; 7+ messages in thread
From: Michael S. Tsirkin @ 2015-11-30 11:49 UTC (permalink / raw)
  To: Cornelia Huck; +Cc: borntraeger, jfrei, qemu-devel, agraf

On Fri, Nov 27, 2015 at 11:07:05AM +0100, Cornelia Huck wrote:
> 'make check' tries to start all available machines; the deprecation
> message for the s390-virtio machine is both useless and annoying
> there. Silence it while testing.
> 
> Reported-by: Michael S. Tsirkin <mst@redhat.com>
> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>

Acked-by: Michael S. Tsirkin <mst@redhat.com>

> ---
>  hw/s390x/s390-virtio.c | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/hw/s390x/s390-virtio.c b/hw/s390x/s390-virtio.c
> index 51dc0a8..ae55760 100644
> --- a/hw/s390x/s390-virtio.c
> +++ b/hw/s390x/s390-virtio.c
> @@ -33,6 +33,7 @@
>  #include "hw/virtio/virtio.h"
>  #include "sysemu/kvm.h"
>  #include "exec/address-spaces.h"
> +#include "sysemu/qtest.h"
>  
>  #include "hw/s390x/s390-virtio-bus.h"
>  #include "hw/s390x/sclp.h"
> @@ -268,9 +269,11 @@ static void s390_init(MachineState *machine)
>      hwaddr virtio_region_len;
>      hwaddr virtio_region_start;
>  
> -    error_printf("WARNING\n"
> -                 "The s390-virtio machine (non-ccw) is deprecated.\n"
> -                 "It will be removed in 2.6. Please use s390-ccw-virtio\n");
> +    if (!qtest_enabled()) {
> +        error_printf("WARNING\n"
> +                     "The s390-virtio machine (non-ccw) is deprecated.\n"
> +                     "It will be removed in 2.6. Please use s390-ccw-virtio\n");
> +    }
>  
>      if (machine->ram_slots) {
>          error_report("Memory hotplug not supported by the selected machine.");
> -- 
> 2.6.3
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-11-30 11:50 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-27 10:07 [Qemu-devel] [PATCH for-2.5 0/4] s390x fixes for 2.5-rc3 Cornelia Huck
2015-11-27 10:07 ` [Qemu-devel] [PATCH for-2.5 1/4] pc-bios/s390-ccw: build for z900 Cornelia Huck
2015-11-27 10:07 ` [Qemu-devel] [PATCH for-2.5 2/4] pc-bios/s390-ccw: rebuild image Cornelia Huck
2015-11-27 10:07 ` [Qemu-devel] [PATCH for-2.5 3/4] s390x: no deprecation warning while testing Cornelia Huck
2015-11-27 11:11   ` Christian Borntraeger
2015-11-30 11:49   ` Michael S. Tsirkin
2015-11-27 10:07 ` [Qemu-devel] [PATCH for-2.5 4/4] s390x/pci: fix up IOMMU size Cornelia Huck

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.