search for: summary_indicator

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 ++++