Displaying 20 results from an estimated 43 matches for "is_thinint".
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 Jul 09
3
[RFC PATCH v2 0/2] KVM: s390: virtio-ccw adapter interrupts.
Hi,
next version of the guest exploitation of virtio-ccw adapter interrupts.
Changes from the last version:
- adapt to latest kvm-next
- changed housekeeping for indicator locations: we now use cacheline-sized
and aligned areas
- minor tweaks
Cornelia Huck (2):
KVM: s390: virtio-ccw: Handle command rejects.
KVM: s390: virtio-ccw adapter interrupt support.
arch/s390/include/asm/irq.h
2013 Jul 09
3
[RFC PATCH v2 0/2] KVM: s390: virtio-ccw adapter interrupts.
Hi,
next version of the guest exploitation of virtio-ccw adapter interrupts.
Changes from the last version:
- adapt to latest kvm-next
- changed housekeeping for indicator locations: we now use cacheline-sized
and aligned areas
- minor tweaks
Cornelia Huck (2):
KVM: s390: virtio-ccw: Handle command rejects.
KVM: s390: virtio-ccw adapter interrupt support.
arch/s390/include/asm/irq.h
2019 Apr 26
0
[PATCH 08/10] virtio/s390: add indirection to indicators access
...f(&vcdev->indicators);
+ ccw->count = sizeof(indicators(vcdev));
ccw->cda = (__u32)(unsigned long) indicatorp;
}
/* Deregister indicators from host. */
- vcdev->indicators = 0;
+ *indicators(vcdev) = 0;
ccw->flags = 0;
ret = ccw_io_helper(vcdev, ccw,
vcdev->is_thinint ?
@@ -656,10 +666,10 @@ static int virtio_ccw_find_vqs(struct virtio_device *vdev, unsigned nvqs,
* We need a data area under 2G to communicate. Our payload is
* the address of the indicators.
*/
- indicatorp = kmalloc(sizeof(&vcdev->indicators), GFP_DMA | GFP_KERNEL);
+ indicatorp =...
2019 Apr 10
0
[RFC PATCH 07/12] virtio/s390: use DMA memory for ccw I/O
...int ret;
> unsigned long *indicatorp = NULL;
> - struct virtio_thinint_area *thinint_area = NULL;
> + vc_dma_decl_struct(virtio_thinint_area, thinint_area) = NULL;
> + dma_addr_t indicatorp_dma_addr;
> struct airq_info *airq_info = vcdev->airq_info;
>
> if (vcdev->is_thinint) {
> - thinint_area = kzalloc(sizeof(*thinint_area),
> - GFP_DMA | GFP_KERNEL);
> + vc_dma_alloc_struct(&vcdev->vdev, thinint_area);
> if (!thinint_area)
> return;
> thinint_area->summary_indicator =
> @@ -338,8 +363,9 @@ static void virtio_ccw_d...
2019 May 23
0
[PATCH v2 6/8] virtio/s390: add indirection to indicators access
...f(&vcdev->indicators);
+ ccw->count = sizeof(indicators(vcdev));
ccw->cda = (__u32)(unsigned long) indicatorp;
}
/* Deregister indicators from host. */
- vcdev->indicators = 0;
+ *indicators(vcdev) = 0;
ccw->flags = 0;
ret = ccw_io_helper(vcdev, ccw,
vcdev->is_thinint ?
@@ -657,10 +667,10 @@ static int virtio_ccw_find_vqs(struct virtio_device *vdev, unsigned nvqs,
* We need a data area under 2G to communicate. Our payload is
* the address of the indicators.
*/
- indicatorp = kmalloc(sizeof(&vcdev->indicators), GFP_DMA | GFP_KERNEL);
+ indicatorp =...
2019 Jun 12
0
[PATCH v5 6/8] virtio/s390: add indirection to indicators access
...f(&vcdev->indicators);
+ ccw->count = sizeof(indicators(vcdev));
ccw->cda = (__u32)(unsigned long) indicatorp;
}
/* Deregister indicators from host. */
- vcdev->indicators = 0;
+ *indicators(vcdev) = 0;
ccw->flags = 0;
ret = ccw_io_helper(vcdev, ccw,
vcdev->is_thinint ?
@@ -657,10 +667,10 @@ static int virtio_ccw_find_vqs(struct virtio_device *vdev, unsigned nvqs,
* We need a data area under 2G to communicate. Our payload is
* the address of the indicators.
*/
- indicatorp = kmalloc(sizeof(&vcdev->indicators), GFP_DMA | GFP_KERNEL);
+ indicatorp =...
2019 May 29
0
[PATCH v3 6/8] virtio/s390: add indirection to indicators access
...f(&vcdev->indicators);
+ ccw->count = sizeof(indicators(vcdev));
ccw->cda = (__u32)(unsigned long) indicatorp;
}
/* Deregister indicators from host. */
- vcdev->indicators = 0;
+ *indicators(vcdev) = 0;
ccw->flags = 0;
ret = ccw_io_helper(vcdev, ccw,
vcdev->is_thinint ?
@@ -657,10 +667,10 @@ static int virtio_ccw_find_vqs(struct virtio_device *vdev, unsigned nvqs,
* We need a data area under 2G to communicate. Our payload is
* the address of the indicators.
*/
- indicatorp = kmalloc(sizeof(&vcdev->indicators), GFP_DMA | GFP_KERNEL);
+ indicatorp =...
2019 May 27
2
[PATCH v2 6/8] virtio/s390: add indirection to indicators access
...torp;
> }
> /* Deregister indicators from host. */
> - vcdev->indicators = 0;
> + *indicators(vcdev) = 0;
I'm not too hot about this notation, but it's not wrong and a minor
thing :)
> ccw->flags = 0;
> ret = ccw_io_helper(vcdev, ccw,
> vcdev->is_thinint ?
Patch looks reasonable and not dependent on the other patches here.
2019 May 27
2
[PATCH v2 6/8] virtio/s390: add indirection to indicators access
...torp;
> }
> /* Deregister indicators from host. */
> - vcdev->indicators = 0;
> + *indicators(vcdev) = 0;
I'm not too hot about this notation, but it's not wrong and a minor
thing :)
> ccw->flags = 0;
> ret = ccw_io_helper(vcdev, ccw,
> vcdev->is_thinint ?
Patch looks reasonable and not dependent on the other patches here.
2019 Jan 04
0
[RFC PATCH 1/1] s390/virtio: handle find on invalid queue gracefully
...[i] = NULL;
> goto out;
> }
> }
> [..]
> if (vcdev->is_thinint) {
> ret = virtio_ccw_register_adapter_ind(vcdev, vqs, nvqs, ccw);
> if (ret)
> /* no error, just fall back to legacy interrupt...
2019 May 08
2
[PATCH 08/10] virtio/s390: add indirection to indicators access
......
may be just sizeof(long)
> ccw->cda = (__u32)(unsigned long) indicatorp;
> }
> /* Deregister indicators from host. */
> - vcdev->indicators = 0;
> + *indicators(vcdev) = 0;
> ccw->flags = 0;
> ret = ccw_io_helper(vcdev, ccw,
> vcdev->is_thinint ?
> @@ -656,10 +666,10 @@ static int virtio_ccw_find_vqs(struct virtio_device *vdev, unsigned nvqs,
> * We need a data area under 2G to communicate. Our payload is
> * the address of the indicators.
> */
> - indicatorp = kmalloc(sizeof(&vcdev->indicators), GFP_DMA |...
2019 May 08
2
[PATCH 08/10] virtio/s390: add indirection to indicators access
......
may be just sizeof(long)
> ccw->cda = (__u32)(unsigned long) indicatorp;
> }
> /* Deregister indicators from host. */
> - vcdev->indicators = 0;
> + *indicators(vcdev) = 0;
> ccw->flags = 0;
> ret = ccw_io_helper(vcdev, ccw,
> vcdev->is_thinint ?
> @@ -656,10 +666,10 @@ static int virtio_ccw_find_vqs(struct virtio_device *vdev, unsigned nvqs,
> * We need a data area under 2G to communicate. Our payload is
> * the address of the indicators.
> */
> - indicatorp = kmalloc(sizeof(&vcdev->indicators), GFP_DMA |...
2019 Jun 03
2
[PATCH v3 7/8] virtio/s390: use DMA memory for ccw I/O and classic notifiers
...static void drop_airq_indicator(struct virtqueue *vq, struct airq_info *info)
> {
> unsigned long i, flags;
> @@ -336,8 +356,7 @@ static void virtio_ccw_drop_indicator(struct virtio_ccw_device *vcdev,
> struct airq_info *airq_info = vcdev->airq_info;
>
> if (vcdev->is_thinint) {
> - thinint_area = kzalloc(sizeof(*thinint_area),
> - GFP_DMA | GFP_KERNEL);
> + vc_dma_alloc_struct(&vcdev->vdev, thinint_area);
Last time I wrote:
"Any reason why this takes a detour via the virtio device? The ccw
device is already referenced in vcdev, isn...
2019 Jun 03
2
[PATCH v3 7/8] virtio/s390: use DMA memory for ccw I/O and classic notifiers
...static void drop_airq_indicator(struct virtqueue *vq, struct airq_info *info)
> {
> unsigned long i, flags;
> @@ -336,8 +356,7 @@ static void virtio_ccw_drop_indicator(struct virtio_ccw_device *vcdev,
> struct airq_info *airq_info = vcdev->airq_info;
>
> if (vcdev->is_thinint) {
> - thinint_area = kzalloc(sizeof(*thinint_area),
> - GFP_DMA | GFP_KERNEL);
> + vc_dma_alloc_struct(&vcdev->vdev, thinint_area);
Last time I wrote:
"Any reason why this takes a detour via the virtio device? The ccw
device is already referenced in vcdev, isn...
2019 May 27
1
[PATCH v2 6/8] virtio/s390: add indirection to indicators access
...; >
> > I'm not too hot about this notation, but it's not wrong and a minor
> > thing :)
>
> I don't have any better ideas :/
>
> >
> > > ccw->flags = 0;
> > > ret = ccw_io_helper(vcdev, ccw,
> > > vcdev->is_thinint ?
> >
> > Patch looks reasonable and not dependent on the other patches here.
> >
>
> looks reasonable == r-b?
>
> Not dependent in a sense that this patch could be made a first patch in
> the series. A subsequent patch depends on it.
What is the plan with...
2019 May 08
2
[PATCH 09/10] virtio/s390: use DMA memory for ccw I/O and classic notifiers
...> @@ -58,24 +64,22 @@ struct virtio_ccw_device {
> spinlock_t lock;
> struct mutex io_lock; /* Serializes I/O requests */
> struct list_head virtqueues;
> - unsigned long indicators;
> - unsigned long indicators2;
> - struct vq_config_block *config_block;
> bool is_thinint;
> bool going_away;
> bool device_lost;
> unsigned int config_ready;
> void *airq_info;
> + struct vcdev_dma_area *dma_area;
> };
>
> static inline unsigned long *indicators(struct virtio_ccw_device *vcdev)
> {
> - return &vcdev->indicators;...
2019 May 08
2
[PATCH 09/10] virtio/s390: use DMA memory for ccw I/O and classic notifiers
...> @@ -58,24 +64,22 @@ struct virtio_ccw_device {
> spinlock_t lock;
> struct mutex io_lock; /* Serializes I/O requests */
> struct list_head virtqueues;
> - unsigned long indicators;
> - unsigned long indicators2;
> - struct vq_config_block *config_block;
> bool is_thinint;
> bool going_away;
> bool device_lost;
> unsigned int config_ready;
> void *airq_info;
> + struct vcdev_dma_area *dma_area;
> };
>
> static inline unsigned long *indicators(struct virtio_ccw_device *vcdev)
> {
> - return &vcdev->indicators;...
2019 Apr 26
0
[PATCH 09/10] virtio/s390: use DMA memory for ccw I/O and classic notifiers
...struct ccw_device *cdev;
__u32 curr_io;
@@ -58,24 +64,22 @@ struct virtio_ccw_device {
spinlock_t lock;
struct mutex io_lock; /* Serializes I/O requests */
struct list_head virtqueues;
- unsigned long indicators;
- unsigned long indicators2;
- struct vq_config_block *config_block;
bool is_thinint;
bool going_away;
bool device_lost;
unsigned int config_ready;
void *airq_info;
+ struct vcdev_dma_area *dma_area;
};
static inline unsigned long *indicators(struct virtio_ccw_device *vcdev)
{
- return &vcdev->indicators;
+ return &vcdev->dma_area->indicators;
}
st...