| Home | Sort by: relevance | last modified time | path |
| /src/sys/dev/ic/ | |
| w83l518dreg.h | 1.1.2.2 Thu Oct 08 09:47:09 UTC 2009 sborrill Pull up the following revisions(s) (requested by jmcneill in ticket #1045): distrib/sets/lists/man/mi: revision 1.1160 share/man/man4/Makefile: revision 1.499 share/man/man4/wb.4: revision 1.1-1.2 share/man/man4/ld.4: revision 1.17 sys/arch/i386/conf/ALL: revision 1.215-1.216 + patch sys/arch/i386/conf/GENERIC: revision 1.946-1.947 + patch sys/arch/amd64/conf/GENERIC: revision 1.254-1.256 + patch sys/conf/files: revision 1.958 sys/dev/acpi/files.acpi: revision 1.59 sys/dev/acpi/wb_acpi.c: revision 1.1 sys/dev/ic/w83l518d.c: revision 1.1 sys/dev/ic/w83l518d_sdmmc.c: revision 1.1 sys/dev/ic/w83l518d_sdmmc.h: revision 1.1 sys/dev/ic/w83l518dreg.h: revision 1.1 sys/dev/ic/w83l518dvar.h.c: revision 1.1 wb(4): Add a driver for Winbond W83L518D SD/MMC readers. |
| w83l518d_sdmmc.h | 1.1.2.2 Thu Oct 08 09:47:09 UTC 2009 sborrill Pull up the following revisions(s) (requested by jmcneill in ticket #1045): distrib/sets/lists/man/mi: revision 1.1160 share/man/man4/Makefile: revision 1.499 share/man/man4/wb.4: revision 1.1-1.2 share/man/man4/ld.4: revision 1.17 sys/arch/i386/conf/ALL: revision 1.215-1.216 + patch sys/arch/i386/conf/GENERIC: revision 1.946-1.947 + patch sys/arch/amd64/conf/GENERIC: revision 1.254-1.256 + patch sys/conf/files: revision 1.958 sys/dev/acpi/files.acpi: revision 1.59 sys/dev/acpi/wb_acpi.c: revision 1.1 sys/dev/ic/w83l518d.c: revision 1.1 sys/dev/ic/w83l518d_sdmmc.c: revision 1.1 sys/dev/ic/w83l518d_sdmmc.h: revision 1.1 sys/dev/ic/w83l518dreg.h: revision 1.1 sys/dev/ic/w83l518dvar.h.c: revision 1.1 wb(4): Add a driver for Winbond W83L518D SD/MMC readers. |
| w83l518d.c | 1.1.2.2 Thu Oct 08 09:47:09 UTC 2009 sborrill Pull up the following revisions(s) (requested by jmcneill in ticket #1045): distrib/sets/lists/man/mi: revision 1.1160 share/man/man4/Makefile: revision 1.499 share/man/man4/wb.4: revision 1.1-1.2 share/man/man4/ld.4: revision 1.17 sys/arch/i386/conf/ALL: revision 1.215-1.216 + patch sys/arch/i386/conf/GENERIC: revision 1.946-1.947 + patch sys/arch/amd64/conf/GENERIC: revision 1.254-1.256 + patch sys/conf/files: revision 1.958 sys/dev/acpi/files.acpi: revision 1.59 sys/dev/acpi/wb_acpi.c: revision 1.1 sys/dev/ic/w83l518d.c: revision 1.1 sys/dev/ic/w83l518d_sdmmc.c: revision 1.1 sys/dev/ic/w83l518d_sdmmc.h: revision 1.1 sys/dev/ic/w83l518dreg.h: revision 1.1 sys/dev/ic/w83l518dvar.h.c: revision 1.1 wb(4): Add a driver for Winbond W83L518D SD/MMC readers. |
| w83l518dvar.h | 1.1.2.2 Thu Oct 08 09:47:09 UTC 2009 sborrill Pull up the following revisions(s) (requested by jmcneill in ticket #1045): distrib/sets/lists/man/mi: revision 1.1160 share/man/man4/Makefile: revision 1.499 share/man/man4/wb.4: revision 1.1-1.2 share/man/man4/ld.4: revision 1.17 sys/arch/i386/conf/ALL: revision 1.215-1.216 + patch sys/arch/i386/conf/GENERIC: revision 1.946-1.947 + patch sys/arch/amd64/conf/GENERIC: revision 1.254-1.256 + patch sys/conf/files: revision 1.958 sys/dev/acpi/files.acpi: revision 1.59 sys/dev/acpi/wb_acpi.c: revision 1.1 sys/dev/ic/w83l518d.c: revision 1.1 sys/dev/ic/w83l518d_sdmmc.c: revision 1.1 sys/dev/ic/w83l518d_sdmmc.h: revision 1.1 sys/dev/ic/w83l518dreg.h: revision 1.1 sys/dev/ic/w83l518dvar.h.c: revision 1.1 wb(4): Add a driver for Winbond W83L518D SD/MMC readers. |
| w83l518d_sdmmc.c | 1.1.2.2 Thu Oct 08 09:47:09 UTC 2009 sborrill Pull up the following revisions(s) (requested by jmcneill in ticket #1045): distrib/sets/lists/man/mi: revision 1.1160 share/man/man4/Makefile: revision 1.499 share/man/man4/wb.4: revision 1.1-1.2 share/man/man4/ld.4: revision 1.17 sys/arch/i386/conf/ALL: revision 1.215-1.216 + patch sys/arch/i386/conf/GENERIC: revision 1.946-1.947 + patch sys/arch/amd64/conf/GENERIC: revision 1.254-1.256 + patch sys/conf/files: revision 1.958 sys/dev/acpi/files.acpi: revision 1.59 sys/dev/acpi/wb_acpi.c: revision 1.1 sys/dev/ic/w83l518d.c: revision 1.1 sys/dev/ic/w83l518d_sdmmc.c: revision 1.1 sys/dev/ic/w83l518d_sdmmc.h: revision 1.1 sys/dev/ic/w83l518dreg.h: revision 1.1 sys/dev/ic/w83l518dvar.h.c: revision 1.1 wb(4): Add a driver for Winbond W83L518D SD/MMC readers. |
| /src/sys/dev/pcmcia/ | |
| pcmciadevs.h | 1.216 Sun Dec 11 00:23:23 UTC 2005 christos branches: 1.216.4; 1.216.6; 1.216.8; 1.216.10; 1.216.12; merge ktrace-lwp. Sun Dec 11 00:23:23 UTC 2005 christos branches: 1.216.4; 1.216.6; 1.216.8; 1.216.10; 1.216.12; merge ktrace-lwp. .4; 1.216.6; 1.216.8; 1.216.10; 1.216.12; merge ktrace-lwp. .6; 1.216.8; 1.216.10; 1.216.12; merge ktrace-lwp. .8; 1.216.10; 1.216.12; merge ktrace-lwp. .10; 1.216.12; merge ktrace-lwp. 1.216.12.1 Tue Mar 28 09:42:14 UTC 2006 tron Merge 2006-03-28 NetBSD-current into the "peter-altq" branch. 1.216.10.1 Wed Apr 19 03:25:59 UTC 2006 elad sync with head. 1.216.8.3 Fri Aug 11 15:45:08 UTC 2006 yamt sync with head 1.216.8.2 Mon Jun 26 00:52:27 UTC 2006 yamt sync with head. |
| pcmciadevs_data.h | 1.216 Sun Dec 11 00:23:23 UTC 2005 christos branches: 1.216.4; 1.216.6; 1.216.8; 1.216.10; 1.216.12; merge ktrace-lwp. Sun Dec 11 00:23:23 UTC 2005 christos branches: 1.216.4; 1.216.6; 1.216.8; 1.216.10; 1.216.12; merge ktrace-lwp. .4; 1.216.6; 1.216.8; 1.216.10; 1.216.12; merge ktrace-lwp. .6; 1.216.8; 1.216.10; 1.216.12; merge ktrace-lwp. .8; 1.216.10; 1.216.12; merge ktrace-lwp. .10; 1.216.12; merge ktrace-lwp. 1.216.12.1 Tue Mar 28 09:42:14 UTC 2006 tron Merge 2006-03-28 NetBSD-current into the "peter-altq" branch. 1.216.10.1 Wed Apr 19 03:25:59 UTC 2006 elad sync with head. 1.216.8.3 Fri Aug 11 15:45:08 UTC 2006 yamt sync with head 1.216.8.2 Mon Jun 26 00:52:27 UTC 2006 yamt sync with head. |
| /src/share/man/man4/ | |
| wb.4 | 1.2.2.2 Thu Oct 08 09:47:08 UTC 2009 sborrill Pull up the following revisions(s) (requested by jmcneill in ticket #1045): distrib/sets/lists/man/mi: revision 1.1160 share/man/man4/Makefile: revision 1.499 share/man/man4/wb.4: revision 1.1-1.2 share/man/man4/ld.4: revision 1.17 sys/arch/i386/conf/ALL: revision 1.215-1.216 + patch sys/arch/i386/conf/GENERIC: revision 1.946-1.947 + patch sys/arch/amd64/conf/GENERIC: revision 1.254-1.256 + patch sys/conf/files: revision 1.958 sys/dev/acpi/files.acpi: revision 1.59 sys/dev/acpi/wb_acpi.c: revision 1.1 sys/dev/ic/w83l518d.c: revision 1.1 sys/dev/ic/w83l518d_sdmmc.c: revision 1.1 sys/dev/ic/w83l518d_sdmmc.h: revision 1.1 sys/dev/ic/w83l518dreg.h: revision 1.1 sys/dev/ic/w83l518dvar.h.c: revision 1.1 wb(4): Add a driver for Winbond W83L518D SD/MMC readers. |
| ld.4 | 1.16.4.1 Thu Oct 08 09:47:08 UTC 2009 sborrill Pull up the following revisions(s) (requested by jmcneill in ticket #1045): distrib/sets/lists/man/mi: revision 1.1160 share/man/man4/Makefile: revision 1.499 share/man/man4/wb.4: revision 1.1-1.2 share/man/man4/ld.4: revision 1.17 sys/arch/i386/conf/ALL: revision 1.215-1.216 + patch sys/arch/i386/conf/GENERIC: revision 1.946-1.947 + patch sys/arch/amd64/conf/GENERIC: revision 1.254-1.256 + patch sys/conf/files: revision 1.958 sys/dev/acpi/files.acpi: revision 1.59 sys/dev/acpi/wb_acpi.c: revision 1.1 sys/dev/ic/w83l518d.c: revision 1.1 sys/dev/ic/w83l518d_sdmmc.c: revision 1.1 sys/dev/ic/w83l518d_sdmmc.h: revision 1.1 sys/dev/ic/w83l518dreg.h: revision 1.1 sys/dev/ic/w83l518dvar.h.c: revision 1.1 wb(4): Add a driver for Winbond W83L518D SD/MMC readers. |
| sk.4 | 1.9.4.1 Fri Sep 15 11:56:40 UTC 2006 tron Pull up following revision(s) (requested by riz in ticket #153): share/man/man4/pci.4: revision 1.84 share/man/man4/Makefile: revision 1.404 distrib/sets/lists/man/mi: revision 1.929 share/man/man4/sk.4: revision 1.10 sys/dev/DEVNAMES: revision 1.216 Add msk(4) info to the sk(4) manpage, and install links (from OpenBSD). Also, add msk to DEVNAMES. |
| wscons.4 | 1.29.6.1 Tue Jun 12 17:48:03 UTC 2012 riz Pull up following revision(s) (requested by abs in ticket #311): sys/arch/netwinder/conf/GENERIC: revision 1.112 sys/arch/i386/conf/GENERIC: revision 1.1074 sys/arch/atari/conf/MILAN.in: revision 1.26 sys/arch/zaurus/conf/GENERIC: revision 1.54 sys/arch/shark/conf/GENERIC: revision 1.101 sys/arch/hpcmips/conf/MPC303: revision 1.60 sys/arch/i386/conf/XEN3_DOM0: revision 1.67 sys/arch/evbarm/conf/MPCSA_GENERIC: revision 1.29 sys/arch/vax/conf/GENERIC: revision 1.181 sys/arch/sparc/conf/KRUPS: revision 1.59 sys/arch/evbarm/conf/BEAGLEBOARD: revision 1.27 sys/arch/i386/conf/INSTALL_FLOPPY: revision 1.16 sys/arch/prep/conf/GENERIC: revision 1.163 sys/arch/hpcmips/conf/GENERIC: revision 1.216 sys/arch/sparc/conf/TADPOLE3GX: revision 1.56 sys/arch/shark/conf/INSTALL: revision 1.50 sys/arch/next68k/conf/GENERIC: revision 1.127 sys/arch/evbppc/conf/VIRTEX_GSRD2: revision 1.16 sys/arch/evbppc/conf/VIRTEX_DFC: revision 1.17 sys/arch/evbppc/conf/EXPLORA451: revision 1.48 sys/arch/bebox/conf/INSTALL: revision 1.54 sys/arch/next68k/conf/SLAB: revision 1.46 sys/arch/i386/conf/GENERIC_TINY: revision 1.132 sys/arch/bebox/conf/GENERIC: revision 1.131 sys/arch/amd64/conf/XEN3_DOM0: revision 1.84 sys/arch/amd64/conf/GENERIC: revision 1.356 sys/arch/evbarm/conf/MMNET_GENERIC: revision 1.6 share/man/man4/wscons.4: revision 1.31 sys/arch/hpcmips/conf/TX3912: revision 1.79 sys/arch/evbarm/conf/ARMADILLO9: revision 1.35 sys/arch/hpcsh/conf/GENERIC: revision 1.97 sys/arch/i386/conf/ALL: revision 1.339 sys/arch/hpcmips/conf/TX3922: revision 1.93 sys/arch/cats/conf/INSTALL: revision 1.82 sys/arch/sparc64/conf/GENERIC: revision 1.151 sys/arch/i386/conf/INSTALL_TINY: revision 1.135 sys/arch/evbppc/conf/VIRTEX_GSRD1: revision 1.15 sys/arch/evbarm/conf/TS7200: revision 1.49 sys/arch/hpcmips/conf/VR41XX: revision 1.55 sys/arch/hp700/conf/GENERIC: revision 1.115 sys/arch/cats/conf/GENERIC: revision 1.140 Mention wsconscfg(8) needs WSDISPLAY_COMPAT_USL If a port is going to have wscons for virtual terminals then it really make= s sense to enable WSDISPLAY_COMPAT_USL so the system can switch between the virtual terminals... Adjust the WSDISPLAY_COMPAT_USL comment to mention wsconscfg, to at least give a hint that its not just for third party compat. No functional change. |
| /src/sys/dev/acpi/ | |
| wb_acpi.c | 1.1.2.2 Thu Oct 08 09:47:09 UTC 2009 sborrill Pull up the following revisions(s) (requested by jmcneill in ticket #1045): distrib/sets/lists/man/mi: revision 1.1160 share/man/man4/Makefile: revision 1.499 share/man/man4/wb.4: revision 1.1-1.2 share/man/man4/ld.4: revision 1.17 sys/arch/i386/conf/ALL: revision 1.215-1.216 + patch sys/arch/i386/conf/GENERIC: revision 1.946-1.947 + patch sys/arch/amd64/conf/GENERIC: revision 1.254-1.256 + patch sys/conf/files: revision 1.958 sys/dev/acpi/files.acpi: revision 1.59 sys/dev/acpi/wb_acpi.c: revision 1.1 sys/dev/ic/w83l518d.c: revision 1.1 sys/dev/ic/w83l518d_sdmmc.c: revision 1.1 sys/dev/ic/w83l518d_sdmmc.h: revision 1.1 sys/dev/ic/w83l518dreg.h: revision 1.1 sys/dev/ic/w83l518dvar.h.c: revision 1.1 wb(4): Add a driver for Winbond W83L518D SD/MMC readers. |
| /src/lib/libc/net/ | |
| getifaddrs.3 | 1.8.38.1 Sun May 03 13:17:52 UTC 2009 bouyer Pull up following revision(s) (requested by dyoung in ticket #730): sbin/ifconfig/af_link.c: revisions 1.4 - 1.6 sbin/ifconfig/util.h: revision 1.7 sbin/ifconfig/util.c: revisions 1.10, 1.11 lib/libc/net/getifaddrs.c: revision 1.12 lib/libc/net/getifaddrs.3: revision 1.10 sbin/ifconfig/ifconfig.c: revisions 1.216 - 1.218 Fix indentation: change spaces to tabs. Use getnameinfo(3) to render a human-readable link-layer address in the 'address: ' line, just as we do in the 'link xx:xx:...:xx' line. There's no use casting a socket address to sockaddr_dl, only to cast it back to sockaddr, so don't do it. Cosmetic: add some whitespace for my ease of reading. To make sure that we always print the active link-layer address in the 'address: ' field, don't treat the first address as the active address, but search the link-layer addresses for the ones flagged IFLR_ACTIVE, and print those. Extract a subroutine, print_link_addresses(), for printing link-layer addresses. For non-AF_LINK ifaddrs, ifa_data is NULL. AFAICT, this has always been so. Say so in the documentation. Bring getifaddrs(3) behavior in line with the documentation: the ifa_data member of every AF_LINK struct ifaddrs points at the corresponding struct if_data. In ifconfig(8), do not try to suppress duplicate AF_LINK ifaddrs by checking for a NULL ifa_data. Don't copy out two AF_LINK struct ifaddrs for each active link-layer address. getifaddrs(3) used to copy out one ifaddrs for the kernel's RTM_IFINFO message, and one more for the kernel's RTM_NEWADDR message. I suppress the first duplicate with a highly conservative change that wastes a little bit of ifaddrs storage. The storage is not leaked. |
| getifaddrs.c | 1.11.12.1 Sun May 03 13:17:52 UTC 2009 bouyer Pull up following revision(s) (requested by dyoung in ticket #730): sbin/ifconfig/af_link.c: revisions 1.4 - 1.6 sbin/ifconfig/util.h: revision 1.7 sbin/ifconfig/util.c: revisions 1.10, 1.11 lib/libc/net/getifaddrs.c: revision 1.12 lib/libc/net/getifaddrs.3: revision 1.10 sbin/ifconfig/ifconfig.c: revisions 1.216 - 1.218 Fix indentation: change spaces to tabs. Use getnameinfo(3) to render a human-readable link-layer address in the 'address: ' line, just as we do in the 'link xx:xx:...:xx' line. There's no use casting a socket address to sockaddr_dl, only to cast it back to sockaddr, so don't do it. Cosmetic: add some whitespace for my ease of reading. To make sure that we always print the active link-layer address in the 'address: ' field, don't treat the first address as the active address, but search the link-layer addresses for the ones flagged IFLR_ACTIVE, and print those. Extract a subroutine, print_link_addresses(), for printing link-layer addresses. For non-AF_LINK ifaddrs, ifa_data is NULL. AFAICT, this has always been so. Say so in the documentation. Bring getifaddrs(3) behavior in line with the documentation: the ifa_data member of every AF_LINK struct ifaddrs points at the corresponding struct if_data. In ifconfig(8), do not try to suppress duplicate AF_LINK ifaddrs by checking for a NULL ifa_data. Don't copy out two AF_LINK struct ifaddrs for each active link-layer address. getifaddrs(3) used to copy out one ifaddrs for the kernel's RTM_IFINFO message, and one more for the kernel's RTM_NEWADDR message. I suppress the first duplicate with a highly conservative change that wastes a little bit of ifaddrs storage. The storage is not leaked. |
| /src/sbin/ifconfig/ | |
| af_link.c | 1.3.2.1 Sun May 03 13:17:52 UTC 2009 bouyer Pull up following revision(s) (requested by dyoung in ticket #730): sbin/ifconfig/af_link.c: revisions 1.4 - 1.6 sbin/ifconfig/util.h: revision 1.7 sbin/ifconfig/util.c: revisions 1.10, 1.11 lib/libc/net/getifaddrs.c: revision 1.12 lib/libc/net/getifaddrs.3: revision 1.10 sbin/ifconfig/ifconfig.c: revisions 1.216 - 1.218 Fix indentation: change spaces to tabs. Use getnameinfo(3) to render a human-readable link-layer address in the 'address: ' line, just as we do in the 'link xx:xx:...:xx' line. There's no use casting a socket address to sockaddr_dl, only to cast it back to sockaddr, so don't do it. Cosmetic: add some whitespace for my ease of reading. To make sure that we always print the active link-layer address in the 'address: ' field, don't treat the first address as the active address, but search the link-layer addresses for the ones flagged IFLR_ACTIVE, and print those. Extract a subroutine, print_link_addresses(), for printing link-layer addresses. For non-AF_LINK ifaddrs, ifa_data is NULL. AFAICT, this has always been so. Say so in the documentation. Bring getifaddrs(3) behavior in line with the documentation: the ifa_data member of every AF_LINK struct ifaddrs points at the corresponding struct if_data. In ifconfig(8), do not try to suppress duplicate AF_LINK ifaddrs by checking for a NULL ifa_data. Don't copy out two AF_LINK struct ifaddrs for each active link-layer address. getifaddrs(3) used to copy out one ifaddrs for the kernel's RTM_IFINFO message, and one more for the kernel's RTM_NEWADDR message. I suppress the first duplicate with a highly conservative change that wastes a little bit of ifaddrs storage. The storage is not leaked. |
| util.h | 1.6.2.1 Sun May 03 13:17:52 UTC 2009 bouyer Pull up following revision(s) (requested by dyoung in ticket #730): sbin/ifconfig/af_link.c: revisions 1.4 - 1.6 sbin/ifconfig/util.h: revision 1.7 sbin/ifconfig/util.c: revisions 1.10, 1.11 lib/libc/net/getifaddrs.c: revision 1.12 lib/libc/net/getifaddrs.3: revision 1.10 sbin/ifconfig/ifconfig.c: revisions 1.216 - 1.218 Fix indentation: change spaces to tabs. Use getnameinfo(3) to render a human-readable link-layer address in the 'address: ' line, just as we do in the 'link xx:xx:...:xx' line. There's no use casting a socket address to sockaddr_dl, only to cast it back to sockaddr, so don't do it. Cosmetic: add some whitespace for my ease of reading. To make sure that we always print the active link-layer address in the 'address: ' field, don't treat the first address as the active address, but search the link-layer addresses for the ones flagged IFLR_ACTIVE, and print those. Extract a subroutine, print_link_addresses(), for printing link-layer addresses. For non-AF_LINK ifaddrs, ifa_data is NULL. AFAICT, this has always been so. Say so in the documentation. Bring getifaddrs(3) behavior in line with the documentation: the ifa_data member of every AF_LINK struct ifaddrs points at the corresponding struct if_data. In ifconfig(8), do not try to suppress duplicate AF_LINK ifaddrs by checking for a NULL ifa_data. Don't copy out two AF_LINK struct ifaddrs for each active link-layer address. getifaddrs(3) used to copy out one ifaddrs for the kernel's RTM_IFINFO message, and one more for the kernel's RTM_NEWADDR message. I suppress the first duplicate with a highly conservative change that wastes a little bit of ifaddrs storage. The storage is not leaked. |
| util.c | 1.8.2.1 Sun May 03 13:17:52 UTC 2009 bouyer Pull up following revision(s) (requested by dyoung in ticket #730): sbin/ifconfig/af_link.c: revisions 1.4 - 1.6 sbin/ifconfig/util.h: revision 1.7 sbin/ifconfig/util.c: revisions 1.10, 1.11 lib/libc/net/getifaddrs.c: revision 1.12 lib/libc/net/getifaddrs.3: revision 1.10 sbin/ifconfig/ifconfig.c: revisions 1.216 - 1.218 Fix indentation: change spaces to tabs. Use getnameinfo(3) to render a human-readable link-layer address in the 'address: ' line, just as we do in the 'link xx:xx:...:xx' line. There's no use casting a socket address to sockaddr_dl, only to cast it back to sockaddr, so don't do it. Cosmetic: add some whitespace for my ease of reading. To make sure that we always print the active link-layer address in the 'address: ' field, don't treat the first address as the active address, but search the link-layer addresses for the ones flagged IFLR_ACTIVE, and print those. Extract a subroutine, print_link_addresses(), for printing link-layer addresses. For non-AF_LINK ifaddrs, ifa_data is NULL. AFAICT, this has always been so. Say so in the documentation. Bring getifaddrs(3) behavior in line with the documentation: the ifa_data member of every AF_LINK struct ifaddrs points at the corresponding struct if_data. In ifconfig(8), do not try to suppress duplicate AF_LINK ifaddrs by checking for a NULL ifa_data. Don't copy out two AF_LINK struct ifaddrs for each active link-layer address. getifaddrs(3) used to copy out one ifaddrs for the kernel's RTM_IFINFO message, and one more for the kernel's RTM_NEWADDR message. I suppress the first duplicate with a highly conservative change that wastes a little bit of ifaddrs storage. The storage is not leaked. |
| /src/sys/net/ | |
| bpf.c | 1.216 Mon Feb 20 03:08:38 UTC 2017 ozaki-r branches: 1.216.4; 1.216.6; Reinit a pslist entry before inserting it to a pslist again Fix PR kern/51984 Tested by nonaka@ Mon Feb 20 03:08:38 UTC 2017 ozaki-r branches: 1.216.4; 1.216.6; Reinit a pslist entry before inserting it to a pslist again Fix PR kern/51984 Tested by nonaka@ .4; 1.216.6; Reinit a pslist entry before inserting it to a pslist again Fix PR kern/51984 Tested by nonaka@ 1.216.6.9 Fri Aug 04 15:00:28 UTC 2023 martin Apply patch, requested by ozaki-r in ticket #1885: sys/net/bpf.c (apply patch) bpf: allow to read with no filter (regressed at revision 1.213, fixed differently in -current) 1.216.6.8 Wed Feb 22 19:51:47 UTC 2023 martin Pull up following revision(s) (requested by riastradh in ticket #1802): sys/net/bpf.c: revision 1.247 (manually merged) bpf(4): Reject bogus timeout values before arithmetic overflows. 1.216.6.7 Sun Aug 04 11:19:03 UTC 2019 martin Pull up following revision(s) (requested by maxv in ticket #1323): sys/net/bpf.c: revision 1.229 Fix info leak: use kmem_zalloc, because we align the buffers, and the otherwise uninitialized padding bytes get copied to userland in bpf_read(). 1.216.6.6 Tue May 15 13:48:37 UTC 2018 martin Pull up following revision(s) (requested by ozaki-r in ticket #826): sys/net/if_bridge.c: revision 1.155 sys/net/if.c: revision 1.421 sys/net/bpf.c: revision 1.224 sys/net/if.c: revision 1.422 sys/net/if.c: revision 1.423 Use if_is_mpsafe (NFC) Protect packet input routines with KERNEL_LOCK and splsoftnet if_input, i.e, ether_input and friends, now runs in softint without any protections. It's ok for ether_input itself because it's already MP-safe, however, subsequent routines called from it such as carp_input and agr_input aren't safe because they're not MP-safe. Protect if_input with KERNEL_LOCK. if_input can be called from a normal LWP context. In that case we need to prevent interrupts (softint) from running by splsoftnet to protect non-MP-safe codes (e.g., carp_input and agr_input). Pointed out by mlelstv@ Protect if_deferred_start_softint with KERNEL_LOCK if the interface isn't MP-safe 1.216.6.5 Mon Feb 05 14:18:00 UTC 2018 martin Pull up following revision(s) (requested by ozaki-r in ticket #526): sys/net/bpfdesc.h: revision 1.45 sys/net/bpf.c: revision 1.223 Abandon unnecessary softint The softint was introduced to defer fownsignal that was called in bpf_wakeup to softint at v1.139, but now bpf_wakeup always runs in softint so we don't need the softint anymore. 1.216.6.4 Tue Jan 02 10:20:33 UTC 2018 snj Pull up following revision(s) (requested by ozaki-r in ticket #456): sys/arch/arm/sunxi/sunxi_emac.c: 1.9 sys/dev/ic/dwc_gmac.c: 1.43-1.44 sys/dev/pci/if_iwm.c: 1.75 sys/dev/pci/if_wm.c: 1.543 sys/dev/pci/ixgbe/ixgbe.c: 1.112 sys/dev/pci/ixgbe/ixv.c: 1.74 sys/kern/sys_socket.c: 1.75 sys/net/agr/if_agr.c: 1.43 sys/net/bpf.c: 1.219 sys/net/if.c: 1.397, 1.399, 1.401-1.403, 1.406-1.410, 1.412-1.416 sys/net/if.h: 1.242-1.247, 1.250, 1.252-1.257 sys/net/if_bridge.c: 1.140 via patch, 1.142-1.146 sys/net/if_etherip.c: 1.40 sys/net/if_ethersubr.c: 1.243, 1.246 sys/net/if_faith.c: 1.57 sys/net/if_gif.c: 1.132 sys/net/if_l2tp.c: 1.15, 1.17 sys/net/if_loop.c: 1.98-1.101 sys/net/if_media.c: 1.35 sys/net/if_pppoe.c: 1.131-1.132 sys/net/if_spppsubr.c: 1.176-1.177 sys/net/if_tun.c: 1.142 sys/net/if_vlan.c: 1.107, 1.109, 1.114-1.121 sys/net/npf/npf_ifaddr.c: 1.3 sys/net/npf/npf_os.c: 1.8-1.9 sys/net/rtsock.c: 1.230 sys/netcan/if_canloop.c: 1.3-1.5 sys/netinet/if_arp.c: 1.255 sys/netinet/igmp.c: 1.65 sys/netinet/in.c: 1.210-1.211 sys/netinet/in_pcb.c: 1.180 sys/netinet/ip_carp.c: 1.92, 1.94 sys/netinet/ip_flow.c: 1.81 sys/netinet/ip_input.c: 1.362 sys/netinet/ip_mroute.c: 1.147 sys/netinet/ip_output.c: 1.283, 1.285, 1.287 sys/netinet6/frag6.c: 1.61 sys/netinet6/in6.c: 1.251, 1.255 sys/netinet6/in6_pcb.c: 1.162 sys/netinet6/ip6_flow.c: 1.35 sys/netinet6/ip6_input.c: 1.183 sys/netinet6/ip6_output.c: 1.196 sys/netinet6/mld6.c: 1.90 sys/netinet6/nd6.c: 1.239-1.240 sys/netinet6/nd6_nbr.c: 1.139 sys/netinet6/nd6_rtr.c: 1.136 sys/netipsec/ipsec_output.c: 1.65 sys/rump/net/lib/libnetinet/netinet_component.c: 1.9-1.10 kmem_intr_free kmem_intr_[z]alloced memory the underlying pools are the same but api-wise those should match Unify IFEF_*_MPSAFE into IFEF_MPSAFE There are already two flags for if_output and if_start, however, it seems such MPSAFE flags are eventually needed for all if_XXX operations. Having discrete flags for each operation is wasteful of if_extflags bits. So let's unify the flags into one: IFEF_MPSAFE. Fortunately IFEF_*_MPSAFE flags have never been included in any releases, so we can change them without breaking backward compatibility of the releases (though the kernel version of -current should be bumped). Note that if an interface have both MP-safe and non-MP-safe operations at a time, we have to set the IFEF_MPSAFE flag and let callees of non-MP-safe opeartions take the kernel lock. Proposed on tech-kern@ and tech-net@ Provide macros for softnet_lock and KERNEL_LOCK hiding NET_MPSAFE switch It reduces C&P codes such as "#ifndef NET_MPSAFE KERNEL_LOCK(1, NULL); ..." scattered all over the source code and makes it easy to identify remaining KERNEL_LOCK and/or softnet_lock that are held even if NET_MPSAFE. No functional change Hold KERNEL_LOCK on if_ioctl selectively based on IFEF_MPSAFE If IFEF_MPSAFE is set, hold the lock and otherwise don't hold. This change requires additions of KERNEL_LOCK to subsequence functions from if_ioctl such as ifmedia_ioctl and ifioctl_common to protect non-MP-safe components. Proposed on tech-kern@ and tech-net@ Ensure to hold if_ioctl_lock when calling if_flags_set Fix locking against myself on ifpromisc vlan_unconfig_locked could be called with holding if_ioctl_lock. Ensure to not turn on IFF_RUNNING of an interface until its initialization completes And ensure to turn off it before destruction as per IFF_RUNNING's description "resource allocated". (The description is a bit doubtful though, I believe the change is still proper.) Ensure to hold if_ioctl_lock on if_up and if_down One exception for if_down is if_detach; in the case the lock isn't needed because it's guaranteed that no other one can access ifp at that point. Make if_link_queue MP-safe if IFEF_MPSAFE if_link_queue is a queue to store events of link state changes, which is used to pass events from (typically) an interrupt handler to if_link_state_change softint. The queue was protected by KERNEL_LOCK so far, but if IFEF_MPSAFE is enabled, it becomes unsafe because (perhaps) an interrupt handler of an interface with IFEF_MPSAFE doesn't take KERNEL_LOCK. Protect it by a spin mutex. Additionally with this change KERNEL_LOCK of if_link_state_change softint is omitted if NET_MPSAFE is enabled. Note that the spin mutex is now ifp->if_snd.ifq_lock as well as the case of if_timer (see the comment). Use IFADDR_WRITER_FOREACH instead of IFADDR_READER_FOREACH At that point no other one modifies the list so IFADDR_READER_FOREACH is unnecessary. Use of IFADDR_READER_FOREACH is harmless in general though, if we try to detect contract violations of pserialize, using it violates the contract. So avoid using it makes life easy. Ensure to call if_addr_init with holding if_ioctl_lock Get rid of outdated comments Fix build of kernels without ether By throwing out if_enable_vlan_mtu and if_disable_vlan_mtu that created a unnecessary dependency from if.c to if_ethersubr.c. PR kern/52790 Rename IFNET_LOCK to IFNET_GLOBAL_LOCK IFNET_LOCK will be used in another lock, if_ioctl_lock (might be renamed then). Wrap if_ioctl_lock with IFNET_* macros (NFC) Also if_ioctl_lock perhaps needs to be renamed to something because it's now not just for ioctl... Reorder some destruction routines in if_detach - Destroy if_ioctl_lock at the end of the if_detach because it's used in various destruction routines - Move psref_target_destroy after pr_purgeif because we want to use psref in pr_purgeif (otherwise destruction procedures can be tricky) Ensure to call if_mcast_op with holding IFNET_LOCK Note that CARP doesn't deal with IFNET_LOCK yet. Remove IFNET_GLOBAL_LOCK where it's unnecessary because IFNET_LOCK is held Describe which lock is used to protect each member variable of struct ifnet Requested by skrll@ Write a guideline for converting an interface to IFEF_MPSAFE Requested by skrll@ Note that IFNET_LOCK must not be held in softint Don't set IFEF_MPSAFE unless NET_MPSAFE at this point Because recent investigations show that interfaces with IFEF_MPSAFE need to follow additional restrictions to work with the flag safely. We should enable it on an interface by default only if the interface surely satisfies the restrictions, which are described in if.h. Note that enabling IFEF_MPSAFE solely gains a few benefit on performance because the network stack is still serialized by the big kernel locks by default. 1.216.6.3 Thu Dec 21 21:51:37 UTC 2017 snj Pull up following revision(s) (requested by ozaki-r in ticket #454): sys/net/bpf.c: revision 1.222 Make softint and callout MP-safe |
| /src/sys/arch/mips/mips/ | |
| trap.c | 1.216 Mon Dec 03 15:33:56 UTC 2007 ad branches: 1.216.14; 1.216.18; 1.216.20; 1.216.24; Interrupt handling changes, in discussion since February: - Reduce available SPL levels for hardware devices to none, vm, sched, high. - Acquire kernel_lock only for interrupts at IPL_VM. - Implement threaded soft interrupts. Mon Dec 03 15:33:56 UTC 2007 ad branches: 1.216.14; 1.216.18; 1.216.20; 1.216.24; Interrupt handling changes, in discussion since February: - Reduce available SPL levels for hardware devices to none, vm, sched, high. - Acquire kernel_lock only for interrupts at IPL_VM. - Implement threaded soft interrupts. .14; 1.216.18; 1.216.20; 1.216.24; Interrupt handling changes, in discussion since February: - Reduce available SPL levels for hardware devices to none, vm, sched, high. - Acquire kernel_lock only for interrupts at IPL_VM. - Implement threaded soft interrupts. .18; 1.216.20; 1.216.24; Interrupt handling changes, in discussion since February: - Reduce available SPL levels for hardware devices to none, vm, sched, high. - Acquire kernel_lock only for interrupts at IPL_VM. - Implement threaded soft interrupts. .20; 1.216.24; Interrupt handling changes, in discussion since February: - Reduce available SPL levels for hardware devices to none, vm, sched, high. - Acquire kernel_lock only for interrupts at IPL_VM. - Implement threaded soft interrupts. 1.216.24.1 Sun Oct 19 22:15:52 UTC 2008 haad Sync with HEAD. 1.216.20.3 Mon Jun 30 04:55:55 UTC 2008 wrstuden Change how we make SA threads not generate upcalls. Instead of clearing LW_SA, use a private flag, LP_SA_NOBLOCK, that we set when we want to not generate upcalls. This means we do NOT need to lock (l) (ourselves) to set it. Adjust tests that look at LW_SA. Now, we are an upcall-generating lwp if ((l->l_flag & LW_SA) && (~l->l_pflag & LP_SA_NOBLOCK)). Introduce code pattern to set & remember this: f = ~l->l_pflag & LP_SA_NOBLOCK; l->l_pflag |= LP_SA_NOBLOCK; ... /* f is now LP_SA_NOBLOCK if it wasn't set in l_pflag before */ l->l_pflag ^= f; I updated a lot of the trap handlers to do trap handling iff LP_SA_NOBLOCK is not set. I tried to figure out if the trap handler could be triggered for user-based faults as opposed to kernel faults to user addresses, and only look at LP_SA_NOBLOCK for the latter. Above is a result of discussions with rmind at to reduce lock twiddling. Also, per same discussions, add locking to sys_sa_preempt(). p_lock is the lock we want. Also, per same discussions, remove use of LSSUSPENDED as a thread state. We needed to use it when we were emulating the 4.X and previous behavior of hiding cached threads. For the moment, we now have them instead remain visible to all and have them sleeping on the "lwpcache" wait channel. sa_newcachelwp(): sa_putcachelwp() wants savp_mutex held, not p_lock. Tweak some comments. 1.216.20.2 Sun Jun 22 18:12:03 UTC 2008 wrstuden Re-add cpu_upcall() and page fault code. i386 kernels now compile. They don't boot, but that seems to be a consequence of current from the day this branch was started. 1.216.20.1 Sat May 10 23:48:45 UTC 2008 wrstuden Initial checkin of re-adding SA. Everything except kern_sa.c compiles in GENERIC for i386. This is still a work-in-progress, but this checkin covers most of the mechanical work (changing signalling to be able to accomidate SA's process-wide signalling and re-adding includes of sys/sa.h and savar.h). Subsequent changes will be much more interesting. Also, kern_sa.c has received partial cleanup. There's still more to do, though. 1.216.18.4 Wed Aug 11 22:52:24 UTC 2010 yamt sync with head. |
| /src/sys/compat/netbsd32/ | |
| netbsd32_syscalls_autoload.c | 1.26 Sat Jan 18 07:33:24 UTC 2020 kamil Catch up after getpid/getgid/getuid changes in native ABI in 2008 getpid(), getuid() and getgid() used to call respectively sys_getpid(), sys_getuid() and sys_getgid(). In the BSD4.3 compat mode there was a fallback to call sys_getpid_with_ppid() and related functions. In 2008 the compat ifdef was removed in sys/kern/syscalls.master r. 1.216. For purity reasons we probably shall restore the NetBSD original behavior and implement BSD4.3 one as a compat module, however it is not worth the complexity. Align the netbsd32 compat ABI to native ABI and call functions that return two integers as in BSD4.3. |
| netbsd32_systrace_args.c | 1.37 Sat Jan 18 07:33:24 UTC 2020 kamil Catch up after getpid/getgid/getuid changes in native ABI in 2008 getpid(), getuid() and getgid() used to call respectively sys_getpid(), sys_getuid() and sys_getgid(). In the BSD4.3 compat mode there was a fallback to call sys_getpid_with_ppid() and related functions. In 2008 the compat ifdef was removed in sys/kern/syscalls.master r. 1.216. For purity reasons we probably shall restore the NetBSD original behavior and implement BSD4.3 one as a compat module, however it is not worth the complexity. Align the netbsd32 compat ABI to native ABI and call functions that return two integers as in BSD4.3. |
| /src/sys/dev/dtv/ | |
| dtv_scatter.c | 1.3.2.1 Tue Feb 27 09:07:33 UTC 2018 martin Pull up following revision(s) (requested by mrg in ticket #593): sys/dev/marvell/mvxpsec.c: revision 1.2 sys/arch/m68k/m68k/pmap_motorola.c: revision 1.70 sys/opencrypto/crypto.c: revision 1.102 sys/arch/sparc64/sparc64/pmap.c: revision 1.308 sys/ufs/chfs/chfs_malloc.c: revision 1.5 sys/arch/powerpc/oea/pmap.c: revision 1.95 sys/sys/pool.h: revision 1.80,1.82 sys/kern/subr_pool.c: revision 1.209-1.216,1.219-1.220 sys/arch/alpha/alpha/pmap.c: revision 1.262 sys/kern/uipc_mbuf.c: revision 1.173 sys/uvm/uvm_fault.c: revision 1.202 sys/sys/mbuf.h: revision 1.172 sys/kern/subr_extent.c: revision 1.86 sys/arch/x86/x86/pmap.c: revision 1.266 (via patch) sys/dev/dtv/dtv_scatter.c: revision 1.4 Allow only one pending call to a pool's backing allocator at a time. Candidate fix for problems with hanging after kva fragmentation related to PR kern/45718. Proposed on tech-kern: https://mail-index.NetBSD.org/tech-kern/2017/10/23/msg022472.html Tested by bouyer@ on i386. This makes one small change to the semantics of pool_prime and pool_setlowat: they may fail with EWOULDBLOCK instead of ENOMEM, if there is a pending call to the backing allocator in another thread but we are not actually out of memory. That is unlikely because nearly always these are used during initialization, when the pool is not in use. Define the new flag too for previous commit. pool_grow can now fail even when sleeping is ok. Catch this case in pool_get and retry. Assert that pool_get failure happens only with PR_NOWAIT. This would have caught the mistake I made last week leading to null pointer dereferences all over the place, a mistake which I evidently poorly scheduled alongside maxv's change to the panic message on x86 for null pointer dereferences. Since pr_lock is now used to wait for two things now (PR_GROWING and PR_WANTED) we need to loop for the condition we wanted. make the KASSERTMSG/panic strings consistent as '%s: [%s], __func__, wchan' Handle the ERESTART case from pool_grow() don't pass 0 to the pool flags Guess pool_cache_get(pc, 0) means PR_WAITOK here. Earlier on in the same context we use kmem_alloc(sz, KM_SLEEP). use PR_WAITOK everywhere. use PR_NOWAIT. Don't use 0 for PR_NOWAIT use PR_NOWAIT instead of 0 panic ex nihilo -- PR_NOWAITing for zerot Add assertions that either PR_WAITOK or PR_NOWAIT are set. - fix an assert; we can reach there if we are nowait or limitfail. - when priming the pool and failing with ERESTART, don't decrement the number of pages; this avoids the issue of returning an ERESTART when we get to 0, and is more correct. - simplify the pool_grow code, and don't wakeup things if we ENOMEM. In pmap_enter_ma(), only try to allocate pves if we might need them, and even if that fails, only fail the operation if we later discover that we really do need them. This implements the requirement that pmap_enter(PMAP_CANFAIL) must not fail when replacing an existing mapping with the first mapping of a new page, which is an unintended consequence of the changes from the rmind-uvmplock branch in 2011. The problem arises when pmap_enter(PMAP_CANFAIL) is used to replace an existing pmap mapping with a mapping of a different page (eg. to resolve a copy-on-write). If that fails and leaves the old pmap entry in place, then UVM won't hold the right locks when it eventually retries. This entanglement of the UVM and pmap locking was done in rmind-uvmplock in order to improve performance, but it also means that the UVM state and pmap state need to be kept in sync more than they did before. It would be possible to handle this in the UVM code instead of in the pmap code, but these pmap changes improve the handling of low memory situations in general, and handling this in UVM would be clunky, so this seemed like the better way to go. This somewhat indirectly fixes PR 52706, as well as the failing assertion about "uvm_page_locked_p(old_pg)". (but only on x86, various other platforms will need their own changes to handle this issue.) In uvm_fault_upper_enter(), if pmap_enter(PMAP_CANFAIL) fails, assert that the pmap did not leave around a now-stale pmap mapping for an old page. If such a pmap mapping still existed after we unlocked the vm_map, the UVM code would not know later that it would need to lock the lower layer object while calling the pmap to remove or replace that stale pmap mapping. See PR 52706 for further details. hopefully workaround the irregularly "fork fails in init" problem. if a pool is growing, and the grower is PR_NOWAIT, mark this. if another caller wants to grow the pool and is also PR_NOWAIT, busy-wait for the original caller, which should either succeed or hard-fail fairly quickly. implement the busy-wait by unlocking and relocking this pools mutex and returning ERESTART. other methods (such as having the caller do this) were significantly more code and this hack is fairly localised. ok chs@ riastradh@ Don't release the lock in the PR_NOWAIT allocation. Move flags setting after the acquiring the mutex. (from Tobias Nygren) apply the change from arch/x86/x86/pmap.c rev. 1.266 commitid vZRjvmxG7YTHLOfA: In pmap_enter_ma(), only try to allocate pves if we might need them, and even if that fails, only fail the operation if we later discover that we really do need them. If we are replacing an existing mapping, reuse the pv structure where possible. This implements the requirement that pmap_enter(PMAP_CANFAIL) must not fail when replacing an existing mapping with the first mapping of a new page, which is an unintended consequence of the changes from the rmind-uvmplock branch in 2011. The problem arises when pmap_enter(PMAP_CANFAIL) is used to replace an existing pmap mapping with a mapping of a different page (eg. to resolve a copy-on-write). If that fails and leaves the old pmap entry in place, then UVM won't hold the right locks when it eventually retries. This entanglement of the UVM and pmap locking was done in rmind-uvmplock in order to improve performance, but it also means that the UVM state and pmap state need to be kept in sync more than they did before. It would be possible to handle this in the UVM code instead of in the pmap code, but these pmap changes improve the handling of low memory situations in general, and handling this in UVM would be clunky, so this seemed like the better way to go. This somewhat indirectly fixes PR 52706 on the remaining platforms where this problem existed. |
| /src/sys/ufs/chfs/ | |
| chfs_malloc.c | 1.4.30.1 Tue Feb 27 09:07:33 UTC 2018 martin Pull up following revision(s) (requested by mrg in ticket #593): sys/dev/marvell/mvxpsec.c: revision 1.2 sys/arch/m68k/m68k/pmap_motorola.c: revision 1.70 sys/opencrypto/crypto.c: revision 1.102 sys/arch/sparc64/sparc64/pmap.c: revision 1.308 sys/ufs/chfs/chfs_malloc.c: revision 1.5 sys/arch/powerpc/oea/pmap.c: revision 1.95 sys/sys/pool.h: revision 1.80,1.82 sys/kern/subr_pool.c: revision 1.209-1.216,1.219-1.220 sys/arch/alpha/alpha/pmap.c: revision 1.262 sys/kern/uipc_mbuf.c: revision 1.173 sys/uvm/uvm_fault.c: revision 1.202 sys/sys/mbuf.h: revision 1.172 sys/kern/subr_extent.c: revision 1.86 sys/arch/x86/x86/pmap.c: revision 1.266 (via patch) sys/dev/dtv/dtv_scatter.c: revision 1.4 Allow only one pending call to a pool's backing allocator at a time. Candidate fix for problems with hanging after kva fragmentation related to PR kern/45718. Proposed on tech-kern: https://mail-index.NetBSD.org/tech-kern/2017/10/23/msg022472.html Tested by bouyer@ on i386. This makes one small change to the semantics of pool_prime and pool_setlowat: they may fail with EWOULDBLOCK instead of ENOMEM, if there is a pending call to the backing allocator in another thread but we are not actually out of memory. That is unlikely because nearly always these are used during initialization, when the pool is not in use. Define the new flag too for previous commit. pool_grow can now fail even when sleeping is ok. Catch this case in pool_get and retry. Assert that pool_get failure happens only with PR_NOWAIT. This would have caught the mistake I made last week leading to null pointer dereferences all over the place, a mistake which I evidently poorly scheduled alongside maxv's change to the panic message on x86 for null pointer dereferences. Since pr_lock is now used to wait for two things now (PR_GROWING and PR_WANTED) we need to loop for the condition we wanted. make the KASSERTMSG/panic strings consistent as '%s: [%s], __func__, wchan' Handle the ERESTART case from pool_grow() don't pass 0 to the pool flags Guess pool_cache_get(pc, 0) means PR_WAITOK here. Earlier on in the same context we use kmem_alloc(sz, KM_SLEEP). use PR_WAITOK everywhere. use PR_NOWAIT. Don't use 0 for PR_NOWAIT use PR_NOWAIT instead of 0 panic ex nihilo -- PR_NOWAITing for zerot Add assertions that either PR_WAITOK or PR_NOWAIT are set. - fix an assert; we can reach there if we are nowait or limitfail. - when priming the pool and failing with ERESTART, don't decrement the number of pages; this avoids the issue of returning an ERESTART when we get to 0, and is more correct. - simplify the pool_grow code, and don't wakeup things if we ENOMEM. In pmap_enter_ma(), only try to allocate pves if we might need them, and even if that fails, only fail the operation if we later discover that we really do need them. This implements the requirement that pmap_enter(PMAP_CANFAIL) must not fail when replacing an existing mapping with the first mapping of a new page, which is an unintended consequence of the changes from the rmind-uvmplock branch in 2011. The problem arises when pmap_enter(PMAP_CANFAIL) is used to replace an existing pmap mapping with a mapping of a different page (eg. to resolve a copy-on-write). If that fails and leaves the old pmap entry in place, then UVM won't hold the right locks when it eventually retries. This entanglement of the UVM and pmap locking was done in rmind-uvmplock in order to improve performance, but it also means that the UVM state and pmap state need to be kept in sync more than they did before. It would be possible to handle this in the UVM code instead of in the pmap code, but these pmap changes improve the handling of low memory situations in general, and handling this in UVM would be clunky, so this seemed like the better way to go. This somewhat indirectly fixes PR 52706, as well as the failing assertion about "uvm_page_locked_p(old_pg)". (but only on x86, various other platforms will need their own changes to handle this issue.) In uvm_fault_upper_enter(), if pmap_enter(PMAP_CANFAIL) fails, assert that the pmap did not leave around a now-stale pmap mapping for an old page. If such a pmap mapping still existed after we unlocked the vm_map, the UVM code would not know later that it would need to lock the lower layer object while calling the pmap to remove or replace that stale pmap mapping. See PR 52706 for further details. hopefully workaround the irregularly "fork fails in init" problem. if a pool is growing, and the grower is PR_NOWAIT, mark this. if another caller wants to grow the pool and is also PR_NOWAIT, busy-wait for the original caller, which should either succeed or hard-fail fairly quickly. implement the busy-wait by unlocking and relocking this pools mutex and returning ERESTART. other methods (such as having the caller do this) were significantly more code and this hack is fairly localised. ok chs@ riastradh@ Don't release the lock in the PR_NOWAIT allocation. Move flags setting after the acquiring the mutex. (from Tobias Nygren) apply the change from arch/x86/x86/pmap.c rev. 1.266 commitid vZRjvmxG7YTHLOfA: In pmap_enter_ma(), only try to allocate pves if we might need them, and even if that fails, only fail the operation if we later discover that we really do need them. If we are replacing an existing mapping, reuse the pv structure where possible. This implements the requirement that pmap_enter(PMAP_CANFAIL) must not fail when replacing an existing mapping with the first mapping of a new page, which is an unintended consequence of the changes from the rmind-uvmplock branch in 2011. The problem arises when pmap_enter(PMAP_CANFAIL) is used to replace an existing pmap mapping with a mapping of a different page (eg. to resolve a copy-on-write). If that fails and leaves the old pmap entry in place, then UVM won't hold the right locks when it eventually retries. This entanglement of the UVM and pmap locking was done in rmind-uvmplock in order to improve performance, but it also means that the UVM state and pmap state need to be kept in sync more than they did before. It would be possible to handle this in the UVM code instead of in the pmap code, but these pmap changes improve the handling of low memory situations in general, and handling this in UVM would be clunky, so this seemed like the better way to go. This somewhat indirectly fixes PR 52706 on the remaining platforms where this problem existed. |
| /src/usr.bin/vmstat/ | |
| vmstat.c | 1.216 Thu Jan 05 07:53:20 UTC 2017 ryo branches: 1.216.6; "vmstat -ie[v]" auto fit to minimum columns Reviewed by msaitoh@ Thu Jan 05 07:53:20 UTC 2017 ryo branches: 1.216.6; "vmstat -ie[v]" auto fit to minimum columns Reviewed by msaitoh@ 1.216.6.5 Mon Jul 22 18:10:32 UTC 2019 martin Pull up following revision(s) (requested by mrg in ticket #1304): usr.bin/vmstat/vmstat.c: revision 1.226 Use PRWORD for printing -m/-mW totals so fields don't run in to each other. While here, update field widths for 'vmstat -mW' for modern machines. 1.216.6.4 Tue Mar 06 11:15:33 UTC 2018 martin Pull up following revision(s) (requested by nakayama in ticket #606): usr.bin/vmstat/vmstat.c: revision 1.218 Don't print "nan" when there is no disk activity. 1.216.6.3 Mon Nov 06 09:55:56 UTC 2017 snj Pull up following revision(s) (requested by pgoyette in ticket #343): sys/kern/kern_history.c: revision 1.16 sys/sys/kernhist.h: revision 1.22 usr.bin/vmstat/vmstat.c: revision 1.220 Remove the ABI version-and-length check that was recently introduced; sysctl(9) ABIs should be stable across versions. 1.216.6.2 Thu Nov 02 21:29:53 UTC 2017 snj Pull up following revision(s) (requested by pgoyette in ticket #335): share/man/man9/kernhist.9: 1.5-1.8 sys/arch/acorn26/acorn26/pmap.c: 1.39 sys/arch/arm/arm32/fault.c: 1.105 via patch sys/arch/arm/arm32/pmap.c: 1.350, 1.359 sys/arch/arm/broadcom/bcm2835_bsc.c: 1.7 sys/arch/arm/omap/if_cpsw.c: 1.20 sys/arch/arm/omap/tiotg.c: 1.7 sys/arch/evbarm/conf/RPI2_INSTALL: 1.3 sys/dev/ic/sl811hs.c: 1.98 sys/dev/usb/ehci.c: 1.256 sys/dev/usb/if_axe.c: 1.83 sys/dev/usb/motg.c: 1.18 sys/dev/usb/ohci.c: 1.274 sys/dev/usb/ucom.c: 1.119 sys/dev/usb/uhci.c: 1.277 sys/dev/usb/uhub.c: 1.137 sys/dev/usb/umass.c: 1.160-1.162 sys/dev/usb/umass_quirks.c: 1.100 sys/dev/usb/umass_scsipi.c: 1.55 sys/dev/usb/usb.c: 1.168 sys/dev/usb/usb_mem.c: 1.70 sys/dev/usb/usb_subr.c: 1.221 sys/dev/usb/usbdi.c: 1.175 sys/dev/usb/usbdi_util.c: 1.67-1.70 sys/dev/usb/usbroothub.c: 1.3 sys/dev/usb/xhci.c: 1.75 sys/external/bsd/drm2/dist/drm/i915/i915_gem.c: 1.34 sys/kern/kern_history.c: 1.15 sys/kern/kern_xxx.c: 1.74 sys/kern/vfs_bio.c: 1.275-1.276 sys/miscfs/genfs/genfs_io.c: 1.71 sys/sys/kernhist.h: 1.21 sys/ufs/ffs/ffs_balloc.c: 1.63 sys/ufs/lfs/lfs_vfsops.c: 1.361 sys/ufs/lfs/ulfs_inode.c: 1.21 sys/ufs/lfs/ulfs_vnops.c: 1.52 sys/ufs/ufs/ufs_inode.c: 1.102 sys/ufs/ufs/ufs_vnops.c: 1.239 sys/uvm/pmap/pmap.c: 1.37-1.39 sys/uvm/pmap/pmap_tlb.c: 1.22 sys/uvm/uvm_amap.c: 1.108 sys/uvm/uvm_anon.c: 1.64 sys/uvm/uvm_aobj.c: 1.126 sys/uvm/uvm_bio.c: 1.91 sys/uvm/uvm_device.c: 1.66 sys/uvm/uvm_fault.c: 1.201 sys/uvm/uvm_km.c: 1.144 sys/uvm/uvm_loan.c: 1.85 sys/uvm/uvm_map.c: 1.353 sys/uvm/uvm_page.c: 1.194 sys/uvm/uvm_pager.c: 1.111 sys/uvm/uvm_pdaemon.c: 1.109 sys/uvm/uvm_swap.c: 1.175 sys/uvm/uvm_vnode.c: 1.103 usr.bin/vmstat/vmstat.c: 1.219 Reorder to test for null before null deref in debug code -- Reorder to test for null before null deref in debug code -- KNF -- No need for '\n' in UVMHIST_LOG -- normalise a BIOHIST log message -- Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up... (As proposed on tech-kern@ with additional changes and enhancements.) Details of changes: * All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.) * Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments. * All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t. * All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size." * All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed. * vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9). * vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed). * vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built. * The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements. [1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju". [2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies. -- For some reason this single kernel seems to have outgrown its declared size as a result of the kernhist(9) changes. Bump the size. XXX The amount of increase may be excessive - anyone with more detailed XXX knowledge please feel free to further adjust the value appropriately. -- Misssed one cast of pointer --> uintptr_t in previous kernhist(9) commit -- And yet another one. :( -- Use correct mark-up for NetBSD version. -- More improvements in grammar and readability. -- Remove a stray '"' (obvious typo) and add a couple of casts that are probably needed. -- And replace an instance of "%p" conversion with "%#jx" -- Whitespace fix. Give Bl tag table a width. Fix Xr. 1.216.6.1 Tue Jul 25 01:43:37 UTC 2017 snj Pull up following revision(s) (requested by mlelstv in ticket #138): usr.bin/systat/iostat.c: revision 1.38 usr.bin/systat/vmstat.c: revision 1.82 usr.bin/vmstat/drvstats.c: revision 1.11 usr.bin/vmstat/drvstats.h: revision 1.5 usr.bin/vmstat/vmstat.c: revision 1.217 usr.sbin/iostat/iostat.c: revision 1.65 Use I/O timestamps to compute disk statistics for better precision. Disk statistics are collected in a fixed size array, that got corrupted when a disk was detached. Adapt by skipping entries of detached disks and detect reused disknames at the array end. -- Use I/O timestamps to compute disk statistics for better precisison. |
| /src/sbin/route/ | |
| rtutil.c | 1.8.8.1 Fri Jul 07 13:57:26 UTC 2017 martin Pull up following revision(s) (requested by ozaki-r in ticket #107): usr.sbin/arp/arp.c: revision 1.56 sys/net/rtsock.c: revision 1.218 sys/net/if_llatbl.c: revision 1.20 usr.sbin/arp/arp.c: revision 1.57 sys/net/rtsock.c: revision 1.219 sys/net/if_llatbl.c: revision 1.21 usr.sbin/arp/arp.c: revision 1.58 tests/net/net_common.sh: revision 1.19 sys/netinet6/nd6.h: revision 1.84 sys/netinet6/nd6.h: revision 1.85 tests/net/arp/t_arp.sh: revision 1.23 sys/netinet6/in6.c: revision 1.246 tests/net/arp/t_arp.sh: revision 1.24 sys/netinet6/in6.c: revision 1.247 tests/net/arp/t_arp.sh: revision 1.25 sys/netinet6/in6.c: revision 1.248 tests/net/arp/t_arp.sh: revision 1.26 usr.sbin/ndp/ndp.c: revision 1.49 tests/net/arp/t_arp.sh: revision 1.27 tests/net/ndp/t_ndp.sh: revision 1.20 tests/net/arp/t_arp.sh: revision 1.28 tests/net/ndp/t_ndp.sh: revision 1.21 tests/net/arp/t_arp.sh: revision 1.29 tests/net/ndp/t_ndp.sh: revision 1.22 tests/net/ndp/t_ndp.sh: revision 1.23 tests/net/route/t_flags6.sh: revision 1.13 tests/net/ndp/t_ndp.sh: revision 1.24 tests/net/route/t_flags6.sh: revision 1.14 tests/net/ndp/t_ndp.sh: revision 1.25 tests/net/route/t_flags6.sh: revision 1.15 tests/net/ndp/t_ndp.sh: revision 1.26 sbin/route/rtutil.c: revision 1.9 tests/net/ndp/t_ndp.sh: revision 1.27 tests/net/ndp/t_ndp.sh: revision 1.28 tests/net/net/t_ipv6address.sh: revision 1.14 tests/net/ndp/t_ra.sh: revision 1.28 tests/net/ndp/t_ndp.sh: revision 1.29 sys/net/route.h: revision 1.113 tests/net/ndp/t_ra.sh: revision 1.29 sys/net/rtsock.c: revision 1.220 sys/net/rtsock.c: revision 1.221 sys/net/rtsock.c: revision 1.222 sys/net/rtsock.c: revision 1.223 tests/net/route/t_route.sh: revision 1.13 sys/net/rtsock.c: revision 1.224 sys/net/route.c: revision 1.196 sys/net/if_llatbl.c: revision 1.19 sys/net/route.c: revision 1.197 sbin/route/route.c: revision 1.156 tests/net/route/t_flags.sh: revision 1.16 tests/net/route/t_flags.sh: revision 1.17 usr.sbin/ndp/ndp.c: revision 1.50 tests/net/route/t_flags.sh: revision 1.18 sys/netinet/in.c: revision 1.204 tests/net/route/t_flags.sh: revision 1.19 sys/netinet/in.c: revision 1.205 tests/net/arp/t_arp.sh: revision 1.30 tests/net/arp/t_arp.sh: revision 1.31 sys/net/if_llatbl.h: revision 1.11 tests/net/arp/t_arp.sh: revision 1.32 sys/net/if_llatbl.h: revision 1.12 tests/net/arp/t_arp.sh: revision 1.33 sys/netinet6/nd6.c: revision 1.233 sys/netinet6/nd6.c: revision 1.234 sys/netinet/if_arp.c: revision 1.251 sys/netinet6/nd6.c: revision 1.235 sys/netinet/if_arp.c: revision 1.252 sbin/route/route.8: revision 1.57 sys/net/rtsock.c: revision 1.214 sys/net/rtsock.c: revision 1.215 sys/net/rtsock.c: revision 1.216 sys/net/rtsock.c: revision 1.217 whitespace police Simplify We can assume that rt_ifp is always non-NULL. Sending a routing message (RTM_ADD) on adding an llentry A message used to be sent on adding a cloned route. Restore the behavior for backward compatibility. Requested by ryo@ Drop RTF_CONNECTED from a result of RTM_GET for ARP/NDP entries ARP/NDP entries aren't connected routes. Reported by ryo@ Support -c <count> option for route monitor route command exits if it receives <count> routing messages where <count> is a value specified by -c. The option is useful to get only particular message(s) in a test script. Test routing messages emitted on operations of ARP/NDP entries Do netstat -a for an appropriate protocol Add missing declarations for cleanup Set net.inet.arp.keep only if it's required Don't create a permanent L2 cache entry on adding an address to an interface It was created to copy FreeBSD, however actually the cache isn't necessary. Remove it to simplify the code and reduce the cost to maintain it (e.g., keep a consistency with a corresponding local route). Fix typo Fix in_lltable_match_prefix The function has not been used but will be used soon. Remove unused function (nd6_rem_ifa_lle) Allow in6_lltable_free_entry to be called without holding the afdata lock of ifp as well as in_lltable_free_entry This behavior is a bit odd and should be fixed in the future... Purge ARP/NDP entries on an interface when the interface is down Fix PR kern/51179 Purge all related L2 caches on removing a route The change addresses situations similar to PR 51179. Purge L2 caches on changing an interface of a route The change addresses situations similar to PR 51179. Test implicit removals of ARP/NDP entries One test case reproudces PR 51179. Fix build of kernels without both INET and INET6 Tweak lltable_sysctl_dumparp - Rename lltable_sysctl_dumparp to lltable_sysctl_dump because it's not only for ARP - Enable it not only for INET but also for INET6 Fix usage of routing messages on arp -d and ndp -d It didn't work as we expected; we should set RTA_GATEWAY not RTA_IFP on RTM_GET to return an if_index and the kernel should use it on RTM_DELETE. Improve backward compatibility of (fake) routing messages on adding an ARP/NDP entry A message originally included only DST and GATEWAY. Restore it. Fix ifdef; care about a case w/ INET6 and w/o INET Drop RTF_UP from a routing message of a deleted ARP/NDP entry Check existence of ARP/NDP entries Checking ARP/NDP entries is valid rather than checking routes. Fix wrong comment Drop RTF_LLINFO flag (now it's RTF_LLDATA) from local routes They don't have llinfo anymore. And also the change fixes unexpected behavior of ARP proxy. Restore ARP/NDP entries to route show and netstat -r Requested by dyoung@ some time ago Enable to remove multiple ARP/NDP entries for one destination The kernel can have multiple ARP/NDP entries which have an indentical destination on different interfaces. This is normal and can be reproduce easily by ping -I or ping6 -S. We should be able to remove such entries. arp -d <ip> and ndp -d <ip> are changed to fetch all ARP/NDP entries and remove matched entries. So we can remove multiple entries described above. This fetch all and selective removal behavior is the same as arp <ip> and ndp <ip>; they also do fetch all entries and show only matched entries. Related to PR 51179 Check if ARP/NDP entries are purged when a related route is deleted |