On Thu, Apr 28, 2022 at 1:55 PM Michael S. Tsirkin <mst at redhat.com> wrote:> > On Thu, Apr 28, 2022 at 01:51:59PM +0800, Jason Wang wrote: > > On Thu, Apr 28, 2022 at 1:24 PM Michael S. Tsirkin <mst at redhat.com> wrote: > > > > > > On Thu, Apr 28, 2022 at 11:04:41AM +0800, Jason Wang wrote: > > > > > But my guess is that rwlock + some testing for the legacy indicator case > > > > > just to double check if there is a heavy regression despite of our > > > > > expectations to see none should do the trick. > > > > > > > > I suggest this, rwlock (for not airq) seems better than spinlock, but > > > > at worst case it will cause cache line bouncing. But I wonder if it's > > > > noticeable (anyhow it has been used for airq). > > > > > > > > Thanks > > > > > > Which existing rwlock does airq use right now? Can we take it to sync? > > > > It's the rwlock in airq_info, it has already been used in this patch. > > > > write_lock(&info->lock); > > write_unlock(&info->lock); > > > > But the problem is, it looks to me there could be a case that airq is > > not used, (virtio_ccw_int_hander()). That's why the patch use a > > spinlock, it could be optimized with using a rwlock as well. > > > > Thanks > > Ah, right. So let's take that on the legacy path too and Halil promises > to test to make sure performance isn't impacted too badly?I think what you meant is using a dedicated rwlock instead of trying to reuse one of the airq_info locks. If this is true, it should be fine. Thanks> > > > > > > -- > > > MST > > > >
Michael S. Tsirkin
2022-Apr-28 06:17 UTC
[PATCH V3 6/9] virtio-ccw: implement synchronize_cbs()
On Thu, Apr 28, 2022 at 02:02:16PM +0800, Jason Wang wrote:> On Thu, Apr 28, 2022 at 1:55 PM Michael S. Tsirkin <mst at redhat.com> wrote: > > > > On Thu, Apr 28, 2022 at 01:51:59PM +0800, Jason Wang wrote: > > > On Thu, Apr 28, 2022 at 1:24 PM Michael S. Tsirkin <mst at redhat.com> wrote: > > > > > > > > On Thu, Apr 28, 2022 at 11:04:41AM +0800, Jason Wang wrote: > > > > > > But my guess is that rwlock + some testing for the legacy indicator case > > > > > > just to double check if there is a heavy regression despite of our > > > > > > expectations to see none should do the trick. > > > > > > > > > > I suggest this, rwlock (for not airq) seems better than spinlock, but > > > > > at worst case it will cause cache line bouncing. But I wonder if it's > > > > > noticeable (anyhow it has been used for airq). > > > > > > > > > > Thanks > > > > > > > > Which existing rwlock does airq use right now? Can we take it to sync? > > > > > > It's the rwlock in airq_info, it has already been used in this patch. > > > > > > write_lock(&info->lock); > > > write_unlock(&info->lock); > > > > > > But the problem is, it looks to me there could be a case that airq is > > > not used, (virtio_ccw_int_hander()). That's why the patch use a > > > spinlock, it could be optimized with using a rwlock as well. > > > > > > Thanks > > > > Ah, right. So let's take that on the legacy path too and Halil promises > > to test to make sure performance isn't impacted too badly? > > I think what you meant is using a dedicated rwlock instead of trying > to reuse one of the airq_info locks. > > If this is true, it should be fine. > > Thanksyes> > > > > > > > > > -- > > > > MST > > > > > >
Cornelia Huck
2022-Apr-28 07:42 UTC
[PATCH V3 6/9] virtio-ccw: implement synchronize_cbs()
On Thu, Apr 28 2022, Jason Wang <jasowang at redhat.com> wrote:> On Thu, Apr 28, 2022 at 1:55 PM Michael S. Tsirkin <mst at redhat.com> wrote: >> >> On Thu, Apr 28, 2022 at 01:51:59PM +0800, Jason Wang wrote: >> > On Thu, Apr 28, 2022 at 1:24 PM Michael S. Tsirkin <mst at redhat.com> wrote: >> > > >> > > On Thu, Apr 28, 2022 at 11:04:41AM +0800, Jason Wang wrote: >> > > > > But my guess is that rwlock + some testing for the legacy indicator case >> > > > > just to double check if there is a heavy regression despite of our >> > > > > expectations to see none should do the trick. >> > > > >> > > > I suggest this, rwlock (for not airq) seems better than spinlock, but >> > > > at worst case it will cause cache line bouncing. But I wonder if it's >> > > > noticeable (anyhow it has been used for airq). >> > > > >> > > > Thanks >> > > >> > > Which existing rwlock does airq use right now? Can we take it to sync? >> > >> > It's the rwlock in airq_info, it has already been used in this patch. >> > >> > write_lock(&info->lock); >> > write_unlock(&info->lock); >> > >> > But the problem is, it looks to me there could be a case that airq is >> > not used, (virtio_ccw_int_hander()). That's why the patch use a >> > spinlock, it could be optimized with using a rwlock as well. >> > >> > Thanks >> >> Ah, right. So let's take that on the legacy path too and Halil promises >> to test to make sure performance isn't impacted too badly? > > I think what you meant is using a dedicated rwlock instead of trying > to reuse one of the airq_info locks. > > If this is true, it should be fine.FWIW, that approach makes sense to me as well.