From: "Leonardo Brás" <leobras.c@gmail.com>
To: Akira Yokosawa <akiyks@gmail.com>,
Leonardo Bras <lsoaresp@redhat.com>,
perfbook@vger.kernel.org
Cc: paulmck@kernel.org
Subject: Re: [PATCH] CodeSamples: Remove support for liburcu-signal
Date: Fri, 27 Dec 2024 22:19:26 -0300 [thread overview]
Message-ID: <f0438d5bc371625800e0e666e3047f8874d5d080.camel@gmail.com> (raw)
In-Reply-To: <ded394ec-a98e-4a89-a1f7-513b1e4fdb3e@gmail.com>
Hi Akira,
On Sat, 2024-12-28 at 10:11 +0900, Akira Yokosawa wrote:
> Hi,
>
> On 2024/12/28 7:52, Leonardo Bras wrote:
> > Gitlab-CI is failing[1] on building CodeSamples due to ArchLinux
> > deprecating support for liburcu-signal.
> >
> > Currently liburcu-signal is not needed anymore, since upstream liburcu
> > already include all needed symbols/functions to build CodeSamples.
> >
> > Remove -lurcu-signal from all CodeSamples/*/Makefile to avoid using it on
> > linking stage.
>
> So, this change is made in liburcu 0.15.0, right?
>
> And it breaks builds with liburcu <0.15, no?
>
> I'd like you to consider a more graceful approach considering non-ArchLinux
> users.
Completely agree, thanks for pointing that out!
Last build with no error:
liburcu 0.14.1-1
Current version (error):
liburcu 0.15.0-1
According to relase e-mail:
https://lists.lttng.org/pipermail/lttng-dev/2024-December/030893.html
* Deprecation of liburcu-signal
Users can migrate to liburcu-memb with a kernel implementing the
membarrier(2) system call to have similar read-side performance without
requiring use of a reserved signal, and with improved grace period
performance.
I will add this info and generate a v2.
Thanks!
Leo
>
> Thanks, Akira
>
> >
> > [1] https://gitlab.com/linux-kernel/perfbook/-/jobs/8732944799
> >
> > Signed-off-by: Leonardo Bras <leobras.c@gmail.com>
> > ---
> > CodeSamples/datastruct/Issaquah/Makefile | 4 +--
> > CodeSamples/datastruct/existence/Makefile | 32 +++++++++++------------
> > CodeSamples/datastruct/hash/Makefile | 6 ++---
> > CodeSamples/datastruct/skiplist/Makefile | 4 +--
> > CodeSamples/defer/Makefile | 6 ++---
> > 5 files changed, 26 insertions(+), 26 deletions(-)
> >
> > diff --git a/CodeSamples/datastruct/Issaquah/Makefile b/CodeSamples/datastruct/Issaquah/Makefile
> > index c3b724d7..187d10a7 100644
> > --- a/CodeSamples/datastruct/Issaquah/Makefile
> > +++ b/CodeSamples/datastruct/Issaquah/Makefile
> > @@ -38,17 +38,17 @@ GCC_ARGS += -fcommon
> > # use something like jemalloc() instead of glibc malloc().
> > # If you install jemalloc at /home/paulmck/jemalloc, you will
> > # need the following additional arguments to cc:
> > # -I/home/paulmck/jemalloc/include
> > # -L/home/paulmck/jemalloc/lib
> > # -Wl,--rpath,/home/paulmck/jemalloc/lib
> > # -DUSE_JEMALLOC
> > # Verify by using the nm command and searching output for malloc.
> >
> > existence_test: existence.c existence_test.c
> > - cc $(GCC_ARGS) -o existence_test existence.c existence_test.c -lpthread -lurcu -lurcu-signal
> > + cc $(GCC_ARGS) -o existence_test existence.c existence_test.c -lpthread -lurcu
> >
> > treetorture: tree.c existence.c spinlockmult.c $(LIB)/random.c ../../api.h treetorture.h treetorturetrace.h $(LIB)/random.h existence.h tree.h
> > - cc $(GCC_ARGS) -o treetorture tree.c existence.c spinlockmult.c $(LIB)/random.c -lpthread -lurcu -lurcu-signal
> > + cc $(GCC_ARGS) -o treetorture tree.c existence.c spinlockmult.c $(LIB)/random.c -lpthread -lurcu
> >
> > clean:
> > rm -f $(PROGS)
> > diff --git a/CodeSamples/datastruct/existence/Makefile b/CodeSamples/datastruct/existence/Makefile
> > index 19891c0f..027d54fb 100644
> > --- a/CodeSamples/datastruct/existence/Makefile
> > +++ b/CodeSamples/datastruct/existence/Makefile
> > @@ -37,47 +37,47 @@ all: $(PROGS)
> > # need the following additional arguments to cc:
> > # -I/home/paulmck/jemalloc/include
> > # -L/home/paulmck/jemalloc/lib
> > # -Wl,--rpath,/home/paulmck/jemalloc/lib
> > # -DUSE_JEMALLOC
> > # Verify by using the nm command and searching output for malloc.
> > #
> > # So it is quite a bit easier to just use the default locations. ;-)
> >
> > existence_test: existence.h existence_test.c procon.h
> > - cc $(GCC_ARGS) -o existence_test existence_test.c -lpthread -lurcu -lurcu-signal
> > + cc $(GCC_ARGS) -o existence_test existence_test.c -lpthread -lurcu
> >
> > existence_3hash_test: existence.h hash_exists.h keyvalue.h existence_3hash_test.c procon.h
> > - cc $(GCC_ARGS) -o existence_3hash_test existence_3hash_test.c -lpthread -lurcu -lurcu-signal
> > + cc $(GCC_ARGS) -o existence_3hash_test existence_3hash_test.c -lpthread -lurcu
> >
> > existence_3hash_uperf: existence.h hash_exists.h keyvalue.h existence_3hash_uperf.c procon.h
> > - # cc -O0 -Wall -ggdb -fno-inline -o existence_3hash_uperf existence_3hash_uperf.c -ltcmalloc -lpthread -lurcu -lurcu-signal
> > - cc $(GCC_ARGS) -o existence_3hash_uperf existence_3hash_uperf.c -ltcmalloc -lpthread -lurcu -lurcu-signal
> > + # cc -O0 -Wall -ggdb -fno-inline -o existence_3hash_uperf existence_3hash_uperf.c -ltcmalloc -lpthread -lurcu
> > + cc $(GCC_ARGS) -o existence_3hash_uperf existence_3hash_uperf.c -ltcmalloc -lpthread -lurcu
> >
> > existence_3skiplist_test: existence.h skiplist_exists.h keyvalue.h existence_3skiplist_test.c procon.h
> > - cc -g -O0 -o existence_3skiplist_test existence_3skiplist_test.c $(LIB)/random.c -lpthread -lurcu -lurcu-signal
> > - # cc $(GCC_ARGS) -o existence_3skiplist_test existence_3skiplist_test.c $(LIB)/random.c -lpthread -lurcu -lurcu-signal
> > + cc -g -O0 -o existence_3skiplist_test existence_3skiplist_test.c $(LIB)/random.c -lpthread -lurcu
> > + # cc $(GCC_ARGS) -o existence_3skiplist_test existence_3skiplist_test.c $(LIB)/random.c -lpthread -lurcu
> >
> > existence_3skiplist_uperf: existence.h hash_exists.h keyvalue.h existence_3skiplist_uperf.c procon.h
> > - # cc -O0 -Wall -ggdb -fno-inline -o existence_3skiplist_uperf existence_3skiplist_uperf.c -ltcmalloc $(LIB)/random.c -lpthread -lurcu -lurcu-signal
> > - cc $(GCC_ARGS) -o existence_3skiplist_uperf existence_3skiplist_uperf.c -ltcmalloc $(LIB)/random.c -lpthread -lurcu -lurcu-signal
> > + # cc -O0 -Wall -ggdb -fno-inline -o existence_3skiplist_uperf existence_3skiplist_uperf.c -ltcmalloc $(LIB)/random.c -lpthread -lurcu
> > + cc $(GCC_ARGS) -o existence_3skiplist_uperf existence_3skiplist_uperf.c -ltcmalloc $(LIB)/random.c -lpthread -lurcu
> >
> > kaleidoscope_test: kaleidoscope.h kaleidoscope_test.c procon.h
> > - cc $(GCC_ARGS) -o kaleidoscope_test kaleidoscope_test.c -lpthread -lurcu -lurcu-signal
> > + cc $(GCC_ARGS) -o kaleidoscope_test kaleidoscope_test.c -lpthread -lurcu
> >
> > kaleidoscope_3hash_test: kaleidoscope.h hash_exists.h keyvalue.h kaleidoscope_3hash_test.c procon.h
> > - cc $(GCC_ARGS) -o kaleidoscope_3hash_test kaleidoscope_3hash_test.c -lpthread -lurcu -lurcu-signal
> > + cc $(GCC_ARGS) -o kaleidoscope_3hash_test kaleidoscope_3hash_test.c -lpthread -lurcu
> >
> > kaleidoscope_3skiplist_test: kaleidoscope.h skiplist_exists.h keyvalue.h kaleidoscope_3skiplist_test.c procon.h
> > - cc -g -O0 -o kaleidoscope_3skiplist_test kaleidoscope_3skiplist_test.c $(LIB)/random.c -lpthread -lurcu -lurcu-signal
> > - # cc $(GCC_ARGS) -o kaleidoscope_3skiplist_test kaleidoscope_3skiplist_test.c $(LIB)/random.c -lpthread -lurcu -lurcu-signal
> > + cc -g -O0 -o kaleidoscope_3skiplist_test kaleidoscope_3skiplist_test.c $(LIB)/random.c -lpthread -lurcu
> > + # cc $(GCC_ARGS) -o kaleidoscope_3skiplist_test kaleidoscope_3skiplist_test.c $(LIB)/random.c -lpthread -lurcu
> >
> > kaleidoscope_skiphash_test: kaleidoscope.h skiplist_exists.h keyvalue.h kaleidoscope_skiphash_test.c procon.h
> > - cc -g -O0 -o kaleidoscope_skiphash_test kaleidoscope_skiphash_test.c $(LIB)/random.c -lpthread -lurcu -lurcu-signal
> > - # cc $(GCC_ARGS) -o kaleidoscope_skiphash_test kaleidoscope_skiphash_test.c $(LIB)/random.c -lpthread -lurcu -lurcu-signal
> > + cc -g -O0 -o kaleidoscope_skiphash_test kaleidoscope_skiphash_test.c $(LIB)/random.c -lpthread -lurcu
> > + # cc $(GCC_ARGS) -o kaleidoscope_skiphash_test kaleidoscope_skiphash_test.c $(LIB)/random.c -lpthread -lurcu
> >
> > procon_test: procon.h procon_test.c
> > - cc -O0 -g -o procon_test procon_test.c -lpthread -lurcu -lurcu-signal
> > - # cc $(GCC_ARGS) -o procon_test procon_test.c -lpthread -lurcu -lurcu-signal
> > + cc -O0 -g -o procon_test procon_test.c -lpthread -lurcu
> > + # cc $(GCC_ARGS) -o procon_test procon_test.c -lpthread -lurcu
> >
> > clean:
> > rm -f $(PROGS)
> > diff --git a/CodeSamples/datastruct/hash/Makefile b/CodeSamples/datastruct/hash/Makefile
> > index a56255a2..7d47485a 100644
> > --- a/CodeSamples/datastruct/hash/Makefile
> > +++ b/CodeSamples/datastruct/hash/Makefile
> > @@ -37,29 +37,29 @@ GCC_ARGS += -fcommon
> > hash_bkt: hash_bkt.c ../../api.h hashtorture.h
> > cc $(GCC_ARGS) -DTEST_HASH -o hash_bkt hash_bkt.c $(LIB)/random.c -lpthread
> >
> > hash_bkt_ref: hash_bkt_ref.c ../../api.h hashtorture.h
> > cc $(GCC_ARGS) -DTEST_HASH -o hash_bkt_ref hash_bkt_ref.c $(LIB)/random.c -lpthread
> >
> > hash_bkt_qsbr: hash_bkt_rcu.c ../../api.h hashtorture.h
> > cc $(GCC_ARGS) -DTEST_HASH -DPERFBOOK_RCU_QSBR -o hash_bkt_qsbr hash_bkt_rcu.c $(LIB)/random.c -lpthread -lurcu -lurcu-qsbr
> >
> > hash_bkt_rcu: hash_bkt_rcu.c ../../api.h hashtorture.h
> > - cc $(GCC_ARGS) -DTEST_HASH -o hash_bkt_rcu hash_bkt_rcu.c $(LIB)/random.c -lpthread -lurcu -lurcu-signal
> > + cc $(GCC_ARGS) -DTEST_HASH -o hash_bkt_rcu hash_bkt_rcu.c $(LIB)/random.c -lpthread -lurcu
> >
> > hash_bkt_hazptr: hash_bkt_hazptr.c ../../defer/hazptr.c ../../defer/hazptr.h ../../api.h hashtorture.h
> > cc $(GCC_ARGS) -DTEST_HASH -o hash_bkt_hazptr hash_bkt_hazptr.c ../../defer/hazptr.c $(LIB)/random.c -lpthread
> >
> > hash_global: hash_global.c ../../api.h hashtorture.h
> > cc $(GCC_ARGS) -DTEST_HASH -o hash_global hash_global.c $(LIB)/random.c -lpthread
> >
> > hash_resize: hash_resize.c ../../api.h hashtorture.h
> > - cc $(GCC_ARGS) -DTEST_HASH -o hash_resize hash_resize.c $(LIB)/random.c -lpthread -lurcu -lurcu-signal
> > + cc $(GCC_ARGS) -DTEST_HASH -o hash_resize hash_resize.c $(LIB)/random.c -lpthread -lurcu
> >
> > hash_resize_s: hash_resize_s.c ../../api.h hashtorture.h
> > - cc $(GCC_ARGS) -DTEST_HASH -o hash_resize_s hash_resize_s.c $(LIB)/random.c -lpthread -lurcu -lurcu-signal
> > + cc $(GCC_ARGS) -DTEST_HASH -o hash_resize_s hash_resize_s.c $(LIB)/random.c -lpthread -lurcu
> >
> > hash_unsync: hash_unsync.c ../../api.h hashtorture.h
> > cc $(GCC_ARGS) -DTEST_HASH -o hash_unsync hash_unsync.c $(LIB)/random.c -lpthread
> >
> > clean:
> > rm -f $(PROGS)
> > diff --git a/CodeSamples/datastruct/skiplist/Makefile b/CodeSamples/datastruct/skiplist/Makefile
> > index 3a555691..931c8c1c 100644
> > --- a/CodeSamples/datastruct/skiplist/Makefile
> > +++ b/CodeSamples/datastruct/skiplist/Makefile
> > @@ -26,17 +26,17 @@ include $(top)/depends.mk
> > ifeq ($(strip $(target)),)
> > all:
> > @echo "### None in datastruct/skiplist/ can be built on arch: '$(arch)'."
> > else
> > all: $(PROGS)
> > endif
> >
> > include $(top)/recipes.mk
> >
> > skiplist: skiplist.c ../../api.h skiplisttorture.h skiplist.h
> > - cc $(GCC_ARGS) -DTEST_SKIPLIST -I $(LIB) -g -o skiplist skiplist.c $(LIB)/random.c -lpthread -lurcu -lurcu-signal
> > + cc $(GCC_ARGS) -DTEST_SKIPLIST -I $(LIB) -g -o skiplist skiplist.c $(LIB)/random.c -lpthread -lurcu
> >
> > skiplist_glock: skiplist_glock.c ../../api.h skiplisttorture.h skiplist.h
> > - cc $(GCC_ARGS) -DTEST_SKIPLIST -I $(LIB) -g -o skiplist_glock skiplist_glock.c $(LIB)/random.c -lpthread -lurcu -lurcu-signal
> > + cc $(GCC_ARGS) -DTEST_SKIPLIST -I $(LIB) -g -o skiplist_glock skiplist_glock.c $(LIB)/random.c -lpthread -lurcu
> >
> > clean:
> > rm -f $(PROGS)
> > diff --git a/CodeSamples/defer/Makefile b/CodeSamples/defer/Makefile
> > index 3cf3e5a5..8454a9ed 100644
> > --- a/CodeSamples/defer/Makefile
> > +++ b/CodeSamples/defer/Makefile
> > @@ -73,21 +73,21 @@ bug_rcu_dp: bug_rcu_dp.c ../api.h
> > gettimestamp: gettimestamp.c ../api.h rcutorture.h
> > cc $(GCC_ARGS) -o gettimestamp -DTEST gettimestamp.c -lpthread
> >
> > gettimestampmp: gettimestampmp.c ../api.h rcutorture.h
> > cc $(GCC_ARGS) -o gettimestampmp -DTEST gettimestampmp.c -lpthread
> >
> > hazptr: hazptr.c hazptr.h ../api.h hazptrtorture.h
> > cc $(GCC_ARGS) -o hazptr -DTEST hazptr.c -lpthread
> >
> > ptxroute: ptxroute.c ../api.h
> > - cc $(GCC_ARGS) -o ptxroute ptxroute.c -lpthread -lurcu -lurcu-signal
> > + cc $(GCC_ARGS) -o ptxroute ptxroute.c -lpthread -lurcu
> >
> > rcu: rcu.c rcu.h ../api.h rcutorture.h
> > cc $(GCC_ARGS) -o rcu -DTEST rcu.c -lpthread
> >
> > rcu64: rcu64.c rcu64.h ../api.h rcutorture.h
> > cc $(GCC_ARGS) -o rcu64 -DTEST rcu64.c -lpthread
> >
> > rcu64_atomicgp: rcu64_atomicgp.c rcu64_atomicgp.h ../api.h rcutorture.h
> > cc $(GCC_ARGS) -o rcu64_atomicgp -DTEST rcu64_atomicgp.c -lpthread
> >
> > @@ -124,32 +124,32 @@ rcu_rcpls: rcu_rcpls.c rcu_rcpls.h ../api.h rcutorture.h
> > rcu_sig: rcu_sig.c rcu_sig.h ../api.h rcutorture.h
> > cc $(GCC_ARGS) -o rcu_sig -DTEST rcu_sig.c -lpthread
> >
> > rcu_ts: rcu_ts.c rcu_ts.h ../api.h rcutorture.h
> > cc $(GCC_ARGS) -o rcu_ts -DTEST rcu_ts.c -lpthread
> >
> > route_hazptr: route_hazptr.c hazptr.c hazptr.h ../api.h ../lib/random.h ../lib/random.c routetorture.h
> > cc $(GCC_ARGS) -o route_hazptr route_hazptr.c hazptr.c ../lib/random.c -lpthread
> >
> > route_rcu: route_rcu.c ../api.h ../lib/random.h ../lib/random.c routetorture.h
> > - cc $(GCC_ARGS) -o route_rcu route_rcu.c ../lib/random.c -lpthread -lurcu -lurcu-signal
> > + cc $(GCC_ARGS) -o route_rcu route_rcu.c ../lib/random.c -lpthread -lurcu
> >
> > route_rcu_qsbr: route_rcu.c ../api.h ../lib/random.h ../lib/random.c routetorture.h
> > cc $(GCC_ARGS) -o route_rcu_qsbr -DDO_QSBR route_rcu.c ../lib/random.c -lpthread -lurcu-qsbr
> >
> > route_refcnt: route_refcnt.c ../api.h ../lib/random.h ../lib/random.c routetorture.h
> > cc $(GCC_ARGS) -o route_refcnt route_refcnt.c ../lib/random.c -lpthread
> >
> > route_seq: route_seq.c ../api.h ../lib/random.h ../lib/random.c routetorture.h
> > cc $(GCC_ARGS) -o route_seq route_seq.c ../lib/random.c -lpthread
> >
> > route_seqlock: route_seqlock.c ../api.h seqlock.h ../lib/random.h ../lib/random.c routetorture.h
> > cc $(GCC_ARGS) -o route_seqlock route_seqlock.c ../lib/random.c -lpthread
> >
> > seqlocktorture: seqlocktorture.c seqlock.h ../api.h
> > cc $(GCC_ARGS) -o seqlocktorture seqlocktorture.c -lpthread
> >
> > singleton: singleton.c ../api.h ../lib/random.h ../lib/random.c
> > - cc $(GCC_ARGS) -Wall -g -o singleton singleton.c ../lib/random.c -lpthread -lurcu -lurcu-signal
> > + cc $(GCC_ARGS) -Wall -g -o singleton singleton.c ../lib/random.c -lpthread -lurcu
> >
> > clean:
> > rm -f $(PROGS)
prev parent reply other threads:[~2024-12-28 1:19 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-27 22:52 [PATCH] CodeSamples: Remove support for liburcu-signal Leonardo Bras
2024-12-28 1:11 ` Akira Yokosawa
2024-12-28 1:19 ` Leonardo Brás [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f0438d5bc371625800e0e666e3047f8874d5d080.camel@gmail.com \
--to=leobras.c@gmail.com \
--cc=akiyks@gmail.com \
--cc=lsoaresp@redhat.com \
--cc=paulmck@kernel.org \
--cc=perfbook@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.