From nobody Fri Apr 3 08:06:54 2026 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 40D562C1598 for ; Wed, 18 Feb 2026 10:26:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771410390; cv=none; b=ZNfxJYTOmPY18OvAbI7q/xYZiRpR7ajk70tY+5S0Ew+DLmccdSryIBzIx9W3tana+e76HTqo0LQET8CjVM1L5HLNFxFr50ljwJHkFYAhOuWvpNrLNjUUTUHWyn2AEHh7Ay70MGbICOOh9cLhApu1YjJHLiaqtSENVLzyi7OmdPw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771410390; c=relaxed/simple; bh=5JcgXZrgOrM6do+BK1JI3r1U2blIESuaxyCRVIaOUh0=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=gz4wbG1vtHSPMDbX3vhAARQwvB52WRuX704PJMVVZ/hUsM4wUaZEf56bL8cQ6mQhhYV5f4bG29IRe3KN7JIf2ITVOg1PmqM7FibUPiNjx594HQh0AYe4g/BVijCyOUOTAvQhVj5co/1IXU2p56Wq6yzga072Kmq6myQ+Pqh/Ly4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=HiZmceBv; arc=none smtp.client-ip=209.85.128.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="HiZmceBv" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-4836f363ad2so56900935e9.1 for ; Wed, 18 Feb 2026 02:26:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771410388; x=1772015188; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=7gvcifprQLUEgZOpsRUHwX7m6i+hMM96dVdgLDV6HiQ=; b=HiZmceBvW8yrDll2ym7cY8EwgbRoaAWSCCFa90mU+iM/HU1tircVIjELDY0QovKNQr YFlF9NN29PqwbuL5X+spNoFujDWqAL5ikAF6i5PKqEEuv54wmptAUGsFMOB0wKj+EeB+ 8YHx/RBCnaRplDAg25UjsjOfKOtuuWZ0Z/kab9dA2XYAdzQ+3mPlczl1/cxdBpL9z5aS o+32DgkVB3vhEupwZ0ogvC8Zo9ILBpwZQ+DaSbbuVl8xVRoifsv8Zs7qfsFXkO9H2Ft3 Dvi7/D9xjdYJ98fpxLXn0vjKyQKGdWMW4YAR5cQ6szNlgLUZoJzvKUYqTNSsBsm3oZjb pSrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771410388; x=1772015188; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=7gvcifprQLUEgZOpsRUHwX7m6i+hMM96dVdgLDV6HiQ=; b=V1WXVlYhthmEVj9b1v78+ILO2aOJEFeobmm39m5Ne+UwyhmL7T3ako+xu5fYa6LJ9K XutZOlf/MJJ+6Vs+694F2V2piJ7KSIpWyFjmLy0XRUweDFJroU031Nw1NzyLEsqhhIX7 dNOk6Z5+MA1h3W8i57f6dwt1Vt9hM7ujHVC6XDgtd7V1MuMWaBdGvAD8/FMPkY0958le mM65b3PoMcc9UuNKnNxGXlXjJaUP3HCHqa8RHVDdxQm7FC9KlQKMgw3zO55cfBtnaouB eXbq/Ufk39BtESqmlckHjvVsL/vwnDa+AOq46tqXXUKK+IoYlosWQoOXwOQn0rcDnLmq RPEg== X-Forwarded-Encrypted: i=1; AJvYcCUojK342cW7JDWDhPSA2EEAs4/tTn/wdITI2eV2NO7pKhMnZU59zHBMSjzqC7r8a1sIvGWnJIwSYtxawP0=@vger.kernel.org X-Gm-Message-State: AOJu0YwTFwUM+htWFcWMAdVY5ojYw8LEhKi2hh3LAwCE1ZTsE44UXVqP hokQ9hmN6K8lykqaGy7l8OJOSmhVKoWVGbVzw80yRrD9643xezMCcqwz X-Gm-Gg: AZuq6aJGcZoD95BZRwtkFHUq8KJ6J9BReTZSKd/SX/EaXZpm8dyKznvWWx3vQAYsTCK eH7XXZqyAItiuiI3atXT/JUU+t7pWhFAaKi8YzwffCstx2L1fWL80J83/uIzn88rly6BpjWbA8F Gow1IdYqjiF1OfMu6dF1ziaKxrAsYSXSnRHAyceRvpVTfztVlUWva38+3RxqLU9Xr/571lkItoz iSYqyMw9qQxRYQyRRC9HhIhrr4AN6M691Q+OVd1kKVlZgbvLqZTMQ02Lauk+M/ZePt6mRH6hCgc cngHWG04ZT7tStBzeTz8FDpg0AKQkCl2qymFHjI85FMAG2llmeUPjtusk6l61MEF0rtOe58feFs JMtMQmUitBulKoFnT8rjqsqCl44qR5RxVH8fSnyfsKzlYWfMVCU0qglSsSPc6/fMbdLvWddd2t/ gAjeDjlJ36XZi0w+sYptSKp/P6TYaAoNoeL/gztixzRPcHE+JWaiibsYAtV6RRJ8T+c6yF9KzNk A81UOjiF1gqs9bEJGZT3JBp80lo/HKX1Hb58NjRzZL3/bNMi8yqCGk= X-Received: by 2002:a05:600c:c04b:10b0:483:7eea:b172 with SMTP id 5b1f17b1804b1-4837eeab900mr168690775e9.23.1771410387217; Wed, 18 Feb 2026 02:26:27 -0800 (PST) Received: from fedora ([193.77.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4835d994670sm463007875e9.4.2026.02.18.02.26.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Feb 2026 02:26:26 -0800 (PST) From: Uros Bizjak To: linux-hyperv@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Uros Bizjak , "K. Y. Srinivasan" , Haiyang Zhang , Wei Liu , Dexuan Cui , Long Li Subject: [PATCH] mshv: Use try_cmpxchg() instead of cmpxchg() Date: Wed, 18 Feb 2026 11:25:37 +0100 Message-ID: <20260218102604.178561-1-ubizjak@gmail.com> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Use !try_cmpxchg() instead of cmpxchg (*ptr, old, new) !=3D old. x86 CMPXCHG instruction returns success in ZF flag, so this change saves a compare after cmpxchg(). The generated assembly code improves from e.g.: 415: 48 8b 44 24 30 mov 0x30(%rsp),%rax 41a: 48 8b 54 24 38 mov 0x38(%rsp),%rdx 41f: f0 49 0f b1 91 a8 02 lock cmpxchg %rdx,0x2a8(%r9) 426: 00 00 428: 48 3b 44 24 30 cmp 0x30(%rsp),%rax 42d: 0f 84 09 ff ff ff je 33c <...> to: 415: 48 8b 44 24 30 mov 0x30(%rsp),%rax 41a: 48 8b 54 24 38 mov 0x38(%rsp),%rdx 41f: f0 49 0f b1 91 a8 02 lock cmpxchg %rdx,0x2a8(%r9) 426: 00 00 428: 0f 84 0e ff ff ff je 33c <...> No functional change intended. Signed-off-by: Uros Bizjak Cc: "K. Y. Srinivasan" Cc: Haiyang Zhang Cc: Wei Liu Cc: Dexuan Cui Cc: Long Li --- drivers/hv/hyperv_vmbus.h | 4 ++-- drivers/hv/mshv_eventfd.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/hv/hyperv_vmbus.h b/drivers/hv/hyperv_vmbus.h index cdbc5f5c3215..7bd8f8486e85 100644 --- a/drivers/hv/hyperv_vmbus.h +++ b/drivers/hv/hyperv_vmbus.h @@ -370,8 +370,8 @@ static inline void vmbus_signal_eom(struct hv_message *= msg, u32 old_msg_type) * CHANNELMSG_UNLOAD_RESPONSE and we don't care about other messages * on crash. */ - if (cmpxchg(&msg->header.message_type, old_msg_type, - HVMSG_NONE) !=3D old_msg_type) + if (!try_cmpxchg(&msg->header.message_type, + &old_msg_type, HVMSG_NONE)) return; =20 /* diff --git a/drivers/hv/mshv_eventfd.c b/drivers/hv/mshv_eventfd.c index 0b75ff1edb73..525e002758e4 100644 --- a/drivers/hv/mshv_eventfd.c +++ b/drivers/hv/mshv_eventfd.c @@ -128,8 +128,8 @@ static int mshv_vp_irq_try_set_vector(struct mshv_vp *v= p, u32 vector) =20 new_iv.vector[new_iv.vector_count++] =3D vector; =20 - if (cmpxchg(&vp->vp_register_page->interrupt_vectors.as_uint64, - iv.as_uint64, new_iv.as_uint64) !=3D iv.as_uint64) + if (!try_cmpxchg(&vp->vp_register_page->interrupt_vectors.as_uint64, + &iv.as_uint64, new_iv.as_uint64)) return -EAGAIN; =20 return 0; --=20 2.53.0