Fri, May 10
Updated diff -U99999
Thu, May 9
Updated with PR comments
Thu, May 2
Updated for -U99999 as requested.
Can you please regenerate a full patch using -U99999?
I believe I have addressed all of reviews; it would be great to get this in for 14.1 so I don't keep having to patch my local copies
Feb 18 2024
Dec 27 2023
I don't think this was intended to be interpreted as a specific path (/var would've been the partition, so they're just saying that the files are on that partition of the system), but I don't know that there's any harm in being more specific.
Dec 26 2023
Aug 23 2023
once again, i have broken a revision by trying to update it.
address @pauamma_gundo.com comments
Aug 4 2023
Cleaned up erroneous patches due to my tree being out of date with target.
Ran entire kyua test suite as follows:
Updates from code review
Aug 1 2023
I think I have more or less workable scheme to make look-aside cache working.
I tried to organize my thought about this cache proposal, and I do think that I managed to understand it better now.
Jul 29 2023
Refactor to more closely follow seqc.h.
Jul 28 2023
Updated to quasi-follow seqlock semantics from seqc.h for continued discussion...
Jul 27 2023
Jul 26 2023
Jul 25 2023
Fix how generation count is updated and synchronized with readers.
Add comments to explain how it works.
Jul 22 2023
Doesn't it make sense to fill curthread cache on key/val creation in pshared_insert? It is highly likely that the same thread would use the lock obj.
Jul 20 2023
Use MACHINE_ABI to build only for 64-bit architectures.
Replace uint64_t with u_long for pshared hash table generation counts.
Jul 19 2023
A buildworld with D41092.id124866.diff added to 239597e0309d4 doesn't compile for me:
===> lib/libthr (obj,all,install) cc -march=i686 -mmmx -msse -msse2 -target x86_64-unknown-freebsd14.0 -m32 -DCOMPAT_LIBCOMPAT=\"32\" -DCOMPAT_libcompat=\"32\" -DCOMPAT_LIB32 --sysroot=/usr/obj/usr/src/amd64.amd64/tmp -B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin -B/usr/obj/usr/src/amd64.amd64/tmp/usr/lib32 -O2 -pipe -fno-common -DPTHREAD_KERNEL -I/usr/src/lib/libc/include -I/usr/src/lib/libc/i386 -I/usr/src/lib/libthr/thread -I/usr/src/lib/libthr/arch/i386/include -I/usr/src/lib/libthr/sys -I/usr/src/libexec/rtld-elf -I/usr/src/libexec/rtld-elf/i386 -I/usr/src/lib/libthread_db -fexceptions -D_PTHREAD_FORCED_UNWIND -D_PTHREAD_PSC_SIZE=11 -D_PTHREADS_INVARIANTS -mno-mmx -mno-sse -mno-avx -mno-avx2 -MD -MF.depend.thr_pshared.o -MTthr_pshared.o -std=gnu99 -Wno-format-zero-length -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wunused-parameter -Wcast-align -Wchar-subscripts -Wnested-externs -Wold-style-definition -Wno-pointer-sign -Wdate-time -Wmissing-variable-declarations -Wno-empty-body -Wno-string-plus-int -Wno-unused-const-variable -Wno-error=unused-but-set-parameter -Qunused-arguments -c /usr/src/lib/libthr/thread/thr_pshared.c -o thr_pshared.o /usr/src/lib/libthr/thread/thr_pshared.c:137:4: error: call to undeclared function 'atomic_add_rel_64'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration] PSHARED_HTGEN_INVALIDATE(); ^ /usr/src/lib/libthr/thread/thr_pshared.c:68:36: note: expanded from macro 'PSHARED_HTGEN_INVALIDATE' #define PSHARED_HTGEN_INVALIDATE() atomic_add_rel_64(&pshared_htgen, 1) ^ /usr/src/lib/libthr/thread/thr_pshared.c:137:4: note: did you mean 'atomic_add_long'? /usr/src/lib/libthr/thread/thr_pshared.c:68:36: note: expanded from macro 'PSHARED_HTGEN_INVALIDATE' #define PSHARED_HTGEN_INVALIDATE() atomic_add_rel_64(&pshared_htgen, 1) ^ /usr/obj/usr/src/amd64.amd64/tmp/usr/include/i386/atomic.h:602:1: note: 'atomic_add_long' declared here ATOMIC_ASM(add, long, "addl %1,%0", "ir", v); ^ /usr/obj/usr/src/amd64.amd64/tmp/usr/include/i386/atomic.h:105:26: note: expanded from macro 'ATOMIC_ASM' static __inline void \ ^ <scratch space>:208:1: note: expanded from here atomic_add_long ^ /usr/src/lib/libthr/thread/thr_pshared.c:158:10: error: call to undeclared function 'atomic_load_acq_64'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration] htgen = atomic_load_acq_64(&pshared_htgen); ^ /usr/src/lib/libthr/thread/thr_pshared.c:158:10: note: did you mean 'atomic_load_acq_int'? /usr/obj/usr/src/amd64.amd64/tmp/usr/include/i386/atomic.h:611:1: note: 'atomic_load_acq_int' declared here ATOMIC_LOADSTORE(int); ^ /usr/obj/usr/src/amd64.amd64/tmp/usr/include/i386/atomic.h:606:2: note: expanded from macro 'ATOMIC_LOADSTORE' ATOMIC_LOAD(TYPE); \ ^ /usr/obj/usr/src/amd64.amd64/tmp/usr/include/i386/atomic.h:253:30: note: expanded from macro 'ATOMIC_LOAD' static __inline u_##TYPE \ ^ <scratch space>:241:1: note: expanded from here atomic_load_acq_int ^ /usr/src/lib/libthr/thread/thr_pshared.c:243:4: error: call to undeclared function 'atomic_add_rel_64'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration] PSHARED_HTGEN_INVALIDATE(); ^ /usr/src/lib/libthr/thread/thr_pshared.c:68:36: note: expanded from macro 'PSHARED_HTGEN_INVALIDATE' #define PSHARED_HTGEN_INVALIDATE() atomic_add_rel_64(&pshared_htgen, 1) ^ /usr/src/lib/libthr/thread/thr_pshared.c:322:2: error: call to undeclared function 'atomic_add_rel_64'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration] PSHARED_HTGEN_INVALIDATE(); ^ /usr/src/lib/libthr/thread/thr_pshared.c:68:36: note: expanded from macro 'PSHARED_HTGEN_INVALIDATE' #define PSHARED_HTGEN_INVALIDATE() atomic_add_rel_64(&pshared_htgen, 1) ^ 4 errors generated. *** Error code 1
Feb 23 2023
Jan 20 2023
Please provide more diff context (diff -U999999).
Can you please run the libc pw* tests?
kyua test -k /usr/tests/lib/libc/nss/Kyuafile
Please see man 7 tests for more details.
Jan 19 2023
Does this need any corresponding updates to manual pages, eg getpwent(3), getgrent(3), nsswitch.conf(5), or nscd(8)? My C reading skills aren't up to telling conclusively.
Jan 13 2023
Dec 3 2022
What about the other NO_ options there. Should they also be WITHOUT_ ? Thinking about style.
Sep 8 2022
termcap.small is still useful I think for the case when /usr is not mounted (i.e. single-user/recovery mode in a traditional FS layout). These days of course most people are using monolithic root+usr esp with ZFS, however we for example have 200+ systems in the field partitioned in a traditional way, so I am wondering how many there may be people like us out there.