From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 3BAFD4651C; Sun, 6 Apr 2025 18:09:00 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BECE140270; Sun, 6 Apr 2025 18:08:59 +0200 (CEST) Received: from mail-pf1-f170.google.com (mail-pf1-f170.google.com [209.85.210.170]) by mails.dpdk.org (Postfix) with ESMTP id 435444026A for ; Sun, 6 Apr 2025 18:08:57 +0200 (CEST) Received: by mail-pf1-f170.google.com with SMTP id d2e1a72fcca58-7376dd56f60so2497600b3a.3 for ; Sun, 06 Apr 2025 09:08:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1743955736; x=1744560536; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=5iNrjp+aFadP6HXHjq4mJDqsEj5Hg29WIgoZirAezKE=; b=xoDHKtjjIBuzWZaJ4WLzlF5IqL8u7D5+JpcvAP8pfVt/VepIIvlJirQ1F2sfMFTag9 ssJQlnHS83vdegIPmo85o7ECqHk+Syc+Gc/Q84/OroPF+majvIyiDTdunWwqSE5NR2pT cXexJZwoV7X+xjrl5THs4ljgiNuxnzR1ti7IVHmIA4TYH5W4Imn8mc9+Imn+0gkOg/RG 9O0nNfspzhmLYD/z61v+p5cDX00NVTla9O4eHCG4V/TBnglY7t5gzNiayoxniu9RiI0d t0BrmR4FbKbD+dzwCNkKh+Ft/NcYa278hiYY98Z0cwYgJofjRNeuHVFKU+bxjlzx4YzQ TbFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743955736; x=1744560536; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5iNrjp+aFadP6HXHjq4mJDqsEj5Hg29WIgoZirAezKE=; b=tBQT2HzwPsYpCJ7bZ9iYMSaFSMgNlwAOk8h0AA1tyjddzh5sqWlCZWj6v5SJZZ/cTb aYEPv5F1gBn5zhwjEs7x3pvRUZqZavvHMxdKn9AWHPHsQKPlO1qJAG2djUGeeH3zCJbm iQ1xLZnC/XmHREpeWv5F48EWOJ4SKPlzP+ZcdF1mpR4x1d//ZKTK6qawsMHFTSV7FpCf oRqyDTv9gVZjmc5KKj/nqREFmAHk94oeQUXPQzj93rao7FlXvGdGGdDNWCMVCc+0WZph 20TettLV165o6b8f1KMzfWdTuHtjhGXSSFTS47h27VzgCnMJrntgpbig2L5Y/c66Z7Ug kC4Q== X-Forwarded-Encrypted: i=1; AJvYcCWuRBBw7KSIHPzomgUqMryxSd3HB/flpyX/ocmmeoUBv8PO4SCwFWKkpV8OivCd32PJQjg=@dpdk.org X-Gm-Message-State: AOJu0Ywoqk+E9QszeyZIleUTaVnS1jpLsanfJAL412BUbJC41L7tgBgp HosTjX4fV8h9DSYibFQI31UgvIyV/mtbi0go9OVIyh8Pw1H72ENfbHvNbD5p1Oo= X-Gm-Gg: ASbGncuMaYCXaAuI4DoZAkbrFLZ3F6kbEBjNbQ8kXAaqXDF4xO8pMejS71xIQHUjUH0 7yfyBf0U/LiotewPsy197JHfTBHBzackWRtZtfDJoUplmcHFn09gQ2hWtOZHONl2FFRDy6opDMu 7n/+qeRFn88yhch1MH0PR4PvTSgLKHMUDVpVUCBsXJDKxO2TRLqTdvQ74Cd6vV36oj8ebZs51zZ aTS+hGmnmyG1rMXStSnGCn9U0qqsxVJlTN6JkIz5J8jfir7OH9noK8F1uWfuTRi/cV+3xgLo2gE Qk0wvXeZJE36XsNw7F4wLIxZRa5yYgwUDWlT3L68K5lfKRChZtsOFFCigBlSfLPgZafQoh6CS49 SGzJhAoWevDZCTR/IL5Ow X-Google-Smtp-Source: AGHT+IFM1xsNWwS00k/g2Pe0Tu0zwoRk7tzSm+J23PV8l4YcDXRI/4nA5vk9ZQ6hm2+dGVR4Vl/vpw== X-Received: by 2002:a05:6a20:9c8a:b0:1f5:6e00:14db with SMTP id adf61e73a8af0-20107efeef3mr14788430637.14.1743955736125; Sun, 06 Apr 2025 09:08:56 -0700 (PDT) Received: from hermes.local (204-195-96-226.wavecable.com. [204.195.96.226]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-af9bc32fb83sm4843572a12.31.2025.04.06.09.08.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 06 Apr 2025 09:08:55 -0700 (PDT) Date: Sun, 6 Apr 2025 09:08:53 -0700 From: Stephen Hemminger To: longli@linuxonhyperv.com Cc: Wei Hu , dev@dpdk.org, Long Li Subject: Re: [Patch v3 6/6] bus/vmbus: set event for channel without monitoring support Message-ID: <20250406090853.78499346@hermes.local> In-Reply-To: <1743813338-28238-7-git-send-email-longli@linuxonhyperv.com> References: <1743813338-28238-1-git-send-email-longli@linuxonhyperv.com> <1743813338-28238-7-git-send-email-longli@linuxonhyperv.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org On Fri, 4 Apr 2025 17:35:38 -0700 longli@linuxonhyperv.com wrote: > diff --git a/drivers/bus/vmbus/vmbus_channel.c b/drivers/bus/vmbus/vmbus_channel.c > index bccef168d3..81e8096190 100644 > --- a/drivers/bus/vmbus/vmbus_channel.c > +++ b/drivers/bus/vmbus/vmbus_channel.c > @@ -24,6 +24,19 @@ vmbus_sync_set_bit(volatile RTE_ATOMIC(uint32_t) *addr, uint32_t mask) > rte_atomic_fetch_or_explicit(addr, mask, rte_memory_order_seq_cst); > } > > +static inline void > +vmbus_send_interrupt(const struct rte_vmbus_device *dev, uint32_t relid) > +{ > + RTE_ATOMIC(uint32_t) *int_addr; > + uint32_t int_mask; > + > + int_addr = (RTE_ATOMIC(uint32_t)*) (dev->int_page + relid / 32); > + int_mask = 1u << (relid % 32); > + vmbus_sync_set_bit(int_addr, int_mask); > + > + vmbus_uio_irq_control(dev, 1); > +} > + This part doesn't look right. RTE_ATOMIC() is just a macro to add the _Atomic attribute. Can it be simplified like this? static inline void vmbus_sync_set_bit(RTE_ATOMIC(uint32_t *) addr, uint32_t mask) { rte_atomic_fetch_or_explicit(addr, mask, rte_memory_order_seq_cst); } static inline void vmbus_send_interrupt(const struct rte_vmbus_device *dev, uint32_t relid) { RTE_ATOMIC(uint32_t *) int_addr; uint32_t int_mask; int_addr = dev->int_page + relid / 32; int_mask = 1u << (relid % 32); vmbus_sync_set_bit(int_addr, int_mask); vmbus_uio_irq_control(dev, 1); }