From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from out-177.mta1.migadu.com (out-177.mta1.migadu.com [95.215.58.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 14BF0372 for ; Sat, 24 May 2025 00:06:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=95.215.58.177 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748045168; cv=none; b=TkoRXOyvRLiOnQP75GdHv+BXW7ccNx/ANkerkb0obV0fdnm69eIgr+ZRBTb7PpEg68sflLjh8A7zPmoG4Qk7Yoi8DhASwz8eeLpsboxMngK41rJI23ka4E8HVXG0F23FuiP3CJF0u0HVWedlCDYGhb+qs9y1K4WenylJ28cnJi8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748045168; c=relaxed/simple; bh=jQR2cq5R86woVzeAlKKc7kzvOWXL1U+6QC15dfhR6A0=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=PMJWyHnXjn8c5pMa4P+mUxpt2v6dZJvHmEZkuzb9e75u6nBDN9O2vzMY/Hp68tNBZwG5EeD1uz4VQPOg1Q0nWXV2tkz+sHDLEtUh+dvm47psjAu0QAxccHd2vnHOgB2cNcc31ZIHg+wUk3eEQPRN4JGovUOGmQFrJef+exE6q24= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=vai4EuEU; arc=none smtp.client-ip=95.215.58.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="vai4EuEU" Message-ID: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1748045159; 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=LlgkMcqiXeBfNJzqZJiJ1hnVlRsL2S82VSTLmO+U4sU=; b=vai4EuEUo/cSkFCo46LpLyfdC5rzCZuTfjjf8U10xsFbbV1lFFmpgBIK/5ocgolb6yLfzI FkXgeT2MIyPzKQCRLCvIx6+gjWdv4QXQdXx2HLT+PvhF/7atF/3e3dwm0L6yH0QkT5PyvU jITq5OzXv3J/lEzBK3SuSry2WMQpvw8= Date: Fri, 23 May 2025 17:05:44 -0700 Precedence: bulk X-Mailing-List: bpf@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Subject: Re: [PATCH bpf-next] selftests/bpf: Fix "expression result unused" warnings Content-Language: en-GB To: Ilya Leoshkevich , Kumar Kartikeya Dwivedi , Alexei Starovoitov Cc: Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , bpf , Heiko Carstens , Vasily Gorbik , Alexander Gordeev References: <20250508113804.304665-1-iii@linux.ibm.com> <15bf9a71b8185006c8d19a3aefb331a2765629c5.camel@linux.ibm.com> <7a242102eecdd17b4d35c1e4f7d01ea15cb8066a.camel@linux.ibm.com> X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Yonghong Song In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Migadu-Flow: FLOW_OUT On 5/23/25 4:25 AM, Ilya Leoshkevich wrote: > On Mon, 2025-05-12 at 15:29 -0400, Kumar Kartikeya Dwivedi wrote: >> On Mon, 12 May 2025 at 12:41, Alexei Starovoitov >> wrote: >>> On Mon, May 12, 2025 at 5:22 AM Ilya Leoshkevich >>> wrote: >>>> On Fri, 2025-05-09 at 09:51 -0700, Alexei Starovoitov wrote: >>>>> On Thu, May 8, 2025 at 12:21 PM Ilya Leoshkevich >>>>> >>>>> wrote: >>>>>> On Thu, 2025-05-08 at 11:38 -0700, Alexei Starovoitov wrote: >>>>>>> On Thu, May 8, 2025 at 4:38 AM Ilya Leoshkevich >>>>>>> >>>>>>> wrote: >>>>>>>> clang-21 complains about unused expressions in a few >>>>>>>> progs. >>>>>>>> Fix by explicitly casting the respective expressions to >>>>>>>> void. >>>>>>> ... >>>>>>>>         if (val & _Q_LOCKED_MASK) >>>>>>>> -               smp_cond_load_acquire_label(&lock- >>>>>>>>> locked, >>>>>>>> !VAL, >>>>>>>> release_err); >>>>>>>> +               (void)smp_cond_load_acquire_label(&lock- >>>>>>>>> locked, >>>>>>>> !VAL, release_err); >>>>>>> Hmm. I'm on clang-21 too and I don't see them. >>>>>>> What warnings do you see ? >>>>>> In file included from progs/arena_spin_lock.c:7: >>>>>> progs/bpf_arena_spin_lock.h:305:1756: error: expression >>>>>> result >>>>>> unused >>>>>> [-Werror,-Wunused-value] >>>>>>   305 |   ({ typeof(_Generic((*&lock->locked), char: (char)0, >>>>>> unsigned >>>>>> char : (unsigned char)0, signed char : (signed char)0, >>>>>> unsigned >>>>>> short : >>>>>> (unsigned short)0, signed short : (signed short)0, unsigned >>>>>> int : >>>>>> (unsigned int)0, signed int : (signed int)0, unsigned long : >>>>>> (unsigned >>>>>> long)0, signed long : (signed long)0, unsigned long long : >>>>>> (unsigned >>>>>> long long)0, signed long long : (signed long long)0, default: >>>>>> (typeof(*&lock->locked))0)) __val = ({ typeof(&lock->locked) >>>>>> __ptr >>>>>> = >>>>>> (&lock->locked); typeof(_Generic((*(&lock->locked)), char: >>>>>> (char)0, >>>>>> unsigned char : (unsigned char)0, signed char : (signed >>>>>> char)0, >>>>>> unsigned short : (unsigned short)0, signed short : (signed >>>>>> short)0, >>>>>> unsigned int : (unsigned int)0, signed int : (signed int)0, >>>>>> unsigned >>>>>> long : (unsigned long)0, signed long : (signed long)0, >>>>>> unsigned >>>>>> long >>>>>> long : (unsigned long long)0, signed long long : (signed long >>>>>> long)0, >>>>>> default: (typeof(*(&lock->locked)))0)) VAL; for (;;) { VAL = >>>>>> (typeof(_Generic((*(&lock->locked)), char: (char)0, unsigned >>>>>> char : >>>>>> (unsigned char)0, signed char : (signed char)0, unsigned >>>>>> short : >>>>>> (unsigned short)0, signed short : (signed short)0, unsigned >>>>>> int : >>>>>> (unsigned int)0, signed int : (signed int)0, unsigned long : >>>>>> (unsigned >>>>>> long)0, signed long : (signed long)0, unsigned long long : >>>>>> (unsigned >>>>>> long long)0, signed long long : (signed long long)0, default: >>>>>> (typeof(*(&lock->locked)))0)))(*(volatile typeof(*__ptr) >>>>>> *)&(*__ptr)); >>>>>> if (!VAL) break; ({ __label__ l_break, l_continue; asm >>>>>> volatile >>>>>> goto("may_goto %l[l_break]" :::: l_break); goto l_continue; >>>>>> l_break: >>>>>> goto release_err; l_continue:; }); ({}); } (typeof(*(&lock- >>>>>>> locked)))VAL; }); ({ ({ if (!CONFIG_X86_64) ({ unsigned >>>>>>> long >>>>>>> __val; >>>>>> __sync_fetch_and_add(&__val, 0); }); else asm volatile("" ::: >>>>>> "memory"); }); }); (typeof(*(&lock->locked)))__val; }); >>>>>>       | >>>>>> ^                         ~~~~~ >>>>>> 1 error generated. >>>>> hmm. The error is impossible to read. >>>>> >>>>> Kumar, >>>>> >>>>> Do you see a way to silence it differently ? >>>>> >>>>> Without adding (void)... >>>>> >>>>> Things like: >>>>> -       bpf_obj_new(.. >>>>> +       (void)bpf_obj_new(.. >>>>> >>>>> are good to fix, and if we could annotate >>>>> bpf_obj_new_impl kfunc with __must_check we would have done it, >>>>> >>>>> but >>>>> -               arch_mcs_spin_lock... >>>>> +               (void)arch_mcs_spin_lock... >>>>> >>>>> is odd. >>>> What do you think about moving (void) to the definition of >>>> arch_mcs_spin_lock_contended_label()? I can send a v2 if this is >>>> better. >>> Kumar, >>> >>> thoughts? >> Sorry for the delay, I was afk. >> >> The warning seems a bit aggressive, in the kernel we have users which >> do and do not use the value and it's fine. >> I think moving (void) inside the macro is a problem since at least >> rqspinlock like algorithm would want to inspect the result of the >> locked bit. >> No such users exist for now, of course. So maybe we can silence it >> until we do end up depending on the value. >> >> I will give a try with clang-21, but I think probably (void) in the >> source is better if we do need to silence it. > Gentle ping. > > This is still an issue with clang version 21.0.0 > (++20250522112647+491619a25003-1~exp1~20250522112819.1465). > I cannot reproduce the "unused expressions" error. What is the llvm cmake command line you are using?