From owner-svn-soc-all@FreeBSD.ORG Tue Sep 18 18:09:06 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id B73EA1065676 for ; Tue, 18 Sep 2012 18:09:04 +0000 (UTC) (envelope-from rudot@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Tue, 18 Sep 2012 18:09:04 +0000 Date: Tue, 18 Sep 2012 18:09:04 +0000 From: rudot@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120918180904.B73EA1065676@hub.freebsd.org> Cc: Subject: socsvn commit: r241842 - in soc2012/rudot/sys: kern sys X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Sep 2012 18:09:06 -0000 Author: rudot Date: Tue Sep 18 18:09:04 2012 New Revision: 241842 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=241842 Log: Adapt comments to the coding style + some new comments Modified: soc2012/rudot/sys/kern/kern_racct.c soc2012/rudot/sys/kern/kern_rctl.c soc2012/rudot/sys/kern/sched_4bsd.c soc2012/rudot/sys/sys/racct.h Modified: soc2012/rudot/sys/kern/kern_racct.c ============================================================================== --- soc2012/rudot/sys/kern/kern_racct.c Tue Sep 18 17:30:08 2012 (r241841) +++ soc2012/rudot/sys/kern/kern_racct.c Tue Sep 18 18:09:04 2012 (r241842) @@ -68,7 +68,7 @@ FEATURE(racct, "Resource Accounting"); /* - * Do not block processes that have their %cpu usage <= pcpu_threshold + * Do not block processes that have their %cpu usage <= pcpu_threshold. */ static int pcpu_threshold = 1; @@ -77,9 +77,9 @@ 0, "Processes with higher %cpu usage than this value can be throttled."); /* - * How many seconds it takes to use the scheduler %cpu calculations. When a + * How many seconds it takes to use the scheduler %cpu calculations. When a * process starts, we compute its %cpu usage by dividing its runtime by the - * process wall clock time. After RACCT_PCPU_SECS pass, we use the value + * process wall clock time. After RACCT_PCPU_SECS pass, we use the value * provided by the scheduler. */ #define RACCT_PCPU_SECS 3 @@ -297,7 +297,7 @@ * They should both calculate in the same way so that the racct %cpu * calculations are consistent with the values showed by the ps(1) tool. * The calculations are more complex in the 4BSD scheduler because of the value - * of the ccpu variable. In ULE it is defined to be zero which saves us some + * of the ccpu variable. In ULE it is defined to be zero which saves us some * work. */ static uint64_t @@ -324,7 +324,7 @@ /* * For short-lived processes, the sched_pctcpu() returns small - * values even for cpu intensive processes. Therefore we use + * values even for cpu intensive processes. Therefore we use * our own estimate in this case. */ if (swtime < RACCT_PCPU_SECS) @@ -355,7 +355,7 @@ #else /* * In ULE the %cpu statistics are updated on every - * sched_pctcpu() call. So special calculations to + * sched_pctcpu() call. So special calculations to * account for the latest (unfinished) second are * not needed. */ @@ -494,10 +494,10 @@ * There are some cases where the racct %cpu resource would grow * beyond 100%. * For example in racct_proc_exit() we add the process %cpu usage - * to the ucred racct containers. If too many processes terminated + * to the ucred racct containers. If too many processes terminated * in a short time span, the ucred %cpu resource could grow too much. * Also, the 4BSD scheduler sometimes returns for a thread more than - * 100% cpu usage. So we set a boundary here to 100%. + * 100% cpu usage. So we set a boundary here to 100%. */ if ((resource == RACCT_PCTCPU) && (racct->r_resources[RACCT_PCTCPU] > 100 * 1000000)) @@ -601,7 +601,7 @@ /* * This is basicly racct_set_force_locked(), but with the added * benefit that if we are over limits, we let the caller know - * via the return value. But we still do set the resource to the + * via the return value. But we still do set the resource to the * specified amount. */ static int @@ -620,7 +620,7 @@ old_amount = p->p_racct->r_resources[resource]; /* - * the diffs may be negative + * The diffs may be negative. */ diff_proc = amount - old_amount; if (RACCT_IS_DECAYING(resource)) { @@ -660,7 +660,7 @@ old_amount = p->p_racct->r_resources[resource]; /* - * the diffs may be negative + * The diffs may be negative. */ diff_proc = amount - old_amount; if (RACCT_IS_DECAYING(resource)) { @@ -741,7 +741,7 @@ /* * Returns amount of 'resource' the process 'p' can keep allocated. * Allocating more than that would be denied, unless the resource - * is marked undeniable. Amount of already allocated resource does + * is marked undeniable. Amount of already allocated resource does * not matter. */ uint64_t @@ -758,7 +758,7 @@ /* * Returns amount of 'resource' the process 'p' can keep allocated. * Allocating more than that would be denied, unless the resource - * is marked undeniable. Amount of already allocated resource does + * is marked undeniable. Amount of already allocated resource does * matter. */ uint64_t @@ -855,8 +855,9 @@ goto out; #endif - /* Init process cpu time */ + /* Init process cpu time. */ child->p_prev_runtime = 0; + child->p_throttled = 0; /* * Inherit resource usage. @@ -1019,7 +1020,7 @@ PROC_LOCK_ASSERT(p, MA_OWNED); /* - * Do not block kernel processes. Also do not block processes with + * Do not block kernel processes. Also do not block processes with * low %cpu utilization to improve interactivity. */ if (((p->p_flag & (P_SYSTEM | P_KTHREAD)) != 0) || @@ -1030,11 +1031,21 @@ FOREACH_THREAD_IN_PROC(p, td) { switch (td->td_state) { case TDS_RUNQ: + /* + * If the thread is on the scheduler run-queue, we can + * not just remove it from there. So we set the flag + * TDF_NEEDRESCHED for the thread, so that once it is + * running, it is taken off the cpu as soon as possible. + */ thread_lock(td); td->td_flags |= TDF_NEEDRESCHED; thread_unlock(td); break; case TDS_RUNNING: + /* + * If the thread is running, we request a context + * switch for it by setting the TDF_NEEDRESCHED flag. + */ thread_lock(td); td->td_flags |= TDF_NEEDRESCHED; #ifdef SMP Modified: soc2012/rudot/sys/kern/kern_rctl.c ============================================================================== --- soc2012/rudot/sys/kern/kern_rctl.c Tue Sep 18 17:30:08 2012 (r241841) +++ soc2012/rudot/sys/kern/kern_rctl.c Tue Sep 18 18:09:04 2012 (r241842) @@ -305,7 +305,7 @@ /* * Return slightly less than actual value of the available - * %cpu resource. This makes %cpu throttling more agressive + * %cpu resource. This makes %cpu throttling more agressive * and lets us act sooner than the limits are already exceeded. */ if (limit != 0) { Modified: soc2012/rudot/sys/kern/sched_4bsd.c ============================================================================== --- soc2012/rudot/sys/kern/sched_4bsd.c Tue Sep 18 17:30:08 2012 (r241841) +++ soc2012/rudot/sys/kern/sched_4bsd.c Tue Sep 18 18:09:04 2012 (r241842) @@ -1564,6 +1564,10 @@ } #ifdef RACCT +/* + * Calculates the contribution to the thread cpu usage for the latest + * (unfinished) second. + */ fixpt_t sched_pctcpu_delta(struct thread *td) { Modified: soc2012/rudot/sys/sys/racct.h ============================================================================== --- soc2012/rudot/sys/sys/racct.h Tue Sep 18 17:30:08 2012 (r241841) +++ soc2012/rudot/sys/sys/racct.h Tue Sep 18 18:09:04 2012 (r241842) @@ -91,7 +91,7 @@ #define RACCT_IS_IN_MILLIONS(X) (racct_types[X] & RACCT_IN_MILLIONS) /* - * Resource usage can drop, as opposed to only grow. When the process + * Resource usage can drop, as opposed to only grow. When the process * terminates, its resource usage is freed from the respective * per-credential racct containers. */ @@ -118,7 +118,7 @@ /* * When a process terminates, its resource usage is not automatically - * subtracted from per-credential racct containers. Instead, the resource + * subtracted from per-credential racct containers. Instead, the resource * usage of per-credential racct containers decays in time. * Resource usage can olso drop for such resource. * So far, the only such resource is RACCT_PCTCPU. @@ -141,9 +141,6 @@ LIST_HEAD(, rctl_rule_link) r_rule_links; }; -/* Flags kept in r_pflags. */ -#define R_PCPUEXCEEDED 0x00001 /* Process %cpu limits have been exceeded. */ - int racct_add(struct proc *p, int resource, uint64_t amount); void racct_add_cred(struct ucred *cred, int resource, uint64_t amount); void racct_add_force(struct proc *p, int resource, uint64_t amount); From owner-svn-soc-all@FreeBSD.ORG Wed Sep 19 12:03:33 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id A971D1065676 for ; Wed, 19 Sep 2012 12:03:32 +0000 (UTC) (envelope-from rudot@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Wed, 19 Sep 2012 12:03:32 +0000 Date: Wed, 19 Sep 2012 12:03:32 +0000 From: rudot@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120919120332.A971D1065676@hub.freebsd.org> Cc: Subject: socsvn commit: r241865 - in soc2012/rudot/sys: kern sys X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Sep 2012 12:03:34 -0000 Author: rudot Date: Wed Sep 19 12:03:32 2012 New Revision: 241865 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=241865 Log: Fixing style Modified: soc2012/rudot/sys/kern/kern_racct.c soc2012/rudot/sys/sys/racct.h Modified: soc2012/rudot/sys/kern/kern_racct.c ============================================================================== --- soc2012/rudot/sys/kern/kern_racct.c Wed Sep 19 11:54:32 2012 (r241864) +++ soc2012/rudot/sys/kern/kern_racct.c Wed Sep 19 12:03:32 2012 (r241865) @@ -472,7 +472,7 @@ /* * Increase consumption of 'resource' by 'amount' for 'racct' - * and all its parents. Differently from other cases, 'amount' here + * and all its parents. Differently from other cases, 'amount' here * may be less than zero. */ static void Modified: soc2012/rudot/sys/sys/racct.h ============================================================================== --- soc2012/rudot/sys/sys/racct.h Wed Sep 19 11:54:32 2012 (r241864) +++ soc2012/rudot/sys/sys/racct.h Wed Sep 19 12:03:32 2012 (r241865) @@ -68,7 +68,7 @@ #define RACCT_NSHM 17 #define RACCT_SHMSIZE 18 #define RACCT_WALLCLOCK 19 -#define RACCT_PCTCPU 20 +#define RACCT_PCTCPU 20 #define RACCT_MAX RACCT_PCTCPU /* From owner-svn-soc-all@FreeBSD.ORG Wed Sep 19 12:28:11 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id B855E1065672 for ; Wed, 19 Sep 2012 12:28:09 +0000 (UTC) (envelope-from rudot@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Wed, 19 Sep 2012 12:28:09 +0000 Date: Wed, 19 Sep 2012 12:28:09 +0000 From: rudot@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120919122809.B855E1065672@hub.freebsd.org> Cc: Subject: socsvn commit: r241866 - soc2012/rudot/sys/kern X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Sep 2012 12:28:11 -0000 Author: rudot Date: Wed Sep 19 12:28:08 2012 New Revision: 241866 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=241866 Log: sync with current branch Modified: soc2012/rudot/sys/kern/sched_4bsd.c soc2012/rudot/sys/kern/subr_trap.c Modified: soc2012/rudot/sys/kern/sched_4bsd.c ============================================================================== --- soc2012/rudot/sys/kern/sched_4bsd.c Wed Sep 19 12:03:32 2012 (r241865) +++ soc2012/rudot/sys/kern/sched_4bsd.c Wed Sep 19 12:28:08 2012 (r241866) @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/sched_4bsd.c,v 1.163 2012/05/15 10:58:17 pluknet Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/sched_4bsd.c,v 1.168 2012/08/22 20:01:38 jhb Exp $"); #include "opt_hwpmc_hooks.h" #include "opt_sched.h" @@ -94,6 +94,7 @@ fixpt_t ts_pctcpu; /* (j) %cpu during p_swtime. */ int ts_cpticks; /* (j) Ticks of cpu time. */ int ts_slptime; /* (j) Seconds !RUNNING. */ + int ts_slice; /* Remaining part of time slice. */ int ts_flags; struct runq *ts_runq; /* runq the thread is currently on */ #ifdef KTR @@ -104,6 +105,7 @@ /* flags kept in td_flags */ #define TDF_DIDRUN TDF_SCHED0 /* thread actually ran. */ #define TDF_BOUND TDF_SCHED1 /* Bound to one CPU. */ +#define TDF_SLICEEND TDF_SCHED2 /* Thread time slice is over. */ /* flags kept in ts_flags */ #define TSF_AFFINITY 0x0001 /* Has a non-"full" CPU set. */ @@ -117,9 +119,9 @@ static struct td_sched td_sched0; struct mtx sched_lock; +static int realstathz = 127; /* stathz is sometimes 0 and run off of hz. */ static int sched_tdcnt; /* Total runnable threads in the system. */ -static int sched_quantum; /* Roundrobin scheduling quantum in ticks. */ -#define SCHED_QUANTUM (hz / 10) /* Default sched quantum */ +static int sched_slice = 12; /* Thread run time before rescheduling. */ static void setup_runqs(void); static void schedcpu(void); @@ -145,6 +147,10 @@ &sched_kp); SYSINIT(sched_setup, SI_SUB_RUN_QUEUE, SI_ORDER_FIRST, sched_setup, NULL); +static void sched_initticks(void *dummy); +SYSINIT(sched_initticks, SI_SUB_CLOCKS, SI_ORDER_THIRD, sched_initticks, + NULL); + /* * Global run queue. */ @@ -182,16 +188,18 @@ static int sysctl_kern_quantum(SYSCTL_HANDLER_ARGS) { - int error, new_val; + int error, new_val, period; - new_val = sched_quantum * tick; + period = 1000000 / realstathz; + new_val = period * sched_slice; error = sysctl_handle_int(oidp, &new_val, 0, req); - if (error != 0 || req->newptr == NULL) + if (error != 0 || req->newptr == NULL) return (error); - if (new_val < tick) + if (new_val <= 0) return (EINVAL); - sched_quantum = new_val / tick; - hogticks = 2 * sched_quantum; + sched_slice = imax(1, (new_val + period / 2) / period); + hogticks = imax(1, (2 * hz * sched_slice + realstathz / 2) / + realstathz); return (0); } @@ -199,11 +207,11 @@ SYSCTL_STRING(_kern_sched, OID_AUTO, name, CTLFLAG_RD, "4BSD", 0, "Scheduler name"); - SYSCTL_PROC(_kern_sched, OID_AUTO, quantum, CTLTYPE_INT | CTLFLAG_RW, - 0, sizeof sched_quantum, sysctl_kern_quantum, "I", - "Roundrobin scheduling quantum in microseconds"); - + NULL, 0, sysctl_kern_quantum, "I", + "Quantum for timeshare threads in microseconds"); +SYSCTL_INT(_kern_sched, OID_AUTO, slice, CTLFLAG_RW, &sched_slice, 0, + "Quantum for timeshare threads in stathz ticks"); #ifdef SMP /* Enable forwarding of wakeups to all other cpus */ static SYSCTL_NODE(_kern_sched, OID_AUTO, ipiwakeup, CTLFLAG_RD, NULL, @@ -471,9 +479,8 @@ struct thread *td; struct proc *p; struct td_sched *ts; - int awake, realstathz; + int awake; - realstathz = stathz ? stathz : hz; sx_slock(&allproc_lock); FOREACH_PROC_IN_SYSTEM(p) { PROC_LOCK(p); @@ -643,16 +650,26 @@ static void sched_setup(void *dummy) { - setup_runqs(); - if (sched_quantum == 0) - sched_quantum = SCHED_QUANTUM; - hogticks = 2 * sched_quantum; + setup_runqs(); /* Account for thread0. */ sched_load_add(); } +/* + * This routine determines time constants after stathz and hz are setup. + */ +static void +sched_initticks(void *dummy) +{ + + realstathz = stathz ? stathz : hz; + sched_slice = realstathz / 10; /* ~100ms */ + hogticks = imax(1, (2 * hz * sched_slice + realstathz / 2) / + realstathz); +} + /* External interfaces start here */ /* @@ -670,6 +687,7 @@ proc0.p_sched = NULL; /* XXX */ thread0.td_sched = &td_sched0; thread0.td_lock = &sched_lock; + td_sched0.ts_slice = sched_slice; mtx_init(&sched_lock, "sched lock", NULL, MTX_SPIN | MTX_RECURSE); } @@ -686,9 +704,9 @@ int sched_rr_interval(void) { - if (sched_quantum == 0) - sched_quantum = SCHED_QUANTUM; - return (sched_quantum); + + /* Convert sched_slice from stathz to hz. */ + return (imax(1, (sched_slice * hz + realstathz / 2) / realstathz)); } /* @@ -723,11 +741,12 @@ /* * Force a context switch if the current thread has used up a full - * quantum (default quantum is 100ms). + * time slice (default is 100ms). */ - if (!TD_IS_IDLETHREAD(td) && - ticks - PCPU_GET(switchticks) >= sched_quantum) - td->td_flags |= TDF_NEEDRESCHED; + if (!TD_IS_IDLETHREAD(td) && --ts->ts_slice <= 0) { + ts->ts_slice = sched_slice; + td->td_flags |= TDF_NEEDRESCHED | TDF_SLICEEND; + } stat = DPCPU_PTR(idlestat); stat->oldidlecalls = stat->idlecalls; @@ -781,6 +800,7 @@ ts = childtd->td_sched; bzero(ts, sizeof(*ts)); ts->ts_flags |= (td->td_sched->ts_flags & TSF_AFFINITY); + ts->ts_slice = 1; } void @@ -941,6 +961,7 @@ struct mtx *tmtx; struct td_sched *ts; struct proc *p; + int preempted; tmtx = NULL; ts = td->td_sched; @@ -962,8 +983,8 @@ sched_load_rem(); td->td_lastcpu = td->td_oncpu; - if (!(flags & SW_PREEMPT)) - td->td_flags &= ~TDF_NEEDRESCHED; + preempted = !(td->td_flags & TDF_SLICEEND); + td->td_flags &= ~(TDF_NEEDRESCHED | TDF_SLICEEND); td->td_owepreempt = 0; td->td_oncpu = NOCPU; @@ -981,7 +1002,7 @@ } else { if (TD_IS_RUNNING(td)) { /* Put us back on the run queue. */ - sched_add(td, (flags & SW_PREEMPT) ? + sched_add(td, preempted ? SRQ_OURSELF|SRQ_YIELDING|SRQ_PREEMPTED : SRQ_OURSELF|SRQ_YIELDING); } @@ -1077,6 +1098,7 @@ } td->td_slptick = 0; ts->ts_slptime = 0; + ts->ts_slice = sched_slice; sched_add(td, SRQ_BORING); } @@ -1610,6 +1632,7 @@ { struct pcpuidlestat *stat; + THREAD_NO_SLEEPING(); stat = DPCPU_PTR(idlestat); for (;;) { mtx_assert(&Giant, MA_NOTOWNED); Modified: soc2012/rudot/sys/kern/subr_trap.c ============================================================================== --- soc2012/rudot/sys/kern/subr_trap.c Wed Sep 19 12:03:32 2012 (r241865) +++ soc2012/rudot/sys/kern/subr_trap.c Wed Sep 19 12:28:08 2012 (r241866) @@ -42,7 +42,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/subr_trap.c,v 1.330 2012/06/10 20:24:01 pjd Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/subr_trap.c,v 1.333 2012/09/08 18:35:15 attilio Exp $"); #include "opt_hwpmc_hooks.h" #include "opt_ktrace.h" @@ -140,8 +140,24 @@ * Let the scheduler adjust our priority etc. */ sched_userret(td); +#ifdef XEN + PT_UPDATES_FLUSH(); +#endif + + /* + * Check for misbehavior. + */ + WITNESS_WARN(WARN_PANIC, NULL, "userret: returning"); + KASSERT(td->td_critnest == 0, + ("userret: Returning in a critical section")); KASSERT(td->td_locks == 0, - ("userret: Returning with %d locks held.", td->td_locks)); + ("userret: Returning with %d locks held", td->td_locks)); + KASSERT((td->td_pflags & TDP_NOFAULTING) == 0, + ("userret: Returning with pagefaults disabled")); + KASSERT((td->td_pflags & TDP_NOSLEEPING) == 0, + ("userret: Returning with sleep disabled")); + KASSERT(td->td_pinned == 0, + ("userret: Returning with with pinned thread")); #ifdef VIMAGE /* Unfortunately td_vnet_lpush needs VNET_DEBUG. */ VNET_ASSERT(curvnet == NULL, @@ -149,9 +165,6 @@ __func__, td, p->p_pid, td->td_name, curvnet, (td->td_vnet_lpush != NULL) ? td->td_vnet_lpush : "N/A")); #endif -#ifdef XEN - PT_UPDATES_FLUSH(); -#endif #ifdef RACCT PROC_LOCK(p); while (p->p_throttled == 1) { @@ -274,7 +287,6 @@ } userret(td, framep); - mtx_assert(&Giant, MA_NOTOWNED); } const char * From owner-svn-soc-all@FreeBSD.ORG Wed Sep 19 12:53:09 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 788D9106566C for ; Wed, 19 Sep 2012 12:53:07 +0000 (UTC) (envelope-from rudot@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Wed, 19 Sep 2012 12:53:07 +0000 Date: Wed, 19 Sep 2012 12:53:07 +0000 From: rudot@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120919125307.788D9106566C@hub.freebsd.org> Cc: Subject: socsvn commit: r241867 - soc2012/rudot/sys/kern X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Sep 2012 12:53:09 -0000 Author: rudot Date: Wed Sep 19 12:53:06 2012 New Revision: 241867 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=241867 Log: Fix include Modified: soc2012/rudot/sys/kern/subr_trap.c Modified: soc2012/rudot/sys/kern/subr_trap.c ============================================================================== --- soc2012/rudot/sys/kern/subr_trap.c Wed Sep 19 12:28:08 2012 (r241866) +++ soc2012/rudot/sys/kern/subr_trap.c Wed Sep 19 12:53:06 2012 (r241867) @@ -68,7 +68,6 @@ #include #include #include -#include #ifdef KTRACE #include #include