svn commit: r334104 - in head/sys: netinet sys
Matt Macy
mmacy at FreeBSD.org
Wed May 23 17:00:07 UTC 2018
Author: mmacy
Date: Wed May 23 17:00:05 2018
New Revision: 334104
URL: https://svnweb.freebsd.org/changeset/base/334104
Log:
epoch: allow for conditionally asserting that the epoch context fields
are unused by zeroing on INVARIANTS builds
Modified:
head/sys/netinet/ip_divert.c
head/sys/netinet/raw_ip.c
head/sys/netinet/tcp_subr.c
head/sys/netinet/udp_usrreq.c
head/sys/sys/epoch.h
Modified: head/sys/netinet/ip_divert.c
==============================================================================
--- head/sys/netinet/ip_divert.c Wed May 23 16:31:46 2018 (r334103)
+++ head/sys/netinet/ip_divert.c Wed May 23 17:00:05 2018 (r334104)
@@ -670,7 +670,7 @@ div_pcblist(SYSCTL_HANDLER_ARGS)
if (error)
return error;
- il = malloc(sizeof(struct in_pcblist) + n * sizeof(struct inpcb *), M_TEMP, M_WAITOK|M_ZERO);
+ il = malloc(sizeof(struct in_pcblist) + n * sizeof(struct inpcb *), M_TEMP, M_EPOCH_CALL_WAITOK);
inp_list = il->il_inp_list;
INP_INFO_RLOCK(&V_divcbinfo);
Modified: head/sys/netinet/raw_ip.c
==============================================================================
--- head/sys/netinet/raw_ip.c Wed May 23 16:31:46 2018 (r334103)
+++ head/sys/netinet/raw_ip.c Wed May 23 17:00:05 2018 (r334104)
@@ -1056,7 +1056,7 @@ rip_pcblist(SYSCTL_HANDLER_ARGS)
if (error)
return (error);
- il = malloc(sizeof(struct in_pcblist) + n * sizeof(struct inpcb *), M_TEMP, M_WAITOK|M_ZERO);
+ il = malloc(sizeof(struct in_pcblist) + n * sizeof(struct inpcb *), M_TEMP, M_EPOCH_CALL_WAITOK);
inp_list = il->il_inp_list;
INP_INFO_RLOCK(&V_ripcbinfo);
Modified: head/sys/netinet/tcp_subr.c
==============================================================================
--- head/sys/netinet/tcp_subr.c Wed May 23 16:31:46 2018 (r334103)
+++ head/sys/netinet/tcp_subr.c Wed May 23 17:00:05 2018 (r334104)
@@ -2151,7 +2151,7 @@ tcp_pcblist(SYSCTL_HANDLER_ARGS)
if (error)
return (error);
- il = malloc(sizeof(struct in_pcblist) + n * sizeof(struct inpcb *), M_TEMP, M_WAITOK|M_ZERO);
+ il = malloc(sizeof(struct in_pcblist) + n * sizeof(struct inpcb *), M_TEMP, M_EPOCH_CALL_WAITOK);
inp_list = il->il_inp_list;
INP_INFO_WLOCK(&V_tcbinfo);
Modified: head/sys/netinet/udp_usrreq.c
==============================================================================
--- head/sys/netinet/udp_usrreq.c Wed May 23 16:31:46 2018 (r334103)
+++ head/sys/netinet/udp_usrreq.c Wed May 23 17:00:05 2018 (r334104)
@@ -874,7 +874,7 @@ udp_pcblist(SYSCTL_HANDLER_ARGS)
error = SYSCTL_OUT(req, &xig, sizeof xig);
if (error)
return (error);
- il = malloc(sizeof(struct in_pcblist) + n * sizeof(struct inpcb *), M_TEMP, M_WAITOK|M_ZERO);
+ il = malloc(sizeof(struct in_pcblist) + n * sizeof(struct inpcb *), M_TEMP, M_EPOCH_CALL_WAITOK);
inp_list = il->il_inp_list;
INP_INFO_RLOCK(&V_udbinfo);
Modified: head/sys/sys/epoch.h
==============================================================================
--- head/sys/sys/epoch.h Wed May 23 16:31:46 2018 (r334103)
+++ head/sys/sys/epoch.h Wed May 23 17:00:05 2018 (r334104)
@@ -64,6 +64,14 @@ int in_epoch(void);
DPCPU_DECLARE(int, epoch_cb_count);
DPCPU_DECLARE(struct grouptask, epoch_cb_task);
+#ifdef INVARIANTS
+#define M_EPOCH_CALL_NOWAIT (M_NOWAIT|M_ZERO)
+#define M_EPOCH_CALL_WAITOK (M_WAITOK|M_ZERO)
+#else
+#define M_EPOCH_CALL_NOWAIT M_NOWAIT
+#define M_EPOCH_CALL_WAITOK M_WAITOK
+#endif
+
static __inline void
epoch_enter_preempt(epoch_t epoch)
{
More information about the svn-src-all
mailing list