Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp1318100iob; Thu, 19 May 2022 04:14:37 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyuipX2mM7DRc+e5lFLdzezjBC0S+FNF5hjUEbjujxCznT4K8FAKzPOeEpwLEJ5fCOS0glX X-Received: by 2002:a17:902:7087:b0:161:88a4:db37 with SMTP id z7-20020a170902708700b0016188a4db37mr4259370plk.131.1652958876963; Thu, 19 May 2022 04:14:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1652958876; cv=none; d=google.com; s=arc-20160816; b=xOmh8ZK6YKm3RaS9f4nz3Gs8hdYM2GWcHBwJXLm9NntaOTDybaaiGWkOR8UcJ6Kxid ofL9R7JucKO/QHT+kC6VruEnTDWDSDtw4ykl49awxV9Xzlsjd7EW85CW4mVkdDvidFLZ c4epOwuAWketUl68nGomx8QdmC9V60B3E5t1hgPsf5t+eJ7/54dEzBgyB3k+mDe/bRKa sVDBfEIOEVYsBclmYPdAg1vQNNzeihm1gdT7FsMfuFi73SMqO78JFXltFLc36SKDUH1q 8W0ThU7JBOuxwXvAi7fO2Kjc0hBEwsEQnoYPzLR7lH+AT6pDksk2GWTk593gZHkiQHjm w1sA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=PaRT19em+T4GPwPQ/T0xXwQTdvktI3d/a43tTl0NNkw=; b=iIuyaRwAiwOoi7ju3UrCpGOxiu0gAatuonavRWbEEZRX16PXYMmDTn/TFprdzSjMoW lHcoVXroTtUrxLJn76Z3OBOA7bPN0w7SUrmgahjMnUUlD9c0iJT1p+TG+aWfj+UTYhxq xUqu1kydLy+5cKFzI5Z4SSmM2Lmj/SCmO58XI72cdfOgkgRCrAlZpcQpmYDH1xNtJIQ4 +zz7LUYE+LNnqF4gcw8eoe688xXvr8VNojTCiep4k2JLxgADEb2Mq7CVMKi5dsx+ObnQ NCV936LLgF9hdQGqZQ3aMFBRDdU7N5uoHNTxYkCjjy+QLDuCK9y1j3pZGa8sMcU/pWVA owKg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=YglDRBKj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id m3-20020a654c83000000b0038253c4de24si6869386pgt.186.2022.05.19.04.14.24; Thu, 19 May 2022 04:14:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=YglDRBKj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235154AbiESIIj (ORCPT + 99 others); Thu, 19 May 2022 04:08:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56000 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229458AbiESIIi (ORCPT ); Thu, 19 May 2022 04:08:38 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 4B70F5DA21 for ; Thu, 19 May 2022 01:08:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1652947716; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=PaRT19em+T4GPwPQ/T0xXwQTdvktI3d/a43tTl0NNkw=; b=YglDRBKj6NtFtEJYgfjfIpd1ByEZctatedn6v9j81LNqt+xhBZV61SoFn79PG0s02KGQUu a/UgZ74/I1bUEYl+5IjHPdee1b7/n8vcOIg0ctb8k6uydrnF8a3j4nl7JLUs+qp16r4rQV lh8SI1THDehlZ7EwnriNP+yGI6IbaaE= Received: from mail-lf1-f72.google.com (mail-lf1-f72.google.com [209.85.167.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-92-xS9TcFqtOf2KTyDVhC4OCQ-1; Thu, 19 May 2022 04:08:35 -0400 X-MC-Unique: xS9TcFqtOf2KTyDVhC4OCQ-1 Received: by mail-lf1-f72.google.com with SMTP id y12-20020a0565123f0c00b00477bab7c83aso2062791lfa.6 for ; Thu, 19 May 2022 01:08:34 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=PaRT19em+T4GPwPQ/T0xXwQTdvktI3d/a43tTl0NNkw=; b=bZOoPCPhu6a9wZQ6gfOtKuuHrDqHzTzl1NhvjuCrlnpM0YqEwZ57VSRjav9mLwpm9F IgmxYm+lkmygIZbfzyljVUIh6QqL4IGkr6Eh2D2gWj0351Qo+8NwOkB9R/8jE4dc1GnH P9KW6E8uORdn1ABadNFKdezfYeBWzwZ26JVNAYIaCW3JjwqNPg0frNla27djYhXkpf/7 K2RqFpgMBz5pHRiJdd+kF8KOhrs0DaIdqwnhbUV5LurXyykbqKeWQu/0KUZs4fI2/tm9 JvO7UUur6v8bRrFpuPP+xyqCLJrx3uNYr8Zn2r9E+5Ju9a7ikX0ZGfn9B1kzz8XDOzlA jdsg== X-Gm-Message-State: AOAM5331KTBN+Si/SF6jql6UaS4Gc9V90GYeEM3tXrfj1xUhvLj4CCm5 3W+OMsXbYZxkpn6AkSUF0eQZe8qAQTNPhFsKGFC6EjKY+ES7DUlquG403RQxuYUCiRo6mZCO8EJ m1SRR1MxP3dQqqea3VqKJJBLdB+JhizGkax3+Q6Bc X-Received: by 2002:a2e:bd85:0:b0:250:9bf2:8e27 with SMTP id o5-20020a2ebd85000000b002509bf28e27mr1936020ljq.177.1652947713551; Thu, 19 May 2022 01:08:33 -0700 (PDT) X-Received: by 2002:a2e:bd85:0:b0:250:9bf2:8e27 with SMTP id o5-20020a2ebd85000000b002509bf28e27mr1936002ljq.177.1652947713385; Thu, 19 May 2022 01:08:33 -0700 (PDT) MIME-Version: 1.0 References: <20220518035951.94220-1-jasowang@redhat.com> <20220518035951.94220-8-jasowang@redhat.com> <87r14rf983.fsf@redhat.com> In-Reply-To: <87r14rf983.fsf@redhat.com> From: Jason Wang Date: Thu, 19 May 2022 16:08:22 +0800 Message-ID: Subject: Re: [PATCH V5 7/9] virtio: allow to unbreak virtqueue To: Cornelia Huck Cc: mst , virtualization , linux-kernel , Thomas Gleixner , Peter Zijlstra , "Paul E. McKenney" , Marc Zyngier , Halil Pasic , eperezma , Cindy Lu , Stefano Garzarella , Xuan Zhuo , Vineeth Vijayan , Peter Oberparleiter , linux-s390@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-3.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, May 18, 2022 at 6:04 PM Cornelia Huck wrote: > > On Wed, May 18 2022, Jason Wang wrote: > > > This patch allows the new introduced __virtio_break_device() to > > unbreak the virtqueue. > > > > Cc: Thomas Gleixner > > Cc: Peter Zijlstra > > Cc: "Paul E. McKenney" > > Cc: Marc Zyngier > > Cc: Halil Pasic > > Cc: Cornelia Huck > > Cc: Vineeth Vijayan > > Cc: Peter Oberparleiter > > Cc: linux-s390@vger.kernel.org > > Signed-off-by: Jason Wang > > --- > > drivers/virtio/virtio_ring.c | 21 +++++++++++++++++++++ > > include/linux/virtio.h | 1 + > > 2 files changed, 22 insertions(+) > > > > diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c > > index cfb028ca238e..5b7df7c455f0 100644 > > --- a/drivers/virtio/virtio_ring.c > > +++ b/drivers/virtio/virtio_ring.c > > @@ -2397,6 +2397,27 @@ void virtio_break_device(struct virtio_device *dev) > > } > > EXPORT_SYMBOL_GPL(virtio_break_device); > > > > +/* > > + * This should allow the device to be used by the driver. You may > > + * need to grab appropriate locks to flush. This should only be used > > Hm, to flush what? How about "to flush the write to vq->broken"? > > > + * in some specific case e.g (probing and restoring). Driver should > > + * not call this directly. > > Maybe "This function should only be called by the core, not directly by > the driver."? Ok. Thanks > > > + */ > > +void __virtio_unbreak_device(struct virtio_device *dev) > > +{ > > + struct virtqueue *_vq; > > + > > + spin_lock(&dev->vqs_list_lock); > > + list_for_each_entry(_vq, &dev->vqs, list) { > > + struct vring_virtqueue *vq = to_vvq(_vq); > > + > > + /* Pairs with READ_ONCE() in virtqueue_is_broken(). */ > > + WRITE_ONCE(vq->broken, false); > > + } > > + spin_unlock(&dev->vqs_list_lock); > > +} > > +EXPORT_SYMBOL_GPL(__virtio_unbreak_device); > > + > > dma_addr_t virtqueue_get_desc_addr(struct virtqueue *_vq) > > { > > struct vring_virtqueue *vq = to_vvq(_vq); >