From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_RED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DAB14C48BCF for ; Wed, 9 Jun 2021 22:04:14 +0000 (UTC) Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 73058613DF for ; Wed, 9 Jun 2021 22:04:14 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 73058613DF Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=virtualization-bounces@lists.linux-foundation.org Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 35681607B8; Wed, 9 Jun 2021 22:04:14 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8nkgF7u7uF5h; Wed, 9 Jun 2021 22:04:13 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp3.osuosl.org (Postfix) with ESMTPS id C1AE960746; Wed, 9 Jun 2021 22:04:12 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id A3959C000E; Wed, 9 Jun 2021 22:04:12 +0000 (UTC) Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by lists.linuxfoundation.org (Postfix) with ESMTP id E175DC000B for ; Wed, 9 Jun 2021 22:04:11 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id C1B3241D1C for ; Wed, 9 Jun 2021 22:04:11 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Authentication-Results: smtp2.osuosl.org (amavisd-new); dkim=pass (1024-bit key) header.d=redhat.com Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CDHJV6heq5tV for ; Wed, 9 Jun 2021 22:04:10 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by smtp2.osuosl.org (Postfix) with ESMTPS id 55BE041D1B for ; Wed, 9 Jun 2021 22:04:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1623276248; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=j1+XTsbXIi8UuChDa/DLFwX5AWXjYwtgSyXqS9K71x0=; b=IMq+vsSLY6vrbtUIiKokt3S90X1Mwg1NKXONLV5ULjKxtXob2ucL+I0RssKufDaICWctrF h324i0ZG2X50jCsmoi1pEhYlB3+assTS0bmCcXLitl/5nDgfvgG0LppzGLA10ywcr+qHAI JhWMh9y/OeeDRrOkAItcH7k2mrKJcnI= Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-187-oMVpiJaVOMSDd4xshvz6vQ-1; Wed, 09 Jun 2021 18:04:05 -0400 X-MC-Unique: oMVpiJaVOMSDd4xshvz6vQ-1 Received: by mail-wm1-f69.google.com with SMTP id g81-20020a1c9d540000b02901a3d4d3f7fcso3166621wme.2 for ; Wed, 09 Jun 2021 15:04:05 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=j1+XTsbXIi8UuChDa/DLFwX5AWXjYwtgSyXqS9K71x0=; b=o0nDrg6gggrWQEJltlkWSRtgkZvFKiR+FSPHTwRWq/rvig+R5jUGoqGGu/YbASXvGk 5oe887dgNTdsr6Yh50AqSk2B/UuigZUGf+P5kt+L6pJIGWFE0w9OzDUeuFVJqP+Ka1/+ b1BlsWv7rtIaJcuRkWx1O5gcdIbqQwHlywrngHgVzoJA5N0Pzk7oSP9mOAt8Hhh14GS7 hYSenyQ9IHMpE8wEZx4aMhqKXNFcYT8+O82bbkLy2sQbeFv/uvC1Pn7CvvUj3+GolR/d Xmrx0x+BoZdnnrQl7xfprGZEfS7tXJxvtfaBU0+pc8MhTKOMwZH/bgCyDdyeQJn19mUL aPYQ== X-Gm-Message-State: AOAM530O3dIDMRLG7ECtdnneCLdSusjqJ/VMdksBi4WpN7zXMcgt//Gl CmbZJs6fSCsv9po91CjHnrdYbWhIIENylnCJNluRJSdWCHZkDazzAiXJQvvkbA+COuhDYS/+O7h PIPfXH40KwbCp6/zRJUpftiVkqd6OIIUuv40EBzih6g== X-Received: by 2002:a5d:4dc4:: with SMTP id f4mr1900426wru.181.1623276244113; Wed, 09 Jun 2021 15:04:04 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyK42aoT4mhmfnQnZDmX/DrUajp6FnM5dO8sLjvfv72GrDAnSKuoWe58PgmSU6TZ6TX/JJLgQ== X-Received: by 2002:a5d:4dc4:: with SMTP id f4mr1900412wru.181.1623276243908; Wed, 09 Jun 2021 15:04:03 -0700 (PDT) Received: from redhat.com ([77.124.100.105]) by smtp.gmail.com with ESMTPSA id m23sm8920358wml.27.2021.06.09.15.04.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Jun 2021 15:04:03 -0700 (PDT) Date: Wed, 9 Jun 2021 18:03:59 -0400 From: "Michael S. Tsirkin" To: Willem de Bruijn Subject: Re: [PATCH v3 1/4] virtio_net: move tx vq operation under tx queue lock Message-ID: <20210609175825-mutt-send-email-mst@kernel.org> References: <20210526082423.47837-1-mst@redhat.com> <20210526082423.47837-2-mst@redhat.com> <476e9418-156d-dbc9-5105-11d2816b95f7@redhat.com> MIME-Version: 1.0 In-Reply-To: Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=mst@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Disposition: inline Cc: Network Development , linux-kernel , virtualization , Jakub Kicinski , Wei Wang , David Miller X-BeenThere: virtualization@lists.linux-foundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Linux virtualization List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: virtualization-bounces@lists.linux-foundation.org Sender: "Virtualization" T24gRnJpLCBNYXkgMjgsIDIwMjEgYXQgMDY6MjU6MTFQTSAtMDQwMCwgV2lsbGVtIGRlIEJydWlq biB3cm90ZToKPiBPbiBXZWQsIE1heSAyNiwgMjAyMSBhdCAxMTo0MSBQTSBKYXNvbiBXYW5nIDxq YXNvd2FuZ0ByZWRoYXQuY29tPiB3cm90ZToKPiA+Cj4gPgo+ID4g5ZyoIDIwMjEvNS8yNiDkuIvl jYg0OjI0LCBNaWNoYWVsIFMuIFRzaXJraW4g5YaZ6YGTOgo+ID4gPiBJdCdzIHVuc2FmZSB0byBv cGVyYXRlIGEgdnEgZnJvbSBtdWx0aXBsZSB0aHJlYWRzLgo+ID4gPiBVbmZvcnR1bmF0ZWx5IHRo aXMgaXMgZXhhY3RseSB3aGF0IHdlIGRvIHdoZW4gaW52b2tpbmcKPiA+ID4gY2xlYW4gdHggcG9s bCBmcm9tIHJ4IG5hcGkuCj4gPiA+IFNhbWUgaGFwcGVucyB3aXRoIG5hcGktdHggZXZlbiB3aXRo b3V0IHRoZQo+ID4gPiBvcHBvcnR1bmlzdGljIGNsZWFuaW5nIGZyb20gdGhlIHJlY2VpdmUgaW50 ZXJydXB0OiB0aGF0IHJhY2VzCj4gPiA+IHdpdGggcHJvY2Vzc2luZyB0aGUgdnEgaW4gc3RhcnRf eG1pdC4KPiA+ID4KPiA+ID4gQXMgYSBmaXggbW92ZSBldmVyeXRoaW5nIHRoYXQgZGVhbHMgd2l0 aCB0aGUgdnEgdG8gdW5kZXIgdHggbG9jay4KPiAKPiBUaGlzIHBhdGNoIGFsc28gZGlzYWJsZXMg Y2FsbGJhY2tzIGR1cmluZyBmcmVlX29sZF94bWl0X3NrYnMKPiBwcm9jZXNzaW5nIG9uIHR4IGlu dGVycnVwdC4gU2hvdWxkIHRoYXQgYmUgYSBzZXBhcmF0ZSBjb21taXQsIHdpdGggaXRzCj4gb3du IGV4cGxhbmF0aW9uPwo+ID4gPgo+ID4gPiBGaXhlczogYjkyZjFlNjc1MWE2ICgidmlydGlvLW5l dDogdHJhbnNtaXQgbmFwaSIpCj4gPiA+IFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgUy4gVHNpcmtp biA8bXN0QHJlZGhhdC5jb20+Cj4gPiA+IC0tLQo+ID4gPiAgIGRyaXZlcnMvbmV0L3ZpcnRpb19u ZXQuYyB8IDIyICsrKysrKysrKysrKysrKysrKysrKy0KPiA+ID4gICAxIGZpbGUgY2hhbmdlZCwg MjEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+ID4gPgo+ID4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvdmlydGlvX25ldC5jIGIvZHJpdmVycy9uZXQvdmlydGlvX25ldC5jCj4gPiA+ IGluZGV4IGFjMGMxNDNmOTdiNC4uMTI1MTJkMTAwMmVjIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2 ZXJzL25ldC92aXJ0aW9fbmV0LmMKPiA+ID4gKysrIGIvZHJpdmVycy9uZXQvdmlydGlvX25ldC5j Cj4gPiA+IEBAIC0xNTA4LDYgKzE1MDgsOCBAQCBzdGF0aWMgaW50IHZpcnRuZXRfcG9sbF90eChz dHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpCj4gPiA+ICAgICAgIHN0cnVjdCB2 aXJ0bmV0X2luZm8gKnZpID0gc3EtPnZxLT52ZGV2LT5wcml2Owo+ID4gPiAgICAgICB1bnNpZ25l ZCBpbnQgaW5kZXggPSB2cTJ0eHEoc3EtPnZxKTsKPiA+ID4gICAgICAgc3RydWN0IG5ldGRldl9x dWV1ZSAqdHhxOwo+ID4gPiArICAgICBpbnQgb3BhcXVlOwo+ID4gPiArICAgICBib29sIGRvbmU7 Cj4gPiA+Cj4gPiA+ICAgICAgIGlmICh1bmxpa2VseShpc194ZHBfcmF3X2J1ZmZlcl9xdWV1ZSh2 aSwgaW5kZXgpKSkgewo+ID4gPiAgICAgICAgICAgICAgIC8qIFdlIGRvbid0IG5lZWQgdG8gZW5h YmxlIGNiIGZvciBYRFAgKi8KPiA+ID4gQEAgLTE1MTcsMTAgKzE1MTksMjggQEAgc3RhdGljIGlu dCB2aXJ0bmV0X3BvbGxfdHgoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KQo+ ID4gPgo+ID4gPiAgICAgICB0eHEgPSBuZXRkZXZfZ2V0X3R4X3F1ZXVlKHZpLT5kZXYsIGluZGV4 KTsKPiA+ID4gICAgICAgX19uZXRpZl90eF9sb2NrKHR4cSwgcmF3X3NtcF9wcm9jZXNzb3JfaWQo KSk7Cj4gPiA+ICsgICAgIHZpcnRxdWV1ZV9kaXNhYmxlX2NiKHNxLT52cSk7Cj4gPiA+ICAgICAg IGZyZWVfb2xkX3htaXRfc2ticyhzcSwgdHJ1ZSk7Cj4gPiA+ICsKPiA+ID4gKyAgICAgb3BhcXVl ID0gdmlydHF1ZXVlX2VuYWJsZV9jYl9wcmVwYXJlKHNxLT52cSk7Cj4gPiA+ICsKPiA+ID4gKyAg ICAgZG9uZSA9IG5hcGlfY29tcGxldGVfZG9uZShuYXBpLCAwKTsKPiA+ID4gKwo+ID4gPiArICAg ICBpZiAoIWRvbmUpCj4gPiA+ICsgICAgICAgICAgICAgdmlydHF1ZXVlX2Rpc2FibGVfY2Ioc3Et PnZxKTsKPiA+ID4gKwo+ID4gPiAgICAgICBfX25ldGlmX3R4X3VubG9jayh0eHEpOwo+ID4gPgo+ ID4gPiAtICAgICB2aXJ0cXVldWVfbmFwaV9jb21wbGV0ZShuYXBpLCBzcS0+dnEsIDApOwo+ID4g PiArICAgICBpZiAoZG9uZSkgewo+ID4gPiArICAgICAgICAgICAgIGlmICh1bmxpa2VseSh2aXJ0 cXVldWVfcG9sbChzcS0+dnEsIG9wYXF1ZSkpKSB7Cj4gCj4gU2hvdWxkIHRoaXMgYWxzbyBiZSBp bnNpZGUgdGhlIGxvY2ssIGFzIGl0IG9wZXJhdGVzIG9uIHZxPwoKTm8gdnEgcG9sbCBpcyBvayBv dXRzaWRlIG9mIGxvY2tzLCBpdCdzIGF0b21pYy4KCj4gSXMgdGhlcmUgYW55dGhpbmcgdGhhdCBp cyBub3QgYWxsb3dlZCB0byBydW4gd2l0aCB0aGUgbG9jayBoZWxkPwo+ID4gPiArICAgICAgICAg ICAgICAgICAgICAgaWYgKG5hcGlfc2NoZWR1bGVfcHJlcChuYXBpKSkgewo+ID4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBfX25ldGlmX3R4X2xvY2sodHhxLCByYXdfc21wX3Byb2Nl c3Nvcl9pZCgpKTsKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlydHF1ZXVl X2Rpc2FibGVfY2Ioc3EtPnZxKTsKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg X19uZXRpZl90eF91bmxvY2sodHhxKTsKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgX19uYXBpX3NjaGVkdWxlKG5hcGkpOwo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgfQo+ ID4gPiArICAgICAgICAgICAgIH0KPiA+ID4gKyAgICAgfQo+ID4KPiA+Cj4gPiBJbnRlcmVzdGlu ZywgdGhpcyBsb29rcyBsaWtlIHNvbWVod28gYSBvcGVuLWNvZGVkIHZlcnNpb24gb2YKPiA+IHZp cnRxdWV1ZV9uYXBpX2NvbXBsZXRlKCkuIEkgd29uZGVyIGlmIHdlIGNhbiBzaW1wbHkga2VlcCB1 c2luZwo+ID4gdmlydHF1ZXVlX25hcGlfY29tcGxldGUoKSBieSBzaW1wbHkgbW92aW5nIHRoZSBf X25ldGlmX3R4X3VubG9jaygpIGFmdGVyCj4gPiB0aGF0Ogo+ID4KPiA+IG5ldGlmX3R4X2xvY2so dHhxKTsKPiA+IGZyZWVfb2xkX3htaXRfc2ticyhzcSwgdHJ1ZSk7Cj4gPiB2aXJ0cXVldWVfbmFw aV9jb21wbGV0ZShuYXBpLCBzcS0+dnEsIDApOwo+ID4gX19uZXRpZl90eF91bmxvY2sodHhxKTsK PiAKPiBBZ3JlZWQuIEFuZCBzdWJzZXF1ZW50IGJsb2NrCj4gCj4gICAgICAgIGlmIChzcS0+dnEt Pm51bV9mcmVlID49IDIgKyBNQVhfU0tCX0ZSQUdTKQo+ICAgICAgICAgICAgICAgIG5ldGlmX3R4 X3dha2VfcXVldWUodHhxKTsKPiAKPiBhcyB3ZWxsCgpZZXMgSSB0aG91Z2h0IEkgc2F3IHNvbWV0 aGluZyBoZXJlIHRoYXQgY2FuJ3QgYmUgY2FsbGVkIHdpdGggdHggbG9jawpoZWxkIGJ1dCBJIG5v IGxvbmdlciBzZWUgaXQuIFdpbGwgZG8uCgo+ID4KPiA+IFRoYW5rcwo+ID4KPiA+Cj4gPiA+Cj4g PiA+ICAgICAgIGlmIChzcS0+dnEtPm51bV9mcmVlID49IDIgKyBNQVhfU0tCX0ZSQUdTKQo+ID4g PiAgICAgICAgICAgICAgIG5ldGlmX3R4X3dha2VfcXVldWUodHhxKTsKPiA+CgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpWaXJ0dWFsaXphdGlvbiBtYWls aW5nIGxpc3QKVmlydHVhbGl6YXRpb25AbGlzdHMubGludXgtZm91bmRhdGlvbi5vcmcKaHR0cHM6 Ly9saXN0cy5saW51eGZvdW5kYXRpb24ub3JnL21haWxtYW4vbGlzdGluZm8vdmlydHVhbGl6YXRp b24= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 71919C48BCF for ; Wed, 9 Jun 2021 22:04:19 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 5DDC0613E6 for ; Wed, 9 Jun 2021 22:04:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230346AbhFIWGN (ORCPT ); Wed, 9 Jun 2021 18:06:13 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:26557 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230155AbhFIWGD (ORCPT ); Wed, 9 Jun 2021 18:06:03 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1623276246; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=j1+XTsbXIi8UuChDa/DLFwX5AWXjYwtgSyXqS9K71x0=; b=JwW8mAm+dI9FoP2yORK73LfIscqBg4kiPaw4ji+QoCRg7nETTy061Y70X+5gHYMXjqQJzf tZESdh8OwTFQ67ufBaqcvzW1IAuhj29QEwovOeR6x9yhCbYeUMgbsUqLTm/BY31lH4PkqC eT4eniOGTimyWPmiIiMxEOLj+uODlAQ= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-410-ZTrXVOBeOMenxkr-2wgi_w-1; Wed, 09 Jun 2021 18:04:05 -0400 X-MC-Unique: ZTrXVOBeOMenxkr-2wgi_w-1 Received: by mail-wm1-f71.google.com with SMTP id l32-20020a05600c1d20b02901a82ed9095dso1105850wms.2 for ; Wed, 09 Jun 2021 15:04:05 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=j1+XTsbXIi8UuChDa/DLFwX5AWXjYwtgSyXqS9K71x0=; b=V3zG7fA7jWb9QGIbHcbCoFRKoleTnoqYEB+2ifvbu+yYtra9wNIr2eumfkP5E8GrR1 gomA0Aw+eLNe/DlQ5luoSeDGqVJU9G0DYu5wBIPhWqxPisMF9IG10esijeS7YJPFy9Ye mYyOM4vaZPku5DvC2QC4723Jw6zrANO3Iwd6D5SVJlIRGocTrjCnkQMSnVHJ99scl3A7 LjCPLkCGsbgaVElq3Fh1D1A5WRR28xN3waMXM2L6EWmFnErwn5H6qwnHOWXpAmZG/tHN BJDXOoEaeIs05U1W74x9o90Ify/WxIGVQeqLMc8VzLRoThDsKwNc0xKG60ODU558UPFU 0DGw== X-Gm-Message-State: AOAM5304i+hEFpv+LpRzxmP+T5oIQTa3YvLqELatgsmBg0ndsoo60dXq dtAa7WAvukfOe5uc9m91b/VC7DeMFDH0rk/s0Bbb0niuSzID+QF+WZOsareXVea8uwhLOUZu26k dYy3S8kM75TCxC+qxJ9d02SNc X-Received: by 2002:a5d:4dc4:: with SMTP id f4mr1900423wru.181.1623276244112; Wed, 09 Jun 2021 15:04:04 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyK42aoT4mhmfnQnZDmX/DrUajp6FnM5dO8sLjvfv72GrDAnSKuoWe58PgmSU6TZ6TX/JJLgQ== X-Received: by 2002:a5d:4dc4:: with SMTP id f4mr1900412wru.181.1623276243908; Wed, 09 Jun 2021 15:04:03 -0700 (PDT) Received: from redhat.com ([77.124.100.105]) by smtp.gmail.com with ESMTPSA id m23sm8920358wml.27.2021.06.09.15.04.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Jun 2021 15:04:03 -0700 (PDT) Date: Wed, 9 Jun 2021 18:03:59 -0400 From: "Michael S. Tsirkin" To: Willem de Bruijn Cc: Jason Wang , linux-kernel , Jakub Kicinski , Wei Wang , David Miller , Network Development , virtualization Subject: Re: [PATCH v3 1/4] virtio_net: move tx vq operation under tx queue lock Message-ID: <20210609175825-mutt-send-email-mst@kernel.org> References: <20210526082423.47837-1-mst@redhat.com> <20210526082423.47837-2-mst@redhat.com> <476e9418-156d-dbc9-5105-11d2816b95f7@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, May 28, 2021 at 06:25:11PM -0400, Willem de Bruijn wrote: > On Wed, May 26, 2021 at 11:41 PM Jason Wang wrote: > > > > > > 在 2021/5/26 下午4:24, Michael S. Tsirkin 写道: > > > It's unsafe to operate a vq from multiple threads. > > > Unfortunately this is exactly what we do when invoking > > > clean tx poll from rx napi. > > > Same happens with napi-tx even without the > > > opportunistic cleaning from the receive interrupt: that races > > > with processing the vq in start_xmit. > > > > > > As a fix move everything that deals with the vq to under tx lock. > > This patch also disables callbacks during free_old_xmit_skbs > processing on tx interrupt. Should that be a separate commit, with its > own explanation? > > > > > > Fixes: b92f1e6751a6 ("virtio-net: transmit napi") > > > Signed-off-by: Michael S. Tsirkin > > > --- > > > drivers/net/virtio_net.c | 22 +++++++++++++++++++++- > > > 1 file changed, 21 insertions(+), 1 deletion(-) > > > > > > diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c > > > index ac0c143f97b4..12512d1002ec 100644 > > > --- a/drivers/net/virtio_net.c > > > +++ b/drivers/net/virtio_net.c > > > @@ -1508,6 +1508,8 @@ static int virtnet_poll_tx(struct napi_struct *napi, int budget) > > > struct virtnet_info *vi = sq->vq->vdev->priv; > > > unsigned int index = vq2txq(sq->vq); > > > struct netdev_queue *txq; > > > + int opaque; > > > + bool done; > > > > > > if (unlikely(is_xdp_raw_buffer_queue(vi, index))) { > > > /* We don't need to enable cb for XDP */ > > > @@ -1517,10 +1519,28 @@ static int virtnet_poll_tx(struct napi_struct *napi, int budget) > > > > > > txq = netdev_get_tx_queue(vi->dev, index); > > > __netif_tx_lock(txq, raw_smp_processor_id()); > > > + virtqueue_disable_cb(sq->vq); > > > free_old_xmit_skbs(sq, true); > > > + > > > + opaque = virtqueue_enable_cb_prepare(sq->vq); > > > + > > > + done = napi_complete_done(napi, 0); > > > + > > > + if (!done) > > > + virtqueue_disable_cb(sq->vq); > > > + > > > __netif_tx_unlock(txq); > > > > > > - virtqueue_napi_complete(napi, sq->vq, 0); > > > + if (done) { > > > + if (unlikely(virtqueue_poll(sq->vq, opaque))) { > > Should this also be inside the lock, as it operates on vq? No vq poll is ok outside of locks, it's atomic. > Is there anything that is not allowed to run with the lock held? > > > + if (napi_schedule_prep(napi)) { > > > + __netif_tx_lock(txq, raw_smp_processor_id()); > > > + virtqueue_disable_cb(sq->vq); > > > + __netif_tx_unlock(txq); > > > + __napi_schedule(napi); > > > + } > > > + } > > > + } > > > > > > Interesting, this looks like somehwo a open-coded version of > > virtqueue_napi_complete(). I wonder if we can simply keep using > > virtqueue_napi_complete() by simply moving the __netif_tx_unlock() after > > that: > > > > netif_tx_lock(txq); > > free_old_xmit_skbs(sq, true); > > virtqueue_napi_complete(napi, sq->vq, 0); > > __netif_tx_unlock(txq); > > Agreed. And subsequent block > > if (sq->vq->num_free >= 2 + MAX_SKB_FRAGS) > netif_tx_wake_queue(txq); > > as well Yes I thought I saw something here that can't be called with tx lock held but I no longer see it. Will do. > > > > Thanks > > > > > > > > > > if (sq->vq->num_free >= 2 + MAX_SKB_FRAGS) > > > netif_tx_wake_queue(txq); > >