Author: glebius
Date: Mon Oct 21 18:19:32 2019
New Revision: 353869
URL: https://svnweb.freebsd.org/changeset/base/353869

Log:
  Remove epoch tracker from struct thread.  It was an ugly crutch to emulate
  locking semantics for if_addr_rlock() and if_maddr_rlock().

Modified:
  head/sys/kern/init_main.c
  head/sys/kern/kern_thread.c
  head/sys/kern/subr_epoch.c
  head/sys/sys/epoch.h
  head/sys/sys/proc.h

Modified: head/sys/kern/init_main.c
==============================================================================
--- head/sys/kern/init_main.c   Mon Oct 21 18:17:03 2019        (r353868)
+++ head/sys/kern/init_main.c   Mon Oct 21 18:19:32 2019        (r353869)
@@ -514,7 +514,6 @@ proc0_init(void *dummy __unused)
        td->td_pflags = TDP_KTHREAD;
        td->td_cpuset = cpuset_thread0();
        td->td_domain.dr_policy = td->td_cpuset->cs_domain;
-       epoch_thread_init(td);
        prison0_init();
        p->p_peers = 0;
        p->p_leader = p;

Modified: head/sys/kern/kern_thread.c
==============================================================================
--- head/sys/kern/kern_thread.c Mon Oct 21 18:17:03 2019        (r353868)
+++ head/sys/kern/kern_thread.c Mon Oct 21 18:19:32 2019        (r353869)
@@ -273,7 +273,6 @@ thread_init(void *mem, int size, int flags)
        td->td_rlqe = NULL;
        EVENTHANDLER_DIRECT_INVOKE(thread_init, td);
        umtx_thread_init(td);
-       epoch_thread_init(td);
        td->td_kstack = 0;
        td->td_sel = NULL;
        return (0);
@@ -293,7 +292,6 @@ thread_fini(void *mem, int size)
        turnstile_free(td->td_turnstile);
        sleepq_free(td->td_sleepqueue);
        umtx_thread_fini(td);
-       epoch_thread_fini(td);
        seltdfini(td);
 }
 

Modified: head/sys/kern/subr_epoch.c
==============================================================================
--- head/sys/kern/subr_epoch.c  Mon Oct 21 18:17:03 2019        (r353868)
+++ head/sys/kern/subr_epoch.c  Mon Oct 21 18:19:32 2019        (r353869)
@@ -842,17 +842,3 @@ epoch_drain_callbacks(epoch_t epoch)
 
        PICKUP_GIANT();
 }
-
-void
-epoch_thread_init(struct thread *td)
-{
-
-       td->td_et = malloc(sizeof(struct epoch_tracker), M_EPOCH, M_WAITOK);
-}
-
-void
-epoch_thread_fini(struct thread *td)
-{
-
-       free(td->td_et, M_EPOCH);
-}

Modified: head/sys/sys/epoch.h
==============================================================================
--- head/sys/sys/epoch.h        Mon Oct 21 18:17:03 2019        (r353868)
+++ head/sys/sys/epoch.h        Mon Oct 21 18:19:32 2019        (r353869)
@@ -93,8 +93,5 @@ void epoch_trace_list(struct thread *);
 void epoch_enter(epoch_t epoch);
 void epoch_exit(epoch_t epoch);
 
-void epoch_thread_init(struct thread *);
-void epoch_thread_fini(struct thread *);
-
 #endif /* _KERNEL */
 #endif /* _SYS_EPOCH_H_ */

Modified: head/sys/sys/proc.h
==============================================================================
--- head/sys/sys/proc.h Mon Oct 21 18:17:03 2019        (r353868)
+++ head/sys/sys/proc.h Mon Oct 21 18:19:32 2019        (r353869)
@@ -365,7 +365,6 @@ struct thread {
        int             td_lastcpu;     /* (t) Last cpu we were on. */
        int             td_oncpu;       /* (t) Which cpu we are on. */
        void            *td_lkpi_task;  /* LinuxKPI task struct pointer */
-       struct epoch_tracker *td_et;    /* (k) compat KPI spare tracker */
        int             td_pmcpend;
 #ifdef EPOCH_TRACE
        SLIST_HEAD(, epoch_tracker) td_epochs;
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to