NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
PR/52515 CVS commit: [netbsd-8] src
The following reply was made to PR kern/52515; it has been noted by GNATS.
From: "Soren Jacobsen" <snj%netbsd.org@localhost>
To: gnats-bugs%gnats.NetBSD.org@localhost
Cc:
Subject: PR/52515 CVS commit: [netbsd-8] src
Date: Tue, 24 Oct 2017 08:55:56 +0000
Module Name: src
Committed By: snj
Date: Tue Oct 24 08:55:56 UTC 2017
Modified Files:
src/distrib/sets/lists/tests [netbsd-8]: mi
src/sys/net [netbsd-8]: route.c route.h
src/sys/netatalk [netbsd-8]: at_proto.c
src/sys/netinet [netbsd-8]: in_proto.c
src/sys/netinet6 [netbsd-8]: in6_proto.c
src/sys/netmpls [netbsd-8]: mpls_proto.c
src/sys/netnatm [netbsd-8]: natm_proto.c
src/sys/rump/net/lib/libsockin [netbsd-8]: sockin.c
src/sys/sys [netbsd-8]: domain.h
src/tests/net/route [netbsd-8]: Makefile
Added Files:
src/tests/net/route [netbsd-8]: t_rtcache.sh
Log Message:
Pull up following revision(s) (requested by ozaki-r in ticket #305):
distrib/sets/lists/tests/mi: revision 1.762
sys/net/route.c: revision 1.198-1.201
sys/net/route.h: revision 1.114
sys/netatalk/at_proto.c: revision 1.22
sys/netinet/in_proto.c: revision 1.124
sys/netinet6/in6_proto.c: revision 1.118
sys/netmpls/mpls_proto.c: revision 1.31
sys/netnatm/natm_proto.c: revision 1.18
sys/rump/net/lib/libsockin/sockin.c: revision 1.65
sys/sys/domain.h: revision 1.33
tests/net/route/Makefile: revision 1.6
tests/net/route/t_rtcache.sh: revision 1.1
Add tests of rtcache invalidation
Remove unnecessary NULL check of rt_ifp
It's always non-NULL.
Invalidate rtcache based on a global generation counter
The change introduces a global generation counter that is incremented when any
routes have been added or deleted. When a rtcache caches a rtentry into itself,
it also stores a snapshot of the generation counter. If the snapshot equals to
the global counter, the cache is still valid, otherwise invalidated.
One drawback of the change is that all rtcaches of all protocol families are
invalidated when any routes of any protocol families are added or deleted.
If that matters, we should have separate generation counters based on
protocol families.
This change removes LIST_ENTRY from struct route, which fixes a part of
PR kern/52515.
Remove the global lock for rtcache
Thanks to removal of LIST_ENTRY of struct route, rtcaches are accessed only by
their users. And in existing usages a rtcache is guranteed to be not accessed
simultaneously. So the rtcache framework doesn't need any exclusion controls
in itself.
Synchronize on rtcache_generation with rtlock
It's racy if NET_MPSAFE is enabled.
Pointed out by joerg@
To generate a diff of this commit:
cvs rdiff -u -r1.752.2.4 -r1.752.2.5 src/distrib/sets/lists/tests/mi
cvs rdiff -u -r1.194.6.2 -r1.194.6.3 src/sys/net/route.c
cvs rdiff -u -r1.112.4.1 -r1.112.4.2 src/sys/net/route.h
cvs rdiff -u -r1.21 -r1.21.10.1 src/sys/netatalk/at_proto.c
cvs rdiff -u -r1.123.4.1 -r1.123.4.2 src/sys/netinet/in_proto.c
cvs rdiff -u -r1.117.4.1 -r1.117.4.2 src/sys/netinet6/in6_proto.c
cvs rdiff -u -r1.30 -r1.30.8.1 src/sys/netmpls/mpls_proto.c
cvs rdiff -u -r1.17 -r1.17.8.1 src/sys/netnatm/natm_proto.c
cvs rdiff -u -r1.64 -r1.64.8.1 src/sys/rump/net/lib/libsockin/sockin.c
cvs rdiff -u -r1.32 -r1.32.10.1 src/sys/sys/domain.h
cvs rdiff -u -r1.5 -r1.5.6.1 src/tests/net/route/Makefile
cvs rdiff -u -r0 -r1.1.2.2 src/tests/net/route/t_rtcache.sh
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Home |
Main Index |
Thread Index |
Old Index