Displaying 20 results from an estimated 57 matches for "summary_indicator".
2019 May 08
2
[PATCH 10/10] virtio/s390: make airq summary indicators DMA
...c b/drivers/s390/virtio/virtio_ccw.c
> index 613b18001a0c..6058b07fea08 100644
> --- a/drivers/s390/virtio/virtio_ccw.c
> +++ b/drivers/s390/virtio/virtio_ccw.c
> @@ -140,11 +140,17 @@ static int virtio_ccw_use_airq = 1;
>
> struct airq_info {
> rwlock_t lock;
> - u8 summary_indicator;
> + u8 summary_indicator_idx;
> struct airq_struct airq;
> struct airq_iv *aiv;
> };
> static struct airq_info *airq_areas[MAX_AIRQ_AREAS];
> +static u8 *summary_indicators;
> +
> +static inline u8 *get_summary_indicator(struct airq_info *info)
> +{
> + retu...
2019 May 08
2
[PATCH 10/10] virtio/s390: make airq summary indicators DMA
...c b/drivers/s390/virtio/virtio_ccw.c
> index 613b18001a0c..6058b07fea08 100644
> --- a/drivers/s390/virtio/virtio_ccw.c
> +++ b/drivers/s390/virtio/virtio_ccw.c
> @@ -140,11 +140,17 @@ static int virtio_ccw_use_airq = 1;
>
> struct airq_info {
> rwlock_t lock;
> - u8 summary_indicator;
> + u8 summary_indicator_idx;
> struct airq_struct airq;
> struct airq_iv *aiv;
> };
> static struct airq_info *airq_areas[MAX_AIRQ_AREAS];
> +static u8 *summary_indicators;
> +
> +static inline u8 *get_summary_indicator(struct airq_info *info)
> +{
> + retu...
2019 Jun 06
0
[PATCH v4 8/8] virtio/s390: make airq summary indicators DMA
...iff --git a/drivers/s390/virtio/virtio_ccw.c b/drivers/s390/virtio/virtio_ccw.c
index e5e10aa54aa1..fe46079f105e 100644
--- a/drivers/s390/virtio/virtio_ccw.c
+++ b/drivers/s390/virtio/virtio_ccw.c
@@ -140,11 +140,17 @@ static int virtio_ccw_use_airq = 1;
struct airq_info {
rwlock_t lock;
- u8 summary_indicator;
+ u8 summary_indicator_idx;
struct airq_struct airq;
struct airq_iv *aiv;
};
static struct airq_info *airq_areas[MAX_AIRQ_AREAS];
+static u8 *summary_indicators;
+
+static inline u8 *get_summary_indicator(struct airq_info *info)
+{
+ return summary_indicators + info->summary_indicator_idx...
2019 Jun 12
0
[PATCH v5 8/8] virtio/s390: make airq summary indicators DMA
...iff --git a/drivers/s390/virtio/virtio_ccw.c b/drivers/s390/virtio/virtio_ccw.c
index 800252955a2f..1a55e5942d36 100644
--- a/drivers/s390/virtio/virtio_ccw.c
+++ b/drivers/s390/virtio/virtio_ccw.c
@@ -140,11 +140,17 @@ static int virtio_ccw_use_airq = 1;
struct airq_info {
rwlock_t lock;
- u8 summary_indicator;
+ u8 summary_indicator_idx;
struct airq_struct airq;
struct airq_iv *aiv;
};
static struct airq_info *airq_areas[MAX_AIRQ_AREAS];
+static u8 *summary_indicators;
+
+static inline u8 *get_summary_indicator(struct airq_info *info)
+{
+ return summary_indicators + info->summary_indicator_idx...
2019 May 29
0
[PATCH v3 8/8] virtio/s390: make airq summary indicators DMA
...iff --git a/drivers/s390/virtio/virtio_ccw.c b/drivers/s390/virtio/virtio_ccw.c
index 03c9f7001fb1..efebd6dcd124 100644
--- a/drivers/s390/virtio/virtio_ccw.c
+++ b/drivers/s390/virtio/virtio_ccw.c
@@ -140,11 +140,17 @@ static int virtio_ccw_use_airq = 1;
struct airq_info {
rwlock_t lock;
- u8 summary_indicator;
+ u8 summary_indicator_idx;
struct airq_struct airq;
struct airq_iv *aiv;
};
static struct airq_info *airq_areas[MAX_AIRQ_AREAS];
+static u8 *summary_indicators;
+
+static inline u8 *get_summary_indicator(struct airq_info *info)
+{
+ return summary_indicators + info->summary_indicator_idx...
2019 Apr 26
0
[PATCH 10/10] virtio/s390: make airq summary indicators DMA
...iff --git a/drivers/s390/virtio/virtio_ccw.c b/drivers/s390/virtio/virtio_ccw.c
index 613b18001a0c..6058b07fea08 100644
--- a/drivers/s390/virtio/virtio_ccw.c
+++ b/drivers/s390/virtio/virtio_ccw.c
@@ -140,11 +140,17 @@ static int virtio_ccw_use_airq = 1;
struct airq_info {
rwlock_t lock;
- u8 summary_indicator;
+ u8 summary_indicator_idx;
struct airq_struct airq;
struct airq_iv *aiv;
};
static struct airq_info *airq_areas[MAX_AIRQ_AREAS];
+static u8 *summary_indicators;
+
+static inline u8 *get_summary_indicator(struct airq_info *info)
+{
+ return summary_indicators + info->summary_indicator_idx...
2019 May 23
0
[PATCH v2 8/8] virtio/s390: make airq summary indicators DMA
...iff --git a/drivers/s390/virtio/virtio_ccw.c b/drivers/s390/virtio/virtio_ccw.c
index 03c9f7001fb1..f666ed397dc0 100644
--- a/drivers/s390/virtio/virtio_ccw.c
+++ b/drivers/s390/virtio/virtio_ccw.c
@@ -140,11 +140,17 @@ static int virtio_ccw_use_airq = 1;
struct airq_info {
rwlock_t lock;
- u8 summary_indicator;
+ u8 summary_indicator_idx;
struct airq_struct airq;
struct airq_iv *aiv;
};
static struct airq_info *airq_areas[MAX_AIRQ_AREAS];
+static u8 *summary_indicators;
+
+static inline u8 *get_summary_indicator(struct airq_info *info)
+{
+ return summary_indicators + info->summary_indicator_idx...
2019 May 15
0
[PATCH 10/10] virtio/s390: make airq summary indicators DMA
...rtio_ccw.c
>> index 613b18001a0c..6058b07fea08 100644
>> --- a/drivers/s390/virtio/virtio_ccw.c
>> +++ b/drivers/s390/virtio/virtio_ccw.c
>> @@ -140,11 +140,17 @@ static int virtio_ccw_use_airq = 1;
>> ? struct airq_info {
>> ????? rwlock_t lock;
>> -??? u8 summary_indicator;
>> +??? u8 summary_indicator_idx;
>> ????? struct airq_struct airq;
>> ????? struct airq_iv *aiv;
>> ? };
>> ? static struct airq_info *airq_areas[MAX_AIRQ_AREAS];
>> +static u8 *summary_indicators;
>> +
>> +static inline u8 *get_summary_indicator(st...
2019 May 27
3
[PATCH v2 8/8] virtio/s390: make airq summary indicators DMA
...> drivers/s390/virtio/virtio_ccw.c | 22 +++++++++++++++-------
> 1 file changed, 15 insertions(+), 7 deletions(-)
(...)
> @@ -1501,6 +1508,7 @@ static int __init virtio_ccw_init(void)
> {
> /* parse no_auto string before we do anything further */
> no_auto_parse();
> + summary_indicators = cio_dma_zalloc(MAX_AIRQ_AREAS);
What happens if this fails?
> return ccw_driver_register(&virtio_ccw_driver);
> }
> device_initcall(virtio_ccw_init);
2019 May 27
3
[PATCH v2 8/8] virtio/s390: make airq summary indicators DMA
...> drivers/s390/virtio/virtio_ccw.c | 22 +++++++++++++++-------
> 1 file changed, 15 insertions(+), 7 deletions(-)
(...)
> @@ -1501,6 +1508,7 @@ static int __init virtio_ccw_init(void)
> {
> /* parse no_auto string before we do anything further */
> no_auto_parse();
> + summary_indicators = cio_dma_zalloc(MAX_AIRQ_AREAS);
What happens if this fails?
> return ccw_driver_register(&virtio_ccw_driver);
> }
> device_initcall(virtio_ccw_init);
2019 Jun 03
1
[PATCH v3 8/8] virtio/s390: make airq summary indicators DMA
...s/s390/virtio/virtio_ccw.c | 26 +++++++++++++++++++-------
> 1 file changed, 19 insertions(+), 7 deletions(-)
(...)
> @@ -1501,6 +1508,11 @@ static int __init virtio_ccw_init(void)
> {
> /* parse no_auto string before we do anything further */
> no_auto_parse();
> +
> + summary_indicators = cio_dma_zalloc(MAX_AIRQ_AREAS);
> + if (!summary_indicators)
> + return -ENOMEM;
> +
> return ccw_driver_register(&virtio_ccw_driver);
Don't you need to free summary_indicators again if registering the
driver fails?
> }
> device_initcall(virtio_ccw_init);
2013 Jun 07
0
[PATCH RFC] s390/virtio-ccw: Adapter interrupt support.
...diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c
index 44f5772..ccebd11 100644
--- a/hw/s390x/virtio-ccw.c
+++ b/hw/s390x/virtio-ccw.c
@@ -101,6 +101,13 @@ typedef struct VirtioFeatDesc {
uint8_t index;
} QEMU_PACKED VirtioFeatDesc;
+typedef struct VirtioThinintInfo {
+ hwaddr summary_indicator;
+ hwaddr device_indicator;
+ uint16_t ind_shift;
+ uint8_t isc;
+} QEMU_PACKED VirtioThinintInfo;
+
/* Specify where the virtqueues for the subchannel are in guest memory. */
static int virtio_ccw_set_vqs(SubchDev *sch, uint64_t addr, uint32_t align,
uint1...
2013 Jul 09
0
[RFC PATCH v2] s390/virtio-ccw: Adapter interrupt support.
...diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c
index e744957..846e288 100644
--- a/hw/s390x/virtio-ccw.c
+++ b/hw/s390x/virtio-ccw.c
@@ -184,6 +184,13 @@ typedef struct VirtioFeatDesc {
uint8_t index;
} QEMU_PACKED VirtioFeatDesc;
+typedef struct VirtioThinintInfo {
+ hwaddr summary_indicator;
+ hwaddr device_indicator;
+ uint16_t ind_shift;
+ uint8_t isc;
+} QEMU_PACKED VirtioThinintInfo;
+
/* Specify where the virtqueues for the subchannel are in guest memory. */
static int virtio_ccw_set_vqs(SubchDev *sch, uint64_t addr, uint32_t align,
uint1...
2013 Jun 07
2
[PATCH RFC 0/2] KVM: s390: virtio-ccw adapter interrupts.
Hi,
here's the guest driver support for adapter interrupts in virtio-ccw.
We use one summary indicator per page of indicators. For each device,
we try to find a space in an indicator where all of its virtqueues fit.
Locking probably needs some more love, but it seems to work fine so far.
Cornelia Huck (2):
KVM: s390: virtio-ccw: Handle command rejects.
KVM: s390: virtio-ccw adapter
2013 Jun 07
2
[PATCH RFC 0/2] KVM: s390: virtio-ccw adapter interrupts.
Hi,
here's the guest driver support for adapter interrupts in virtio-ccw.
We use one summary indicator per page of indicators. For each device,
we try to find a space in an indicator where all of its virtqueues fit.
Locking probably needs some more love, but it seems to work fine so far.
Cornelia Huck (2):
KVM: s390: virtio-ccw: Handle command rejects.
KVM: s390: virtio-ccw adapter
2013 Jun 07
1
[PATCH RFC] qemu: Adapter interrupts for virtio-ccw.
Hi,
here's the qemu patch that implements the new adapter indicators ccw
in virtio-ccw and injects adapter interrupts for the devices enabled
for it.
Cornelia Huck (1):
s390/virtio-ccw: Adapter interrupt support.
hw/s390x/css.c | 10 ++++++++
hw/s390x/css.h | 2 ++
hw/s390x/virtio-ccw.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++++-
hw/s390x/virtio-ccw.h |
2013 Jun 07
1
[PATCH RFC] qemu: Adapter interrupts for virtio-ccw.
Hi,
here's the qemu patch that implements the new adapter indicators ccw
in virtio-ccw and injects adapter interrupts for the devices enabled
for it.
Cornelia Huck (1):
s390/virtio-ccw: Adapter interrupt support.
hw/s390x/css.c | 10 ++++++++
hw/s390x/css.h | 2 ++
hw/s390x/virtio-ccw.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++++-
hw/s390x/virtio-ccw.h |
2019 Jul 23
3
[PATCH 1/1] virtio/s390: fix race on airq_areas
...rrupts got
introduced to virtio-ccw, but since commit 39c7dcb15892 ("virtio/s390:
make airq summary indicators DMA") this became an issue in practice as
well. Namely before that commit the airq_info that got overwritten was
still functional. After that commit however the two infos share a
summary_indicator, which aggravates the situation. Which means
auto-online mechanism occasionally hangs the boot with virtio_blk.
Signed-off-by: Halil Pasic <pasic at linux.ibm.com>
Reported-by: Marc Hartmayer <mhartmay at linux.ibm.com>
Fixes: 96b14536d935 ("virtio-ccw: virtio-ccw adapter interrup...
2019 Jul 23
3
[PATCH 1/1] virtio/s390: fix race on airq_areas
...rrupts got
introduced to virtio-ccw, but since commit 39c7dcb15892 ("virtio/s390:
make airq summary indicators DMA") this became an issue in practice as
well. Namely before that commit the airq_info that got overwritten was
still functional. After that commit however the two infos share a
summary_indicator, which aggravates the situation. Which means
auto-online mechanism occasionally hangs the boot with virtio_blk.
Signed-off-by: Halil Pasic <pasic at linux.ibm.com>
Reported-by: Marc Hartmayer <mhartmay at linux.ibm.com>
Fixes: 96b14536d935 ("virtio-ccw: virtio-ccw adapter interrup...
2013 Jul 09
2
[RFC PATCH v2] qemu: Adapter interrupts for virtio-ccw.
Hi,
here's the current implementation of virtio-ccw adapter interrupts in qemu.
Code is unchanged, only rebased against current master.
Cornelia Huck (1):
s390/virtio-ccw: Adapter interrupt support.
hw/s390x/css.c | 10 ++++++++
hw/s390x/css.h | 2 ++
hw/s390x/virtio-ccw.c | 64 ++++++++++++++++++++++++++++++++++++++++++++++++-
hw/s390x/virtio-ccw.h | 4 ++++