Received: by 10.223.185.116 with SMTP id b49csp3910874wrg; Tue, 13 Feb 2018 09:35:44 -0800 (PST) X-Google-Smtp-Source: AH8x224VAY5tbVXt2cEP163xmHZDWIOjJ7mix3fdUx8oJWGYVgEbeJWVuiaP75K2QjrVYBJ9rCzT X-Received: by 2002:a17:902:8f86:: with SMTP id z6-v6mr1815054plo.352.1518543344015; Tue, 13 Feb 2018 09:35:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518543343; cv=none; d=google.com; s=arc-20160816; b=bKnj9XJ5lZSoGj4LeTcelTtpeVufdNUZtUE+MWfMXwhAhLc57VS9heqw4ORscit19U 9mvF1mwgYrwDh7jRuugXqvZEUbpOxoXvzxd9QThc/ga8RsZNybWmK33BGNtX9fCRQxe4 PYoPQ03A6CU3sSXuqmv6n3sznZsWUSWMHmhksv9DRqnigZpj5Ww7v0ntTzuKi5yrzT6X cC1NTtyEf54ZERn14Sasw5+BbQjlPxnqThHrF5xNNo0/kNLWvxN8PLhQtdivqiyB2cX7 gfHV42X/CZnyachFer3ZZH3aiOVOQj6LK8FSOHcVN2q8QYkM21MW+h/arDtBiIHKv96O qddA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date :dkim-signature:arc-authentication-results; bh=0E8/jZiLDoptuLtQmGRCrkArHnJxCGnHpOuXv6Pxt0s=; b=peImpa2+OgfRaTzO9O4ADs93rxsQcAJUCzxi9UQ/2edCYEkFs6tfG2ZGxDd1i69nNc nySPYcbfqjFAFwgWNm6PpNmnI0kUOoYBn7tw/4Oa0zXLBz6ZngzFp2NYpg4N6lmyJaWg JK4sQOKbBBgFTibSDVNqyZpmHrk/SKpNMWDnUsBJTIsBdtReIuxSssfEASaBvQkqPeY0 qpxd/pbp74Cr4o2b0OrRq/ahYnJln0RuQ0bE6RLic88Atzaa/pqGWjObr0sauZ0JubmB 0cWelWj/kw3N9zKhkdxGI2LFsNQc7AFDhZgxZiF7Y0l0zeUOLIgnxk/gaI2pVPnxC9LJ bSJQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@networkplumber-org.20150623.gappssmtp.com header.s=20150623 header.b=Efrthhc1; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x14si1727452pgq.11.2018.02.13.09.35.29; Tue, 13 Feb 2018 09:35:43 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@networkplumber-org.20150623.gappssmtp.com header.s=20150623 header.b=Efrthhc1; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965356AbeBMRer (ORCPT + 99 others); Tue, 13 Feb 2018 12:34:47 -0500 Received: from mail-pg0-f47.google.com ([74.125.83.47]:44534 "EHLO mail-pg0-f47.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965144AbeBMRep (ORCPT ); Tue, 13 Feb 2018 12:34:45 -0500 Received: by mail-pg0-f47.google.com with SMTP id j9so322448pgp.11 for ; Tue, 13 Feb 2018 09:34:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=0E8/jZiLDoptuLtQmGRCrkArHnJxCGnHpOuXv6Pxt0s=; b=Efrthhc1/FIajUXye6DU6K2d7ETryQyl9T/llRR+jmqBGv3YATCQdalMvGx5j/1sIE vTc7PgZeymxThu+oFGOdss+CuVMOsdSfsySb2IS/R+737WXRZd5aSI40cj8fFBaeKWKH cYoTZjxEPjla/q034LG09cOAsThhLNv6sknShnGDqR+0acsFYFrmy7pLTNuL8eBoUH+v dyi6lgr9Oejnd68xDcqglobMs/yGuj75o7Z+zBCwlVt9KF4EcjQWsGwYi8pljVvIJLz6 byWHBm9CfLRrJwaOs6hYtL7prWWz+pqW8CaEO8yM8NZkCq8LxFTri2zkmpugwKPv897p Nbpg== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=0E8/jZiLDoptuLtQmGRCrkArHnJxCGnHpOuXv6Pxt0s=; b=V7uatubGMYOPcNQV4q1fyb/GJjJ4enSS7wd2a1g18/xF0j+RYCwZZ0K6g/xWsRbpSh wMsINH4F4OWLu0u9kcIQ9ecIZvpSwp4eb0hfyVjoGd/eTcddZDGIFeAzFw8KyXoqPS4P qDxPaOLZoKwnjIoNSmcC3tvdLgf+L2cka+lgBFigVM5kA+PMDVyjz9i2yGPyQZitXVMz CaZCEKN0xc855jC7jynDWnDah0fqegtRv8zj9cRA0/XExPsMUvn3R43xGUYK3P5egRGD /yX6KJQ8OCfk0Sa11KoRAed+pUYVW3a0wUM7R3g8+1zG6JEy0dRKIbWDSrOmUX/vxKXt 6wFA== X-Gm-Message-State: APf1xPDVunn410JCdSJDZYiuUGerzw41oaeNtmh+A5X+BVkuqNUZTPHi Fj6t84A/9COqLeZvdA1MHMCMeQ== X-Received: by 10.99.150.2 with SMTP id c2mr1609232pge.424.1518543284467; Tue, 13 Feb 2018 09:34:44 -0800 (PST) Received: from xeon-e3 (204-195-71-95.wavecable.com. [204.195.71.95]) by smtp.gmail.com with ESMTPSA id g2sm27518275pgq.43.2018.02.13.09.34.43 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 13 Feb 2018 09:34:44 -0800 (PST) Date: Tue, 13 Feb 2018 09:34:39 -0800 From: Stephen Hemminger To: Michael Kelley Cc: "mikelley@microsoft.com" , "gregkh@linuxfoundation.org" , "linux-kernel@vger.kernel.org" , "devel@linuxdriverproject.org" , "olaf@aepfle.de" , "apw@canonical.com" , "vkuznets@redhat.com" , "jasowang@redhat.com" , "leann.ogasawara@canonical.com" , "marcelo.cerri@canonical.com" , "sthemmin@microsoft.com" , "kys@microsoft.com" Subject: Re: [PATCH char-misc 1/1] Drivers: hv: vmbus: Fix ring buffer signaling Message-ID: <20180213093439.3698cb5e@xeon-e3> In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > if (rbi->ring_buffer->feature_bits.feat_pending_send_sz) { > u32 pending_sz = READ_ONCE(rbi->ring_buffer->pending_send_sz); > > /* > + * Ensure the read of write_index in hv_get_bytes_to_write() > + * happens after the read of pending_send_sz. > + */ > + virt_rmb(); > + curr_write_sz = hv_get_bytes_to_write(rbi); > + > + /* > * If there was space before we began iteration, > * then host was not blocked. Also handles case where > * pending_sz is zero then host has nothing pending > * and does not need to be signaled. > */ > - if (orig_write_sz > pending_sz) > + if (curr_write_sz - delta > pending_sz) > return; > > /* If pending write will not fit, don't give false hope. */ > - if (hv_get_bytes_to_write(rbi) < pending_sz) > + if (curr_write_sz <= pending_sz) > return; > + > + vmbus_setevent(channel); > } > > - vmbus_setevent(channel); > } I think this won't work on older versions of Windows where feat_pending_sz is never set. On those versions vmbus_setevent needs to always be called.