From owner-svn-src-projects@FreeBSD.ORG Mon Jul 30 13:50:37 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 90A361065670; Mon, 30 Jul 2012 13:50:37 +0000 (UTC) (envelope-from davide@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7A57A8FC12; Mon, 30 Jul 2012 13:50:37 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q6UDobKp099071; Mon, 30 Jul 2012 13:50:37 GMT (envelope-from davide@svn.freebsd.org) Received: (from davide@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q6UDobCI099069; Mon, 30 Jul 2012 13:50:37 GMT (envelope-from davide@svn.freebsd.org) Message-Id: <201207301350.q6UDobCI099069@svn.freebsd.org> From: Davide Italiano Date: Mon, 30 Jul 2012 13:50:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r238907 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jul 2012 13:50:37 -0000 Author: davide Date: Mon Jul 30 13:50:37 2012 New Revision: 238907 URL: http://svn.freebsd.org/changeset/base/238907 Log: - Fix a LOR deadlock dropping the callout lock while executing the handler directly from hardware interrupt context. - Add migration support for callouts which runs from hw interrupt context. - Refactor a couple of comments to reflect the new world order. TODO: implement proper stats for direct callouts. Just a note: I'd like to thank flo@ for his invaluable help in testing and issues, mav@ that helped me in tackling the problem and Yahoo! which provided access to the machines on which tests were run. Reported by: avg, flo [1] Discused with: mav Modified: projects/calloutng/sys/kern/kern_timeout.c Modified: projects/calloutng/sys/kern/kern_timeout.c ============================================================================== --- projects/calloutng/sys/kern/kern_timeout.c Mon Jul 30 12:25:20 2012 (r238906) +++ projects/calloutng/sys/kern/kern_timeout.c Mon Jul 30 13:50:37 2012 (r238907) @@ -91,45 +91,62 @@ SYSCTL_INT(_debug, OID_AUTO, to_avg_mpca int callwheelsize, callwheelmask; /* - * The callout cpu migration entity represents informations necessary for - * describing the migrating callout to the new callout cpu. + * The callout cpu exec entities represent informations necessary for + * describing the state of callouts currently running on the CPU and the ones + * necessary for migrating callouts to the new callout cpu. In particular, + * the first entry of the array cc_exec_entity holds informations for callout + * running in SWI thread context, while the second one holds informations + * for callout running directly from hardware interrupt context. * The cached informations are very important for deferring migration when * the migrating callout is already running. */ -struct cc_mig_ent { +struct cc_exec { + struct callout *cc_next; + struct callout *cc_curr; #ifdef SMP void (*ce_migration_func)(void *); void *ce_migration_arg; int ce_migration_cpu; struct bintime ce_migration_time; #endif + int cc_cancel; + int cc_waiting; }; /* - * There is one struct callout_cpu per cpu, holding all relevant + * There is one struct callou_cpu per cpu, holding all relevant * state for the callout processing thread on the individual CPU. */ struct callout_cpu { - struct cc_mig_ent cc_migrating_entity; + struct cc_exec cc_exec_entity[2]; struct mtx cc_lock; struct callout *cc_callout; struct callout_tailq *cc_callwheel; struct callout_tailq cc_expireq; struct callout_list cc_callfree; - struct callout *cc_next; - struct callout *cc_curr; struct bintime cc_firstevent; struct bintime cc_lastscan; void *cc_cookie; - int cc_cancel; - int cc_waiting; }; +#define cc_exec_curr cc_exec_entity[0].cc_curr +#define cc_exec_next cc_exec_entity[0].cc_next +#define cc_exec_cancel cc_exec_entity[0].cc_cancel +#define cc_exec_waiting cc_exec_entity[0].cc_waiting +#define cc_exec_curr_dir cc_exec_entity[1].cc_curr +#define cc_exec_next_dir cc_exec_entity[1].cc_next +#define cc_exec_cancel_dir cc_exec_entity[1].cc_cancel +#define cc_exec_waiting_dir cc_exec_entity[1].cc_waiting + #ifdef SMP -#define cc_migration_func cc_migrating_entity.ce_migration_func -#define cc_migration_arg cc_migrating_entity.ce_migration_arg -#define cc_migration_cpu cc_migrating_entity.ce_migration_cpu -#define cc_migration_time cc_migrating_entity.ce_migration_time +#define cc_migration_func cc_exec_entity[0].ce_migration_func +#define cc_migration_arg cc_exec_entity[0].ce_migration_arg +#define cc_migration_cpu cc_exec_entity[0].ce_migration_cpu +#define cc_migration_time cc_exec_entity[0].ce_migration_time +#define cc_migration_func_dir cc_exec_entity[1].ce_migration_func +#define cc_migration_arg_dir cc_exec_entity[1].ce_migration_arg +#define cc_migration_cpu_dir cc_exec_entity[1].ce_migration_cpu +#define cc_migration_time_dir cc_exec_entity[1].ce_migration_time struct callout_cpu cc_cpu[MAXCPU]; #define CPUBLOCK MAXCPU @@ -156,6 +173,9 @@ struct callout_cpu cc_cpu; static int timeout_cpu; void (*callout_new_inserted)(int cpu, struct bintime bt) = NULL; +static struct callout * +softclock_call_cc(struct callout *c, struct callout_cpu *cc, int *mpcalls, + int *lockcalls, int *gcalls, int direct); static MALLOC_DEFINE(M_CALLOUT, "callout", "Callout datastructures"); @@ -180,15 +200,18 @@ static MALLOC_DEFINE(M_CALLOUT, "callout * Resets the migration entity tied to a specific callout cpu. */ static void -cc_cme_cleanup(struct callout_cpu *cc) +cc_cme_cleanup(struct callout_cpu *cc, int direct) { - + + cc->cc_exec_entity[direct].cc_curr = NULL; + cc->cc_exec_entity[direct].cc_next = NULL; + cc->cc_exec_entity[direct].cc_cancel = 0; + cc->cc_exec_entity[direct].cc_waiting = 0; #ifdef SMP - cc->cc_migration_cpu = CPUBLOCK; - cc->cc_migration_time.sec = 0; - cc->cc_migration_time.frac = 0; - cc->cc_migration_func = NULL; - cc->cc_migration_arg = NULL; + cc->cc_exec_entity[direct].ce_migration_cpu = CPUBLOCK; + bintime_clear(&cc->cc_exec_entity[direct].ce_migration_time); + cc->cc_exec_entity[direct].ce_migration_func = NULL; + cc->cc_exec_entity[direct].ce_migration_arg = NULL; #endif } @@ -196,11 +219,12 @@ cc_cme_cleanup(struct callout_cpu *cc) * Checks if migration is requested by a specific callout cpu. */ static int -cc_cme_migrating(struct callout_cpu *cc) +cc_cme_migrating(struct callout_cpu *cc, int direct) { #ifdef SMP - return (cc->cc_migration_cpu != CPUBLOCK); + + return (cc->cc_exec_entity[direct].ce_migration_cpu != CPUBLOCK); #else return (0); #endif @@ -246,7 +270,8 @@ callout_cpu_init(struct callout_cpu *cc) TAILQ_INIT(&cc->cc_callwheel[i]); } TAILQ_INIT(&cc->cc_expireq); - cc_cme_cleanup(cc); + for (i = 0; i < 2; i++) + cc_cme_cleanup(cc, i); if (cc->cc_callout == NULL) return; for (i = 0; i < ncallout; i++) { @@ -355,7 +380,8 @@ callout_process(struct bintime *now) struct callout *tmp; struct callout_cpu *cc; struct callout_tailq *sc; - int cpu, first, future, last, need_softclock; + int cpu, first, future, gcalls, mpcalls, last, lockcalls, + need_softclock; /* * Process callouts at a very low cpu priority, so we don't keep the @@ -376,7 +402,8 @@ callout_process(struct bintime *now) first &= callwheelmask; for (;;) { sc = &cc->cc_callwheel[first]; - TAILQ_FOREACH(tmp, sc, c_links.tqe) { + tmp = TAILQ_FIRST(sc); + while (tmp != NULL) { next = tmp->c_time; bintime_sub(&next, &tmp->c_precision); if (bintime_cmp(&next, now, <=)) { @@ -385,17 +412,20 @@ callout_process(struct bintime *now) * directly from hardware interrupt context. */ if (tmp->c_flags & CALLOUT_DIRECT) { - tmp->c_func(tmp->c_arg); TAILQ_REMOVE(sc, tmp, c_links.tqe); - tmp->c_flags &= ~CALLOUT_PENDING; + tmp = softclock_call_cc(tmp, cc, + &mpcalls, &lockcalls, &gcalls, 1); } else { TAILQ_INSERT_TAIL(&cc->cc_expireq, tmp, c_staiter); TAILQ_REMOVE(sc, tmp, c_links.tqe); tmp->c_flags |= CALLOUT_PROCESSED; need_softclock = 1; + tmp = TAILQ_NEXT(tmp, c_links.tqe); } } + else + tmp = TAILQ_NEXT(tmp, c_links.tqe); } if (first == last) break; @@ -561,11 +591,12 @@ callout_cc_add(struct callout *c, struct } static void -callout_cc_del(struct callout *c, struct callout_cpu *cc) +callout_cc_del(struct callout *c, struct callout_cpu *cc, int direct) { - - if (cc->cc_next == c) - cc->cc_next = TAILQ_NEXT(c, c_staiter); + if (direct && cc->cc_exec_next_dir == c) + cc->cc_exec_next_dir = TAILQ_NEXT(c, c_links.tqe); + else if (!direct && cc->cc_exec_next == c) + cc->cc_exec_next = TAILQ_NEXT(c, c_staiter); if (c->c_flags & CALLOUT_LOCAL_ALLOC) { c->c_func = NULL; SLIST_INSERT_HEAD(&cc->cc_callfree, c, c_links.sle); @@ -574,13 +605,13 @@ callout_cc_del(struct callout *c, struct static struct callout * softclock_call_cc(struct callout *c, struct callout_cpu *cc, int *mpcalls, - int *lockcalls, int *gcalls) + int *lockcalls, int *gcalls, int direct) { void (*c_func)(void *); void *c_arg; struct lock_class *class; struct lock_object *c_lock; - int c_flags, sharedlock; + int c_flags, flags, sharedlock; #ifdef SMP struct callout_cpu *new_cc; void (*new_func)(void *); @@ -595,7 +626,14 @@ softclock_call_cc(struct callout *c, str static timeout_t *lastfunc; #endif - cc->cc_next = TAILQ_NEXT(c, c_staiter); + if (direct) + cc->cc_exec_next_dir = TAILQ_NEXT(c, c_links.tqe); + else { + if ((c->c_flags & CALLOUT_PROCESSED) == 0) + cc->cc_exec_next = TAILQ_NEXT(c, c_links.tqe); + else + cc->cc_exec_next = TAILQ_NEXT(c, c_staiter); + } class = (c->c_lock != NULL) ? LOCK_CLASS(c->c_lock) : NULL; sharedlock = (c->c_flags & CALLOUT_SHAREDLOCK) ? 0 : 1; c_lock = c->c_lock; @@ -606,8 +644,8 @@ softclock_call_cc(struct callout *c, str c->c_flags = CALLOUT_LOCAL_ALLOC; else c->c_flags &= ~CALLOUT_PENDING; - cc->cc_curr = c; - cc->cc_cancel = 0; + cc->cc_exec_entity[direct].cc_curr = c; + cc->cc_exec_entity[direct].cc_cancel = 0; CC_UNLOCK(cc); if (c_lock != NULL) { class->lc_lock(c_lock, sharedlock); @@ -615,13 +653,12 @@ softclock_call_cc(struct callout *c, str * The callout may have been cancelled * while we switched locks. */ - if (cc->cc_cancel) { + if (cc->cc_exec_entity[direct].cc_cancel) { class->lc_unlock(c_lock); goto skip; } /* The callout cannot be stopped now. */ - cc->cc_cancel = 1; - + cc->cc_exec_entity[direct].cc_cancel = 1; if (c_lock == &Giant.lock_object) { (*gcalls)++; CTR3(KTR_CALLOUT, "callout %p func %p arg %p", @@ -639,11 +676,13 @@ softclock_call_cc(struct callout *c, str #ifdef DIAGNOSTIC binuptime(&bt1); #endif - THREAD_NO_SLEEPING(); + if (!direct) + THREAD_NO_SLEEPING(); SDT_PROBE(callout_execute, kernel, , callout_start, c, 0, 0, 0, 0); c_func(c_arg); SDT_PROBE(callout_execute, kernel, , callout_end, c, 0, 0, 0, 0); - THREAD_SLEEPING_OK(); + if (!direct) + THREAD_SLEEPING_OK(); #ifdef DIAGNOSTIC binuptime(&bt2); bintime_sub(&bt2, &bt1); @@ -677,31 +716,31 @@ skip: c->c_func = NULL; SLIST_INSERT_HEAD(&cc->cc_callfree, c, c_links.sle); } - cc->cc_curr = NULL; - if (cc->cc_waiting) { + cc->cc_exec_entity[direct].cc_curr = NULL; + if (cc->cc_exec_entity[direct].cc_waiting) { /* * There is someone waiting for the * callout to complete. * If the callout was scheduled for * migration just cancel it. */ - if (cc_cme_migrating(cc)) - cc_cme_cleanup(cc); - cc->cc_waiting = 0; + if (cc_cme_migrating(cc, direct)) + cc_cme_cleanup(cc, direct); + cc->cc_exec_entity[direct].cc_waiting = 0; CC_UNLOCK(cc); - wakeup(&cc->cc_waiting); + wakeup(&cc->cc_exec_entity[direct].cc_waiting); CC_LOCK(cc); - } else if (cc_cme_migrating(cc)) { + } else if (cc_cme_migrating(cc, direct)) { #ifdef SMP /* * If the callout was scheduled for * migration just perform it now. */ - new_cpu = cc->cc_migration_cpu; - new_time = cc->cc_migration_time; - new_func = cc->cc_migration_func; - new_arg = cc->cc_migration_arg; - cc_cme_cleanup(cc); + new_cpu = cc->cc_exec_entity[direct].ce_migration_cpu; + new_time = cc->cc_exec_entity[direct].ce_migration_time; + new_func = cc->cc_exec_entity[direct].ce_migration_func; + new_arg = cc->cc_exec_entity[direct].ce_migration_arg; + cc_cme_cleanup(cc, direct); /* * Handle deferred callout stops @@ -710,7 +749,7 @@ skip: CTR3(KTR_CALLOUT, "deferred cancelled %p func %p arg %p", c, new_func, new_arg); - callout_cc_del(c, cc); + callout_cc_del(c, cc, direct); goto nextc; } @@ -722,8 +761,9 @@ skip: * is not easy. */ new_cc = callout_cpu_switch(c, cc, new_cpu); + flags = (direct) ? C_DIRECT_EXEC : 0; callout_cc_add(c, new_cc, new_time, new_func, new_arg, - new_cpu, 0); + new_cpu, flags); CC_UNLOCK(new_cc); CC_LOCK(cc); #else @@ -733,7 +773,7 @@ skip: #ifdef SMP nextc: #endif - return (cc->cc_next); + return cc->cc_exec_entity[direct].cc_next; } /* @@ -777,17 +817,17 @@ softclock(void *arg) while (c != NULL) { ++steps; if (steps >= MAX_SOFTCLOCK_STEPS) { - cc->cc_next = c; + cc->cc_exec_next = c; /* Give interrupts a chance. */ CC_UNLOCK(cc); ; /* nothing */ CC_LOCK(cc); - c = cc->cc_next; + c = cc->cc_exec_next; steps = 0; } else { TAILQ_REMOVE(&cc->cc_expireq, c, c_staiter); c = softclock_call_cc(c, cc, &mpcalls, - &lockcalls, &gcalls); + &lockcalls, &gcalls, 0); } } #ifdef CALLOUT_PROFILING @@ -796,7 +836,7 @@ softclock(void *arg) avg_lockcalls += (lockcalls * 1000 - avg_lockcalls) >> 8; avg_gcalls += (gcalls * 1000 - avg_gcalls) >> 8; #endif - cc->cc_next = NULL; + cc->cc_exec_next = NULL; CC_UNLOCK(cc); } @@ -891,9 +931,9 @@ _callout_reset_on(struct callout *c, str { struct bintime now, to_bt; struct callout_cpu *cc; - int cancelled = 0; - int bucket; + int bucket, cancelled, direct; + cancelled = 0; if (bt == NULL) { FREQ2BT(hz,&to_bt); getbinuptime(&now); @@ -907,16 +947,19 @@ _callout_reset_on(struct callout *c, str */ if (c->c_flags & CALLOUT_LOCAL_ALLOC) cpu = c->c_cpu; + direct = c->c_flags & CALLOUT_DIRECT; cc = callout_lock(c); - if (cc->cc_curr == c) { + if (cc->cc_exec_entity[direct].cc_curr == c) { /* * We're being asked to reschedule a callout which is * currently in progress. If there is a lock then we * can cancel the callout if it has not really started. */ - if (c->c_lock != NULL && !cc->cc_cancel) - cancelled = cc->cc_cancel = 1; - if (cc->cc_waiting) { + if (c->c_lock != NULL && + !cc->cc_exec_entity[direct].cc_cancel) + cancelled = + cc->cc_exec_entity[direct].cc_cancel = 1; + if (cc->cc_exec_entity[direct].cc_waiting) { /* * Someone has called callout_drain to kill this * callout. Don't reschedule. @@ -930,14 +973,17 @@ _callout_reset_on(struct callout *c, str } if (c->c_flags & CALLOUT_PENDING) { if ((c->c_flags & CALLOUT_PROCESSED) == 0) { - if (cc->cc_next == c) - cc->cc_next = TAILQ_NEXT(c, c_links.tqe); + if (cc->cc_exec_next == c) + cc->cc_exec_next = TAILQ_NEXT(c, c_links.tqe); + else if (cc->cc_exec_next_dir == c) + cc->cc_exec_next_dir = TAILQ_NEXT(c, + c_links.tqe); bucket = get_bucket(&c->c_time); TAILQ_REMOVE(&cc->cc_callwheel[bucket], c, c_links.tqe); } else { - if (cc->cc_next == c) - cc->cc_next = TAILQ_NEXT(c, c_staiter); + if (cc->cc_exec_next == c) + cc->cc_exec_next = TAILQ_NEXT(c, c_staiter); TAILQ_REMOVE(&cc->cc_expireq, c, c_staiter); } cancelled = 1; @@ -951,11 +997,12 @@ _callout_reset_on(struct callout *c, str * to a more appropriate moment. */ if (c->c_cpu != cpu) { - if (cc->cc_curr == c) { - cc->cc_migration_cpu = cpu; - cc->cc_migration_time = to_bt; - cc->cc_migration_func = ftn; - cc->cc_migration_arg = arg; + if (cc->cc_exec_entity[direct].cc_curr == c) { + cc->cc_exec_entity[direct].ce_migration_cpu = cpu; + cc->cc_exec_entity[direct].ce_migration_time + = to_bt; + cc->cc_exec_entity[direct].ce_migration_func = ftn; + cc->cc_exec_entity[direct].ce_migration_arg = arg; c->c_flags |= CALLOUT_DFRMIGRATION; CTR6(KTR_CALLOUT, "migration of %p func %p arg %p in %d.%08x to %u deferred", @@ -999,7 +1046,7 @@ _callout_stop_safe(c, safe) { struct callout_cpu *cc, *old_cc; struct lock_class *class; - int use_lock, sq_locked, bucket; + int bucket, direct, sq_locked, use_lock; /* * Some old subsystems don't hold Giant while running a callout_stop(), @@ -1015,7 +1062,7 @@ _callout_stop_safe(c, safe) } } else use_lock = 0; - + direct = c->c_flags & CALLOUT_DIRECT; sq_locked = 0; old_cc = NULL; again: @@ -1029,7 +1076,7 @@ again: if (sq_locked != 0 && cc != old_cc) { #ifdef SMP CC_UNLOCK(cc); - sleepq_release(&old_cc->cc_waiting); + sleepq_release(&old_cc->cc_exec_entity[direct].cc_waiting); sq_locked = 0; old_cc = NULL; goto again; @@ -1050,12 +1097,13 @@ again: * If it wasn't on the queue and it isn't the current * callout, then we can't stop it, so just bail. */ - if (cc->cc_curr != c) { + if (cc->cc_exec_entity[direct].cc_curr != c) { CTR3(KTR_CALLOUT, "failed to stop %p func %p arg %p", c, c->c_func, c->c_arg); CC_UNLOCK(cc); if (sq_locked) - sleepq_release(&cc->cc_waiting); + sleepq_release( + &cc->cc_exec_entity[direct].cc_waiting); return (0); } @@ -1066,8 +1114,7 @@ again: * just wait for the current invocation to * finish. */ - while (cc->cc_curr == c) { - + while (cc->cc_exec_entity[direct].cc_curr == c) { /* * Use direct calls to sleepqueue interface * instead of cv/msleep in order to avoid @@ -1087,7 +1134,8 @@ again: */ if (!sq_locked) { CC_UNLOCK(cc); - sleepq_lock(&cc->cc_waiting); + sleepq_lock( + &cc->cc_exec_entity[direct].cc_waiting); sq_locked = 1; old_cc = cc; goto again; @@ -1099,13 +1147,16 @@ again: * will be packed up, just let softclock() * take care of it. */ - cc->cc_waiting = 1; + cc->cc_exec_entity[direct].cc_waiting = 1; DROP_GIANT(); CC_UNLOCK(cc); - sleepq_add(&cc->cc_waiting, - &cc->cc_lock.lock_object, "codrain", + sleepq_add( + &cc->cc_exec_entity[direct].cc_waiting, + &cc->cc_lock.lock_object, "codrain", SLEEPQ_SLEEP, 0); - sleepq_wait(&cc->cc_waiting, 0); + sleepq_wait( + &cc->cc_exec_entity[direct].cc_waiting, + 0); sq_locked = 0; old_cc = NULL; @@ -1113,7 +1164,8 @@ again: PICKUP_GIANT(); CC_LOCK(cc); } - } else if (use_lock && !cc->cc_cancel) { + } else if (use_lock && + !cc->cc_exec_entity[direct].cc_cancel) { /* * The current callout is waiting for its * lock which we hold. Cancel the callout @@ -1121,10 +1173,10 @@ again: * lock, the callout will be skipped in * softclock(). */ - cc->cc_cancel = 1; + cc->cc_exec_entity[direct].cc_cancel = 1; CTR3(KTR_CALLOUT, "cancelled %p func %p arg %p", c, c->c_func, c->c_arg); - KASSERT(!cc_cme_migrating(cc), + KASSERT(!cc_cme_migrating(cc, direct), ("callout wrongly scheduled for migration")); CC_UNLOCK(cc); KASSERT(!sq_locked, ("sleepqueue chain locked")); @@ -1143,8 +1195,7 @@ again: return (0); } if (sq_locked) - sleepq_release(&cc->cc_waiting); - + sleepq_release(&cc->cc_exec_entity[direct].cc_waiting); c->c_flags &= ~(CALLOUT_ACTIVE | CALLOUT_PENDING); CTR3(KTR_CALLOUT, "cancelled %p func %p arg %p", @@ -1155,7 +1206,7 @@ again: c_links.tqe); } else TAILQ_REMOVE(&cc->cc_expireq, c, c_staiter); - callout_cc_del(c, cc); + callout_cc_del(c, cc, direct); CC_UNLOCK(cc); return (1); From owner-svn-src-projects@FreeBSD.ORG Mon Jul 30 14:02:13 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 25F18106566B; Mon, 30 Jul 2012 14:02:13 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: from mail-lb0-f182.google.com (mail-lb0-f182.google.com [209.85.217.182]) by mx1.freebsd.org (Postfix) with ESMTP id 236D78FC0A; Mon, 30 Jul 2012 14:02:11 +0000 (UTC) Received: by lbon10 with SMTP id n10so4220907lbo.13 for ; Mon, 30 Jul 2012 07:02:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=m1pYo7r3KY+exIbVEdVTfUW6PsoRbbEv8TX7LwPNAek=; b=ac1SjZv15hBEVlLTLzGSw9XIUW0+AP6Aih0M1mvZiTll2StIvzXvcu8tb8LT2n6lCd fcHDh+67hulIn5iutkjNfN+W+Cdp0+H/QjSnHDf89F8NBLUzzoSQkjBJbz/iBxDIPHst 48hXXNqVIzwGoM4S0u6jHApLwNOe4o9wSXmfuOgbMBE59+AMK+aLG+0aMYR52UMDfGcN UwboTVe9gGt2Q+HcSQFagkVltk2O6z4RM4bPVCB3Gs9o9hgiVPUqQ+gTlbJeAM6uJqK1 3NcdYeVgSb68IrIxiiLpLEuRFdXvwIzaqEBGUOLnjygF2Y4UKQn6khKALWIibQq5L7J8 mXSQ== MIME-Version: 1.0 Received: by 10.112.42.34 with SMTP id k2mr5383242lbl.0.1343656925265; Mon, 30 Jul 2012 07:02:05 -0700 (PDT) Sender: asmrookie@gmail.com Received: by 10.112.27.65 with HTTP; Mon, 30 Jul 2012 07:02:05 -0700 (PDT) In-Reply-To: <201207301350.q6UDobCI099069@svn.freebsd.org> References: <201207301350.q6UDobCI099069@svn.freebsd.org> Date: Mon, 30 Jul 2012 15:02:05 +0100 X-Google-Sender-Auth: -NF5vjOzscq0GGWHE5e0VKbThQA Message-ID: From: Attilio Rao To: Davide Italiano Content-Type: text/plain; charset=UTF-8 Cc: svn-src-projects@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r238907 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: attilio@FreeBSD.org List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jul 2012 14:02:13 -0000 On 7/30/12, Davide Italiano wrote: > Author: davide > Date: Mon Jul 30 13:50:37 2012 > New Revision: 238907 > URL: http://svn.freebsd.org/changeset/base/238907 > > Log: > - Fix a LOR deadlock dropping the callout lock while executing the > handler > directly from hardware interrupt context. > > - Add migration support for callouts which runs from hw interrupt > context. > > - Refactor a couple of comments to reflect the new world order. > > TODO: implement proper stats for direct callouts. > > Just a note: I'd like to thank flo@ for his invaluable help in testing > and > issues, mav@ that helped me in tackling the problem and Yahoo! which > provided access to the machines on which tests were run. > > Reported by: avg, flo [1] > Discused with: mav > > Modified: > projects/calloutng/sys/kern/kern_timeout.c > > Modified: projects/calloutng/sys/kern/kern_timeout.c > ============================================================================== > --- projects/calloutng/sys/kern/kern_timeout.c Mon Jul 30 12:25:20 > 2012 (r238906) > +++ projects/calloutng/sys/kern/kern_timeout.c Mon Jul 30 13:50:37 > 2012 (r238907) > @@ -91,45 +91,62 @@ SYSCTL_INT(_debug, OID_AUTO, to_avg_mpca > int callwheelsize, callwheelmask; > > /* > - * The callout cpu migration entity represents informations necessary for > - * describing the migrating callout to the new callout cpu. > + * The callout cpu exec entities represent informations necessary for > + * describing the state of callouts currently running on the CPU and the > ones > + * necessary for migrating callouts to the new callout cpu. In particular, > + * the first entry of the array cc_exec_entity holds informations for > callout > + * running in SWI thread context, while the second one holds informations > + * for callout running directly from hardware interrupt context. > * The cached informations are very important for deferring migration when > * the migrating callout is already running. > */ > -struct cc_mig_ent { > +struct cc_exec { > + struct callout *cc_next; > + struct callout *cc_curr; > #ifdef SMP > void (*ce_migration_func)(void *); > void *ce_migration_arg; > int ce_migration_cpu; > struct bintime ce_migration_time; > #endif > + int cc_cancel; > + int cc_waiting; > }; > > /* > - * There is one struct callout_cpu per cpu, holding all relevant > + * There is one struct callou_cpu per cpu, holding all relevant > * state for the callout processing thread on the individual CPU. > */ > struct callout_cpu { > - struct cc_mig_ent cc_migrating_entity; > + struct cc_exec cc_exec_entity[2]; > struct mtx cc_lock; > struct callout *cc_callout; > struct callout_tailq *cc_callwheel; > struct callout_tailq cc_expireq; > struct callout_list cc_callfree; > - struct callout *cc_next; > - struct callout *cc_curr; > struct bintime cc_firstevent; > struct bintime cc_lastscan; > void *cc_cookie; > - int cc_cancel; > - int cc_waiting; > }; > > +#define cc_exec_curr cc_exec_entity[0].cc_curr > +#define cc_exec_next cc_exec_entity[0].cc_next > +#define cc_exec_cancel cc_exec_entity[0].cc_cancel > +#define cc_exec_waiting cc_exec_entity[0].cc_waiting > +#define cc_exec_curr_dir cc_exec_entity[1].cc_curr > +#define cc_exec_next_dir cc_exec_entity[1].cc_next > +#define cc_exec_cancel_dir cc_exec_entity[1].cc_cancel > +#define cc_exec_waiting_dir cc_exec_entity[1].cc_waiting > + > #ifdef SMP > -#define cc_migration_func cc_migrating_entity.ce_migration_func > -#define cc_migration_arg cc_migrating_entity.ce_migration_arg > -#define cc_migration_cpu cc_migrating_entity.ce_migration_cpu > -#define cc_migration_time cc_migrating_entity.ce_migration_time > +#define cc_migration_func cc_exec_entity[0].ce_migration_func > +#define cc_migration_arg cc_exec_entity[0].ce_migration_arg > +#define cc_migration_cpu cc_exec_entity[0].ce_migration_cpu > +#define cc_migration_time cc_exec_entity[0].ce_migration_time > +#define cc_migration_func_dir cc_exec_entity[1].ce_migration_func > +#define cc_migration_arg_dir cc_exec_entity[1].ce_migration_arg > +#define cc_migration_cpu_dir cc_exec_entity[1].ce_migration_cpu > +#define cc_migration_time_dir cc_exec_entity[1].ce_migration_time > > struct callout_cpu cc_cpu[MAXCPU]; > #define CPUBLOCK MAXCPU > @@ -156,6 +173,9 @@ struct callout_cpu cc_cpu; > > static int timeout_cpu; > void (*callout_new_inserted)(int cpu, struct bintime bt) = NULL; > +static struct callout * > +softclock_call_cc(struct callout *c, struct callout_cpu *cc, int *mpcalls, > + int *lockcalls, int *gcalls, int direct); > > static MALLOC_DEFINE(M_CALLOUT, "callout", "Callout datastructures"); > > @@ -180,15 +200,18 @@ static MALLOC_DEFINE(M_CALLOUT, "callout > * Resets the migration entity tied to a specific callout cpu. > */ > static void > -cc_cme_cleanup(struct callout_cpu *cc) > +cc_cme_cleanup(struct callout_cpu *cc, int direct) > { > - > + > + cc->cc_exec_entity[direct].cc_curr = NULL; > + cc->cc_exec_entity[direct].cc_next = NULL; > + cc->cc_exec_entity[direct].cc_cancel = 0; > + cc->cc_exec_entity[direct].cc_waiting = 0; > #ifdef SMP > - cc->cc_migration_cpu = CPUBLOCK; > - cc->cc_migration_time.sec = 0; > - cc->cc_migration_time.frac = 0; > - cc->cc_migration_func = NULL; > - cc->cc_migration_arg = NULL; > + cc->cc_exec_entity[direct].ce_migration_cpu = CPUBLOCK; > + bintime_clear(&cc->cc_exec_entity[direct].ce_migration_time); > + cc->cc_exec_entity[direct].ce_migration_func = NULL; > + cc->cc_exec_entity[direct].ce_migration_arg = NULL; > #endif > } > > @@ -196,11 +219,12 @@ cc_cme_cleanup(struct callout_cpu *cc) > * Checks if migration is requested by a specific callout cpu. > */ > static int > -cc_cme_migrating(struct callout_cpu *cc) > +cc_cme_migrating(struct callout_cpu *cc, int direct) > { > > #ifdef SMP > - return (cc->cc_migration_cpu != CPUBLOCK); > + > + return (cc->cc_exec_entity[direct].ce_migration_cpu != CPUBLOCK); > #else > return (0); > #endif > @@ -246,7 +270,8 @@ callout_cpu_init(struct callout_cpu *cc) > TAILQ_INIT(&cc->cc_callwheel[i]); > } > TAILQ_INIT(&cc->cc_expireq); > - cc_cme_cleanup(cc); > + for (i = 0; i < 2; i++) > + cc_cme_cleanup(cc, i); > if (cc->cc_callout == NULL) > return; > for (i = 0; i < ncallout; i++) { > @@ -355,7 +380,8 @@ callout_process(struct bintime *now) > struct callout *tmp; > struct callout_cpu *cc; > struct callout_tailq *sc; > - int cpu, first, future, last, need_softclock; > + int cpu, first, future, gcalls, mpcalls, last, lockcalls, > + need_softclock; > > /* > * Process callouts at a very low cpu priority, so we don't keep the > @@ -376,7 +402,8 @@ callout_process(struct bintime *now) > first &= callwheelmask; > for (;;) { > sc = &cc->cc_callwheel[first]; > - TAILQ_FOREACH(tmp, sc, c_links.tqe) { > + tmp = TAILQ_FIRST(sc); > + while (tmp != NULL) { > next = tmp->c_time; > bintime_sub(&next, &tmp->c_precision); > if (bintime_cmp(&next, now, <=)) { > @@ -385,17 +412,20 @@ callout_process(struct bintime *now) > * directly from hardware interrupt context. > */ > if (tmp->c_flags & CALLOUT_DIRECT) { > - tmp->c_func(tmp->c_arg); > TAILQ_REMOVE(sc, tmp, c_links.tqe); > - tmp->c_flags &= ~CALLOUT_PENDING; > + tmp = softclock_call_cc(tmp, cc, > + &mpcalls, &lockcalls, &gcalls, 1); > } else { > TAILQ_INSERT_TAIL(&cc->cc_expireq, > tmp, c_staiter); > TAILQ_REMOVE(sc, tmp, c_links.tqe); > tmp->c_flags |= CALLOUT_PROCESSED; > need_softclock = 1; > + tmp = TAILQ_NEXT(tmp, c_links.tqe); > } > } > + else > + tmp = TAILQ_NEXT(tmp, c_links.tqe); > } > if (first == last) > break; > @@ -561,11 +591,12 @@ callout_cc_add(struct callout *c, struct > } > > static void > -callout_cc_del(struct callout *c, struct callout_cpu *cc) > +callout_cc_del(struct callout *c, struct callout_cpu *cc, int direct) > { > - > - if (cc->cc_next == c) > - cc->cc_next = TAILQ_NEXT(c, c_staiter); > + if (direct && cc->cc_exec_next_dir == c) > + cc->cc_exec_next_dir = TAILQ_NEXT(c, c_links.tqe); > + else if (!direct && cc->cc_exec_next == c) > + cc->cc_exec_next = TAILQ_NEXT(c, c_staiter); > if (c->c_flags & CALLOUT_LOCAL_ALLOC) { > c->c_func = NULL; > SLIST_INSERT_HEAD(&cc->cc_callfree, c, c_links.sle); > @@ -574,13 +605,13 @@ callout_cc_del(struct callout *c, struct > > static struct callout * > softclock_call_cc(struct callout *c, struct callout_cpu *cc, int *mpcalls, > - int *lockcalls, int *gcalls) > + int *lockcalls, int *gcalls, int direct) > { > void (*c_func)(void *); > void *c_arg; > struct lock_class *class; > struct lock_object *c_lock; > - int c_flags, sharedlock; > + int c_flags, flags, sharedlock; > #ifdef SMP > struct callout_cpu *new_cc; > void (*new_func)(void *); > @@ -595,7 +626,14 @@ softclock_call_cc(struct callout *c, str > static timeout_t *lastfunc; > #endif > > - cc->cc_next = TAILQ_NEXT(c, c_staiter); > + if (direct) > + cc->cc_exec_next_dir = TAILQ_NEXT(c, c_links.tqe); > + else { > + if ((c->c_flags & CALLOUT_PROCESSED) == 0) > + cc->cc_exec_next = TAILQ_NEXT(c, c_links.tqe); > + else > + cc->cc_exec_next = TAILQ_NEXT(c, c_staiter); > + } > class = (c->c_lock != NULL) ? LOCK_CLASS(c->c_lock) : NULL; > sharedlock = (c->c_flags & CALLOUT_SHAREDLOCK) ? 0 : 1; > c_lock = c->c_lock; > @@ -606,8 +644,8 @@ softclock_call_cc(struct callout *c, str > c->c_flags = CALLOUT_LOCAL_ALLOC; > else > c->c_flags &= ~CALLOUT_PENDING; > - cc->cc_curr = c; > - cc->cc_cancel = 0; > + cc->cc_exec_entity[direct].cc_curr = c; > + cc->cc_exec_entity[direct].cc_cancel = 0; > CC_UNLOCK(cc); > if (c_lock != NULL) { > class->lc_lock(c_lock, sharedlock); > @@ -615,13 +653,12 @@ softclock_call_cc(struct callout *c, str > * The callout may have been cancelled > * while we switched locks. > */ > - if (cc->cc_cancel) { > + if (cc->cc_exec_entity[direct].cc_cancel) { > class->lc_unlock(c_lock); > goto skip; > } > /* The callout cannot be stopped now. */ > - cc->cc_cancel = 1; > - > + cc->cc_exec_entity[direct].cc_cancel = 1; > if (c_lock == &Giant.lock_object) { > (*gcalls)++; > CTR3(KTR_CALLOUT, "callout %p func %p arg %p", > @@ -639,11 +676,13 @@ softclock_call_cc(struct callout *c, str > #ifdef DIAGNOSTIC > binuptime(&bt1); > #endif > - THREAD_NO_SLEEPING(); > + if (!direct) > + THREAD_NO_SLEEPING(); > SDT_PROBE(callout_execute, kernel, , callout_start, c, 0, 0, 0, 0); > c_func(c_arg); > SDT_PROBE(callout_execute, kernel, , callout_end, c, 0, 0, 0, 0); > - THREAD_SLEEPING_OK(); > + if (!direct) > + THREAD_SLEEPING_OK(); I didn't look into the full patch, however I have a question about this: was it necessary because now this is running in interrupt context so it can catch the nested sleeping check case? Or there is something else? I think it would be a good thing to keep up THREAD_NO_SLEEPING() also in the direct dispatch case. Attilio -- Peace can only be achieved by understanding - A. Einstein From owner-svn-src-projects@FreeBSD.ORG Mon Jul 30 14:17:22 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8B295106566B; Mon, 30 Jul 2012 14:17:22 +0000 (UTC) (envelope-from davide.italiano@gmail.com) Received: from mail-vc0-f182.google.com (mail-vc0-f182.google.com [209.85.220.182]) by mx1.freebsd.org (Postfix) with ESMTP id 0A1018FC18; Mon, 30 Jul 2012 14:17:21 +0000 (UTC) Received: by vcbgb22 with SMTP id gb22so5643954vcb.13 for ; Mon, 30 Jul 2012 07:17:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=H1rcv9u4JK8CzvgeBVxgL2ld5bWVG1XX/NJeuVbZ2+g=; b=XKPvDodnU1KLEX8P5T50fRQ4RZD0XhxlbAqtA3TCGtSKFsQGhRrtv+74M4a12t+ku6 DcvgcbkdyPbQuAVzenfBO2v2cFURiHd8A+I7khJKeYGfvIobadRVV59Yzmxbd8+fZNQc AL92nHcUuuzuoXOKE9n/fytTJCiFs7i926juG5EaP4prge53DsGN7Daq1IxS4VfcU+df lcBIDbm86aydwQKRfs8QKDhXMQKWO4XwclFAAMC9TJ4PmStR9wkV4E8IGz61RalVLE37 luOcbKIoXD+ax8fwttLpUhbQ5KOwgKlG5BPvnZtdrIrs58vWhqD2nwe3qaF10jjOmsgQ U0TA== MIME-Version: 1.0 Received: by 10.52.33.69 with SMTP id p5mr9770991vdi.46.1343657841261; Mon, 30 Jul 2012 07:17:21 -0700 (PDT) Sender: davide.italiano@gmail.com Received: by 10.58.196.170 with HTTP; Mon, 30 Jul 2012 07:17:21 -0700 (PDT) In-Reply-To: References: <201207301350.q6UDobCI099069@svn.freebsd.org> Date: Mon, 30 Jul 2012 16:17:21 +0200 X-Google-Sender-Auth: YhzuD4g-dST1ywSp2lu61d_PbN4 Message-ID: From: Davide Italiano To: attilio@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 Cc: svn-src-projects@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r238907 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jul 2012 14:17:22 -0000 On Mon, Jul 30, 2012 at 4:02 PM, Attilio Rao wrote: > On 7/30/12, Davide Italiano wrote: >> Author: davide >> Date: Mon Jul 30 13:50:37 2012 >> New Revision: 238907 >> URL: http://svn.freebsd.org/changeset/base/238907 >> >> Log: >> - Fix a LOR deadlock dropping the callout lock while executing the >> handler >> directly from hardware interrupt context. >> >> - Add migration support for callouts which runs from hw interrupt >> context. >> >> - Refactor a couple of comments to reflect the new world order. >> >> TODO: implement proper stats for direct callouts. >> >> Just a note: I'd like to thank flo@ for his invaluable help in testing >> and >> issues, mav@ that helped me in tackling the problem and Yahoo! which >> provided access to the machines on which tests were run. >> >> Reported by: avg, flo [1] >> Discused with: mav >> >> Modified: >> projects/calloutng/sys/kern/kern_timeout.c >> >> Modified: projects/calloutng/sys/kern/kern_timeout.c >> ============================================================================== >> --- projects/calloutng/sys/kern/kern_timeout.c Mon Jul 30 12:25:20 >> 2012 (r238906) >> +++ projects/calloutng/sys/kern/kern_timeout.c Mon Jul 30 13:50:37 >> 2012 (r238907) >> @@ -91,45 +91,62 @@ SYSCTL_INT(_debug, OID_AUTO, to_avg_mpca >> int callwheelsize, callwheelmask; >> >> /* >> - * The callout cpu migration entity represents informations necessary for >> - * describing the migrating callout to the new callout cpu. >> + * The callout cpu exec entities represent informations necessary for >> + * describing the state of callouts currently running on the CPU and the >> ones >> + * necessary for migrating callouts to the new callout cpu. In particular, >> + * the first entry of the array cc_exec_entity holds informations for >> callout >> + * running in SWI thread context, while the second one holds informations >> + * for callout running directly from hardware interrupt context. >> * The cached informations are very important for deferring migration when >> * the migrating callout is already running. >> */ >> -struct cc_mig_ent { >> +struct cc_exec { >> + struct callout *cc_next; >> + struct callout *cc_curr; >> #ifdef SMP >> void (*ce_migration_func)(void *); >> void *ce_migration_arg; >> int ce_migration_cpu; >> struct bintime ce_migration_time; >> #endif >> + int cc_cancel; >> + int cc_waiting; >> }; >> >> /* >> - * There is one struct callout_cpu per cpu, holding all relevant >> + * There is one struct callou_cpu per cpu, holding all relevant >> * state for the callout processing thread on the individual CPU. >> */ >> struct callout_cpu { >> - struct cc_mig_ent cc_migrating_entity; >> + struct cc_exec cc_exec_entity[2]; >> struct mtx cc_lock; >> struct callout *cc_callout; >> struct callout_tailq *cc_callwheel; >> struct callout_tailq cc_expireq; >> struct callout_list cc_callfree; >> - struct callout *cc_next; >> - struct callout *cc_curr; >> struct bintime cc_firstevent; >> struct bintime cc_lastscan; >> void *cc_cookie; >> - int cc_cancel; >> - int cc_waiting; >> }; >> >> +#define cc_exec_curr cc_exec_entity[0].cc_curr >> +#define cc_exec_next cc_exec_entity[0].cc_next >> +#define cc_exec_cancel cc_exec_entity[0].cc_cancel >> +#define cc_exec_waiting cc_exec_entity[0].cc_waiting >> +#define cc_exec_curr_dir cc_exec_entity[1].cc_curr >> +#define cc_exec_next_dir cc_exec_entity[1].cc_next >> +#define cc_exec_cancel_dir cc_exec_entity[1].cc_cancel >> +#define cc_exec_waiting_dir cc_exec_entity[1].cc_waiting >> + >> #ifdef SMP >> -#define cc_migration_func cc_migrating_entity.ce_migration_func >> -#define cc_migration_arg cc_migrating_entity.ce_migration_arg >> -#define cc_migration_cpu cc_migrating_entity.ce_migration_cpu >> -#define cc_migration_time cc_migrating_entity.ce_migration_time >> +#define cc_migration_func cc_exec_entity[0].ce_migration_func >> +#define cc_migration_arg cc_exec_entity[0].ce_migration_arg >> +#define cc_migration_cpu cc_exec_entity[0].ce_migration_cpu >> +#define cc_migration_time cc_exec_entity[0].ce_migration_time >> +#define cc_migration_func_dir cc_exec_entity[1].ce_migration_func >> +#define cc_migration_arg_dir cc_exec_entity[1].ce_migration_arg >> +#define cc_migration_cpu_dir cc_exec_entity[1].ce_migration_cpu >> +#define cc_migration_time_dir cc_exec_entity[1].ce_migration_time >> >> struct callout_cpu cc_cpu[MAXCPU]; >> #define CPUBLOCK MAXCPU >> @@ -156,6 +173,9 @@ struct callout_cpu cc_cpu; >> >> static int timeout_cpu; >> void (*callout_new_inserted)(int cpu, struct bintime bt) = NULL; >> +static struct callout * >> +softclock_call_cc(struct callout *c, struct callout_cpu *cc, int *mpcalls, >> + int *lockcalls, int *gcalls, int direct); >> >> static MALLOC_DEFINE(M_CALLOUT, "callout", "Callout datastructures"); >> >> @@ -180,15 +200,18 @@ static MALLOC_DEFINE(M_CALLOUT, "callout >> * Resets the migration entity tied to a specific callout cpu. >> */ >> static void >> -cc_cme_cleanup(struct callout_cpu *cc) >> +cc_cme_cleanup(struct callout_cpu *cc, int direct) >> { >> - >> + >> + cc->cc_exec_entity[direct].cc_curr = NULL; >> + cc->cc_exec_entity[direct].cc_next = NULL; >> + cc->cc_exec_entity[direct].cc_cancel = 0; >> + cc->cc_exec_entity[direct].cc_waiting = 0; >> #ifdef SMP >> - cc->cc_migration_cpu = CPUBLOCK; >> - cc->cc_migration_time.sec = 0; >> - cc->cc_migration_time.frac = 0; >> - cc->cc_migration_func = NULL; >> - cc->cc_migration_arg = NULL; >> + cc->cc_exec_entity[direct].ce_migration_cpu = CPUBLOCK; >> + bintime_clear(&cc->cc_exec_entity[direct].ce_migration_time); >> + cc->cc_exec_entity[direct].ce_migration_func = NULL; >> + cc->cc_exec_entity[direct].ce_migration_arg = NULL; >> #endif >> } >> >> @@ -196,11 +219,12 @@ cc_cme_cleanup(struct callout_cpu *cc) >> * Checks if migration is requested by a specific callout cpu. >> */ >> static int >> -cc_cme_migrating(struct callout_cpu *cc) >> +cc_cme_migrating(struct callout_cpu *cc, int direct) >> { >> >> #ifdef SMP >> - return (cc->cc_migration_cpu != CPUBLOCK); >> + >> + return (cc->cc_exec_entity[direct].ce_migration_cpu != CPUBLOCK); >> #else >> return (0); >> #endif >> @@ -246,7 +270,8 @@ callout_cpu_init(struct callout_cpu *cc) >> TAILQ_INIT(&cc->cc_callwheel[i]); >> } >> TAILQ_INIT(&cc->cc_expireq); >> - cc_cme_cleanup(cc); >> + for (i = 0; i < 2; i++) >> + cc_cme_cleanup(cc, i); >> if (cc->cc_callout == NULL) >> return; >> for (i = 0; i < ncallout; i++) { >> @@ -355,7 +380,8 @@ callout_process(struct bintime *now) >> struct callout *tmp; >> struct callout_cpu *cc; >> struct callout_tailq *sc; >> - int cpu, first, future, last, need_softclock; >> + int cpu, first, future, gcalls, mpcalls, last, lockcalls, >> + need_softclock; >> >> /* >> * Process callouts at a very low cpu priority, so we don't keep the >> @@ -376,7 +402,8 @@ callout_process(struct bintime *now) >> first &= callwheelmask; >> for (;;) { >> sc = &cc->cc_callwheel[first]; >> - TAILQ_FOREACH(tmp, sc, c_links.tqe) { >> + tmp = TAILQ_FIRST(sc); >> + while (tmp != NULL) { >> next = tmp->c_time; >> bintime_sub(&next, &tmp->c_precision); >> if (bintime_cmp(&next, now, <=)) { >> @@ -385,17 +412,20 @@ callout_process(struct bintime *now) >> * directly from hardware interrupt context. >> */ >> if (tmp->c_flags & CALLOUT_DIRECT) { >> - tmp->c_func(tmp->c_arg); >> TAILQ_REMOVE(sc, tmp, c_links.tqe); >> - tmp->c_flags &= ~CALLOUT_PENDING; >> + tmp = softclock_call_cc(tmp, cc, >> + &mpcalls, &lockcalls, &gcalls, 1); >> } else { >> TAILQ_INSERT_TAIL(&cc->cc_expireq, >> tmp, c_staiter); >> TAILQ_REMOVE(sc, tmp, c_links.tqe); >> tmp->c_flags |= CALLOUT_PROCESSED; >> need_softclock = 1; >> + tmp = TAILQ_NEXT(tmp, c_links.tqe); >> } >> } >> + else >> + tmp = TAILQ_NEXT(tmp, c_links.tqe); >> } >> if (first == last) >> break; >> @@ -561,11 +591,12 @@ callout_cc_add(struct callout *c, struct >> } >> >> static void >> -callout_cc_del(struct callout *c, struct callout_cpu *cc) >> +callout_cc_del(struct callout *c, struct callout_cpu *cc, int direct) >> { >> - >> - if (cc->cc_next == c) >> - cc->cc_next = TAILQ_NEXT(c, c_staiter); >> + if (direct && cc->cc_exec_next_dir == c) >> + cc->cc_exec_next_dir = TAILQ_NEXT(c, c_links.tqe); >> + else if (!direct && cc->cc_exec_next == c) >> + cc->cc_exec_next = TAILQ_NEXT(c, c_staiter); >> if (c->c_flags & CALLOUT_LOCAL_ALLOC) { >> c->c_func = NULL; >> SLIST_INSERT_HEAD(&cc->cc_callfree, c, c_links.sle); >> @@ -574,13 +605,13 @@ callout_cc_del(struct callout *c, struct >> >> static struct callout * >> softclock_call_cc(struct callout *c, struct callout_cpu *cc, int *mpcalls, >> - int *lockcalls, int *gcalls) >> + int *lockcalls, int *gcalls, int direct) >> { >> void (*c_func)(void *); >> void *c_arg; >> struct lock_class *class; >> struct lock_object *c_lock; >> - int c_flags, sharedlock; >> + int c_flags, flags, sharedlock; >> #ifdef SMP >> struct callout_cpu *new_cc; >> void (*new_func)(void *); >> @@ -595,7 +626,14 @@ softclock_call_cc(struct callout *c, str >> static timeout_t *lastfunc; >> #endif >> >> - cc->cc_next = TAILQ_NEXT(c, c_staiter); >> + if (direct) >> + cc->cc_exec_next_dir = TAILQ_NEXT(c, c_links.tqe); >> + else { >> + if ((c->c_flags & CALLOUT_PROCESSED) == 0) >> + cc->cc_exec_next = TAILQ_NEXT(c, c_links.tqe); >> + else >> + cc->cc_exec_next = TAILQ_NEXT(c, c_staiter); >> + } >> class = (c->c_lock != NULL) ? LOCK_CLASS(c->c_lock) : NULL; >> sharedlock = (c->c_flags & CALLOUT_SHAREDLOCK) ? 0 : 1; >> c_lock = c->c_lock; >> @@ -606,8 +644,8 @@ softclock_call_cc(struct callout *c, str >> c->c_flags = CALLOUT_LOCAL_ALLOC; >> else >> c->c_flags &= ~CALLOUT_PENDING; >> - cc->cc_curr = c; >> - cc->cc_cancel = 0; >> + cc->cc_exec_entity[direct].cc_curr = c; >> + cc->cc_exec_entity[direct].cc_cancel = 0; >> CC_UNLOCK(cc); >> if (c_lock != NULL) { >> class->lc_lock(c_lock, sharedlock); >> @@ -615,13 +653,12 @@ softclock_call_cc(struct callout *c, str >> * The callout may have been cancelled >> * while we switched locks. >> */ >> - if (cc->cc_cancel) { >> + if (cc->cc_exec_entity[direct].cc_cancel) { >> class->lc_unlock(c_lock); >> goto skip; >> } >> /* The callout cannot be stopped now. */ >> - cc->cc_cancel = 1; >> - >> + cc->cc_exec_entity[direct].cc_cancel = 1; >> if (c_lock == &Giant.lock_object) { >> (*gcalls)++; >> CTR3(KTR_CALLOUT, "callout %p func %p arg %p", >> @@ -639,11 +676,13 @@ softclock_call_cc(struct callout *c, str >> #ifdef DIAGNOSTIC >> binuptime(&bt1); >> #endif >> - THREAD_NO_SLEEPING(); >> + if (!direct) >> + THREAD_NO_SLEEPING(); >> SDT_PROBE(callout_execute, kernel, , callout_start, c, 0, 0, 0, 0); >> c_func(c_arg); >> SDT_PROBE(callout_execute, kernel, , callout_end, c, 0, 0, 0, 0); >> - THREAD_SLEEPING_OK(); >> + if (!direct) >> + THREAD_SLEEPING_OK(); > > I didn't look into the full patch, however I have a question about > this: was it necessary because now this is running in interrupt > context so it can catch the nested sleeping check case? Or there is > something else? > I think it would be a good thing to keep up THREAD_NO_SLEEPING() also > in the direct dispatch case. > > Attilio > > > -- > Peace can only be achieved by understanding - A. Einstein Thanks for the comment, Attilio. Yes, it's exactly what you thought. If direct flag is equal to one you're sure you're processing a callout which runs directly from hardware interrupt context. In this case, the running thread cannot sleep and it's likely you have TDP_NOSLEEPING flags set, failing the KASSERT() in THREAD_NO_SLEEPING() and leading to panic if kernel is compiled with INVARIANTS. In case you're running from SWI context (direct equals to zero) code remains the same as before. I think what I'm doing works due the assumption thread running never sleeps. Do you suggest some other way to handle this? Davide From owner-svn-src-projects@FreeBSD.ORG Mon Jul 30 14:24:28 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 36695106566B; Mon, 30 Jul 2012 14:24:28 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: from mail-lb0-f182.google.com (mail-lb0-f182.google.com [209.85.217.182]) by mx1.freebsd.org (Postfix) with ESMTP id 3A9F78FC0C; Mon, 30 Jul 2012 14:24:27 +0000 (UTC) Received: by lbon10 with SMTP id n10so4239085lbo.13 for ; Mon, 30 Jul 2012 07:24:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=TuqDJorp85PPsviRuv+rL7RAd1s6/eYduAZbu9NmUYE=; b=TzqiEo+/lFu8wrVvT29/fNdxc3w3BtAJOdK+hI4czlHmtrzAgi9tO30I4XNxjoEaAr 28qJZoucbGKZ23UefYuphVQk0091186owREWYDutGl96wcnMf+VFkp2RlsREjycnYkRp 3fviXIuKJzQYoBwqiQ8pvsVq8xtIK0jmzImpqK00WITBZeBpecBz/MZYaMG/eZfQySGX 5X/XRJIpNDdujbfYMO1Fe01pd96qekeGLaI0zTUK1JK2szWHqHWBkF8IwJ2eeNTTXMIo mkr/zowIDcZ4bPCW5WEOW9sa8vUlpxXpQXNht+hakVuy67uKgPogLGlhuBIDIs/df+dt oS7A== MIME-Version: 1.0 Received: by 10.112.11.100 with SMTP id p4mr5368106lbb.35.1343658266153; Mon, 30 Jul 2012 07:24:26 -0700 (PDT) Sender: asmrookie@gmail.com Received: by 10.112.27.65 with HTTP; Mon, 30 Jul 2012 07:24:26 -0700 (PDT) In-Reply-To: References: <201207301350.q6UDobCI099069@svn.freebsd.org> Date: Mon, 30 Jul 2012 15:24:26 +0100 X-Google-Sender-Auth: WZmlFhLgjsPCgYoINGWH46vptjs Message-ID: From: Attilio Rao To: Davide Italiano Content-Type: text/plain; charset=UTF-8 Cc: svn-src-projects@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r238907 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: attilio@FreeBSD.org List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jul 2012 14:24:28 -0000 On 7/30/12, Davide Italiano wrote: > On Mon, Jul 30, 2012 at 4:02 PM, Attilio Rao wrote: >> On 7/30/12, Davide Italiano wrote: >>> Author: davide >>> Date: Mon Jul 30 13:50:37 2012 >>> New Revision: 238907 >>> URL: http://svn.freebsd.org/changeset/base/238907 >>> >>> Log: >>> - Fix a LOR deadlock dropping the callout lock while executing the >>> handler >>> directly from hardware interrupt context. >>> >>> - Add migration support for callouts which runs from hw interrupt >>> context. >>> >>> - Refactor a couple of comments to reflect the new world order. >>> >>> TODO: implement proper stats for direct callouts. >>> >>> Just a note: I'd like to thank flo@ for his invaluable help in testing >>> and >>> issues, mav@ that helped me in tackling the problem and Yahoo! which >>> provided access to the machines on which tests were run. >>> >>> Reported by: avg, flo [1] >>> Discused with: mav >>> >>> Modified: >>> projects/calloutng/sys/kern/kern_timeout.c >>> >>> Modified: projects/calloutng/sys/kern/kern_timeout.c >>> ============================================================================== >>> --- projects/calloutng/sys/kern/kern_timeout.c Mon Jul 30 >>> 12:25:20 >>> 2012 (r238906) >>> +++ projects/calloutng/sys/kern/kern_timeout.c Mon Jul 30 >>> 13:50:37 >>> 2012 (r238907) >>> @@ -91,45 +91,62 @@ SYSCTL_INT(_debug, OID_AUTO, to_avg_mpca >>> int callwheelsize, callwheelmask; >>> >>> /* >>> - * The callout cpu migration entity represents informations necessary >>> for >>> - * describing the migrating callout to the new callout cpu. >>> + * The callout cpu exec entities represent informations necessary for >>> + * describing the state of callouts currently running on the CPU and >>> the >>> ones >>> + * necessary for migrating callouts to the new callout cpu. In >>> particular, >>> + * the first entry of the array cc_exec_entity holds informations for >>> callout >>> + * running in SWI thread context, while the second one holds >>> informations >>> + * for callout running directly from hardware interrupt context. >>> * The cached informations are very important for deferring migration >>> when >>> * the migrating callout is already running. >>> */ >>> -struct cc_mig_ent { >>> +struct cc_exec { >>> + struct callout *cc_next; >>> + struct callout *cc_curr; >>> #ifdef SMP >>> void (*ce_migration_func)(void *); >>> void *ce_migration_arg; >>> int ce_migration_cpu; >>> struct bintime ce_migration_time; >>> #endif >>> + int cc_cancel; >>> + int cc_waiting; >>> }; >>> >>> /* >>> - * There is one struct callout_cpu per cpu, holding all relevant >>> + * There is one struct callou_cpu per cpu, holding all relevant >>> * state for the callout processing thread on the individual CPU. >>> */ >>> struct callout_cpu { >>> - struct cc_mig_ent cc_migrating_entity; >>> + struct cc_exec cc_exec_entity[2]; >>> struct mtx cc_lock; >>> struct callout *cc_callout; >>> struct callout_tailq *cc_callwheel; >>> struct callout_tailq cc_expireq; >>> struct callout_list cc_callfree; >>> - struct callout *cc_next; >>> - struct callout *cc_curr; >>> struct bintime cc_firstevent; >>> struct bintime cc_lastscan; >>> void *cc_cookie; >>> - int cc_cancel; >>> - int cc_waiting; >>> }; >>> >>> +#define cc_exec_curr cc_exec_entity[0].cc_curr >>> +#define cc_exec_next cc_exec_entity[0].cc_next >>> +#define cc_exec_cancel cc_exec_entity[0].cc_cancel >>> +#define cc_exec_waiting cc_exec_entity[0].cc_waiting >>> +#define cc_exec_curr_dir cc_exec_entity[1].cc_curr >>> +#define cc_exec_next_dir cc_exec_entity[1].cc_next >>> +#define cc_exec_cancel_dir cc_exec_entity[1].cc_cancel >>> +#define cc_exec_waiting_dir cc_exec_entity[1].cc_waiting >>> + >>> #ifdef SMP >>> -#define cc_migration_func >>> cc_migrating_entity.ce_migration_func >>> -#define cc_migration_arg >>> cc_migrating_entity.ce_migration_arg >>> -#define cc_migration_cpu >>> cc_migrating_entity.ce_migration_cpu >>> -#define cc_migration_time >>> cc_migrating_entity.ce_migration_time >>> +#define cc_migration_func >>> cc_exec_entity[0].ce_migration_func >>> +#define cc_migration_arg cc_exec_entity[0].ce_migration_arg >>> +#define cc_migration_cpu cc_exec_entity[0].ce_migration_cpu >>> +#define cc_migration_time >>> cc_exec_entity[0].ce_migration_time >>> +#define cc_migration_func_dir >>> cc_exec_entity[1].ce_migration_func >>> +#define cc_migration_arg_dir cc_exec_entity[1].ce_migration_arg >>> +#define cc_migration_cpu_dir cc_exec_entity[1].ce_migration_cpu >>> +#define cc_migration_time_dir >>> cc_exec_entity[1].ce_migration_time >>> >>> struct callout_cpu cc_cpu[MAXCPU]; >>> #define CPUBLOCK MAXCPU >>> @@ -156,6 +173,9 @@ struct callout_cpu cc_cpu; >>> >>> static int timeout_cpu; >>> void (*callout_new_inserted)(int cpu, struct bintime bt) = NULL; >>> +static struct callout * >>> +softclock_call_cc(struct callout *c, struct callout_cpu *cc, int >>> *mpcalls, >>> + int *lockcalls, int *gcalls, int direct); >>> >>> static MALLOC_DEFINE(M_CALLOUT, "callout", "Callout datastructures"); >>> >>> @@ -180,15 +200,18 @@ static MALLOC_DEFINE(M_CALLOUT, "callout >>> * Resets the migration entity tied to a specific callout cpu. >>> */ >>> static void >>> -cc_cme_cleanup(struct callout_cpu *cc) >>> +cc_cme_cleanup(struct callout_cpu *cc, int direct) >>> { >>> - >>> + >>> + cc->cc_exec_entity[direct].cc_curr = NULL; >>> + cc->cc_exec_entity[direct].cc_next = NULL; >>> + cc->cc_exec_entity[direct].cc_cancel = 0; >>> + cc->cc_exec_entity[direct].cc_waiting = 0; >>> #ifdef SMP >>> - cc->cc_migration_cpu = CPUBLOCK; >>> - cc->cc_migration_time.sec = 0; >>> - cc->cc_migration_time.frac = 0; >>> - cc->cc_migration_func = NULL; >>> - cc->cc_migration_arg = NULL; >>> + cc->cc_exec_entity[direct].ce_migration_cpu = CPUBLOCK; >>> + bintime_clear(&cc->cc_exec_entity[direct].ce_migration_time); >>> + cc->cc_exec_entity[direct].ce_migration_func = NULL; >>> + cc->cc_exec_entity[direct].ce_migration_arg = NULL; >>> #endif >>> } >>> >>> @@ -196,11 +219,12 @@ cc_cme_cleanup(struct callout_cpu *cc) >>> * Checks if migration is requested by a specific callout cpu. >>> */ >>> static int >>> -cc_cme_migrating(struct callout_cpu *cc) >>> +cc_cme_migrating(struct callout_cpu *cc, int direct) >>> { >>> >>> #ifdef SMP >>> - return (cc->cc_migration_cpu != CPUBLOCK); >>> + >>> + return (cc->cc_exec_entity[direct].ce_migration_cpu != CPUBLOCK); >>> #else >>> return (0); >>> #endif >>> @@ -246,7 +270,8 @@ callout_cpu_init(struct callout_cpu *cc) >>> TAILQ_INIT(&cc->cc_callwheel[i]); >>> } >>> TAILQ_INIT(&cc->cc_expireq); >>> - cc_cme_cleanup(cc); >>> + for (i = 0; i < 2; i++) >>> + cc_cme_cleanup(cc, i); >>> if (cc->cc_callout == NULL) >>> return; >>> for (i = 0; i < ncallout; i++) { >>> @@ -355,7 +380,8 @@ callout_process(struct bintime *now) >>> struct callout *tmp; >>> struct callout_cpu *cc; >>> struct callout_tailq *sc; >>> - int cpu, first, future, last, need_softclock; >>> + int cpu, first, future, gcalls, mpcalls, last, lockcalls, >>> + need_softclock; >>> >>> /* >>> * Process callouts at a very low cpu priority, so we don't keep >>> the >>> @@ -376,7 +402,8 @@ callout_process(struct bintime *now) >>> first &= callwheelmask; >>> for (;;) { >>> sc = &cc->cc_callwheel[first]; >>> - TAILQ_FOREACH(tmp, sc, c_links.tqe) { >>> + tmp = TAILQ_FIRST(sc); >>> + while (tmp != NULL) { >>> next = tmp->c_time; >>> bintime_sub(&next, &tmp->c_precision); >>> if (bintime_cmp(&next, now, <=)) { >>> @@ -385,17 +412,20 @@ callout_process(struct bintime *now) >>> * directly from hardware interrupt >>> context. >>> */ >>> if (tmp->c_flags & CALLOUT_DIRECT) { >>> - tmp->c_func(tmp->c_arg); >>> TAILQ_REMOVE(sc, tmp, >>> c_links.tqe); >>> - tmp->c_flags &= ~CALLOUT_PENDING; >>> + tmp = softclock_call_cc(tmp, cc, >>> + &mpcalls, &lockcalls, &gcalls, >>> 1); >>> } else { >>> TAILQ_INSERT_TAIL(&cc->cc_expireq, >>> tmp, c_staiter); >>> TAILQ_REMOVE(sc, tmp, >>> c_links.tqe); >>> tmp->c_flags |= CALLOUT_PROCESSED; >>> need_softclock = 1; >>> + tmp = TAILQ_NEXT(tmp, >>> c_links.tqe); >>> } >>> } >>> + else >>> + tmp = TAILQ_NEXT(tmp, c_links.tqe); >>> } >>> if (first == last) >>> break; >>> @@ -561,11 +591,12 @@ callout_cc_add(struct callout *c, struct >>> } >>> >>> static void >>> -callout_cc_del(struct callout *c, struct callout_cpu *cc) >>> +callout_cc_del(struct callout *c, struct callout_cpu *cc, int direct) >>> { >>> - >>> - if (cc->cc_next == c) >>> - cc->cc_next = TAILQ_NEXT(c, c_staiter); >>> + if (direct && cc->cc_exec_next_dir == c) >>> + cc->cc_exec_next_dir = TAILQ_NEXT(c, c_links.tqe); >>> + else if (!direct && cc->cc_exec_next == c) >>> + cc->cc_exec_next = TAILQ_NEXT(c, c_staiter); >>> if (c->c_flags & CALLOUT_LOCAL_ALLOC) { >>> c->c_func = NULL; >>> SLIST_INSERT_HEAD(&cc->cc_callfree, c, c_links.sle); >>> @@ -574,13 +605,13 @@ callout_cc_del(struct callout *c, struct >>> >>> static struct callout * >>> softclock_call_cc(struct callout *c, struct callout_cpu *cc, int >>> *mpcalls, >>> - int *lockcalls, int *gcalls) >>> + int *lockcalls, int *gcalls, int direct) >>> { >>> void (*c_func)(void *); >>> void *c_arg; >>> struct lock_class *class; >>> struct lock_object *c_lock; >>> - int c_flags, sharedlock; >>> + int c_flags, flags, sharedlock; >>> #ifdef SMP >>> struct callout_cpu *new_cc; >>> void (*new_func)(void *); >>> @@ -595,7 +626,14 @@ softclock_call_cc(struct callout *c, str >>> static timeout_t *lastfunc; >>> #endif >>> >>> - cc->cc_next = TAILQ_NEXT(c, c_staiter); >>> + if (direct) >>> + cc->cc_exec_next_dir = TAILQ_NEXT(c, c_links.tqe); >>> + else { >>> + if ((c->c_flags & CALLOUT_PROCESSED) == 0) >>> + cc->cc_exec_next = TAILQ_NEXT(c, c_links.tqe); >>> + else >>> + cc->cc_exec_next = TAILQ_NEXT(c, c_staiter); >>> + } >>> class = (c->c_lock != NULL) ? LOCK_CLASS(c->c_lock) : NULL; >>> sharedlock = (c->c_flags & CALLOUT_SHAREDLOCK) ? 0 : 1; >>> c_lock = c->c_lock; >>> @@ -606,8 +644,8 @@ softclock_call_cc(struct callout *c, str >>> c->c_flags = CALLOUT_LOCAL_ALLOC; >>> else >>> c->c_flags &= ~CALLOUT_PENDING; >>> - cc->cc_curr = c; >>> - cc->cc_cancel = 0; >>> + cc->cc_exec_entity[direct].cc_curr = c; >>> + cc->cc_exec_entity[direct].cc_cancel = 0; >>> CC_UNLOCK(cc); >>> if (c_lock != NULL) { >>> class->lc_lock(c_lock, sharedlock); >>> @@ -615,13 +653,12 @@ softclock_call_cc(struct callout *c, str >>> * The callout may have been cancelled >>> * while we switched locks. >>> */ >>> - if (cc->cc_cancel) { >>> + if (cc->cc_exec_entity[direct].cc_cancel) { >>> class->lc_unlock(c_lock); >>> goto skip; >>> } >>> /* The callout cannot be stopped now. */ >>> - cc->cc_cancel = 1; >>> - >>> + cc->cc_exec_entity[direct].cc_cancel = 1; >>> if (c_lock == &Giant.lock_object) { >>> (*gcalls)++; >>> CTR3(KTR_CALLOUT, "callout %p func %p arg %p", >>> @@ -639,11 +676,13 @@ softclock_call_cc(struct callout *c, str >>> #ifdef DIAGNOSTIC >>> binuptime(&bt1); >>> #endif >>> - THREAD_NO_SLEEPING(); >>> + if (!direct) >>> + THREAD_NO_SLEEPING(); >>> SDT_PROBE(callout_execute, kernel, , callout_start, c, 0, 0, 0, >>> 0); >>> c_func(c_arg); >>> SDT_PROBE(callout_execute, kernel, , callout_end, c, 0, 0, 0, 0); >>> - THREAD_SLEEPING_OK(); >>> + if (!direct) >>> + THREAD_SLEEPING_OK(); >> >> I didn't look into the full patch, however I have a question about >> this: was it necessary because now this is running in interrupt >> context so it can catch the nested sleeping check case? Or there is >> something else? >> I think it would be a good thing to keep up THREAD_NO_SLEEPING() also >> in the direct dispatch case. >> >> Attilio >> >> >> -- >> Peace can only be achieved by understanding - A. Einstein > > Thanks for the comment, Attilio. > Yes, it's exactly what you thought. If direct flag is equal to one > you're sure you're processing a callout which runs directly from > hardware interrupt context. In this case, the running thread cannot > sleep and it's likely you have TDP_NOSLEEPING flags set, failing the > KASSERT() in THREAD_NO_SLEEPING() and leading to panic if kernel is > compiled with INVARIANTS. > In case you're running from SWI context (direct equals to zero) code > remains the same as before. > I think what I'm doing works due the assumption thread running never > sleeps. Do you suggest some other way to handle this? Possibly the quicker way to do this is to have a way to deal with the TDP_NOSLEEPING flag in recursed way, thus implement the same logic as VFS_LOCK_GIANT() does, for example. You will need to change the few callers of THREAD_NO_SLEEPING(), but the patch should be no longer than 10/15 lines. Attilio -- Peace can only be achieved by understanding - A. Einstein From owner-svn-src-projects@FreeBSD.ORG Mon Jul 30 14:34:31 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 635D9106564A; Mon, 30 Jul 2012 14:34:31 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4F4F98FC14; Mon, 30 Jul 2012 14:34:31 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q6UEYVZv002604; Mon, 30 Jul 2012 14:34:31 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q6UEYVuF002602; Mon, 30 Jul 2012 14:34:31 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201207301434.q6UEYVuF002602@svn.freebsd.org> From: Mark Linimon Date: Mon, 30 Jul 2012 14:34:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r238908 - projects/portbuild/scripts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jul 2012 14:34:31 -0000 Author: linimon (doc,ports committer) Date: Mon Jul 30 14:34:30 2012 New Revision: 238908 URL: http://svn.freebsd.org/changeset/base/238908 Log: Third time's the charm. Modified: projects/portbuild/scripts/buildscript Modified: projects/portbuild/scripts/buildscript ============================================================================== --- projects/portbuild/scripts/buildscript Mon Jul 30 13:50:37 2012 (r238907) +++ projects/portbuild/scripts/buildscript Mon Jul 30 14:34:30 2012 (r238908) @@ -166,7 +166,7 @@ pkg_sufx=${PKG_SUFX} # Use pkgng if available. #if [ -x /usr/sbin/pkg ]; then use_pkgng="no" -grep "^WITH_PKGNG[ ]*=" make.conf | sed -e "s/.*=//;s/ //" | grep "[Yy][Ee][Ss]$" && use_pkgng="yes" +grep "^WITH_PKGNG[ ]*=" /etc/make.conf | sed -e "s/.*=//;s/ //" | grep "[Yy][Ee][Ss]$" && use_pkgng="yes" # Keep restricted distfiles in a subdirectory for extra protection # against leakage From owner-svn-src-projects@FreeBSD.ORG Mon Jul 30 14:43:35 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8135B106566C; Mon, 30 Jul 2012 14:43:35 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from mail.zoral.com.ua (mx0.zoral.com.ua [91.193.166.200]) by mx1.freebsd.org (Postfix) with ESMTP id EE4318FC16; Mon, 30 Jul 2012 14:43:34 +0000 (UTC) Received: from skuns.kiev.zoral.com.ua (localhost [127.0.0.1]) by mail.zoral.com.ua (8.14.2/8.14.2) with ESMTP id q6UEdunN036602; Mon, 30 Jul 2012 17:39:56 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (kostik@localhost [127.0.0.1]) by deviant.kiev.zoral.com.ua (8.14.5/8.14.5) with ESMTP id q6UEdhlW080457; Mon, 30 Jul 2012 17:39:43 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.14.5/8.14.5/Submit) id q6UEdhkA080456; Mon, 30 Jul 2012 17:39:43 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to kostikbel@gmail.com using -f Date: Mon, 30 Jul 2012 17:39:43 +0300 From: Konstantin Belousov To: Attilio Rao Message-ID: <20120730143943.GY2676@deviant.kiev.zoral.com.ua> References: <201207301350.q6UDobCI099069@svn.freebsd.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="zNkIgqbxA+tiK/WQ" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.3i X-Virus-Scanned: clamav-milter 0.95.2 at skuns.kiev.zoral.com.ua X-Virus-Status: Clean Cc: Davide Italiano , svn-src-projects@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r238907 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jul 2012 14:43:35 -0000 --zNkIgqbxA+tiK/WQ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Jul 30, 2012 at 03:24:26PM +0100, Attilio Rao wrote: > On 7/30/12, Davide Italiano wrote: > > On Mon, Jul 30, 2012 at 4:02 PM, Attilio Rao wrot= e: > > Thanks for the comment, Attilio. > > Yes, it's exactly what you thought. If direct flag is equal to one > > you're sure you're processing a callout which runs directly from > > hardware interrupt context. In this case, the running thread cannot > > sleep and it's likely you have TDP_NOSLEEPING flags set, failing the > > KASSERT() in THREAD_NO_SLEEPING() and leading to panic if kernel is > > compiled with INVARIANTS. > > In case you're running from SWI context (direct equals to zero) code > > remains the same as before. > > I think what I'm doing works due the assumption thread running never > > sleeps. Do you suggest some other way to handle this? >=20 > Possibly the quicker way to do this is to have a way to deal with the > TDP_NOSLEEPING flag in recursed way, thus implement the same logic as > VFS_LOCK_GIANT() does, for example. > You will need to change the few callers of THREAD_NO_SLEEPING(), but > the patch should be no longer than 10/15 lines. There are already curthread_pflags_set/restore KPI designed exactly to hand= le nested private thread flags. Also, I wonder, should you assert somehow that direct dispatch cannot block as well ? --zNkIgqbxA+tiK/WQ Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (FreeBSD) iEYEARECAAYFAlAWnK8ACgkQC3+MBN1Mb4j5WwCg6LbznxGnAdFUAWhKH4tuWs5/ e7YAnj9sBgT6t3r7sfRJ09cMmmu0Rlq3 =YxNw -----END PGP SIGNATURE----- --zNkIgqbxA+tiK/WQ-- From owner-svn-src-projects@FreeBSD.ORG Mon Jul 30 14:51:24 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D426A106566B; Mon, 30 Jul 2012 14:51:24 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: from mail-lpp01m010-f54.google.com (mail-lpp01m010-f54.google.com [209.85.215.54]) by mx1.freebsd.org (Postfix) with ESMTP id E75718FC16; Mon, 30 Jul 2012 14:51:23 +0000 (UTC) Received: by laai10 with SMTP id i10so4148813laa.13 for ; Mon, 30 Jul 2012 07:51:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=cNhVkKGni0ROivhGKiZ8ayTTliRdjjeu47rtvJX70PI=; b=a4P8A0U7MahVNodt6KEYyk2oqRIpZkbcBKFzIEwubkwR0I/QyxTAy7FSjCJnWn2VZV 0jwqu4CR1MjKsMmp7S6KyEw6gUZD6L8nCDNYKtwf3rXVG2vsSrEB69qBHcjfaTtnmyHV Epnr4MLluisCfVaZMQbDt5czf69R8Si4TWrPcyuwGRUELVoYtoTrBXBokUmgzDOucKGM AOfpBOnQtLq9ijaFRcFj0tnQLdMotlrOEDMYly1D59pofz5kDCb9ueEXe62mlU0TXLv4 gONiA5h8/yRftJcObj4g7rH9FCf37v3vfmtsNJL7v1WihGtgAV4OABGrJpPEWNQME3gH eIgQ== MIME-Version: 1.0 Received: by 10.152.48.6 with SMTP id h6mr11727528lan.30.1343659882957; Mon, 30 Jul 2012 07:51:22 -0700 (PDT) Sender: asmrookie@gmail.com Received: by 10.112.27.65 with HTTP; Mon, 30 Jul 2012 07:51:22 -0700 (PDT) In-Reply-To: <20120730143943.GY2676@deviant.kiev.zoral.com.ua> References: <201207301350.q6UDobCI099069@svn.freebsd.org> <20120730143943.GY2676@deviant.kiev.zoral.com.ua> Date: Mon, 30 Jul 2012 15:51:22 +0100 X-Google-Sender-Auth: BSjMuGE_nzl2W4L-idS82vYPO4E Message-ID: From: Attilio Rao To: Konstantin Belousov Content-Type: text/plain; charset=UTF-8 Cc: Davide Italiano , svn-src-projects@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r238907 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: attilio@FreeBSD.org List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jul 2012 14:51:24 -0000 On 7/30/12, Konstantin Belousov wrote: > On Mon, Jul 30, 2012 at 03:24:26PM +0100, Attilio Rao wrote: >> On 7/30/12, Davide Italiano wrote: >> > On Mon, Jul 30, 2012 at 4:02 PM, Attilio Rao >> > wrote: >> > Thanks for the comment, Attilio. >> > Yes, it's exactly what you thought. If direct flag is equal to one >> > you're sure you're processing a callout which runs directly from >> > hardware interrupt context. In this case, the running thread cannot >> > sleep and it's likely you have TDP_NOSLEEPING flags set, failing the >> > KASSERT() in THREAD_NO_SLEEPING() and leading to panic if kernel is >> > compiled with INVARIANTS. >> > In case you're running from SWI context (direct equals to zero) code >> > remains the same as before. >> > I think what I'm doing works due the assumption thread running never >> > sleeps. Do you suggest some other way to handle this? >> >> Possibly the quicker way to do this is to have a way to deal with the >> TDP_NOSLEEPING flag in recursed way, thus implement the same logic as >> VFS_LOCK_GIANT() does, for example. >> You will need to change the few callers of THREAD_NO_SLEEPING(), but >> the patch should be no longer than 10/15 lines. > > There are already curthread_pflags_set/restore KPI designed exactly to > handle > nested private thread flags. Yes, however I would use curthread_pflags* KPI within THREAD_NO_SLEEPING() as this name is much more explicit. > Also, I wonder, should you assert somehow that direct dispatch cannot block > as well ? Yes, it would be optimal, but I don't think we have a flag for that right now, do we? Thanks, Attilio -- Peace can only be achieved by understanding - A. Einstein From owner-svn-src-projects@FreeBSD.ORG Mon Jul 30 14:56:36 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 10A2D106564A; Mon, 30 Jul 2012 14:56:36 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: from mail-lb0-f182.google.com (mail-lb0-f182.google.com [209.85.217.182]) by mx1.freebsd.org (Postfix) with ESMTP id 1BBF58FC08; Mon, 30 Jul 2012 14:56:34 +0000 (UTC) Received: by lbon10 with SMTP id n10so4265433lbo.13 for ; Mon, 30 Jul 2012 07:56:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=7LJeZqXFdjn8mcz+iVJdV17NMkp1d/qPZ1Lu2+xwMAE=; b=jXPqQLryKDIKG4tyrSiPECHZ7iLytxT6GaxYF0GdvvX1EhgYQkgrX0+8CoADFmfgGs tKYHbz7XqoaRBDgE92nSSSjymQoTA578PaFzePFyAW2e5dwH4DYoUcvaonVwqj1c5FUW 1ZOWz4gtUSYQPR6oKKd47Oroe1WWcfQwZY074p+i0+G3du9qvq5NuMrkjALDiEJLwYGJ q7rhO5BEFLLQD7M/HhPCslv8dWdrxq0g/VI5QFlvwfpCH9OEU0sjL4BhmFOIOF2vRCM9 zftaoWUzW3+IQ49LUFlUb+sEVmDebjoVPTc5VjSX9jQffYYob291EenBmQ5kqxxixI+i B1uA== MIME-Version: 1.0 Received: by 10.152.144.163 with SMTP id sn3mr4278281lab.37.1343660194050; Mon, 30 Jul 2012 07:56:34 -0700 (PDT) Sender: asmrookie@gmail.com Received: by 10.112.27.65 with HTTP; Mon, 30 Jul 2012 07:56:34 -0700 (PDT) In-Reply-To: References: <201207301350.q6UDobCI099069@svn.freebsd.org> <20120730143943.GY2676@deviant.kiev.zoral.com.ua> Date: Mon, 30 Jul 2012 15:56:34 +0100 X-Google-Sender-Auth: kTx6SqOb6925C87dqd10vl7bzwU Message-ID: From: Attilio Rao To: Konstantin Belousov Content-Type: text/plain; charset=UTF-8 Cc: Davide Italiano , svn-src-projects@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r238907 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: attilio@FreeBSD.org List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jul 2012 14:56:36 -0000 On 7/30/12, Attilio Rao wrote: > On 7/30/12, Konstantin Belousov wrote: >> On Mon, Jul 30, 2012 at 03:24:26PM +0100, Attilio Rao wrote: >>> On 7/30/12, Davide Italiano wrote: >>> > On Mon, Jul 30, 2012 at 4:02 PM, Attilio Rao >>> > wrote: >>> > Thanks for the comment, Attilio. >>> > Yes, it's exactly what you thought. If direct flag is equal to one >>> > you're sure you're processing a callout which runs directly from >>> > hardware interrupt context. In this case, the running thread cannot >>> > sleep and it's likely you have TDP_NOSLEEPING flags set, failing the >>> > KASSERT() in THREAD_NO_SLEEPING() and leading to panic if kernel is >>> > compiled with INVARIANTS. >>> > In case you're running from SWI context (direct equals to zero) code >>> > remains the same as before. >>> > I think what I'm doing works due the assumption thread running never >>> > sleeps. Do you suggest some other way to handle this? >>> >>> Possibly the quicker way to do this is to have a way to deal with the >>> TDP_NOSLEEPING flag in recursed way, thus implement the same logic as >>> VFS_LOCK_GIANT() does, for example. >>> You will need to change the few callers of THREAD_NO_SLEEPING(), but >>> the patch should be no longer than 10/15 lines. >> >> There are already curthread_pflags_set/restore KPI designed exactly to >> handle >> nested private thread flags. > > Yes, however I would use curthread_pflags* KPI within > THREAD_NO_SLEEPING() as this name is much more explicit. > >> Also, I wonder, should you assert somehow that direct dispatch cannot >> block >> as well ? > > Yes, it would be optimal, but I don't think we have a flag for that > right now, do we? More explicitly, I think such combination TDP_NOSLEEPING + TDP_NOBLOCKING (name invented) should be set on entering the interrupt context, not only related to this part of callouts. This would be a very good help for catching buggy situations. Attilio -- Peace can only be achieved by understanding - A. Einstein From owner-svn-src-projects@FreeBSD.ORG Mon Jul 30 15:02:57 2012 Return-Path: Delivered-To: svn-src-projects@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D6CA71065672; Mon, 30 Jul 2012 15:02:57 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from citadel.icyb.net.ua (citadel.icyb.net.ua [212.40.38.140]) by mx1.freebsd.org (Postfix) with ESMTP id 923AB8FC0C; Mon, 30 Jul 2012 15:02:53 +0000 (UTC) Received: from odyssey.starpoint.kiev.ua (alpha-e.starpoint.kiev.ua [212.40.38.101]) by citadel.icyb.net.ua (8.8.8p3/ICyb-2.3exp) with ESMTP id SAA15089; Mon, 30 Jul 2012 18:02:51 +0300 (EEST) (envelope-from avg@FreeBSD.org) Message-ID: <5016A21B.6090409@FreeBSD.org> Date: Mon, 30 Jul 2012 18:02:51 +0300 From: Andriy Gapon User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:13.0) Gecko/20120625 Thunderbird/13.0.1 MIME-Version: 1.0 To: attilio@FreeBSD.org References: <201207301350.q6UDobCI099069@svn.freebsd.org> <20120730143943.GY2676@deviant.kiev.zoral.com.ua> In-Reply-To: X-Enigmail-Version: 1.4.2 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: Konstantin Belousov , Davide Italiano , svn-src-projects@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r238907 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jul 2012 15:02:57 -0000 on 30/07/2012 17:56 Attilio Rao said the following: > More explicitly, I think such combination TDP_NOSLEEPING + > TDP_NOBLOCKING (name invented) should be set on entering the interrupt > context, not only related to this part of callouts. This would be a > very good help for catching buggy situations. Something very tangential. I think it would also be nice to check if a thread has any(?) locks held when returning to userland. -- Andriy Gapon From owner-svn-src-projects@FreeBSD.ORG Mon Jul 30 15:04:18 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4C011106566C; Mon, 30 Jul 2012 15:04:18 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: from mail-lb0-f182.google.com (mail-lb0-f182.google.com [209.85.217.182]) by mx1.freebsd.org (Postfix) with ESMTP id 285E78FC08; Mon, 30 Jul 2012 15:04:16 +0000 (UTC) Received: by lbon10 with SMTP id n10so4272166lbo.13 for ; Mon, 30 Jul 2012 08:04:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=OR3niMb/O7ESx0RYD6jhj/8pEXJFjje9GPQYDFCAYp4=; b=XtUM/P3rCmtkuR9fli4DRwMV+T+i9/C3fKJU7vqKt3k40B4yNaQn4llWXuqWXeuB1K v4OwzNk5QBxNQXmlRsgIqsnjduIjjxfd12sCPBm9B8buKFu9hWRaGBZZUNsCIYnf2tsZ eoYtalBTg3MZv/32B8k51FlwbA42fSkWPDV3ZYTRcwbBP625UUmOahVW+wggLpQi9VXJ /dI1ON2JsWnAA20r9KdWZaoZGyf5vP5yPDCKcrgBCvry3Yw4EJ4GEBkf/aZdUDU/yXau icY0VIdDkAz6VGAYAzllvyubKG70zqIgVYZDnw46B6fA7k0lP+HvsMpwAVYNdHpeTzQ0 L05Q== MIME-Version: 1.0 Received: by 10.152.103.11 with SMTP id fs11mr11694840lab.23.1343660655883; Mon, 30 Jul 2012 08:04:15 -0700 (PDT) Sender: asmrookie@gmail.com Received: by 10.112.27.65 with HTTP; Mon, 30 Jul 2012 08:04:15 -0700 (PDT) In-Reply-To: <5016A21B.6090409@FreeBSD.org> References: <201207301350.q6UDobCI099069@svn.freebsd.org> <20120730143943.GY2676@deviant.kiev.zoral.com.ua> <5016A21B.6090409@FreeBSD.org> Date: Mon, 30 Jul 2012 16:04:15 +0100 X-Google-Sender-Auth: GUM9FruT3Y8fvZtP760sDUgTtM0 Message-ID: From: Attilio Rao To: Andriy Gapon Content-Type: text/plain; charset=UTF-8 Cc: Konstantin Belousov , Davide Italiano , src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: Re: svn commit: r238907 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: attilio@FreeBSD.org List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jul 2012 15:04:18 -0000 On 7/30/12, Andriy Gapon wrote: > on 30/07/2012 17:56 Attilio Rao said the following: >> More explicitly, I think such combination TDP_NOSLEEPING + >> TDP_NOBLOCKING (name invented) should be set on entering the interrupt >> context, not only related to this part of callouts. This would be a >> very good help for catching buggy situations. > > Something very tangential. I think it would also be nice to check if a > thread has > any(?) locks held when returning to userland. This happens already for INVARIANTS case, with td_locks counters. In the !INVARIANTS case, this doesn't happen because you don't want to add the burden to bump td_locks for the fast case and I think it is a good approach. Attilio -- Peace can only be achieved by understanding - A. Einstein From owner-svn-src-projects@FreeBSD.ORG Mon Jul 30 15:31:51 2012 Return-Path: Delivered-To: svn-src-projects@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DA8E7106566C; Mon, 30 Jul 2012 15:31:51 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from citadel.icyb.net.ua (citadel.icyb.net.ua [212.40.38.140]) by mx1.freebsd.org (Postfix) with ESMTP id 950E08FC1C; Mon, 30 Jul 2012 15:31:50 +0000 (UTC) Received: from odyssey.starpoint.kiev.ua (alpha-e.starpoint.kiev.ua [212.40.38.101]) by citadel.icyb.net.ua (8.8.8p3/ICyb-2.3exp) with ESMTP id SAA15425; Mon, 30 Jul 2012 18:31:49 +0300 (EEST) (envelope-from avg@FreeBSD.org) Message-ID: <5016A8E4.7070405@FreeBSD.org> Date: Mon, 30 Jul 2012 18:31:48 +0300 From: Andriy Gapon User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:13.0) Gecko/20120625 Thunderbird/13.0.1 MIME-Version: 1.0 To: attilio@FreeBSD.org References: <201207301350.q6UDobCI099069@svn.freebsd.org> <20120730143943.GY2676@deviant.kiev.zoral.com.ua> <5016A21B.6090409@FreeBSD.org> In-Reply-To: X-Enigmail-Version: 1.4.2 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: Konstantin Belousov , Davide Italiano , svn-src-projects@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r238907 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jul 2012 15:31:51 -0000 on 30/07/2012 18:04 Attilio Rao said the following: > On 7/30/12, Andriy Gapon wrote: >> on 30/07/2012 17:56 Attilio Rao said the following: >>> More explicitly, I think such combination TDP_NOSLEEPING + >>> TDP_NOBLOCKING (name invented) should be set on entering the interrupt >>> context, not only related to this part of callouts. This would be a >>> very good help for catching buggy situations. >> >> Something very tangential. I think it would also be nice to check if a >> thread has >> any(?) locks held when returning to userland. > > This happens already for INVARIANTS case, with td_locks counters. > In the !INVARIANTS case, this doesn't happen because you don't want to > add the burden to bump td_locks for the fast case and I think it is a > good approach. Ah, I missed that, thank you. BTW, it seems that td_locks is checked twice in normal syscallret() path: once in syscallret() itself and then in userret(). On this note, would it make sense to move the whole nine yards of asserts from syscallret() to userret()? I mean it might make sense to have those checks (td_critnest, td_pflags) in other paths to userland. -- Andriy Gapon From owner-svn-src-projects@FreeBSD.ORG Mon Jul 30 15:37:48 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 292101065676; Mon, 30 Jul 2012 15:37:48 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id EEEEE8FC19; Mon, 30 Jul 2012 15:37:47 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q6UFbl6R008011; Mon, 30 Jul 2012 15:37:47 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q6UFblFD008009; Mon, 30 Jul 2012 15:37:47 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201207301537.q6UFblFD008009@svn.freebsd.org> From: Mark Linimon Date: Mon, 30 Jul 2012 15:37:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r238911 - projects/portbuild/scripts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jul 2012 15:37:48 -0000 Author: linimon (doc,ports committer) Date: Mon Jul 30 15:37:47 2012 New Revision: 238911 URL: http://svn.freebsd.org/changeset/base/238911 Log: One more try. Modified: projects/portbuild/scripts/buildscript Modified: projects/portbuild/scripts/buildscript ============================================================================== --- projects/portbuild/scripts/buildscript Mon Jul 30 15:30:42 2012 (r238910) +++ projects/portbuild/scripts/buildscript Mon Jul 30 15:37:47 2012 (r238911) @@ -70,6 +70,20 @@ add_pkg() { else eval $pkg_cmd_add $i if [ $? -ne 0 ]; then +# XXX MCL this is where the truncated packages kill us. +# echo "begin debug block" +# echo +# echo "remember, you are in a chroot, with dir ${dir}" +# echo +# echo "PKG_PATH is $PKG_PATH and contains" +# ls -al $PKG_PATH +# echo +# df -g +# echo +# ps axwwl +# echo +# echo "end debug block" +# XXX MCL this is where the truncated packages kill us. echo "error in dependency $i, exiting" cleanup 0 fi @@ -166,7 +180,7 @@ pkg_sufx=${PKG_SUFX} # Use pkgng if available. #if [ -x /usr/sbin/pkg ]; then use_pkgng="no" -grep "^WITH_PKGNG[ ]*=" /etc/make.conf | sed -e "s/.*=//;s/ //" | grep "[Yy][Ee][Ss]$" && use_pkgng="yes" +grep "^WITH_PKGNG[ ]*=" /etc/make.conf | sed -e "s/.*=//;s/ //" | grep -q "[Yy][Ee][Ss]$" && use_pkgng="yes" # Keep restricted distfiles in a subdirectory for extra protection # against leakage @@ -267,6 +281,7 @@ else echo "================================================================" echo "========================================" +# XXX MCL this is where the truncated packages kill us. add_pkg ${BD} # Files we do not care about changing between pre-build and post-cleanup @@ -429,10 +444,10 @@ EOF grep -vE ' (extra|missing)$' /tmp/list3 > /tmp/list6 if [ "x${NOPLISTCHECK}" = "x" ]; then if grep -vq "$L/etc/" /tmp/list4; then - #echo "1" > /tmp/status + echo "1" > /tmp/status fi if [ -s /tmp/list5 ]; then - #echo "1" > /tmp/status + echo "1" > /tmp/status fi fi echo "================================================================" From owner-svn-src-projects@FreeBSD.ORG Mon Jul 30 15:53:25 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 73E1C106566B; Mon, 30 Jul 2012 15:53:25 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from mail.zoral.com.ua (mx0.zoral.com.ua [91.193.166.200]) by mx1.freebsd.org (Postfix) with ESMTP id 0C8748FC18; Mon, 30 Jul 2012 15:53:24 +0000 (UTC) Received: from skuns.kiev.zoral.com.ua (localhost [127.0.0.1]) by mail.zoral.com.ua (8.14.2/8.14.2) with ESMTP id q6UF03xU049131; Mon, 30 Jul 2012 18:00:06 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (kostik@localhost [127.0.0.1]) by deviant.kiev.zoral.com.ua (8.14.5/8.14.5) with ESMTP id q6UExC1l080550; Mon, 30 Jul 2012 17:59:12 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.14.5/8.14.5/Submit) id q6UExCbd080549; Mon, 30 Jul 2012 17:59:12 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to kostikbel@gmail.com using -f Date: Mon, 30 Jul 2012 17:59:12 +0300 From: Konstantin Belousov To: Attilio Rao Message-ID: <20120730145912.GZ2676@deviant.kiev.zoral.com.ua> References: <201207301350.q6UDobCI099069@svn.freebsd.org> <20120730143943.GY2676@deviant.kiev.zoral.com.ua> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="zUahwhnDqgGY+q9P" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.3i X-Virus-Scanned: clamav-milter 0.95.2 at skuns.kiev.zoral.com.ua X-Virus-Status: Clean X-Spam-Status: No, score=-4.0 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on skuns.kiev.zoral.com.ua Cc: Davide Italiano , svn-src-projects@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r238907 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jul 2012 15:53:25 -0000 --zUahwhnDqgGY+q9P Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Jul 30, 2012 at 03:51:22PM +0100, Attilio Rao wrote: > On 7/30/12, Konstantin Belousov wrote: > > On Mon, Jul 30, 2012 at 03:24:26PM +0100, Attilio Rao wrote: > >> On 7/30/12, Davide Italiano wrote: > >> > On Mon, Jul 30, 2012 at 4:02 PM, Attilio Rao > >> > wrote: > >> > Thanks for the comment, Attilio. > >> > Yes, it's exactly what you thought. If direct flag is equal to one > >> > you're sure you're processing a callout which runs directly from > >> > hardware interrupt context. In this case, the running thread cannot > >> > sleep and it's likely you have TDP_NOSLEEPING flags set, failing the > >> > KASSERT() in THREAD_NO_SLEEPING() and leading to panic if kernel is > >> > compiled with INVARIANTS. > >> > In case you're running from SWI context (direct equals to zero) code > >> > remains the same as before. > >> > I think what I'm doing works due the assumption thread running never > >> > sleeps. Do you suggest some other way to handle this? > >> > >> Possibly the quicker way to do this is to have a way to deal with the > >> TDP_NOSLEEPING flag in recursed way, thus implement the same logic as > >> VFS_LOCK_GIANT() does, for example. > >> You will need to change the few callers of THREAD_NO_SLEEPING(), but > >> the patch should be no longer than 10/15 lines. > > > > There are already curthread_pflags_set/restore KPI designed exactly to > > handle > > nested private thread flags. >=20 > Yes, however I would use curthread_pflags* KPI within > THREAD_NO_SLEEPING() as this name is much more explicit. >=20 Sure, hiding it in THREAD_NO_SLEEPING (THREAD_NO_SLEEP_ENTER/LEAVE ?) is the way to use curthread_pflags_set there. As a second though, on the other hand, is it safe to modify td_flags from the interrupt context at all ? Probably yes if interrupt handler always leave td_pflags in the same state on leave as it was on entry, but couldn't too smart compiler cause inconsistent view of td_pflags inside the handler ? > > Also, I wonder, should you assert somehow that direct dispatch cannot b= lock > > as well ? >=20 > Yes, it would be optimal, but I don't think we have a flag for that > right now, do we? I am not aware of such flag, this might be a good reason to introduce it, if issue about td_pflags is just a product of my imagination. --zUahwhnDqgGY+q9P Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (FreeBSD) iEYEARECAAYFAlAWoUAACgkQC3+MBN1Mb4i1lwCgn/EPFLhvIMd9mjnly2r5h9hL hgAAoPaXJD8KWFJFeXMHZwo3kEFA42cH =8qAA -----END PGP SIGNATURE----- --zUahwhnDqgGY+q9P-- From owner-svn-src-projects@FreeBSD.ORG Mon Jul 30 18:04:42 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 817C11065676; Mon, 30 Jul 2012 18:04:42 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigknife-pt.tunnel.tserv9.chi1.ipv6.he.net [IPv6:2001:470:1f10:75::2]) by mx1.freebsd.org (Postfix) with ESMTP id 5250B8FC1D; Mon, 30 Jul 2012 18:04:42 +0000 (UTC) Received: from jhbbsd.localnet (unknown [209.249.190.124]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 9985BB98C; Mon, 30 Jul 2012 14:04:41 -0400 (EDT) From: John Baldwin To: Konstantin Belousov Date: Mon, 30 Jul 2012 11:49:43 -0400 User-Agent: KMail/1.13.5 (FreeBSD/8.2-CBSD-20110714-p17; KDE/4.5.5; amd64; ; ) References: <201207301350.q6UDobCI099069@svn.freebsd.org> <20120730143943.GY2676@deviant.kiev.zoral.com.ua> In-Reply-To: <20120730143943.GY2676@deviant.kiev.zoral.com.ua> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Message-Id: <201207301149.43458.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Mon, 30 Jul 2012 14:04:41 -0400 (EDT) Cc: Attilio Rao , Davide Italiano , src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: Re: svn commit: r238907 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jul 2012 18:04:42 -0000 On Monday, July 30, 2012 10:39:43 am Konstantin Belousov wrote: > On Mon, Jul 30, 2012 at 03:24:26PM +0100, Attilio Rao wrote: > > On 7/30/12, Davide Italiano wrote: > > > On Mon, Jul 30, 2012 at 4:02 PM, Attilio Rao wrote: > > > Thanks for the comment, Attilio. > > > Yes, it's exactly what you thought. If direct flag is equal to one > > > you're sure you're processing a callout which runs directly from > > > hardware interrupt context. In this case, the running thread cannot > > > sleep and it's likely you have TDP_NOSLEEPING flags set, failing the > > > KASSERT() in THREAD_NO_SLEEPING() and leading to panic if kernel is > > > compiled with INVARIANTS. > > > In case you're running from SWI context (direct equals to zero) code > > > remains the same as before. > > > I think what I'm doing works due the assumption thread running never > > > sleeps. Do you suggest some other way to handle this? > > > > Possibly the quicker way to do this is to have a way to deal with the > > TDP_NOSLEEPING flag in recursed way, thus implement the same logic as > > VFS_LOCK_GIANT() does, for example. > > You will need to change the few callers of THREAD_NO_SLEEPING(), but > > the patch should be no longer than 10/15 lines. > > There are already curthread_pflags_set/restore KPI designed exactly to handle > nested private thread flags. > > Also, I wonder, should you assert somehow that direct dispatch cannot block > as well ? Hmm, I have a nested TDP_NOSLEEPING already (need it to fix an issue in rmlocks). It uses a count though as the flag is set during rm_rlock() and released during rm_runlock(). I don't think it could use a set/restore KPI as there is no good place to store the state. -- John Baldwin From owner-svn-src-projects@FreeBSD.ORG Mon Jul 30 20:39:25 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DC66F106568B; Mon, 30 Jul 2012 20:39:24 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: from mail-lpp01m010-f54.google.com (mail-lpp01m010-f54.google.com [209.85.215.54]) by mx1.freebsd.org (Postfix) with ESMTP id A83CB8FC0A; Mon, 30 Jul 2012 20:39:23 +0000 (UTC) Received: by laai10 with SMTP id i10so4394871laa.13 for ; Mon, 30 Jul 2012 13:39:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=VYPt6tjdq+dGYfTxjAwPhh+o9xFykuycJs8uCpTHgXg=; b=chIUybnZHXN8YplwWHA8fk5bzx/hfeEeMEOFcx9rJrmrvoLdWK1ezVAVKprUqO/wxY jRxs5MaN8t2XJJ2EufVmbs1K7T9dn0U5vYqvuLcqrZxLohVotMUdiVcHs92eYDkpJ1v5 3MUiFFaZcf6vooKWn8+i9VhvQBYbo2ROKMWvxFkab2O40kAmUh/FNUQE6k3jOYGIO7+h ay6OL0EPTEsOhijhezXVQt/c+dLxn9jUXWfb86gXKIuqzWaUMAK6/a3YLjmX6+a+AD71 NzRxTzAf4f0MDWWXIs0rW9VZpTYRzFOZaGEthDoQv87GEhjx5S5RdkDqdkbHYaTJWM/B IrRA== MIME-Version: 1.0 Received: by 10.112.103.194 with SMTP id fy2mr5782390lbb.64.1343680757173; Mon, 30 Jul 2012 13:39:17 -0700 (PDT) Sender: asmrookie@gmail.com Received: by 10.112.27.65 with HTTP; Mon, 30 Jul 2012 13:39:17 -0700 (PDT) In-Reply-To: <5016A8E4.7070405@FreeBSD.org> References: <201207301350.q6UDobCI099069@svn.freebsd.org> <20120730143943.GY2676@deviant.kiev.zoral.com.ua> <5016A21B.6090409@FreeBSD.org> <5016A8E4.7070405@FreeBSD.org> Date: Mon, 30 Jul 2012 21:39:17 +0100 X-Google-Sender-Auth: fMn3Qkh5P5EqhYKD-5SaHXSC8rc Message-ID: From: Attilio Rao To: Andriy Gapon Content-Type: text/plain; charset=UTF-8 Cc: Konstantin Belousov , Davide Italiano , src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: Re: svn commit: r238907 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: attilio@FreeBSD.org List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jul 2012 20:39:25 -0000 On Mon, Jul 30, 2012 at 4:31 PM, Andriy Gapon wrote: > on 30/07/2012 18:04 Attilio Rao said the following: >> On 7/30/12, Andriy Gapon wrote: >>> on 30/07/2012 17:56 Attilio Rao said the following: >>>> More explicitly, I think such combination TDP_NOSLEEPING + >>>> TDP_NOBLOCKING (name invented) should be set on entering the interrupt >>>> context, not only related to this part of callouts. This would be a >>>> very good help for catching buggy situations. >>> >>> Something very tangential. I think it would also be nice to check if a >>> thread has >>> any(?) locks held when returning to userland. >> >> This happens already for INVARIANTS case, with td_locks counters. >> In the !INVARIANTS case, this doesn't happen because you don't want to >> add the burden to bump td_locks for the fast case and I think it is a >> good approach. > > Ah, I missed that, thank you. > BTW, it seems that td_locks is checked twice in normal syscallret() path: once in > syscallret() itself and then in userret(). On this note, would it make sense to > move the whole nine yards of asserts from syscallret() to userret()? > I mean it might make sense to have those checks (td_critnest, td_pflags) in other > paths to userland. Nice catch. The checks were added to syscallret() in r208453. While this is fine, I think that putting them in userret() may give them more exposure and cover also cases like traps which are not covered right now. If you want to make a patch that moves these conditions in userret() I'd be in favor of it. Thanks, Attilio -- Peace can only be achieved by understanding - A. Einstein From owner-svn-src-projects@FreeBSD.ORG Mon Jul 30 20:48:11 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E1167106566B; Mon, 30 Jul 2012 20:48:10 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: from mail-lpp01m010-f54.google.com (mail-lpp01m010-f54.google.com [209.85.215.54]) by mx1.freebsd.org (Postfix) with ESMTP id F18EA8FC14; Mon, 30 Jul 2012 20:48:09 +0000 (UTC) Received: by laai10 with SMTP id i10so4399797laa.13 for ; Mon, 30 Jul 2012 13:48:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=BCZzjHwNojFecN7dqV1rwkcDyyePEuqQRc4cW2ST5RY=; b=o9dVAlpzMGy4NHpAt7m8a++cBfT1igEgo/F72X+4XWs+Vi/gd1Io5ToUUeGyDUM4ja trEfju8fHdxSmqR4pmvpZVJ2PrMozaOLn39Ok+nI2r54tEqEU7cXsmE4Qw4a4/AHtMZZ NVEmesvQaP2Uz6kW8Oe7jui/+6soQgoJjGDQ1dMFtZblhZKopmGkJNO9MpHzfJV1tms/ KYcP2TOCSlTqinGilsTrzqtc/fyMPKdxm3c8vGUMGz6MMtl5STSsmkMqCLnSK8ZOGcZY /5W4v+6sekk0OOJtUqQvSwKNQ/Kv4TVjT25pFFTHKbgxJ6r2hhFz9051sb1i6QkwW3tt 3kyw== MIME-Version: 1.0 Received: by 10.112.103.194 with SMTP id fy2mr5793001lbb.64.1343681288746; Mon, 30 Jul 2012 13:48:08 -0700 (PDT) Sender: asmrookie@gmail.com Received: by 10.112.27.65 with HTTP; Mon, 30 Jul 2012 13:48:08 -0700 (PDT) In-Reply-To: <20120730145912.GZ2676@deviant.kiev.zoral.com.ua> References: <201207301350.q6UDobCI099069@svn.freebsd.org> <20120730143943.GY2676@deviant.kiev.zoral.com.ua> <20120730145912.GZ2676@deviant.kiev.zoral.com.ua> Date: Mon, 30 Jul 2012 21:48:08 +0100 X-Google-Sender-Auth: Gd3_xgmEJSDIek0VKr5_XOFcEYs Message-ID: From: Attilio Rao To: Konstantin Belousov Content-Type: text/plain; charset=UTF-8 Cc: Davide Italiano , svn-src-projects@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r238907 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: attilio@FreeBSD.org List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jul 2012 20:48:11 -0000 On Mon, Jul 30, 2012 at 3:59 PM, Konstantin Belousov wrote: > On Mon, Jul 30, 2012 at 03:51:22PM +0100, Attilio Rao wrote: >> On 7/30/12, Konstantin Belousov wrote: >> > On Mon, Jul 30, 2012 at 03:24:26PM +0100, Attilio Rao wrote: >> >> On 7/30/12, Davide Italiano wrote: >> >> > On Mon, Jul 30, 2012 at 4:02 PM, Attilio Rao >> >> > wrote: >> >> > Thanks for the comment, Attilio. >> >> > Yes, it's exactly what you thought. If direct flag is equal to one >> >> > you're sure you're processing a callout which runs directly from >> >> > hardware interrupt context. In this case, the running thread cannot >> >> > sleep and it's likely you have TDP_NOSLEEPING flags set, failing the >> >> > KASSERT() in THREAD_NO_SLEEPING() and leading to panic if kernel is >> >> > compiled with INVARIANTS. >> >> > In case you're running from SWI context (direct equals to zero) code >> >> > remains the same as before. >> >> > I think what I'm doing works due the assumption thread running never >> >> > sleeps. Do you suggest some other way to handle this? >> >> >> >> Possibly the quicker way to do this is to have a way to deal with the >> >> TDP_NOSLEEPING flag in recursed way, thus implement the same logic as >> >> VFS_LOCK_GIANT() does, for example. >> >> You will need to change the few callers of THREAD_NO_SLEEPING(), but >> >> the patch should be no longer than 10/15 lines. >> > >> > There are already curthread_pflags_set/restore KPI designed exactly to >> > handle >> > nested private thread flags. >> >> Yes, however I would use curthread_pflags* KPI within >> THREAD_NO_SLEEPING() as this name is much more explicit. >> > Sure, hiding it in THREAD_NO_SLEEPING (THREAD_NO_SLEEP_ENTER/LEAVE ?) > is the way to use curthread_pflags_set there. > > As a second though, on the other hand, is it safe to modify td_flags > from the interrupt context at all ? Probably yes if interrupt handler > always leave td_pflags in the same state on leave as it was on entry, > but couldn't too smart compiler cause inconsistent view of td_pflags > inside the handler ? Can you think of any? Because I cannot think of a case where a nested interrupt can messup with already compiled code, unless it leaks a cleanup. I was more worried about the compiler reordering operations before locking could really see it, but I think in this case the functions call to sleepqueue (at least) works as a sequence point so we are safe. > >> > Also, I wonder, should you assert somehow that direct dispatch cannot block >> > as well ? >> >> Yes, it would be optimal, but I don't think we have a flag for that >> right now, do we? > > I am not aware of such flag, this might be a good reason to introduce it, > if issue about td_pflags is just a product of my imagination. I think you should be good to go. Do you plan to work on such a patch? Thanks, Attilio -- Peace can only be achieved by understanding - A. Einstein From owner-svn-src-projects@FreeBSD.ORG Mon Jul 30 20:52:18 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 07574106564A; Mon, 30 Jul 2012 20:52:18 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: from mail-lb0-f182.google.com (mail-lb0-f182.google.com [209.85.217.182]) by mx1.freebsd.org (Postfix) with ESMTP id C95C58FC18; Mon, 30 Jul 2012 20:52:16 +0000 (UTC) Received: by lbon10 with SMTP id n10so4516964lbo.13 for ; Mon, 30 Jul 2012 13:52:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=LZFIVlKXGEPIQB/2xDJ9P53r/HLeW4b/HUpLVk9caSk=; b=iOM0KBcUo3SAqXe2Q4uA+0yXa1ClkmkDHgKu6oKxUaSKQC4m2J3QTAKJi9HqT9Dyc6 uekj/GE+OxiAdsu4uAMLrfUu4+rXmibGTkWtOoRSJy7Jc3RA5/5P3BgW4e1LsH1jD7fy 269oSdpXX4Wt4x0f+pZmtlbt4JuFx/vc4yv+X+djadUEUb7/0c4h3CMKmd4MyPQVJCrw DU83uEPHpwPP6yimHFPetWH1bZ7ShejHamXDv4gzWNgVTVsc2SbYH6vkLPovujudSxMS Byt6WAD6KnGHe8XrRi34GFfv6lqdWDTo+0Iozd3MT7c6KZ5SkRezlDt2nB9Zw7btWyGC Jqlg== MIME-Version: 1.0 Received: by 10.152.144.163 with SMTP id sn3mr5256844lab.37.1343681534715; Mon, 30 Jul 2012 13:52:14 -0700 (PDT) Sender: asmrookie@gmail.com Received: by 10.112.27.65 with HTTP; Mon, 30 Jul 2012 13:52:14 -0700 (PDT) In-Reply-To: <201207301149.43458.jhb@freebsd.org> References: <201207301350.q6UDobCI099069@svn.freebsd.org> <20120730143943.GY2676@deviant.kiev.zoral.com.ua> <201207301149.43458.jhb@freebsd.org> Date: Mon, 30 Jul 2012 21:52:14 +0100 X-Google-Sender-Auth: XlmMThVZYWj6zLrPNFfLaxj76gk Message-ID: From: Attilio Rao To: John Baldwin Content-Type: text/plain; charset=UTF-8 Cc: Konstantin Belousov , Davide Italiano , src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: Re: svn commit: r238907 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: attilio@FreeBSD.org List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jul 2012 20:52:18 -0000 On Mon, Jul 30, 2012 at 4:49 PM, John Baldwin wrote: > On Monday, July 30, 2012 10:39:43 am Konstantin Belousov wrote: >> On Mon, Jul 30, 2012 at 03:24:26PM +0100, Attilio Rao wrote: >> > On 7/30/12, Davide Italiano wrote: >> > > On Mon, Jul 30, 2012 at 4:02 PM, Attilio Rao > wrote: >> > > Thanks for the comment, Attilio. >> > > Yes, it's exactly what you thought. If direct flag is equal to one >> > > you're sure you're processing a callout which runs directly from >> > > hardware interrupt context. In this case, the running thread cannot >> > > sleep and it's likely you have TDP_NOSLEEPING flags set, failing the >> > > KASSERT() in THREAD_NO_SLEEPING() and leading to panic if kernel is >> > > compiled with INVARIANTS. >> > > In case you're running from SWI context (direct equals to zero) code >> > > remains the same as before. >> > > I think what I'm doing works due the assumption thread running never >> > > sleeps. Do you suggest some other way to handle this? >> > >> > Possibly the quicker way to do this is to have a way to deal with the >> > TDP_NOSLEEPING flag in recursed way, thus implement the same logic as >> > VFS_LOCK_GIANT() does, for example. >> > You will need to change the few callers of THREAD_NO_SLEEPING(), but >> > the patch should be no longer than 10/15 lines. >> >> There are already curthread_pflags_set/restore KPI designed exactly to > handle >> nested private thread flags. >> >> Also, I wonder, should you assert somehow that direct dispatch cannot block >> as well ? > > Hmm, I have a nested TDP_NOSLEEPING already (need it to fix an issue in > rmlocks). It uses a count though as the flag is set during rm_rlock() and > released during rm_runlock(). I don't think it could use a set/restore KPI as > there is no good place to store the state. Our stock rmlocks don't seem to use TDP_NOSLEEPING/THREAD_NO_SLEEPING so I'm not entirely sure about the case you were trying to fix, can you show the patch? Thanks, Attilio -- Peace can only be achieved by understanding - A. Einstein From owner-svn-src-projects@FreeBSD.ORG Mon Jul 30 20:58:38 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4E1F7106564A; Mon, 30 Jul 2012 20:58:38 +0000 (UTC) (envelope-from davide.italiano@gmail.com) Received: from mail-vb0-f54.google.com (mail-vb0-f54.google.com [209.85.212.54]) by mx1.freebsd.org (Postfix) with ESMTP id C58008FC12; Mon, 30 Jul 2012 20:58:37 +0000 (UTC) Received: by vbmv11 with SMTP id v11so6194531vbm.13 for ; Mon, 30 Jul 2012 13:58:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=kbEjvIP6i8ujieEP4F9kYKulD1wvytn4sEspV0oegSA=; b=FvpxmoUXJHDsPEgomvT/Nu+btz1F4T7APgGuEnll8YjFya4nOajLvfX40J1npvPiG7 ko22I7kZdBw88sfypMJIx1/nF2yMeup+rFnid+tkLyUq9Oc+hLIV18H+YgxRYCGSI7D1 J17LBZZ1kebocZ1GelrQ7cIB9ICGayMe6+duHvdMKOQ35b0p+EQ0Oi9B/IrXxghFQsOF qQ17jJPcUcZUPEdNheX5AYy85AplfVxgIHf+DllVSPE5BXBWX5HxrY/cYR6wbC7KZJ6A 32rAfszTwmABtFdXebeam05dVYkv9x/2o59N2pDIFXsLgRMeMXPdpOWtZICVsQD1aIK8 BEWQ== MIME-Version: 1.0 Received: by 10.52.71.79 with SMTP id s15mr10855020vdu.86.1343681917311; Mon, 30 Jul 2012 13:58:37 -0700 (PDT) Sender: davide.italiano@gmail.com Received: by 10.58.196.170 with HTTP; Mon, 30 Jul 2012 13:58:37 -0700 (PDT) In-Reply-To: References: <201207301350.q6UDobCI099069@svn.freebsd.org> <20120730143943.GY2676@deviant.kiev.zoral.com.ua> <20120730145912.GZ2676@deviant.kiev.zoral.com.ua> Date: Mon, 30 Jul 2012 22:58:37 +0200 X-Google-Sender-Auth: abZtTBscVUNNs8dlApuuEY2kGEI Message-ID: From: Davide Italiano To: attilio@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 Cc: Konstantin Belousov , svn-src-projects@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r238907 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jul 2012 20:58:38 -0000 On Mon, Jul 30, 2012 at 10:48 PM, Attilio Rao wrote: > On Mon, Jul 30, 2012 at 3:59 PM, Konstantin Belousov > wrote: >> On Mon, Jul 30, 2012 at 03:51:22PM +0100, Attilio Rao wrote: >>> On 7/30/12, Konstantin Belousov wrote: >>> > On Mon, Jul 30, 2012 at 03:24:26PM +0100, Attilio Rao wrote: >>> >> On 7/30/12, Davide Italiano wrote: >>> >> > On Mon, Jul 30, 2012 at 4:02 PM, Attilio Rao >>> >> > wrote: >>> >> > Thanks for the comment, Attilio. >>> >> > Yes, it's exactly what you thought. If direct flag is equal to one >>> >> > you're sure you're processing a callout which runs directly from >>> >> > hardware interrupt context. In this case, the running thread cannot >>> >> > sleep and it's likely you have TDP_NOSLEEPING flags set, failing the >>> >> > KASSERT() in THREAD_NO_SLEEPING() and leading to panic if kernel is >>> >> > compiled with INVARIANTS. >>> >> > In case you're running from SWI context (direct equals to zero) code >>> >> > remains the same as before. >>> >> > I think what I'm doing works due the assumption thread running never >>> >> > sleeps. Do you suggest some other way to handle this? >>> >> >>> >> Possibly the quicker way to do this is to have a way to deal with the >>> >> TDP_NOSLEEPING flag in recursed way, thus implement the same logic as >>> >> VFS_LOCK_GIANT() does, for example. >>> >> You will need to change the few callers of THREAD_NO_SLEEPING(), but >>> >> the patch should be no longer than 10/15 lines. >>> > >>> > There are already curthread_pflags_set/restore KPI designed exactly to >>> > handle >>> > nested private thread flags. >>> >>> Yes, however I would use curthread_pflags* KPI within >>> THREAD_NO_SLEEPING() as this name is much more explicit. >>> >> Sure, hiding it in THREAD_NO_SLEEPING (THREAD_NO_SLEEP_ENTER/LEAVE ?) >> is the way to use curthread_pflags_set there. >> >> As a second though, on the other hand, is it safe to modify td_flags >> from the interrupt context at all ? Probably yes if interrupt handler >> always leave td_pflags in the same state on leave as it was on entry, >> but couldn't too smart compiler cause inconsistent view of td_pflags >> inside the handler ? > > Can you think of any? Because I cannot think of a case where a nested > interrupt can messup with already compiled code, unless it leaks a > cleanup. > > I was more worried about the compiler reordering operations before > locking could really see it, but I think in this case the functions > call to sleepqueue (at least) works as a sequence point so we are > safe. > >> >>> > Also, I wonder, should you assert somehow that direct dispatch cannot block >>> > as well ? >>> >>> Yes, it would be optimal, but I don't think we have a flag for that >>> right now, do we? >> >> I am not aware of such flag, this might be a good reason to introduce it, >> if issue about td_pflags is just a product of my imagination. > > I think you should be good to go. Do you plan to work on such a patch? I may work on that as final part of my GSoC work considering I've an interest in this. Though, I could need some guidance and help in review. Can you provide these? > > Thanks, > Attilio > > > -- > Peace can only be achieved by understanding - A. Einstein Thanks, Davide From owner-svn-src-projects@FreeBSD.ORG Mon Jul 30 21:00:23 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 5DA9C1065673; Mon, 30 Jul 2012 21:00:22 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: from mail-lb0-f182.google.com (mail-lb0-f182.google.com [209.85.217.182]) by mx1.freebsd.org (Postfix) with ESMTP id C2F8F8FC16; Mon, 30 Jul 2012 21:00:21 +0000 (UTC) Received: by lbon10 with SMTP id n10so4521393lbo.13 for ; Mon, 30 Jul 2012 14:00:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=qBkxuc3+GxphM7mVHFHjVdLJkrUFhwgeqF364lMO4Ss=; b=FUwFXR6JgX/zYJwEO/1s+xCwJRfW1ZMVutK296cIBsfgitmzDQGTyOT/0mssDChJ6X zqxyGgzEIVR5XJcZweLYwz86W+BDhZ+VdSbWVNJjJiaRg/4nk2Mug1GwLTE6HvAE1Kly 4qgyBIQYRE10vhPIhSaLy+NyRA5g7kvZh4q8Rev8PWS1AUiGsW7UiOLg5oMKSgdkdeo6 /x4Lwu3DuisXnymZm3TGi7z0S5Qq/JVmfvZ72ATWFIjkGJpI+Uc555RGZ7QwtvstJzJj 6RfRIcz3wnAn/BIRBqhlcnlMoKfoQh4P1a6jqL6Zbv+OTA+K3rozGGMf/cuzR0gRLGz3 TRGA== MIME-Version: 1.0 Received: by 10.152.46.6 with SMTP id r6mr12801716lam.7.1343682020713; Mon, 30 Jul 2012 14:00:20 -0700 (PDT) Sender: asmrookie@gmail.com Received: by 10.112.27.65 with HTTP; Mon, 30 Jul 2012 14:00:20 -0700 (PDT) In-Reply-To: References: <201207301350.q6UDobCI099069@svn.freebsd.org> <20120730143943.GY2676@deviant.kiev.zoral.com.ua> <201207301149.43458.jhb@freebsd.org> Date: Mon, 30 Jul 2012 22:00:20 +0100 X-Google-Sender-Auth: NYae1i_z3Hob1ZtRSIVCx5zLkz4 Message-ID: From: Attilio Rao To: John Baldwin Content-Type: text/plain; charset=UTF-8 Cc: Konstantin Belousov , Davide Italiano , src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: Re: svn commit: r238907 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: attilio@FreeBSD.org List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jul 2012 21:00:23 -0000 On Mon, Jul 30, 2012 at 9:52 PM, Attilio Rao wrote: > On Mon, Jul 30, 2012 at 4:49 PM, John Baldwin wrote: >> On Monday, July 30, 2012 10:39:43 am Konstantin Belousov wrote: >>> On Mon, Jul 30, 2012 at 03:24:26PM +0100, Attilio Rao wrote: >>> > On 7/30/12, Davide Italiano wrote: >>> > > On Mon, Jul 30, 2012 at 4:02 PM, Attilio Rao >> wrote: >>> > > Thanks for the comment, Attilio. >>> > > Yes, it's exactly what you thought. If direct flag is equal to one >>> > > you're sure you're processing a callout which runs directly from >>> > > hardware interrupt context. In this case, the running thread cannot >>> > > sleep and it's likely you have TDP_NOSLEEPING flags set, failing the >>> > > KASSERT() in THREAD_NO_SLEEPING() and leading to panic if kernel is >>> > > compiled with INVARIANTS. >>> > > In case you're running from SWI context (direct equals to zero) code >>> > > remains the same as before. >>> > > I think what I'm doing works due the assumption thread running never >>> > > sleeps. Do you suggest some other way to handle this? >>> > >>> > Possibly the quicker way to do this is to have a way to deal with the >>> > TDP_NOSLEEPING flag in recursed way, thus implement the same logic as >>> > VFS_LOCK_GIANT() does, for example. >>> > You will need to change the few callers of THREAD_NO_SLEEPING(), but >>> > the patch should be no longer than 10/15 lines. >>> >>> There are already curthread_pflags_set/restore KPI designed exactly to >> handle >>> nested private thread flags. >>> >>> Also, I wonder, should you assert somehow that direct dispatch cannot block >>> as well ? >> >> Hmm, I have a nested TDP_NOSLEEPING already (need it to fix an issue in >> rmlocks). It uses a count though as the flag is set during rm_rlock() and >> released during rm_runlock(). I don't think it could use a set/restore KPI as >> there is no good place to store the state. > > Our stock rmlocks don't seem to use TDP_NOSLEEPING/THREAD_NO_SLEEPING > so I'm not entirely sure about the case you were trying to fix, can > you show the patch? I think I can see what you did. Did you add TDP_NOSLEEPING when acquiring the first rmlock and drop when the last was released. This is a nice property, in general exendible to all our blocking primitives, really. Right now some sort of similar check is enforced by WITNESS, but I can see a value in cases where you want to test a kernel with INVARIANTS but without WITNESS (it is not a matter of performance, it is just that sometimes you cannot reproduce some specific races with WITNESS on, while you can do it with WITNESS off, so it is funny to note how sometimes WITNESS should be just dropped for some locking issues). Attilio -- Peace can only be achieved by understanding - A. Einstein From owner-svn-src-projects@FreeBSD.ORG Mon Jul 30 21:03:17 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id AE4B5106568A; Mon, 30 Jul 2012 21:03:17 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: from mail-lb0-f182.google.com (mail-lb0-f182.google.com [209.85.217.182]) by mx1.freebsd.org (Postfix) with ESMTP id AC36F8FC1B; Mon, 30 Jul 2012 21:03:16 +0000 (UTC) Received: by lbon10 with SMTP id n10so4523089lbo.13 for ; Mon, 30 Jul 2012 14:03:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=eTH7QiAgSMMySyW6Zyn9M9l8rdzwGCFQtOyXMHpufJs=; b=cQglwOjTiytN7sRTDrtrvBg3pwvkW/6K90OU3LdQuL9BD0XWx6UFzc8rttiGNDwFQm fMltJJzHhFJ5Wf1b2Qw8WUxjCaYr9yFJm/hZg+IqsDqxKL+9/euEMw1/Dqhmq9ewqvAk W43qep3kya18fsQ4sV5o5B5N9HYQyKxJ0thiExZJ2lZ9fWAYdqQDhga0+aaD2nSF7kv9 htlPkM+TeLUEgu4KKNy8gtsCEXqrtEu5cuFFy4+VIBnUPajRHrEjUL1oFOo3X24N23pM 83N9SHRf9OroAseracCk82EDCK9Py60ZBEDT46GAbBiKlAffqecn+0++JK5cJbZiJWhu u3LQ== MIME-Version: 1.0 Received: by 10.112.23.196 with SMTP id o4mr5809298lbf.49.1343682195518; Mon, 30 Jul 2012 14:03:15 -0700 (PDT) Sender: asmrookie@gmail.com Received: by 10.112.27.65 with HTTP; Mon, 30 Jul 2012 14:03:15 -0700 (PDT) In-Reply-To: References: <201207301350.q6UDobCI099069@svn.freebsd.org> <20120730143943.GY2676@deviant.kiev.zoral.com.ua> <20120730145912.GZ2676@deviant.kiev.zoral.com.ua> Date: Mon, 30 Jul 2012 22:03:15 +0100 X-Google-Sender-Auth: FJxa0Hfn_Q5bomidA5tRLvqbh-4 Message-ID: From: Attilio Rao To: Davide Italiano Content-Type: text/plain; charset=UTF-8 Cc: Konstantin Belousov , svn-src-projects@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r238907 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: attilio@FreeBSD.org List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jul 2012 21:03:17 -0000 On Mon, Jul 30, 2012 at 9:58 PM, Davide Italiano wrote: > On Mon, Jul 30, 2012 at 10:48 PM, Attilio Rao wrote: >> On Mon, Jul 30, 2012 at 3:59 PM, Konstantin Belousov >> wrote: >>> On Mon, Jul 30, 2012 at 03:51:22PM +0100, Attilio Rao wrote: >>>> On 7/30/12, Konstantin Belousov wrote: >>>> > On Mon, Jul 30, 2012 at 03:24:26PM +0100, Attilio Rao wrote: >>>> >> On 7/30/12, Davide Italiano wrote: >>>> >> > On Mon, Jul 30, 2012 at 4:02 PM, Attilio Rao >>>> >> > wrote: >>>> >> > Thanks for the comment, Attilio. >>>> >> > Yes, it's exactly what you thought. If direct flag is equal to one >>>> >> > you're sure you're processing a callout which runs directly from >>>> >> > hardware interrupt context. In this case, the running thread cannot >>>> >> > sleep and it's likely you have TDP_NOSLEEPING flags set, failing the >>>> >> > KASSERT() in THREAD_NO_SLEEPING() and leading to panic if kernel is >>>> >> > compiled with INVARIANTS. >>>> >> > In case you're running from SWI context (direct equals to zero) code >>>> >> > remains the same as before. >>>> >> > I think what I'm doing works due the assumption thread running never >>>> >> > sleeps. Do you suggest some other way to handle this? >>>> >> >>>> >> Possibly the quicker way to do this is to have a way to deal with the >>>> >> TDP_NOSLEEPING flag in recursed way, thus implement the same logic as >>>> >> VFS_LOCK_GIANT() does, for example. >>>> >> You will need to change the few callers of THREAD_NO_SLEEPING(), but >>>> >> the patch should be no longer than 10/15 lines. >>>> > >>>> > There are already curthread_pflags_set/restore KPI designed exactly to >>>> > handle >>>> > nested private thread flags. >>>> >>>> Yes, however I would use curthread_pflags* KPI within >>>> THREAD_NO_SLEEPING() as this name is much more explicit. >>>> >>> Sure, hiding it in THREAD_NO_SLEEPING (THREAD_NO_SLEEP_ENTER/LEAVE ?) >>> is the way to use curthread_pflags_set there. >>> >>> As a second though, on the other hand, is it safe to modify td_flags >>> from the interrupt context at all ? Probably yes if interrupt handler >>> always leave td_pflags in the same state on leave as it was on entry, >>> but couldn't too smart compiler cause inconsistent view of td_pflags >>> inside the handler ? >> >> Can you think of any? Because I cannot think of a case where a nested >> interrupt can messup with already compiled code, unless it leaks a >> cleanup. >> >> I was more worried about the compiler reordering operations before >> locking could really see it, but I think in this case the functions >> call to sleepqueue (at least) works as a sequence point so we are >> safe. >> >>> >>>> > Also, I wonder, should you assert somehow that direct dispatch cannot block >>>> > as well ? >>>> >>>> Yes, it would be optimal, but I don't think we have a flag for that >>>> right now, do we? >>> >>> I am not aware of such flag, this might be a good reason to introduce it, >>> if issue about td_pflags is just a product of my imagination. >> >> I think you should be good to go. Do you plan to work on such a patch? > > I may work on that as final part of my GSoC work considering I've an > interest in this. > Though, I could need some guidance and help in review. Can you provide these? Yes, don't worry about it, in general these are type of checks that are not strictly related to your work, O_DIRECT dispatching just offered a good spot for discussing them. If they are still needed to go when you finish GSoC we can start hammering them down. Attilio -- Peace can only be achieved by understanding - A. Einstein From owner-svn-src-projects@FreeBSD.ORG Mon Jul 30 21:32:35 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 343A7106566B; Mon, 30 Jul 2012 21:32:35 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigknife-pt.tunnel.tserv9.chi1.ipv6.he.net [IPv6:2001:470:1f10:75::2]) by mx1.freebsd.org (Postfix) with ESMTP id BD1C68FC0C; Mon, 30 Jul 2012 21:32:34 +0000 (UTC) Received: from jhbbsd.localnet (unknown [209.249.190.124]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 2B279B944; Mon, 30 Jul 2012 17:32:34 -0400 (EDT) From: John Baldwin To: attilio@freebsd.org Date: Mon, 30 Jul 2012 17:32:33 -0400 User-Agent: KMail/1.13.5 (FreeBSD/8.2-CBSD-20110714-p17; KDE/4.5.5; amd64; ; ) References: <201207301350.q6UDobCI099069@svn.freebsd.org> In-Reply-To: MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <201207301732.33474.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Mon, 30 Jul 2012 17:32:34 -0400 (EDT) Cc: Konstantin Belousov , Davide Italiano , src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: Re: svn commit: r238907 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jul 2012 21:32:35 -0000 On Monday, July 30, 2012 5:00:20 pm Attilio Rao wrote: > On Mon, Jul 30, 2012 at 9:52 PM, Attilio Rao wrote: > > On Mon, Jul 30, 2012 at 4:49 PM, John Baldwin wrote: > >> On Monday, July 30, 2012 10:39:43 am Konstantin Belousov wrote: > >>> On Mon, Jul 30, 2012 at 03:24:26PM +0100, Attilio Rao wrote: > >>> > On 7/30/12, Davide Italiano wrote: > >>> > > On Mon, Jul 30, 2012 at 4:02 PM, Attilio Rao > >> wrote: > >>> > > Thanks for the comment, Attilio. > >>> > > Yes, it's exactly what you thought. If direct flag is equal to one > >>> > > you're sure you're processing a callout which runs directly from > >>> > > hardware interrupt context. In this case, the running thread cannot > >>> > > sleep and it's likely you have TDP_NOSLEEPING flags set, failing the > >>> > > KASSERT() in THREAD_NO_SLEEPING() and leading to panic if kernel is > >>> > > compiled with INVARIANTS. > >>> > > In case you're running from SWI context (direct equals to zero) code > >>> > > remains the same as before. > >>> > > I think what I'm doing works due the assumption thread running never > >>> > > sleeps. Do you suggest some other way to handle this? > >>> > > >>> > Possibly the quicker way to do this is to have a way to deal with the > >>> > TDP_NOSLEEPING flag in recursed way, thus implement the same logic as > >>> > VFS_LOCK_GIANT() does, for example. > >>> > You will need to change the few callers of THREAD_NO_SLEEPING(), but > >>> > the patch should be no longer than 10/15 lines. > >>> > >>> There are already curthread_pflags_set/restore KPI designed exactly to > >> handle > >>> nested private thread flags. > >>> > >>> Also, I wonder, should you assert somehow that direct dispatch cannot block > >>> as well ? > >> > >> Hmm, I have a nested TDP_NOSLEEPING already (need it to fix an issue in > >> rmlocks). It uses a count though as the flag is set during rm_rlock() and > >> released during rm_runlock(). I don't think it could use a set/restore KPI as > >> there is no good place to store the state. > > > > Our stock rmlocks don't seem to use TDP_NOSLEEPING/THREAD_NO_SLEEPING > > so I'm not entirely sure about the case you were trying to fix, can > > you show the patch? > > I think I can see what you did. Did you add TDP_NOSLEEPING when > acquiring the first rmlock and drop when the last was released. This > is a nice property, in general exendible to all our blocking > primitives, really. > > Right now some sort of similar check is enforced by WITNESS, but I can > see a value in cases where you want to test a kernel with INVARIANTS > but without WITNESS (it is not a matter of performance, it is just > that sometimes you cannot reproduce some specific races with WITNESS > on, while you can do it with WITNESS off, so it is funny to note how > sometimes WITNESS should be just dropped for some locking issues). No, it's to fix the constraint for RM_SLEEPABLE locks. The larger patch containing it is below. I still need to test it though. --- //depot/projects/smpng/sys/kern/kern_cpuset.c 2012-03-25 18:45:29.000000000 0000 +++ //depot/user/jhb/lock/kern/kern_cpuset.c 2012-06-18 21:20:58.000000000 0000 @@ -1147,25 +1147,34 @@ } #ifdef DDB +void +ddb_display_cpuset(const cpuset_t *set) +{ + int cpu, once; + + for (once = 0, cpu = 0; cpu < CPU_SETSIZE; cpu++) { + if (CPU_ISSET(cpu, set)) { + if (once == 0) { + db_printf("%d", cpu); + once = 1; + } else + db_printf(",%d", cpu); + } + } + if (once == 0) + db_printf(""); +} + DB_SHOW_COMMAND(cpusets, db_show_cpusets) { struct cpuset *set; - int cpu, once; LIST_FOREACH(set, &cpuset_ids, cs_link) { db_printf("set=%p id=%-6u ref=%-6d flags=0x%04x parent id=%d\n", set, set->cs_id, set->cs_ref, set->cs_flags, (set->cs_parent != NULL) ? set->cs_parent->cs_id : 0); db_printf(" mask="); - for (once = 0, cpu = 0; cpu < CPU_SETSIZE; cpu++) { - if (CPU_ISSET(cpu, &set->cs_mask)) { - if (once == 0) { - db_printf("%d", cpu); - once = 1; - } else - db_printf(",%d", cpu); - } - } + ddb_display_cpuset(&set->cs_mask); db_printf("\n"); if (db_pager_quit) break; --- //depot/projects/smpng/sys/kern/kern_lock.c 2012-06-04 18:27:32.000000000 0000 +++ //depot/user/jhb/lock/kern/kern_lock.c 2012-06-18 14:44:48.000000000 0000 @@ -394,12 +394,12 @@ iflags |= LO_QUIET; iflags |= flags & (LK_ADAPTIVE | LK_NOSHARE); + lock_init(&lk->lock_object, &lock_class_lockmgr, wmesg, NULL, iflags); lk->lk_lock = LK_UNLOCKED; lk->lk_recurse = 0; lk->lk_exslpfail = 0; lk->lk_timo = timo; lk->lk_pri = pri; - lock_init(&lk->lock_object, &lock_class_lockmgr, wmesg, NULL, iflags); STACK_ZERO(lk); } --- //depot/projects/smpng/sys/kern/kern_mutex.c 2012-06-04 18:27:32.000000000 0000 +++ //depot/user/jhb/lock/kern/kern_mutex.c 2012-06-18 14:44:48.000000000 0000 @@ -849,10 +849,10 @@ flags |= LO_NOPROFILE; /* Initialize mutex. */ + lock_init(&m->lock_object, class, name, type, flags); + m->mtx_lock = MTX_UNOWNED; m->mtx_recurse = 0; - - lock_init(&m->lock_object, class, name, type, flags); } /* --- //depot/projects/smpng/sys/kern/kern_rmlock.c 2012-03-25 18:45:29.000000000 0000 +++ //depot/user/jhb/lock/kern/kern_rmlock.c 2012-06-18 21:20:58.000000000 0000 @@ -70,6 +70,9 @@ } static void assert_rm(const struct lock_object *lock, int what); +#ifdef DDB +static void db_show_rm(const struct lock_object *lock); +#endif static void lock_rm(struct lock_object *lock, int how); #ifdef KDTRACE_HOOKS static int owner_rm(const struct lock_object *lock, struct thread **owner); @@ -80,11 +83,23 @@ .lc_name = "rm", .lc_flags = LC_SLEEPLOCK | LC_RECURSABLE, .lc_assert = assert_rm, -#if 0 #ifdef DDB - .lc_ddb_show = db_show_rwlock, + .lc_ddb_show = db_show_rm, #endif + .lc_lock = lock_rm, + .lc_unlock = unlock_rm, +#ifdef KDTRACE_HOOKS + .lc_owner = owner_rm, #endif +}; + +struct lock_class lock_class_rm_sleepable = { + .lc_name = "sleepable rm", + .lc_flags = LC_SLEEPABLE | LC_RECURSABLE, + .lc_assert = assert_rm, +#ifdef DDB + .lc_ddb_show = db_show_rm, +#endif .lc_lock = lock_rm, .lc_unlock = unlock_rm, #ifdef KDTRACE_HOOKS @@ -117,8 +132,12 @@ static int owner_rm(const struct lock_object *lock, struct thread **owner) { + const struct rmlock *rm; + struct lock_class *lc; - panic("owner_rm called"); + rm = (const struct rmlock *)lock; + lc = LOCK_CLASS(&rm->rm_wlock_object); + return (lc->lc_owner(&rm->rm_wlock_object, owner)); } #endif @@ -186,11 +205,10 @@ } } -CTASSERT((RM_SLEEPABLE & LO_CLASSFLAGS) == RM_SLEEPABLE); - void rm_init_flags(struct rmlock *rm, const char *name, int opts) { + struct lock_class *lc; int liflags; liflags = 0; @@ -201,11 +219,14 @@ rm->rm_writecpus = all_cpus; LIST_INIT(&rm->rm_activeReaders); if (opts & RM_SLEEPABLE) { - liflags |= RM_SLEEPABLE; - sx_init_flags(&rm->rm_lock_sx, "rmlock_sx", SX_RECURSE); - } else + liflags |= LO_SLEEPABLE; + lc = &lock_class_rm_sleepable; + sx_init_flags(&rm->rm_lock_sx, "rmlock_sx", SX_NOWITNESS); + } else { + lc = &lock_class_rm; mtx_init(&rm->rm_lock_mtx, name, "rmlock_mtx", MTX_NOWITNESS); - lock_init(&rm->lock_object, &lock_class_rm, name, NULL, liflags); + } + lock_init(&rm->lock_object, lc, name, NULL, liflags); } void @@ -219,7 +240,7 @@ rm_destroy(struct rmlock *rm) { - if (rm->lock_object.lo_flags & RM_SLEEPABLE) + if (rm->lock_object.lo_flags & LO_SLEEPABLE) sx_destroy(&rm->rm_lock_sx); else mtx_destroy(&rm->rm_lock_mtx); @@ -230,7 +251,7 @@ rm_wowned(const struct rmlock *rm) { - if (rm->lock_object.lo_flags & RM_SLEEPABLE) + if (rm->lock_object.lo_flags & LO_SLEEPABLE) return (sx_xlocked(&rm->rm_lock_sx)); else return (mtx_owned(&rm->rm_lock_mtx)); @@ -309,7 +330,7 @@ critical_exit(); if (trylock) { - if (rm->lock_object.lo_flags & RM_SLEEPABLE) { + if (rm->lock_object.lo_flags & LO_SLEEPABLE) { if (!sx_try_xlock(&rm->rm_lock_sx)) return (0); } else { @@ -317,7 +338,7 @@ return (0); } } else { - if (rm->lock_object.lo_flags & RM_SLEEPABLE) + if (rm->lock_object.lo_flags & LO_SLEEPABLE) sx_xlock(&rm->rm_lock_sx); else mtx_lock(&rm->rm_lock_mtx); @@ -330,7 +351,7 @@ sched_pin(); critical_exit(); - if (rm->lock_object.lo_flags & RM_SLEEPABLE) + if (rm->lock_object.lo_flags & LO_SLEEPABLE) sx_xunlock(&rm->rm_lock_sx); else mtx_unlock(&rm->rm_lock_mtx); @@ -351,6 +372,9 @@ tracker->rmp_thread = td; tracker->rmp_rmlock = rm; + if (rm->lock_object.lo_flags & LO_SLEEPABLE) + THREAD_NO_SLEEPING(); + td->td_critnest++; /* critical_enter(); */ compiler_memory_barrier(); @@ -425,6 +449,9 @@ td->td_critnest--; sched_unpin(); + if (rm->lock_object.lo_flags & LO_SLEEPABLE) + THREAD_SLEEPING_OK(); + if (0 == (td->td_owepreempt | tracker->rmp_flags)) return; @@ -441,7 +468,7 @@ if (SCHEDULER_STOPPED()) return; - if (rm->lock_object.lo_flags & RM_SLEEPABLE) + if (rm->lock_object.lo_flags & LO_SLEEPABLE) sx_xlock(&rm->rm_lock_sx); else mtx_lock(&rm->rm_lock_mtx); @@ -484,7 +511,7 @@ _rm_wunlock(struct rmlock *rm) { - if (rm->lock_object.lo_flags & RM_SLEEPABLE) + if (rm->lock_object.lo_flags & LO_SLEEPABLE) sx_xunlock(&rm->rm_lock_sx); else mtx_unlock(&rm->rm_lock_mtx); @@ -498,6 +525,9 @@ if (SCHEDULER_STOPPED()) return; + KASSERT(!rm_wowned(rm), ("Recursing writer on rmlock %p at %s:%d", rm, + file, line)); + WITNESS_CHECKORDER(&rm->lock_object, LOP_NEWORDER | LOP_EXCLUSIVE, file, line, NULL); @@ -505,11 +535,7 @@ LOCK_LOG_LOCK("RMWLOCK", &rm->lock_object, 0, 0, file, line); - if (rm->lock_object.lo_flags & RM_SLEEPABLE) - WITNESS_LOCK(&rm->rm_lock_sx.lock_object, LOP_EXCLUSIVE, - file, line); - else - WITNESS_LOCK(&rm->lock_object, LOP_EXCLUSIVE, file, line); + WITNESS_LOCK(&rm->lock_object, LOP_EXCLUSIVE, file, line); curthread->td_locks++; @@ -523,11 +549,7 @@ return; curthread->td_locks--; - if (rm->lock_object.lo_flags & RM_SLEEPABLE) - WITNESS_UNLOCK(&rm->rm_lock_sx.lock_object, LOP_EXCLUSIVE, - file, line); - else - WITNESS_UNLOCK(&rm->lock_object, LOP_EXCLUSIVE, file, line); + WITNESS_UNLOCK(&rm->lock_object, LOP_EXCLUSIVE, file, line); LOCK_LOG_LOCK("RMWUNLOCK", &rm->lock_object, 0, 0, file, line); _rm_wunlock(rm); } @@ -540,20 +562,21 @@ if (SCHEDULER_STOPPED()) return (1); - if (!trylock && (rm->lock_object.lo_flags & RM_SLEEPABLE)) - WITNESS_CHECKORDER(&rm->rm_lock_sx.lock_object, LOP_NEWORDER, - file, line, NULL); - WITNESS_CHECKORDER(&rm->lock_object, LOP_NEWORDER, file, line, NULL); + if (!trylock) + WITNESS_CHECKORDER(&rm->lock_object, LOP_NEWORDER, file, line, NULL); if (_rm_rlock(rm, tracker, trylock)) { - LOCK_LOG_LOCK("RMRLOCK", &rm->lock_object, 0, 0, file, line); - + if (trylock) + LOCK_LOG_TRY("RMRLOCK", &rm->lock_object, 0, 1, file, line); + else + LOCK_LOG_LOCK("RMRLOCK", &rm->lock_object, 0, 0, file, line); WITNESS_LOCK(&rm->lock_object, 0, file, line); curthread->td_locks++; return (1); - } + } else if (trylock) + LOCK_LOG_TRY("RMRLOCK", &rm->lock_object, 0, 0, file, line); return (0); } @@ -609,3 +632,35 @@ } #endif + +#ifdef DDB +static void +db_show_rm(const struct lock_object *lock) +{ + struct rm_priotracker *tr; + struct thread *td; + const struct rmlock *rm; + struct lock_class *lc; + + rm = (const struct rmlock *)lock; + db_printf("writecpus: "); + ddb_display_cpuset(__DEQUALIFY(const cpuset_t *, &rm->rm_writecpus)); + db_printf("\n"); + db_printf("trackers:\n"); + LIST_FOREACH(tr, &rm->rm_activeReaders, rmp_qentry) { + td = tr->rmp_thread; + db_printf(" thread %p (tid %d, pid %d, \"%s\") {", td, + td->td_tid, td->td_proc->p_pid, td->td_name); + if (tr->rmp_flags & RMPF_ONQUEUE) { + db_printf("ONQUEUE"); + if (tr->rmp_flags & RMPF_SIGNAL) + db_printf(",SIGNAL"); + } else + db_printf("0"); + db_printf("}\n"); + } + db_printf("Backing write-lock:\n"); + lc = LOCK_CLASS(&rm->rm_wlock_object); + lc->lc_ddb_show(&rm->rm_wlock_object); +} +#endif --- //depot/projects/smpng/sys/kern/kern_rwlock.c 2012-06-04 18:27:32.000000000 0000 +++ //depot/user/jhb/lock/kern/kern_rwlock.c 2012-06-18 14:44:48.000000000 0000 @@ -197,9 +197,9 @@ if (opts & RW_QUIET) flags |= LO_QUIET; + lock_init(&rw->lock_object, &lock_class_rw, name, NULL, flags); rw->rw_lock = RW_UNLOCKED; rw->rw_recurse = 0; - lock_init(&rw->lock_object, &lock_class_rw, name, NULL, flags); } void --- //depot/projects/smpng/sys/kern/kern_sx.c 2012-06-04 18:27:32.000000000 0000 +++ //depot/user/jhb/lock/kern/kern_sx.c 2012-06-18 14:44:48.000000000 0000 @@ -227,9 +227,9 @@ flags |= LO_QUIET; flags |= opts & SX_NOADAPTIVE; + lock_init(&sx->lock_object, &lock_class_sx, description, NULL, flags); sx->sx_lock = SX_LOCK_UNLOCKED; sx->sx_recurse = 0; - lock_init(&sx->lock_object, &lock_class_sx, description, NULL, flags); } void --- //depot/projects/smpng/sys/kern/sched_4bsd.c 2012-06-04 18:27:32.000000000 0000 +++ //depot/user/jhb/lock/kern/sched_4bsd.c 2012-06-05 00:27:57.000000000 0000 @@ -1576,6 +1576,7 @@ { struct pcpuidlestat *stat; + THREAD_NO_SLEEPING(); stat = DPCPU_PTR(idlestat); for (;;) { mtx_assert(&Giant, MA_NOTOWNED); --- //depot/projects/smpng/sys/kern/sched_ule.c 2012-06-04 18:27:32.000000000 0000 +++ //depot/user/jhb/lock/kern/sched_ule.c 2012-06-05 00:27:57.000000000 0000 @@ -2590,6 +2590,7 @@ mtx_assert(&Giant, MA_NOTOWNED); td = curthread; tdq = TDQ_SELF(); + THREAD_NO_SLEEPING(); for (;;) { #ifdef SMP if (tdq_idled(tdq) == 0) --- //depot/projects/smpng/sys/kern/subr_lock.c 2012-03-25 18:45:29.000000000 0000 +++ //depot/user/jhb/lock/kern/subr_lock.c 2012-06-05 01:54:51.000000000 0000 @@ -66,6 +66,7 @@ &lock_class_mtx_sleep, &lock_class_sx, &lock_class_rm, + &lock_class_rm_sleepable, &lock_class_rw, &lock_class_lockmgr, }; --- //depot/projects/smpng/sys/kern/subr_sleepqueue.c 2012-06-04 18:27:32.000000000 0000 +++ //depot/user/jhb/lock/kern/subr_sleepqueue.c 2012-06-05 14:46:23.000000000 0000 @@ -296,7 +296,7 @@ MPASS((queue >= 0) && (queue < NR_SLEEPQS)); /* If this thread is not allowed to sleep, die a horrible death. */ - KASSERT(!(td->td_pflags & TDP_NOSLEEPING), + KASSERT(td->td_no_sleeping == 0, ("Trying sleep, but thread marked as sleeping prohibited")); /* Look up the sleep queue associated with the wait channel 'wchan'. */ --- //depot/projects/smpng/sys/kern/subr_syscall.c 2012-06-04 18:27:32.000000000 0000 +++ //depot/user/jhb/lock/kern/subr_syscall.c 2012-06-05 14:46:23.000000000 0000 @@ -185,9 +185,12 @@ KASSERT((td->td_pflags & TDP_NOFAULTING) == 0, ("System call %s returning with pagefaults disabled", syscallname(p, sa->code))); - KASSERT((td->td_pflags & TDP_NOSLEEPING) == 0, + KASSERT(td->td_no_sleeping == 0, ("System call %s returning with sleep disabled", syscallname(p, sa->code))); + KASSERT(td->td_pinned == 0, + ("System call %s returning with pinned thread", + syscallname(p, sa->code))); /* * Handle reschedule and other end-of-syscall issues --- //depot/projects/smpng/sys/kern/subr_turnstile.c 2012-06-04 18:27:32.000000000 0000 +++ //depot/user/jhb/lock/kern/subr_turnstile.c 2012-06-05 00:27:57.000000000 0000 @@ -684,6 +684,7 @@ if (owner) MPASS(owner->td_proc->p_magic == P_MAGIC); MPASS(queue == TS_SHARED_QUEUE || queue == TS_EXCLUSIVE_QUEUE); + KASSERT(!TD_IS_IDLETHREAD(td), ("idle threads cannot block on locks")); /* * If the lock does not already have a turnstile, use this thread's --- //depot/projects/smpng/sys/sys/_rmlock.h 2011-06-20 00:58:40.000000000 0000 +++ //depot/user/jhb/lock/sys/_rmlock.h 2012-06-05 01:54:51.000000000 0000 @@ -44,14 +44,17 @@ LIST_HEAD(rmpriolist,rm_priotracker); struct rmlock { - struct lock_object lock_object; + struct lock_object lock_object; volatile cpuset_t rm_writecpus; LIST_HEAD(,rm_priotracker) rm_activeReaders; union { + struct lock_object _rm_wlock_object; struct mtx _rm_lock_mtx; struct sx _rm_lock_sx; } _rm_lock; }; + +#define rm_wlock_object _rm_lock._rm_wlock_object #define rm_lock_mtx _rm_lock._rm_lock_mtx #define rm_lock_sx _rm_lock._rm_lock_sx --- //depot/projects/smpng/sys/sys/cpuset.h 2012-03-25 18:45:29.000000000 0000 +++ //depot/user/jhb/lock/sys/cpuset.h 2012-06-18 21:20:58.000000000 0000 @@ -216,6 +216,9 @@ int cpusetobj_ffs(const cpuset_t *); char *cpusetobj_strprint(char *, const cpuset_t *); int cpusetobj_strscan(cpuset_t *, const char *); +#ifdef DDB +void ddb_display_cpuset(const cpuset_t *); +#endif #else __BEGIN_DECLS --- //depot/projects/smpng/sys/sys/lock.h 2011-11-23 17:25:04.000000000 0000 +++ //depot/user/jhb/lock/sys/lock.h 2012-06-05 01:54:51.000000000 0000 @@ -192,6 +192,7 @@ extern struct lock_class lock_class_sx; extern struct lock_class lock_class_rw; extern struct lock_class lock_class_rm; +extern struct lock_class lock_class_rm_sleepable; extern struct lock_class lock_class_lockmgr; extern struct lock_class *lock_classes[]; --- //depot/projects/smpng/sys/sys/proc.h 2012-07-06 15:23:03.000000000 0000 +++ //depot/user/jhb/lock/sys/proc.h 2012-07-09 12:15:48.000000000 0000 @@ -272,6 +273,9 @@ struct osd td_osd; /* (k) Object specific data. */ struct vm_map_entry *td_map_def_user; /* (k) Deferred entries. */ pid_t td_dbg_forked; /* (c) Child pid for debugger. */ + int td_no_sleeping; /* (k) Sleeping disabled count. */ #define td_endzero td_sigmask /* Copied during fork1() or create_thread(). */ @@ -403,7 +407,7 @@ #define TDP_ALTSTACK 0x00000020 /* Have alternate signal stack. */ #define TDP_DEADLKTREAT 0x00000040 /* Lock aquisition - deadlock treatment. */ #define TDP_NOFAULTING 0x00000080 /* Do not handle page faults. */ -#define TDP_NOSLEEPING 0x00000100 /* Thread is not allowed to sleep on a sq. */ +#define TDP_UNUSED9 0x00000100 /* --available-- */ #define TDP_OWEUPC 0x00000200 /* Call addupc() at next AST. */ #define TDP_ITHREAD 0x00000400 /* Thread is an interrupt thread. */ #define TDP_SYNCIO 0x00000800 /* Local override, disable async i/o. */ @@ -786,17 +790,9 @@ #define thread_safetoswapout(td) ((td)->td_flags & TDF_CANSWAP) /* Control whether or not it is safe for curthread to sleep. */ -#define THREAD_NO_SLEEPING() do { \ - KASSERT(!(curthread->td_pflags & TDP_NOSLEEPING), \ - ("nested no sleeping")); \ - curthread->td_pflags |= TDP_NOSLEEPING; \ -} while (0) +#define THREAD_NO_SLEEPING() ((curthread)->td_no_sleeping++) -#define THREAD_SLEEPING_OK() do { \ - KASSERT((curthread->td_pflags & TDP_NOSLEEPING), \ - ("nested sleeping ok")); \ - curthread->td_pflags &= ~TDP_NOSLEEPING; \ -} while (0) +#define THREAD_SLEEPING_OK() ((curthread)->td_no_sleeping--) #define PIDHASH(pid) (&pidhashtbl[(pid) & pidhash]) extern LIST_HEAD(pidhashhead, proc) *pidhashtbl; --- //depot/projects/smpng/sys/sys/rmlock.h 2011-11-23 17:25:04.000000000 0000 +++ //depot/user/jhb/lock/sys/rmlock.h 2012-06-05 01:54:51.000000000 0000 @@ -40,7 +40,7 @@ #ifdef _KERNEL /* - * Flags passed to rm_init(9). + * Flags passed to rm_init_flags(9). */ #define RM_NOWITNESS 0x00000001 #define RM_RECURSE 0x00000002 -- John Baldwin From owner-svn-src-projects@FreeBSD.ORG Tue Jul 31 00:46:20 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6020C106566C; Tue, 31 Jul 2012 00:46:20 +0000 (UTC) (envelope-from davide@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 40C028FC14; Tue, 31 Jul 2012 00:46:20 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q6V0kKDq066111; Tue, 31 Jul 2012 00:46:20 GMT (envelope-from davide@svn.freebsd.org) Received: (from davide@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q6V0kKqL066109; Tue, 31 Jul 2012 00:46:20 GMT (envelope-from davide@svn.freebsd.org) Message-Id: <201207310046.q6V0kKqL066109@svn.freebsd.org> From: Davide Italiano Date: Tue, 31 Jul 2012 00:46:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r238927 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Jul 2012 00:46:20 -0000 Author: davide Date: Tue Jul 31 00:46:19 2012 New Revision: 238927 URL: http://svn.freebsd.org/changeset/base/238927 Log: - Fix statistics for direct execution callouts as already anticipated in the previous commit, providing a set of new SYSCTLs. Differently from what happened with callout executing in SWI threads, here we don't provide stats for callouts running with Giant Lock held, as this is a sleeping mutex, and so we cannot held it when we're running from hw interrupt context. - Properly increment the variable 'depth' in softclock(), which otherwhise would be unused. Reviewed by: mav Modified: projects/calloutng/sys/kern/kern_timeout.c Modified: projects/calloutng/sys/kern/kern_timeout.c ============================================================================== --- projects/calloutng/sys/kern/kern_timeout.c Mon Jul 30 23:14:24 2012 (r238926) +++ projects/calloutng/sys/kern/kern_timeout.c Tue Jul 31 00:46:19 2012 (r238927) @@ -70,7 +70,7 @@ SDT_PROBE_DEFINE(callout_execute, kernel SDT_PROBE_ARGTYPE(callout_execute, kernel, , callout_end, 0, "struct callout *"); -#ifdef CALLOUT_PROFILING +#ifdef CALLOUT_PROFILING static int avg_depth; SYSCTL_INT(_debug, OID_AUTO, to_avg_depth, CTLFLAG_RD, &avg_depth, 0, "Average number of items examined per softclock call. Units = 1/1000"); @@ -83,6 +83,18 @@ SYSCTL_INT(_debug, OID_AUTO, to_avg_lock static int avg_mpcalls; SYSCTL_INT(_debug, OID_AUTO, to_avg_mpcalls, CTLFLAG_RD, &avg_mpcalls, 0, "Average number of MP callouts made per softclock call. Units = 1/1000"); +static int avg_depth_dir; +SYSCTL_INT(_debug, OID_AUTO, to_avg_depth_dir, CTLFLAG_RD, &avg_depth_dir, 0, + "Average number of direct callouts examined per callout_process call. " + "Units = 1/1000"); +static int avg_lockcalls_dir; +SYSCTL_INT(_debug, OID_AUTO, to_avg_lockcalls_dir, CTLFLAG_RD, + &avg_lockcalls_dir, 0, "Average number of lock direct callouts made per " + "callout_process call. Units = 1/1000"); +static int avg_mpcalls_dir; +SYSCTL_INT(_debug, OID_AUTO, to_avg_mpcalls_dir, CTLFLAG_RD, &avg_mpcalls_dir, + 0, "Average number of MP direct callouts made per callout_process call. " + "Units = 1/1000"); #endif /* * TODO: @@ -380,7 +392,7 @@ callout_process(struct bintime *now) struct callout *tmp; struct callout_cpu *cc; struct callout_tailq *sc; - int cpu, first, future, gcalls, mpcalls, last, lockcalls, + int cpu, depth_dir, first, future, mpcalls_dir, last, lockcalls_dir, need_softclock; /* @@ -388,6 +400,9 @@ callout_process(struct bintime *now) * relatively high clock interrupt priority any longer than necessary. */ need_softclock = 0; + depth_dir = 0; + mpcalls_dir = 0; + lockcalls_dir = 0; cc = CC_SELF(); mtx_lock_spin_flags(&cc->cc_lock, MTX_QUIET); cpu = curcpu; @@ -412,9 +427,11 @@ callout_process(struct bintime *now) * directly from hardware interrupt context. */ if (tmp->c_flags & CALLOUT_DIRECT) { + ++depth_dir; TAILQ_REMOVE(sc, tmp, c_links.tqe); tmp = softclock_call_cc(tmp, cc, - &mpcalls, &lockcalls, &gcalls, 1); + &mpcalls_dir, &lockcalls_dir, + NULL, 1); } else { TAILQ_INSERT_TAIL(&cc->cc_expireq, tmp, c_staiter); @@ -491,6 +508,11 @@ callout_process(struct bintime *now) if (callout_new_inserted != NULL) (*callout_new_inserted)(cpu, next); cc->cc_lastscan = *now; +#ifdef CALLOUT_PROFILING + avg_depth_dir += (depth_dir * 1000 - avg_depth_dir) >> 8; + avg_mpcalls_dir += (mpcalls_dir * 1000 - avg_mpcalls_dir) >> 8; + avg_lockcalls_dir += (lockcalls_dir * 1000 - avg_lockcalls_dir) >> 8; +#endif mtx_unlock_spin_flags(&cc->cc_lock, MTX_QUIET); /* * swi_sched acquires the thread lock, so we don't want to call it @@ -659,7 +681,12 @@ softclock_call_cc(struct callout *c, str } /* The callout cannot be stopped now. */ cc->cc_exec_entity[direct].cc_cancel = 1; - if (c_lock == &Giant.lock_object) { + /* + * In case we're processing a direct callout we + * can't hold giant because holding a sleep mutex + * from hardware interrupt context is not allowed. + */ + if ((c_lock == &Giant.lock_object) && gcalls != NULL) { (*gcalls)++; CTR3(KTR_CALLOUT, "callout %p func %p arg %p", c, c_func, c_arg); @@ -798,6 +825,7 @@ softclock(void *arg) struct callout_cpu *cc; struct callout *c; int steps; /* #steps since we last allowed interrupts */ + int depth; int mpcalls; int lockcalls; int gcalls; @@ -806,6 +834,7 @@ softclock(void *arg) #define MAX_SOFTCLOCK_STEPS 100 /* Maximum allowed value of steps. */ #endif /* MAX_SOFTCLOCK_STEPS */ + depth = 0; mpcalls = 0; lockcalls = 0; gcalls = 0; @@ -815,6 +844,7 @@ softclock(void *arg) c = TAILQ_FIRST(&cc->cc_expireq); while (c != NULL) { + ++depth; ++steps; if (steps >= MAX_SOFTCLOCK_STEPS) { cc->cc_exec_next = c; From owner-svn-src-projects@FreeBSD.ORG Tue Jul 31 09:37:44 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B2FCA106566C; Tue, 31 Jul 2012 09:37:44 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from mail.zoral.com.ua (mx0.zoral.com.ua [91.193.166.200]) by mx1.freebsd.org (Postfix) with ESMTP id 4C1B58FC14; Tue, 31 Jul 2012 09:37:43 +0000 (UTC) Received: from skuns.kiev.zoral.com.ua (localhost [127.0.0.1]) by mail.zoral.com.ua (8.14.2/8.14.2) with ESMTP id q6V9bmCn010719; Tue, 31 Jul 2012 12:37:48 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (kostik@localhost [127.0.0.1]) by deviant.kiev.zoral.com.ua (8.14.5/8.14.5) with ESMTP id q6V9bZ8q087223; Tue, 31 Jul 2012 12:37:35 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.14.5/8.14.5/Submit) id q6V9bZ1m087222; Tue, 31 Jul 2012 12:37:35 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to kostikbel@gmail.com using -f Date: Tue, 31 Jul 2012 12:37:35 +0300 From: Konstantin Belousov To: Attilio Rao Message-ID: <20120731093735.GB2676@deviant.kiev.zoral.com.ua> References: <201207301350.q6UDobCI099069@svn.freebsd.org> <20120730143943.GY2676@deviant.kiev.zoral.com.ua> <20120730145912.GZ2676@deviant.kiev.zoral.com.ua> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="K2wHSdELFynQv3TW" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.3i X-Virus-Scanned: clamav-milter 0.95.2 at skuns.kiev.zoral.com.ua X-Virus-Status: Clean X-Spam-Status: No, score=-4.0 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on skuns.kiev.zoral.com.ua Cc: Davide Italiano , svn-src-projects@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r238907 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Jul 2012 09:37:44 -0000 --K2wHSdELFynQv3TW Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Jul 30, 2012 at 09:48:08PM +0100, Attilio Rao wrote: > On Mon, Jul 30, 2012 at 3:59 PM, Konstantin Belousov > wrote: > > On Mon, Jul 30, 2012 at 03:51:22PM +0100, Attilio Rao wrote: > >> On 7/30/12, Konstantin Belousov wrote: > >> > On Mon, Jul 30, 2012 at 03:24:26PM +0100, Attilio Rao wrote: > >> >> On 7/30/12, Davide Italiano wrote: > >> >> > On Mon, Jul 30, 2012 at 4:02 PM, Attilio Rao > >> >> > wrote: > >> >> > Thanks for the comment, Attilio. > >> >> > Yes, it's exactly what you thought. If direct flag is equal to one > >> >> > you're sure you're processing a callout which runs directly from > >> >> > hardware interrupt context. In this case, the running thread cann= ot > >> >> > sleep and it's likely you have TDP_NOSLEEPING flags set, failing = the > >> >> > KASSERT() in THREAD_NO_SLEEPING() and leading to panic if kernel = is > >> >> > compiled with INVARIANTS. > >> >> > In case you're running from SWI context (direct equals to zero) c= ode > >> >> > remains the same as before. > >> >> > I think what I'm doing works due the assumption thread running ne= ver > >> >> > sleeps. Do you suggest some other way to handle this? > >> >> > >> >> Possibly the quicker way to do this is to have a way to deal with t= he > >> >> TDP_NOSLEEPING flag in recursed way, thus implement the same logic = as > >> >> VFS_LOCK_GIANT() does, for example. > >> >> You will need to change the few callers of THREAD_NO_SLEEPING(), but > >> >> the patch should be no longer than 10/15 lines. > >> > > >> > There are already curthread_pflags_set/restore KPI designed exactly = to > >> > handle > >> > nested private thread flags. > >> > >> Yes, however I would use curthread_pflags* KPI within > >> THREAD_NO_SLEEPING() as this name is much more explicit. > >> > > Sure, hiding it in THREAD_NO_SLEEPING (THREAD_NO_SLEEP_ENTER/LEAVE ?) > > is the way to use curthread_pflags_set there. > > > > As a second though, on the other hand, is it safe to modify td_flags > > from the interrupt context at all ? Probably yes if interrupt handler > > always leave td_pflags in the same state on leave as it was on entry, > > but couldn't too smart compiler cause inconsistent view of td_pflags > > inside the handler ? >=20 > Can you think of any? Because I cannot think of a case where a nested > interrupt can messup with already compiled code, unless it leaks a > cleanup. In principle, compiler might compile the x |=3D a; into whatever it finds suitable, e.g. it could write 0 temporary into x if the corresponding instruction sequence is considered faster. No sane compiler for x86 does this. >=20 > I was more worried about the compiler reordering operations before > locking could really see it, but I think in this case the functions > call to sleepqueue (at least) works as a sequence point so we are > safe. >=20 > > > >> > Also, I wonder, should you assert somehow that direct dispatch canno= t block > >> > as well ? > >> > >> Yes, it would be optimal, but I don't think we have a flag for that > >> right now, do we? > > > > I am not aware of such flag, this might be a good reason to introduce i= t, > > if issue about td_pflags is just a product of my imagination. >=20 > I think you should be good to go. Do you plan to work on such a patch? Ok, I looked closely at the direct dispatch and TD_NOBLOCKING. I now think that such flag is not needed. Am I right that direct dispatch executes callback while owning cc_lock spinlock ? If true, then TD_NOBLOCKING is definitely not needed for direct dispatch. For thread to be blocked, it shall be scheduled off the CPU, going through mi_switch(). And mi_switch() asserts that critical section level is exactly 1, which assertion fails due to direct dispatch context owning spinlock. --K2wHSdELFynQv3TW Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (FreeBSD) iEYEARECAAYFAlAXp18ACgkQC3+MBN1Mb4h7rwCg8GCxQ7mEcSbaaAi9dZ6CGdXd BQoAoN31pfwlL0waULSLfAFEHDZBH2QB =ClUt -----END PGP SIGNATURE----- --K2wHSdELFynQv3TW-- From owner-svn-src-projects@FreeBSD.ORG Tue Jul 31 09:41:06 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8D0891065672; Tue, 31 Jul 2012 09:41:06 +0000 (UTC) (envelope-from mavbsd@gmail.com) Received: from mail-bk0-f54.google.com (mail-bk0-f54.google.com [209.85.214.54]) by mx1.freebsd.org (Postfix) with ESMTP id 753F18FC0C; Tue, 31 Jul 2012 09:41:05 +0000 (UTC) Received: by bkcje9 with SMTP id je9so3179910bkc.13 for ; Tue, 31 Jul 2012 02:41:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=62cRqE474JlqAomeIvx1waqjrp7e0tuKiTKXRnWDl60=; b=UmkaJD70QIsx8mIoKB0agSv1AD4hyxa38DFnxbVI62wjUjFtIJGIjd/TmWU8mqS9kz s24pLd/yNJ+PzbXdSmsodE1gyNPo5QjjOj1A1QJRfjw+pVAdUcQUFgmCd0cDiqVBLc2e lSR04AJiEAbQFeeOvrD+TlnLpgsw8x1gg5G3vfEKnihWOeFni6afnEnHjoBW5wKPRe3a yfQgQOmjW+8xqdoEebnX21mKYCf7rhnLgzLxvFKBPrrn+8xBmM7O6B15sEvJLW1+crh1 AQ479WFkw3UoCzwgCS719d8ve5JEKf5gdKvr9GrQWW97GSpWyw31nmnBIPNzqJCe3hGE /jNA== Received: by 10.205.118.14 with SMTP id fo14mr5136582bkc.130.1343727664214; Tue, 31 Jul 2012 02:41:04 -0700 (PDT) Received: from mavbook.mavhome.dp.ua (93-127-73-162.static.vega-ua.net. [93.127.73.162]) by mx.google.com with ESMTPS id fu8sm4950176bkc.5.2012.07.31.02.41.02 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 31 Jul 2012 02:41:03 -0700 (PDT) Sender: Alexander Motin Message-ID: <5017A82B.3040704@FreeBSD.org> Date: Tue, 31 Jul 2012 12:40:59 +0300 From: Alexander Motin User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:13.0) Gecko/20120628 Thunderbird/13.0.1 MIME-Version: 1.0 To: Konstantin Belousov References: <201207301350.q6UDobCI099069@svn.freebsd.org> <20120730143943.GY2676@deviant.kiev.zoral.com.ua> <20120730145912.GZ2676@deviant.kiev.zoral.com.ua> <20120731093735.GB2676@deviant.kiev.zoral.com.ua> In-Reply-To: <20120731093735.GB2676@deviant.kiev.zoral.com.ua> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Attilio Rao , Davide Italiano , src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: Re: svn commit: r238907 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Jul 2012 09:41:06 -0000 On 31.07.2012 12:37, Konstantin Belousov wrote: > On Mon, Jul 30, 2012 at 09:48:08PM +0100, Attilio Rao wrote: >> On Mon, Jul 30, 2012 at 3:59 PM, Konstantin Belousov >> wrote: >>> On Mon, Jul 30, 2012 at 03:51:22PM +0100, Attilio Rao wrote: >>>> On 7/30/12, Konstantin Belousov wrote: >>>>> On Mon, Jul 30, 2012 at 03:24:26PM +0100, Attilio Rao wrote: >>>>>> On 7/30/12, Davide Italiano wrote: >>>>>>> On Mon, Jul 30, 2012 at 4:02 PM, Attilio Rao >>>>>>> wrote: >>>>>>> Thanks for the comment, Attilio. >>>>>>> Yes, it's exactly what you thought. If direct flag is equal to one >>>>>>> you're sure you're processing a callout which runs directly from >>>>>>> hardware interrupt context. In this case, the running thread cannot >>>>>>> sleep and it's likely you have TDP_NOSLEEPING flags set, failing the >>>>>>> KASSERT() in THREAD_NO_SLEEPING() and leading to panic if kernel is >>>>>>> compiled with INVARIANTS. >>>>>>> In case you're running from SWI context (direct equals to zero) code >>>>>>> remains the same as before. >>>>>>> I think what I'm doing works due the assumption thread running never >>>>>>> sleeps. Do you suggest some other way to handle this? >>>>>> >>>>>> Possibly the quicker way to do this is to have a way to deal with the >>>>>> TDP_NOSLEEPING flag in recursed way, thus implement the same logic as >>>>>> VFS_LOCK_GIANT() does, for example. >>>>>> You will need to change the few callers of THREAD_NO_SLEEPING(), but >>>>>> the patch should be no longer than 10/15 lines. >>>>> >>>>> There are already curthread_pflags_set/restore KPI designed exactly to >>>>> handle >>>>> nested private thread flags. >>>> >>>> Yes, however I would use curthread_pflags* KPI within >>>> THREAD_NO_SLEEPING() as this name is much more explicit. >>>> >>> Sure, hiding it in THREAD_NO_SLEEPING (THREAD_NO_SLEEP_ENTER/LEAVE ?) >>> is the way to use curthread_pflags_set there. >>> >>> As a second though, on the other hand, is it safe to modify td_flags >>> from the interrupt context at all ? Probably yes if interrupt handler >>> always leave td_pflags in the same state on leave as it was on entry, >>> but couldn't too smart compiler cause inconsistent view of td_pflags >>> inside the handler ? >> >> Can you think of any? Because I cannot think of a case where a nested >> interrupt can messup with already compiled code, unless it leaks a >> cleanup. > In principle, compiler might compile the > x |= a; > into whatever it finds suitable, e.g. it could write 0 temporary into > x if the corresponding instruction sequence is considered faster. > > No sane compiler for x86 does this. >> >> I was more worried about the compiler reordering operations before >> locking could really see it, but I think in this case the functions >> call to sleepqueue (at least) works as a sequence point so we are >> safe. >> >>> >>>>> Also, I wonder, should you assert somehow that direct dispatch cannot block >>>>> as well ? >>>> >>>> Yes, it would be optimal, but I don't think we have a flag for that >>>> right now, do we? >>> >>> I am not aware of such flag, this might be a good reason to introduce it, >>> if issue about td_pflags is just a product of my imagination. >> >> I think you should be good to go. Do you plan to work on such a patch? > > Ok, I looked closely at the direct dispatch and TD_NOBLOCKING. I now > think that such flag is not needed. > > Am I right that direct dispatch executes callback while owning cc_lock > spinlock ? No, does not now. It was so originally, but was fixed recently, as it caused LOR deadlocks. > If true, then TD_NOBLOCKING is definitely not needed for > direct dispatch. For thread to be blocked, it shall be scheduled off the > CPU, going through mi_switch(). And mi_switch() asserts that critical > section level is exactly 1, which assertion fails due to direct dispatch > context owning spinlock. -- Alexander Motin From owner-svn-src-projects@FreeBSD.ORG Tue Jul 31 09:59:30 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 0B619106564A; Tue, 31 Jul 2012 09:59:30 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from mail.zoral.com.ua (mx0.zoral.com.ua [91.193.166.200]) by mx1.freebsd.org (Postfix) with ESMTP id 97A348FC16; Tue, 31 Jul 2012 09:59:29 +0000 (UTC) Received: from skuns.kiev.zoral.com.ua (localhost [127.0.0.1]) by mail.zoral.com.ua (8.14.2/8.14.2) with ESMTP id q6V9xYSX022605; Tue, 31 Jul 2012 12:59:34 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (kostik@localhost [127.0.0.1]) by deviant.kiev.zoral.com.ua (8.14.5/8.14.5) with ESMTP id q6V9xMpi087414; Tue, 31 Jul 2012 12:59:22 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.14.5/8.14.5/Submit) id q6V9xMYH087413; Tue, 31 Jul 2012 12:59:22 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to kostikbel@gmail.com using -f Date: Tue, 31 Jul 2012 12:59:22 +0300 From: Konstantin Belousov To: Alexander Motin Message-ID: <20120731095922.GC2676@deviant.kiev.zoral.com.ua> References: <201207301350.q6UDobCI099069@svn.freebsd.org> <20120730143943.GY2676@deviant.kiev.zoral.com.ua> <20120730145912.GZ2676@deviant.kiev.zoral.com.ua> <20120731093735.GB2676@deviant.kiev.zoral.com.ua> <5017A82B.3040704@FreeBSD.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="P6FkfbahCsDDKxle" Content-Disposition: inline In-Reply-To: <5017A82B.3040704@FreeBSD.org> User-Agent: Mutt/1.4.2.3i X-Virus-Scanned: clamav-milter 0.95.2 at skuns.kiev.zoral.com.ua X-Virus-Status: Clean X-Spam-Status: No, score=-4.0 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on skuns.kiev.zoral.com.ua Cc: Attilio Rao , Davide Italiano , src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: Re: svn commit: r238907 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Jul 2012 09:59:30 -0000 --P6FkfbahCsDDKxle Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Jul 31, 2012 at 12:40:59PM +0300, Alexander Motin wrote: > On 31.07.2012 12:37, Konstantin Belousov wrote: > >On Mon, Jul 30, 2012 at 09:48:08PM +0100, Attilio Rao wrote: > >>On Mon, Jul 30, 2012 at 3:59 PM, Konstantin Belousov > >> wrote: > >>>On Mon, Jul 30, 2012 at 03:51:22PM +0100, Attilio Rao wrote: > >>>>On 7/30/12, Konstantin Belousov wrote: > >>>>>On Mon, Jul 30, 2012 at 03:24:26PM +0100, Attilio Rao wrote: > >>>>>>On 7/30/12, Davide Italiano wrote: > >>>>>>>On Mon, Jul 30, 2012 at 4:02 PM, Attilio Rao > >>>>>>>wrote: > >>>>>>>Thanks for the comment, Attilio. > >>>>>>>Yes, it's exactly what you thought. If direct flag is equal to one > >>>>>>>you're sure you're processing a callout which runs directly from > >>>>>>>hardware interrupt context. In this case, the running thread cannot > >>>>>>>sleep and it's likely you have TDP_NOSLEEPING flags set, failing t= he > >>>>>>>KASSERT() in THREAD_NO_SLEEPING() and leading to panic if kernel is > >>>>>>>compiled with INVARIANTS. > >>>>>>>In case you're running from SWI context (direct equals to zero) co= de > >>>>>>>remains the same as before. > >>>>>>>I think what I'm doing works due the assumption thread running nev= er > >>>>>>>sleeps. Do you suggest some other way to handle this? > >>>>>> > >>>>>>Possibly the quicker way to do this is to have a way to deal with t= he > >>>>>>TDP_NOSLEEPING flag in recursed way, thus implement the same logic = as > >>>>>>VFS_LOCK_GIANT() does, for example. > >>>>>>You will need to change the few callers of THREAD_NO_SLEEPING(), but > >>>>>>the patch should be no longer than 10/15 lines. > >>>>> > >>>>>There are already curthread_pflags_set/restore KPI designed exactly = to > >>>>>handle > >>>>>nested private thread flags. > >>>> > >>>>Yes, however I would use curthread_pflags* KPI within > >>>>THREAD_NO_SLEEPING() as this name is much more explicit. > >>>> > >>>Sure, hiding it in THREAD_NO_SLEEPING (THREAD_NO_SLEEP_ENTER/LEAVE ?) > >>>is the way to use curthread_pflags_set there. > >>> > >>>As a second though, on the other hand, is it safe to modify td_flags > >>>from the interrupt context at all ? Probably yes if interrupt handler > >>>always leave td_pflags in the same state on leave as it was on entry, > >>>but couldn't too smart compiler cause inconsistent view of td_pflags > >>>inside the handler ? > >> > >>Can you think of any? Because I cannot think of a case where a nested > >>interrupt can messup with already compiled code, unless it leaks a > >>cleanup. > >In principle, compiler might compile the > > x |=3D a; > >into whatever it finds suitable, e.g. it could write 0 temporary into > >x if the corresponding instruction sequence is considered faster. > > > >No sane compiler for x86 does this. > >> > >>I was more worried about the compiler reordering operations before > >>locking could really see it, but I think in this case the functions > >>call to sleepqueue (at least) works as a sequence point so we are > >>safe. > >> > >>> > >>>>>Also, I wonder, should you assert somehow that direct dispatch canno= t=20 > >>>>>block > >>>>>as well ? > >>>> > >>>>Yes, it would be optimal, but I don't think we have a flag for that > >>>>right now, do we? > >>> > >>>I am not aware of such flag, this might be a good reason to introduce = it, > >>>if issue about td_pflags is just a product of my imagination. > >> > >>I think you should be good to go. Do you plan to work on such a patch? > > > >Ok, I looked closely at the direct dispatch and TD_NOBLOCKING. I now > >think that such flag is not needed. > > > >Am I right that direct dispatch executes callback while owning cc_lock > >spinlock ? >=20 > No, does not now. It was so originally, but was fixed recently, as it=20 > caused LOR deadlocks. Hm, ok. Probably I misread the diff. Anyway, I believe that both direct interrupt dispatch and IPIs take critical sections around handlers. This should have the same effect for assertion in the mi_switch(). >=20 > >If true, then TD_NOBLOCKING is definitely not needed for > >direct dispatch. For thread to be blocked, it shall be scheduled off the > >CPU, going through mi_switch(). And mi_switch() asserts that critical > >section level is exactly 1, which assertion fails due to direct dispatch > >context owning spinlock. >=20 > --=20 > Alexander Motin --P6FkfbahCsDDKxle Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (FreeBSD) iEYEARECAAYFAlAXrHoACgkQC3+MBN1Mb4g8fACeLrio17rJnv6l1ydVPnKbUuHB NL4AmgOrwGM6JMEWFn/JGLbFP0hmlsdp =HxrS -----END PGP SIGNATURE----- --P6FkfbahCsDDKxle-- From owner-svn-src-projects@FreeBSD.ORG Tue Jul 31 11:16:22 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C5FF0106566B; Tue, 31 Jul 2012 11:16:22 +0000 (UTC) (envelope-from cherry@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A724A8FC08; Tue, 31 Jul 2012 11:16:22 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q6VBGMBO021273; Tue, 31 Jul 2012 11:16:22 GMT (envelope-from cherry@svn.freebsd.org) Received: (from cherry@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q6VBGMMt021246; Tue, 31 Jul 2012 11:16:22 GMT (envelope-from cherry@svn.freebsd.org) Message-Id: <201207311116.q6VBGMMt021246@svn.freebsd.org> From: "Cherry G. Mathew" Date: Tue, 31 Jul 2012 11:16:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r238944 - in projects/amd64_xen_pv: . bin/cat bin/ps bin/sh bin/stty cddl/compat/opensolaris/misc cddl/contrib/dtracetoolkit cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/include ... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Jul 2012 11:16:22 -0000 Author: cherry Date: Tue Jul 31 11:16:19 2012 New Revision: 238944 URL: http://svn.freebsd.org/changeset/base/238944 Log: MFC @ r238912 Added: projects/amd64_xen_pv/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/include/ - copied from r238911, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/include/ projects/amd64_xen_pv/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh - copied unchanged from r238911, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh projects/amd64_xen_pv/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/sizeof/err.D_SIZEOF_TYPE.badstruct.d - copied unchanged from r238911, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/sizeof/err.D_SIZEOF_TYPE.badstruct.d projects/amd64_xen_pv/contrib/dtc/dtdiff - copied unchanged from r238911, head/contrib/dtc/dtdiff projects/amd64_xen_pv/contrib/dtc/fdtdump.c - copied unchanged from r238911, head/contrib/dtc/fdtdump.c projects/amd64_xen_pv/contrib/dtc/fdtget.c - copied unchanged from r238911, head/contrib/dtc/fdtget.c projects/amd64_xen_pv/contrib/dtc/fdtput.c - copied unchanged from r238911, head/contrib/dtc/fdtput.c projects/amd64_xen_pv/contrib/dtc/libfdt/fdt_empty_tree.c - copied unchanged from r238911, head/contrib/dtc/libfdt/fdt_empty_tree.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_getdate.c - copied unchanged from r238911, head/contrib/libarchive/libarchive/archive_getdate.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_match.c - copied unchanged from r238911, head/contrib/libarchive/libarchive/archive_match.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_pathmatch.c - copied unchanged from r238911, head/contrib/libarchive/libarchive/archive_pathmatch.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_pathmatch.h - copied unchanged from r238911, head/contrib/libarchive/libarchive/archive_pathmatch.h projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_add_filter.c - copied unchanged from r238911, head/contrib/libarchive/libarchive/archive_write_add_filter.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_disk_acl.c - copied unchanged from r238911, head/contrib/libarchive/libarchive/archive_write_disk_acl.c projects/amd64_xen_pv/contrib/libarchive/libarchive/test/test_acl_freebsd_nfs4.c - copied unchanged from r238911, head/contrib/libarchive/libarchive/test/test_acl_freebsd_nfs4.c projects/amd64_xen_pv/contrib/libarchive/libarchive/test/test_acl_freebsd_posix1e.c - copied unchanged from r238911, head/contrib/libarchive/libarchive/test/test_acl_freebsd_posix1e.c projects/amd64_xen_pv/contrib/libarchive/libarchive/test/test_archive_getdate.c - copied unchanged from r238911, head/contrib/libarchive/libarchive/test/test_archive_getdate.c projects/amd64_xen_pv/contrib/libarchive/libarchive/test/test_archive_match_owner.c - copied unchanged from r238911, head/contrib/libarchive/libarchive/test/test_archive_match_owner.c projects/amd64_xen_pv/contrib/libarchive/libarchive/test/test_archive_match_path.c - copied unchanged from r238911, head/contrib/libarchive/libarchive/test/test_archive_match_path.c projects/amd64_xen_pv/contrib/libarchive/libarchive/test/test_archive_match_time.c - copied unchanged from r238911, head/contrib/libarchive/libarchive/test/test_archive_match_time.c projects/amd64_xen_pv/contrib/libarchive/libarchive/test/test_archive_pathmatch.c - copied unchanged from r238911, head/contrib/libarchive/libarchive/test/test_archive_pathmatch.c projects/amd64_xen_pv/contrib/libarchive/tar/test/test_format_newc.c - copied unchanged from r238911, head/contrib/libarchive/tar/test/test_format_newc.c projects/amd64_xen_pv/contrib/libarchive/tar/test/test_option_nodump.c - copied unchanged from r238911, head/contrib/libarchive/tar/test/test_option_nodump.c projects/amd64_xen_pv/crypto/openssl/apps/genpkey.c - copied unchanged from r238911, head/crypto/openssl/apps/genpkey.c projects/amd64_xen_pv/crypto/openssl/apps/pkey.c - copied unchanged from r238911, head/crypto/openssl/apps/pkey.c projects/amd64_xen_pv/crypto/openssl/apps/pkeyparam.c - copied unchanged from r238911, head/crypto/openssl/apps/pkeyparam.c projects/amd64_xen_pv/crypto/openssl/apps/pkeyutl.c - copied unchanged from r238911, head/crypto/openssl/apps/pkeyutl.c projects/amd64_xen_pv/crypto/openssl/apps/srp.c - copied unchanged from r238911, head/crypto/openssl/apps/srp.c projects/amd64_xen_pv/crypto/openssl/apps/ts.c - copied unchanged from r238911, head/crypto/openssl/apps/ts.c projects/amd64_xen_pv/crypto/openssl/apps/tsget - copied unchanged from r238911, head/crypto/openssl/apps/tsget projects/amd64_xen_pv/crypto/openssl/crypto/aes/aes_x86core.c - copied unchanged from r238911, head/crypto/openssl/crypto/aes/aes_x86core.c projects/amd64_xen_pv/crypto/openssl/crypto/aes/asm/aes-armv4.pl - copied unchanged from r238911, head/crypto/openssl/crypto/aes/asm/aes-armv4.pl projects/amd64_xen_pv/crypto/openssl/crypto/aes/asm/aes-mips.pl - copied unchanged from r238911, head/crypto/openssl/crypto/aes/asm/aes-mips.pl projects/amd64_xen_pv/crypto/openssl/crypto/aes/asm/aes-parisc.pl - copied unchanged from r238911, head/crypto/openssl/crypto/aes/asm/aes-parisc.pl projects/amd64_xen_pv/crypto/openssl/crypto/aes/asm/aes-ppc.pl - copied unchanged from r238911, head/crypto/openssl/crypto/aes/asm/aes-ppc.pl projects/amd64_xen_pv/crypto/openssl/crypto/aes/asm/aes-s390x.pl - copied unchanged from r238911, head/crypto/openssl/crypto/aes/asm/aes-s390x.pl projects/amd64_xen_pv/crypto/openssl/crypto/aes/asm/aes-sparcv9.pl - copied unchanged from r238911, head/crypto/openssl/crypto/aes/asm/aes-sparcv9.pl projects/amd64_xen_pv/crypto/openssl/crypto/aes/asm/aesni-sha1-x86_64.pl - copied unchanged from r238911, head/crypto/openssl/crypto/aes/asm/aesni-sha1-x86_64.pl projects/amd64_xen_pv/crypto/openssl/crypto/aes/asm/aesni-x86.pl - copied unchanged from r238911, head/crypto/openssl/crypto/aes/asm/aesni-x86.pl projects/amd64_xen_pv/crypto/openssl/crypto/aes/asm/aesni-x86_64.pl - copied unchanged from r238911, head/crypto/openssl/crypto/aes/asm/aesni-x86_64.pl projects/amd64_xen_pv/crypto/openssl/crypto/aes/asm/bsaes-x86_64.pl - copied unchanged from r238911, head/crypto/openssl/crypto/aes/asm/bsaes-x86_64.pl projects/amd64_xen_pv/crypto/openssl/crypto/aes/asm/vpaes-x86.pl - copied unchanged from r238911, head/crypto/openssl/crypto/aes/asm/vpaes-x86.pl projects/amd64_xen_pv/crypto/openssl/crypto/aes/asm/vpaes-x86_64.pl - copied unchanged from r238911, head/crypto/openssl/crypto/aes/asm/vpaes-x86_64.pl projects/amd64_xen_pv/crypto/openssl/crypto/arm_arch.h - copied unchanged from r238911, head/crypto/openssl/crypto/arm_arch.h projects/amd64_xen_pv/crypto/openssl/crypto/armcap.c - copied unchanged from r238911, head/crypto/openssl/crypto/armcap.c projects/amd64_xen_pv/crypto/openssl/crypto/armv4cpuid.S - copied unchanged from r238911, head/crypto/openssl/crypto/armv4cpuid.S projects/amd64_xen_pv/crypto/openssl/crypto/asn1/ameth_lib.c - copied unchanged from r238911, head/crypto/openssl/crypto/asn1/ameth_lib.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/asn1_locl.h - copied unchanged from r238911, head/crypto/openssl/crypto/asn1/asn1_locl.h projects/amd64_xen_pv/crypto/openssl/crypto/asn1/bio_asn1.c - copied unchanged from r238911, head/crypto/openssl/crypto/asn1/bio_asn1.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/bio_ndef.c - copied unchanged from r238911, head/crypto/openssl/crypto/asn1/bio_ndef.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/x_nx509.c - copied unchanged from r238911, head/crypto/openssl/crypto/asn1/x_nx509.c projects/amd64_xen_pv/crypto/openssl/crypto/bn/asm/armv4-gf2m.pl - copied unchanged from r238911, head/crypto/openssl/crypto/bn/asm/armv4-gf2m.pl projects/amd64_xen_pv/crypto/openssl/crypto/bn/asm/armv4-mont.pl - copied unchanged from r238911, head/crypto/openssl/crypto/bn/asm/armv4-mont.pl projects/amd64_xen_pv/crypto/openssl/crypto/bn/asm/ia64-mont.pl - copied unchanged from r238911, head/crypto/openssl/crypto/bn/asm/ia64-mont.pl projects/amd64_xen_pv/crypto/openssl/crypto/bn/asm/mips-mont.pl - copied unchanged from r238911, head/crypto/openssl/crypto/bn/asm/mips-mont.pl projects/amd64_xen_pv/crypto/openssl/crypto/bn/asm/mips.pl - copied unchanged from r238911, head/crypto/openssl/crypto/bn/asm/mips.pl projects/amd64_xen_pv/crypto/openssl/crypto/bn/asm/mips3-mont.pl - copied unchanged from r238911, head/crypto/openssl/crypto/bn/asm/mips3-mont.pl projects/amd64_xen_pv/crypto/openssl/crypto/bn/asm/modexp512-x86_64.pl - copied unchanged from r238911, head/crypto/openssl/crypto/bn/asm/modexp512-x86_64.pl projects/amd64_xen_pv/crypto/openssl/crypto/bn/asm/parisc-mont.pl - copied unchanged from r238911, head/crypto/openssl/crypto/bn/asm/parisc-mont.pl projects/amd64_xen_pv/crypto/openssl/crypto/bn/asm/ppc-mont.pl - copied unchanged from r238911, head/crypto/openssl/crypto/bn/asm/ppc-mont.pl projects/amd64_xen_pv/crypto/openssl/crypto/bn/asm/ppc64-mont.pl - copied unchanged from r238911, head/crypto/openssl/crypto/bn/asm/ppc64-mont.pl projects/amd64_xen_pv/crypto/openssl/crypto/bn/asm/s390x-gf2m.pl - copied unchanged from r238911, head/crypto/openssl/crypto/bn/asm/s390x-gf2m.pl projects/amd64_xen_pv/crypto/openssl/crypto/bn/asm/s390x-mont.pl - copied unchanged from r238911, head/crypto/openssl/crypto/bn/asm/s390x-mont.pl projects/amd64_xen_pv/crypto/openssl/crypto/bn/asm/s390x.S - copied unchanged from r238911, head/crypto/openssl/crypto/bn/asm/s390x.S projects/amd64_xen_pv/crypto/openssl/crypto/bn/asm/sparcv9-mont.pl - copied unchanged from r238911, head/crypto/openssl/crypto/bn/asm/sparcv9-mont.pl projects/amd64_xen_pv/crypto/openssl/crypto/bn/asm/sparcv9a-mont.pl - copied unchanged from r238911, head/crypto/openssl/crypto/bn/asm/sparcv9a-mont.pl projects/amd64_xen_pv/crypto/openssl/crypto/bn/asm/via-mont.pl - copied unchanged from r238911, head/crypto/openssl/crypto/bn/asm/via-mont.pl projects/amd64_xen_pv/crypto/openssl/crypto/bn/asm/x86-gf2m.pl - copied unchanged from r238911, head/crypto/openssl/crypto/bn/asm/x86-gf2m.pl projects/amd64_xen_pv/crypto/openssl/crypto/bn/asm/x86-mont.pl - copied unchanged from r238911, head/crypto/openssl/crypto/bn/asm/x86-mont.pl projects/amd64_xen_pv/crypto/openssl/crypto/bn/asm/x86_64-gf2m.pl - copied unchanged from r238911, head/crypto/openssl/crypto/bn/asm/x86_64-gf2m.pl projects/amd64_xen_pv/crypto/openssl/crypto/bn/asm/x86_64-mont5.pl - copied unchanged from r238911, head/crypto/openssl/crypto/bn/asm/x86_64-mont5.pl projects/amd64_xen_pv/crypto/openssl/crypto/camellia/asm/ - copied from r238911, head/crypto/openssl/crypto/camellia/asm/ projects/amd64_xen_pv/crypto/openssl/crypto/camellia/cmll_utl.c - copied unchanged from r238911, head/crypto/openssl/crypto/camellia/cmll_utl.c projects/amd64_xen_pv/crypto/openssl/crypto/cmac/ - copied from r238911, head/crypto/openssl/crypto/cmac/ projects/amd64_xen_pv/crypto/openssl/crypto/cms/cms_pwri.c - copied unchanged from r238911, head/crypto/openssl/crypto/cms/cms_pwri.c projects/amd64_xen_pv/crypto/openssl/crypto/dh/dh_ameth.c - copied unchanged from r238911, head/crypto/openssl/crypto/dh/dh_ameth.c projects/amd64_xen_pv/crypto/openssl/crypto/dh/dh_pmeth.c - copied unchanged from r238911, head/crypto/openssl/crypto/dh/dh_pmeth.c projects/amd64_xen_pv/crypto/openssl/crypto/dh/dh_prn.c - copied unchanged from r238911, head/crypto/openssl/crypto/dh/dh_prn.c projects/amd64_xen_pv/crypto/openssl/crypto/dsa/dsa_ameth.c - copied unchanged from r238911, head/crypto/openssl/crypto/dsa/dsa_ameth.c projects/amd64_xen_pv/crypto/openssl/crypto/dsa/dsa_locl.h - copied unchanged from r238911, head/crypto/openssl/crypto/dsa/dsa_locl.h projects/amd64_xen_pv/crypto/openssl/crypto/dsa/dsa_pmeth.c - copied unchanged from r238911, head/crypto/openssl/crypto/dsa/dsa_pmeth.c projects/amd64_xen_pv/crypto/openssl/crypto/dsa/dsa_prn.c - copied unchanged from r238911, head/crypto/openssl/crypto/dsa/dsa_prn.c projects/amd64_xen_pv/crypto/openssl/crypto/dso/dso_beos.c - copied unchanged from r238911, head/crypto/openssl/crypto/dso/dso_beos.c projects/amd64_xen_pv/crypto/openssl/crypto/ec/ec2_oct.c - copied unchanged from r238911, head/crypto/openssl/crypto/ec/ec2_oct.c projects/amd64_xen_pv/crypto/openssl/crypto/ec/ec_ameth.c - copied unchanged from r238911, head/crypto/openssl/crypto/ec/ec_ameth.c projects/amd64_xen_pv/crypto/openssl/crypto/ec/ec_oct.c - copied unchanged from r238911, head/crypto/openssl/crypto/ec/ec_oct.c projects/amd64_xen_pv/crypto/openssl/crypto/ec/ec_pmeth.c - copied unchanged from r238911, head/crypto/openssl/crypto/ec/ec_pmeth.c projects/amd64_xen_pv/crypto/openssl/crypto/ec/eck_prn.c - copied unchanged from r238911, head/crypto/openssl/crypto/ec/eck_prn.c projects/amd64_xen_pv/crypto/openssl/crypto/ec/ecp_nistp224.c - copied unchanged from r238911, head/crypto/openssl/crypto/ec/ecp_nistp224.c projects/amd64_xen_pv/crypto/openssl/crypto/ec/ecp_nistp256.c - copied unchanged from r238911, head/crypto/openssl/crypto/ec/ecp_nistp256.c projects/amd64_xen_pv/crypto/openssl/crypto/ec/ecp_nistp521.c - copied unchanged from r238911, head/crypto/openssl/crypto/ec/ecp_nistp521.c projects/amd64_xen_pv/crypto/openssl/crypto/ec/ecp_nistputil.c - copied unchanged from r238911, head/crypto/openssl/crypto/ec/ecp_nistputil.c projects/amd64_xen_pv/crypto/openssl/crypto/ec/ecp_oct.c - copied unchanged from r238911, head/crypto/openssl/crypto/ec/ecp_oct.c projects/amd64_xen_pv/crypto/openssl/crypto/engine/eng_rdrand.c - copied unchanged from r238911, head/crypto/openssl/crypto/engine/eng_rdrand.c projects/amd64_xen_pv/crypto/openssl/crypto/engine/eng_rsax.c - copied unchanged from r238911, head/crypto/openssl/crypto/engine/eng_rsax.c projects/amd64_xen_pv/crypto/openssl/crypto/engine/tb_asnmth.c - copied unchanged from r238911, head/crypto/openssl/crypto/engine/tb_asnmth.c projects/amd64_xen_pv/crypto/openssl/crypto/engine/tb_pkmeth.c - copied unchanged from r238911, head/crypto/openssl/crypto/engine/tb_pkmeth.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c - copied unchanged from r238911, head/crypto/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/e_rc4_hmac_md5.c - copied unchanged from r238911, head/crypto/openssl/crypto/evp/e_rc4_hmac_md5.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/evp_fips.c - copied unchanged from r238911, head/crypto/openssl/crypto/evp/evp_fips.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/m_sigver.c - copied unchanged from r238911, head/crypto/openssl/crypto/evp/m_sigver.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/m_wp.c - copied unchanged from r238911, head/crypto/openssl/crypto/evp/m_wp.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/pmeth_fn.c - copied unchanged from r238911, head/crypto/openssl/crypto/evp/pmeth_fn.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/pmeth_gn.c - copied unchanged from r238911, head/crypto/openssl/crypto/evp/pmeth_gn.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/pmeth_lib.c - copied unchanged from r238911, head/crypto/openssl/crypto/evp/pmeth_lib.c projects/amd64_xen_pv/crypto/openssl/crypto/fips_ers.c - copied unchanged from r238911, head/crypto/openssl/crypto/fips_ers.c projects/amd64_xen_pv/crypto/openssl/crypto/hmac/hm_ameth.c - copied unchanged from r238911, head/crypto/openssl/crypto/hmac/hm_ameth.c projects/amd64_xen_pv/crypto/openssl/crypto/hmac/hm_pmeth.c - copied unchanged from r238911, head/crypto/openssl/crypto/hmac/hm_pmeth.c projects/amd64_xen_pv/crypto/openssl/crypto/md5/asm/md5-ia64.S - copied unchanged from r238911, head/crypto/openssl/crypto/md5/asm/md5-ia64.S projects/amd64_xen_pv/crypto/openssl/crypto/modes/ - copied from r238911, head/crypto/openssl/crypto/modes/ projects/amd64_xen_pv/crypto/openssl/crypto/o_fips.c - copied unchanged from r238911, head/crypto/openssl/crypto/o_fips.c projects/amd64_xen_pv/crypto/openssl/crypto/objects/obj_xref.c - copied unchanged from r238911, head/crypto/openssl/crypto/objects/obj_xref.c projects/amd64_xen_pv/crypto/openssl/crypto/objects/obj_xref.h - copied unchanged from r238911, head/crypto/openssl/crypto/objects/obj_xref.h projects/amd64_xen_pv/crypto/openssl/crypto/objects/obj_xref.txt - copied unchanged from r238911, head/crypto/openssl/crypto/objects/obj_xref.txt projects/amd64_xen_pv/crypto/openssl/crypto/objects/objxref.pl - copied unchanged from r238911, head/crypto/openssl/crypto/objects/objxref.pl projects/amd64_xen_pv/crypto/openssl/crypto/pariscid.pl - copied unchanged from r238911, head/crypto/openssl/crypto/pariscid.pl projects/amd64_xen_pv/crypto/openssl/crypto/pem/pvkfmt.c - copied unchanged from r238911, head/crypto/openssl/crypto/pem/pvkfmt.c projects/amd64_xen_pv/crypto/openssl/crypto/perlasm/ppc-xlate.pl - copied unchanged from r238911, head/crypto/openssl/crypto/perlasm/ppc-xlate.pl projects/amd64_xen_pv/crypto/openssl/crypto/perlasm/x86gas.pl - copied unchanged from r238911, head/crypto/openssl/crypto/perlasm/x86gas.pl projects/amd64_xen_pv/crypto/openssl/crypto/perlasm/x86masm.pl - copied unchanged from r238911, head/crypto/openssl/crypto/perlasm/x86masm.pl projects/amd64_xen_pv/crypto/openssl/crypto/pkcs7/bio_pk7.c - copied unchanged from r238911, head/crypto/openssl/crypto/pkcs7/bio_pk7.c projects/amd64_xen_pv/crypto/openssl/crypto/ppccap.c - copied unchanged from r238911, head/crypto/openssl/crypto/ppccap.c projects/amd64_xen_pv/crypto/openssl/crypto/ppccpuid.pl - copied unchanged from r238911, head/crypto/openssl/crypto/ppccpuid.pl projects/amd64_xen_pv/crypto/openssl/crypto/rc4/asm/rc4-ia64.pl - copied unchanged from r238911, head/crypto/openssl/crypto/rc4/asm/rc4-ia64.pl projects/amd64_xen_pv/crypto/openssl/crypto/rc4/asm/rc4-md5-x86_64.pl - copied unchanged from r238911, head/crypto/openssl/crypto/rc4/asm/rc4-md5-x86_64.pl projects/amd64_xen_pv/crypto/openssl/crypto/rc4/asm/rc4-parisc.pl - copied unchanged from r238911, head/crypto/openssl/crypto/rc4/asm/rc4-parisc.pl projects/amd64_xen_pv/crypto/openssl/crypto/rc4/asm/rc4-s390x.pl - copied unchanged from r238911, head/crypto/openssl/crypto/rc4/asm/rc4-s390x.pl projects/amd64_xen_pv/crypto/openssl/crypto/rc4/rc4_utl.c - copied unchanged from r238911, head/crypto/openssl/crypto/rc4/rc4_utl.c projects/amd64_xen_pv/crypto/openssl/crypto/rsa/rsa_ameth.c - copied unchanged from r238911, head/crypto/openssl/crypto/rsa/rsa_ameth.c projects/amd64_xen_pv/crypto/openssl/crypto/rsa/rsa_crpt.c - copied unchanged from r238911, head/crypto/openssl/crypto/rsa/rsa_crpt.c projects/amd64_xen_pv/crypto/openssl/crypto/rsa/rsa_locl.h - copied unchanged from r238911, head/crypto/openssl/crypto/rsa/rsa_locl.h projects/amd64_xen_pv/crypto/openssl/crypto/rsa/rsa_pmeth.c - copied unchanged from r238911, head/crypto/openssl/crypto/rsa/rsa_pmeth.c projects/amd64_xen_pv/crypto/openssl/crypto/rsa/rsa_prn.c - copied unchanged from r238911, head/crypto/openssl/crypto/rsa/rsa_prn.c projects/amd64_xen_pv/crypto/openssl/crypto/s390xcap.c - copied unchanged from r238911, head/crypto/openssl/crypto/s390xcap.c projects/amd64_xen_pv/crypto/openssl/crypto/s390xcpuid.S - copied unchanged from r238911, head/crypto/openssl/crypto/s390xcpuid.S projects/amd64_xen_pv/crypto/openssl/crypto/sha/asm/sha1-armv4-large.pl - copied unchanged from r238911, head/crypto/openssl/crypto/sha/asm/sha1-armv4-large.pl projects/amd64_xen_pv/crypto/openssl/crypto/sha/asm/sha1-mips.pl - copied unchanged from r238911, head/crypto/openssl/crypto/sha/asm/sha1-mips.pl projects/amd64_xen_pv/crypto/openssl/crypto/sha/asm/sha1-parisc.pl - copied unchanged from r238911, head/crypto/openssl/crypto/sha/asm/sha1-parisc.pl projects/amd64_xen_pv/crypto/openssl/crypto/sha/asm/sha1-ppc.pl - copied unchanged from r238911, head/crypto/openssl/crypto/sha/asm/sha1-ppc.pl projects/amd64_xen_pv/crypto/openssl/crypto/sha/asm/sha1-s390x.pl - copied unchanged from r238911, head/crypto/openssl/crypto/sha/asm/sha1-s390x.pl projects/amd64_xen_pv/crypto/openssl/crypto/sha/asm/sha1-sparcv9.pl - copied unchanged from r238911, head/crypto/openssl/crypto/sha/asm/sha1-sparcv9.pl projects/amd64_xen_pv/crypto/openssl/crypto/sha/asm/sha1-sparcv9a.pl - copied unchanged from r238911, head/crypto/openssl/crypto/sha/asm/sha1-sparcv9a.pl projects/amd64_xen_pv/crypto/openssl/crypto/sha/asm/sha1-thumb.pl - copied unchanged from r238911, head/crypto/openssl/crypto/sha/asm/sha1-thumb.pl projects/amd64_xen_pv/crypto/openssl/crypto/sha/asm/sha256-586.pl - copied unchanged from r238911, head/crypto/openssl/crypto/sha/asm/sha256-586.pl projects/amd64_xen_pv/crypto/openssl/crypto/sha/asm/sha256-armv4.pl - copied unchanged from r238911, head/crypto/openssl/crypto/sha/asm/sha256-armv4.pl projects/amd64_xen_pv/crypto/openssl/crypto/sha/asm/sha512-586.pl - copied unchanged from r238911, head/crypto/openssl/crypto/sha/asm/sha512-586.pl projects/amd64_xen_pv/crypto/openssl/crypto/sha/asm/sha512-armv4.pl - copied unchanged from r238911, head/crypto/openssl/crypto/sha/asm/sha512-armv4.pl projects/amd64_xen_pv/crypto/openssl/crypto/sha/asm/sha512-mips.pl - copied unchanged from r238911, head/crypto/openssl/crypto/sha/asm/sha512-mips.pl projects/amd64_xen_pv/crypto/openssl/crypto/sha/asm/sha512-parisc.pl - copied unchanged from r238911, head/crypto/openssl/crypto/sha/asm/sha512-parisc.pl projects/amd64_xen_pv/crypto/openssl/crypto/sha/asm/sha512-ppc.pl - copied unchanged from r238911, head/crypto/openssl/crypto/sha/asm/sha512-ppc.pl projects/amd64_xen_pv/crypto/openssl/crypto/sha/asm/sha512-s390x.pl - copied unchanged from r238911, head/crypto/openssl/crypto/sha/asm/sha512-s390x.pl projects/amd64_xen_pv/crypto/openssl/crypto/sha/asm/sha512-sparcv9.pl - copied unchanged from r238911, head/crypto/openssl/crypto/sha/asm/sha512-sparcv9.pl projects/amd64_xen_pv/crypto/openssl/crypto/sparcv9cap.c - copied unchanged from r238911, head/crypto/openssl/crypto/sparcv9cap.c projects/amd64_xen_pv/crypto/openssl/crypto/srp/ - copied from r238911, head/crypto/openssl/crypto/srp/ projects/amd64_xen_pv/crypto/openssl/crypto/ts/ - copied from r238911, head/crypto/openssl/crypto/ts/ projects/amd64_xen_pv/crypto/openssl/crypto/vms_rms.h - copied unchanged from r238911, head/crypto/openssl/crypto/vms_rms.h projects/amd64_xen_pv/crypto/openssl/crypto/whrlpool/ - copied from r238911, head/crypto/openssl/crypto/whrlpool/ projects/amd64_xen_pv/crypto/openssl/doc/apps/cms.pod - copied unchanged from r238911, head/crypto/openssl/doc/apps/cms.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/genpkey.pod - copied unchanged from r238911, head/crypto/openssl/doc/apps/genpkey.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/pkey.pod - copied unchanged from r238911, head/crypto/openssl/doc/apps/pkey.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/pkeyparam.pod - copied unchanged from r238911, head/crypto/openssl/doc/apps/pkeyparam.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/pkeyutl.pod - copied unchanged from r238911, head/crypto/openssl/doc/apps/pkeyutl.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/ts.pod - copied unchanged from r238911, head/crypto/openssl/doc/apps/ts.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/tsget.pod - copied unchanged from r238911, head/crypto/openssl/doc/apps/tsget.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/BIO_new_CMS.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/BIO_new_CMS.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/CMS_add0_cert.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/CMS_add0_cert.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/CMS_add1_recipient_cert.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/CMS_add1_recipient_cert.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/CMS_compress.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/CMS_compress.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/CMS_decrypt.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/CMS_decrypt.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/CMS_encrypt.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/CMS_encrypt.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/CMS_final.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/CMS_final.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/CMS_get0_RecipientInfos.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/CMS_get0_RecipientInfos.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/CMS_get0_SignerInfos.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/CMS_get0_SignerInfos.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/CMS_get0_type.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/CMS_get0_type.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/CMS_get1_ReceiptRequest.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/CMS_get1_ReceiptRequest.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/CMS_sign.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/CMS_sign.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/CMS_sign_add1_signer.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/CMS_sign_add1_signer.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/CMS_sign_receipt.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/CMS_sign_receipt.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/CMS_uncompress.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/CMS_uncompress.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/CMS_verify.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/CMS_verify.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/CMS_verify_receipt.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/CMS_verify_receipt.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/EVP_DigestSignInit.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/EVP_DigestSignInit.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/EVP_DigestVerifyInit.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/EVP_DigestVerifyInit.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/EVP_PKEY_CTX_ctrl.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/EVP_PKEY_CTX_ctrl.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/EVP_PKEY_CTX_new.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/EVP_PKEY_CTX_new.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/EVP_PKEY_cmp.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/EVP_PKEY_cmp.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/EVP_PKEY_decrypt.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/EVP_PKEY_decrypt.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/EVP_PKEY_derive.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/EVP_PKEY_derive.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/EVP_PKEY_encrypt.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/EVP_PKEY_encrypt.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/EVP_PKEY_get_default_digest.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/EVP_PKEY_get_default_digest.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/EVP_PKEY_keygen.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/EVP_PKEY_keygen.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/EVP_PKEY_print_private.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/EVP_PKEY_print_private.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/EVP_PKEY_sign.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/EVP_PKEY_sign.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/EVP_PKEY_verify.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/EVP_PKEY_verify.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/EVP_PKEY_verifyrecover.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/EVP_PKEY_verifyrecover.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/PEM_write_bio_CMS_stream.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/PEM_write_bio_CMS_stream.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/PEM_write_bio_PKCS7_stream.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/PEM_write_bio_PKCS7_stream.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/PKCS7_sign_add_signer.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/PKCS7_sign_add_signer.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/SMIME_read_CMS.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/SMIME_read_CMS.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/SMIME_write_CMS.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/SMIME_write_CMS.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/X509_STORE_CTX_get_error.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/X509_STORE_CTX_get_error.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/X509_STORE_CTX_get_ex_new_index.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/X509_STORE_CTX_get_ex_new_index.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/X509_STORE_CTX_new.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/X509_STORE_CTX_new.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/X509_STORE_CTX_set_verify_cb.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/X509_STORE_CTX_set_verify_cb.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/X509_STORE_set_verify_cb_func.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/X509_STORE_set_verify_cb_func.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/X509_VERIFY_PARAM_set_flags.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/X509_VERIFY_PARAM_set_flags.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/X509_verify_cert.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/X509_verify_cert.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/i2d_CMS_bio_stream.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/i2d_CMS_bio_stream.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/i2d_PKCS7_bio_stream.pod - copied unchanged from r238911, head/crypto/openssl/doc/crypto/i2d_PKCS7_bio_stream.pod projects/amd64_xen_pv/crypto/openssl/doc/ssl/SSL_CTX_set_psk_client_callback.pod - copied unchanged from r238911, head/crypto/openssl/doc/ssl/SSL_CTX_set_psk_client_callback.pod projects/amd64_xen_pv/crypto/openssl/doc/ssl/SSL_CTX_use_psk_identity_hint.pod - copied unchanged from r238911, head/crypto/openssl/doc/ssl/SSL_CTX_use_psk_identity_hint.pod projects/amd64_xen_pv/crypto/openssl/doc/ssl/SSL_get_psk_identity.pod - copied unchanged from r238911, head/crypto/openssl/doc/ssl/SSL_get_psk_identity.pod projects/amd64_xen_pv/crypto/openssl/engines/ccgost/ - copied from r238911, head/crypto/openssl/engines/ccgost/ projects/amd64_xen_pv/crypto/openssl/engines/e_padlock.c - copied unchanged from r238911, head/crypto/openssl/engines/e_padlock.c projects/amd64_xen_pv/crypto/openssl/ssl/d1_srtp.c - copied unchanged from r238911, head/crypto/openssl/ssl/d1_srtp.c projects/amd64_xen_pv/crypto/openssl/ssl/srtp.h - copied unchanged from r238911, head/crypto/openssl/ssl/srtp.h projects/amd64_xen_pv/crypto/openssl/ssl/tls_srp.c - copied unchanged from r238911, head/crypto/openssl/ssl/tls_srp.c projects/amd64_xen_pv/crypto/openssl/util/cygwin.sh - copied unchanged from r238911, head/crypto/openssl/util/cygwin.sh projects/amd64_xen_pv/crypto/openssl/util/mkrc.pl - copied unchanged from r238911, head/crypto/openssl/util/mkrc.pl projects/amd64_xen_pv/lib/libc/locale/iswalnum_l.3 - copied unchanged from r238911, head/lib/libc/locale/iswalnum_l.3 projects/amd64_xen_pv/lib/msun/ld128/s_expl.c - copied unchanged from r238911, head/lib/msun/ld128/s_expl.c projects/amd64_xen_pv/lib/msun/ld80/s_expl.c - copied unchanged from r238911, head/lib/msun/ld80/s_expl.c projects/amd64_xen_pv/secure/lib/libcrypto/amd64/ - copied from r238911, head/secure/lib/libcrypto/amd64/ projects/amd64_xen_pv/secure/lib/libcrypto/engines/libgost/ - copied from r238911, head/secure/lib/libcrypto/engines/libgost/ projects/amd64_xen_pv/secure/lib/libcrypto/i386/aes-586.s - copied unchanged from r238911, head/secure/lib/libcrypto/i386/aes-586.s projects/amd64_xen_pv/secure/lib/libcrypto/i386/aesni-x86.s - copied unchanged from r238911, head/secure/lib/libcrypto/i386/aesni-x86.s projects/amd64_xen_pv/secure/lib/libcrypto/i386/cmll-x86.s - copied unchanged from r238911, head/secure/lib/libcrypto/i386/cmll-x86.s projects/amd64_xen_pv/secure/lib/libcrypto/i386/ghash-x86.s - copied unchanged from r238911, head/secure/lib/libcrypto/i386/ghash-x86.s projects/amd64_xen_pv/secure/lib/libcrypto/i386/sha256-586.s - copied unchanged from r238911, head/secure/lib/libcrypto/i386/sha256-586.s projects/amd64_xen_pv/secure/lib/libcrypto/i386/sha512-586.s - copied unchanged from r238911, head/secure/lib/libcrypto/i386/sha512-586.s projects/amd64_xen_pv/secure/lib/libcrypto/i386/vpaes-x86.s - copied unchanged from r238911, head/secure/lib/libcrypto/i386/vpaes-x86.s projects/amd64_xen_pv/secure/lib/libcrypto/i386/wp-mmx.s - copied unchanged from r238911, head/secure/lib/libcrypto/i386/wp-mmx.s projects/amd64_xen_pv/secure/lib/libcrypto/i386/x86-gf2m.s - copied unchanged from r238911, head/secure/lib/libcrypto/i386/x86-gf2m.s projects/amd64_xen_pv/secure/lib/libcrypto/i386/x86-mont.s - copied unchanged from r238911, head/secure/lib/libcrypto/i386/x86-mont.s projects/amd64_xen_pv/secure/lib/libcrypto/i386/x86cpuid.s - copied unchanged from r238911, head/secure/lib/libcrypto/i386/x86cpuid.s projects/amd64_xen_pv/secure/lib/libcrypto/man/BIO_new_CMS.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/BIO_new_CMS.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/CMS_add0_cert.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/CMS_add0_cert.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/CMS_add1_recipient_cert.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/CMS_add1_recipient_cert.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/CMS_compress.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/CMS_compress.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/CMS_decrypt.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/CMS_decrypt.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/CMS_encrypt.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/CMS_encrypt.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/CMS_final.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/CMS_final.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/CMS_get0_RecipientInfos.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/CMS_get0_RecipientInfos.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/CMS_get0_SignerInfos.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/CMS_get0_SignerInfos.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/CMS_get0_type.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/CMS_get0_type.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/CMS_get1_ReceiptRequest.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/CMS_get1_ReceiptRequest.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/CMS_sign.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/CMS_sign.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/CMS_sign_add1_signer.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/CMS_sign_add1_signer.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/CMS_sign_receipt.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/CMS_sign_receipt.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/CMS_uncompress.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/CMS_uncompress.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/CMS_verify.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/CMS_verify.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/CMS_verify_receipt.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/CMS_verify_receipt.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/EVP_DigestSignInit.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/EVP_DigestSignInit.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/EVP_DigestVerifyInit.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/EVP_DigestVerifyInit.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/EVP_PKEY_CTX_ctrl.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/EVP_PKEY_CTX_ctrl.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/EVP_PKEY_CTX_new.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/EVP_PKEY_CTX_new.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/EVP_PKEY_cmp.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/EVP_PKEY_cmp.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/EVP_PKEY_decrypt.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/EVP_PKEY_decrypt.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/EVP_PKEY_derive.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/EVP_PKEY_derive.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/EVP_PKEY_encrypt.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/EVP_PKEY_encrypt.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/EVP_PKEY_get_default_digest.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/EVP_PKEY_get_default_digest.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/EVP_PKEY_keygen.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/EVP_PKEY_keygen.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/EVP_PKEY_print_private.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/EVP_PKEY_print_private.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/EVP_PKEY_sign.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/EVP_PKEY_sign.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/EVP_PKEY_verify.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/EVP_PKEY_verify.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/EVP_PKEY_verifyrecover.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/EVP_PKEY_verifyrecover.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/PEM_write_bio_CMS_stream.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/PEM_write_bio_CMS_stream.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/PEM_write_bio_PKCS7_stream.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/PEM_write_bio_PKCS7_stream.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/PKCS7_sign_add_signer.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/PKCS7_sign_add_signer.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/SMIME_read_CMS.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/SMIME_read_CMS.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/SMIME_write_CMS.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/SMIME_write_CMS.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/X509_STORE_CTX_get_error.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/X509_STORE_CTX_get_error.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/X509_STORE_CTX_get_ex_new_index.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/X509_STORE_CTX_get_ex_new_index.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/X509_STORE_CTX_new.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/X509_STORE_CTX_new.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/X509_STORE_CTX_set_verify_cb.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/X509_STORE_CTX_set_verify_cb.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/X509_STORE_set_verify_cb_func.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/X509_STORE_set_verify_cb_func.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/X509_VERIFY_PARAM_set_flags.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/X509_VERIFY_PARAM_set_flags.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/X509_verify_cert.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/X509_verify_cert.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/i2d_CMS_bio_stream.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/i2d_CMS_bio_stream.3 projects/amd64_xen_pv/secure/lib/libcrypto/man/i2d_PKCS7_bio_stream.3 - copied unchanged from r238911, head/secure/lib/libcrypto/man/i2d_PKCS7_bio_stream.3 projects/amd64_xen_pv/secure/lib/libcrypto/opensslconf-x86.h - copied unchanged from r238911, head/secure/lib/libcrypto/opensslconf-x86.h projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_set_psk_client_callback.3 - copied unchanged from r238911, head/secure/lib/libssl/man/SSL_CTX_set_psk_client_callback.3 projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_use_psk_identity_hint.3 - copied unchanged from r238911, head/secure/lib/libssl/man/SSL_CTX_use_psk_identity_hint.3 projects/amd64_xen_pv/secure/lib/libssl/man/SSL_get_psk_identity.3 - copied unchanged from r238911, head/secure/lib/libssl/man/SSL_get_psk_identity.3 projects/amd64_xen_pv/secure/usr.bin/openssl/man/cms.1 - copied unchanged from r238911, head/secure/usr.bin/openssl/man/cms.1 projects/amd64_xen_pv/secure/usr.bin/openssl/man/genpkey.1 - copied unchanged from r238911, head/secure/usr.bin/openssl/man/genpkey.1 projects/amd64_xen_pv/secure/usr.bin/openssl/man/pkey.1 - copied unchanged from r238911, head/secure/usr.bin/openssl/man/pkey.1 projects/amd64_xen_pv/secure/usr.bin/openssl/man/pkeyparam.1 - copied unchanged from r238911, head/secure/usr.bin/openssl/man/pkeyparam.1 projects/amd64_xen_pv/secure/usr.bin/openssl/man/pkeyutl.1 - copied unchanged from r238911, head/secure/usr.bin/openssl/man/pkeyutl.1 projects/amd64_xen_pv/secure/usr.bin/openssl/man/ts.1 - copied unchanged from r238911, head/secure/usr.bin/openssl/man/ts.1 projects/amd64_xen_pv/secure/usr.bin/openssl/man/tsget.1 - copied unchanged from r238911, head/secure/usr.bin/openssl/man/tsget.1 projects/amd64_xen_pv/share/dtrace/hotopen - copied unchanged from r238911, head/share/dtrace/hotopen projects/amd64_xen_pv/share/dtrace/nfsattrstats - copied unchanged from r238911, head/share/dtrace/nfsattrstats projects/amd64_xen_pv/share/examples/libusb20/ - copied from r238911, head/share/examples/libusb20/ projects/amd64_xen_pv/share/man/man4/acpi_asus_wmi.4 - copied unchanged from r238911, head/share/man/man4/acpi_asus_wmi.4 projects/amd64_xen_pv/sys/arm/at91/at91_pio_sam9g45.h - copied unchanged from r238911, head/sys/arm/at91/at91_pio_sam9g45.h projects/amd64_xen_pv/sys/arm/at91/at91rm9200_devices.c - copied unchanged from r238911, head/sys/arm/at91/at91rm9200_devices.c projects/amd64_xen_pv/sys/arm/at91/at91rm9200var.h - copied unchanged from r238911, head/sys/arm/at91/at91rm9200var.h projects/amd64_xen_pv/sys/arm/at91/at91sam9g45.c - copied unchanged from r238911, head/sys/arm/at91/at91sam9g45.c projects/amd64_xen_pv/sys/arm/at91/at91sam9g45reg.h - copied unchanged from r238911, head/sys/arm/at91/at91sam9g45reg.h projects/amd64_xen_pv/sys/arm/at91/at91soc.c - copied unchanged from r238911, head/sys/arm/at91/at91soc.c projects/amd64_xen_pv/sys/arm/at91/at91soc.h - copied unchanged from r238911, head/sys/arm/at91/at91soc.h projects/amd64_xen_pv/sys/arm/at91/board_sam9260ek.c - copied unchanged from r238911, head/sys/arm/at91/board_sam9260ek.c projects/amd64_xen_pv/sys/arm/at91/board_sn9g45.c - copied unchanged from r238911, head/sys/arm/at91/board_sn9g45.c projects/amd64_xen_pv/sys/arm/at91/std.at91sam9g45 - copied unchanged from r238911, head/sys/arm/at91/std.at91sam9g45 projects/amd64_xen_pv/sys/arm/at91/std.atmel - copied unchanged from r238911, head/sys/arm/at91/std.atmel projects/amd64_xen_pv/sys/arm/at91/std.sam9260ek - copied unchanged from r238911, head/sys/arm/at91/std.sam9260ek projects/amd64_xen_pv/sys/arm/at91/std.sn9g45 - copied unchanged from r238911, head/sys/arm/at91/std.sn9g45 projects/amd64_xen_pv/sys/arm/at91/uart_cpu_at91usart.c - copied unchanged from r238911, head/sys/arm/at91/uart_cpu_at91usart.c projects/amd64_xen_pv/sys/arm/conf/ATMEL - copied unchanged from r238911, head/sys/arm/conf/ATMEL projects/amd64_xen_pv/sys/arm/conf/SAM9260EK - copied unchanged from r238911, head/sys/arm/conf/SAM9260EK projects/amd64_xen_pv/sys/arm/conf/SAM9260EK.hints - copied unchanged from r238911, head/sys/arm/conf/SAM9260EK.hints projects/amd64_xen_pv/sys/arm/conf/SN9G45 - copied unchanged from r238911, head/sys/arm/conf/SN9G45 projects/amd64_xen_pv/sys/arm/include/board.h - copied unchanged from r238911, head/sys/arm/include/board.h projects/amd64_xen_pv/sys/contrib/dev/acpica/components/tables/tbxfload.c - copied unchanged from r238911, head/sys/contrib/dev/acpica/components/tables/tbxfload.c projects/amd64_xen_pv/sys/contrib/dev/acpica/components/utilities/utexcep.c - copied unchanged from r238911, head/sys/contrib/dev/acpica/components/utilities/utexcep.c projects/amd64_xen_pv/sys/contrib/libfdt/fdt_empty_tree.c - copied unchanged from r238911, head/sys/contrib/libfdt/fdt_empty_tree.c projects/amd64_xen_pv/sys/dev/acpi_support/acpi_asus_wmi.c - copied unchanged from r238911, head/sys/dev/acpi_support/acpi_asus_wmi.c projects/amd64_xen_pv/sys/dev/ahci/ahciem.c - copied unchanged from r238911, head/sys/dev/ahci/ahciem.c projects/amd64_xen_pv/sys/dev/ath/if_ath_rx_edma.c - copied unchanged from r238911, head/sys/dev/ath/if_ath_rx_edma.c projects/amd64_xen_pv/sys/dev/ath/if_ath_rx_edma.h - copied unchanged from r238911, head/sys/dev/ath/if_ath_rx_edma.h projects/amd64_xen_pv/sys/dev/ath/if_ath_tx_edma.c - copied unchanged from r238911, head/sys/dev/ath/if_ath_tx_edma.c projects/amd64_xen_pv/sys/dev/ath/if_ath_tx_edma.h - copied unchanged from r238911, head/sys/dev/ath/if_ath_tx_edma.h projects/amd64_xen_pv/sys/dev/e1000/e1000_i210.c - copied unchanged from r238911, head/sys/dev/e1000/e1000_i210.c projects/amd64_xen_pv/sys/dev/e1000/e1000_i210.h - copied unchanged from r238911, head/sys/dev/e1000/e1000_i210.h projects/amd64_xen_pv/sys/dev/nand/nfc_fsl.c - copied unchanged from r238911, head/sys/dev/nand/nfc_fsl.c projects/amd64_xen_pv/sys/dev/nand/nfc_fsl.h - copied unchanged from r238911, head/sys/dev/nand/nfc_fsl.h projects/amd64_xen_pv/sys/ia64/ia64/physmem.c - copied unchanged from r238911, head/sys/ia64/ia64/physmem.c projects/amd64_xen_pv/sys/kern/dtio_kdtrace.c - copied unchanged from r238911, head/sys/kern/dtio_kdtrace.c projects/amd64_xen_pv/sys/modules/acpi/acpi_asus_wmi/ - copied from r238911, head/sys/modules/acpi/acpi_asus_wmi/ projects/amd64_xen_pv/sys/modules/dtrace/dtio/ - copied from r238911, head/sys/modules/dtrace/dtio/ projects/amd64_xen_pv/tools/build/options/WITHOUT_PKGBOOTSTRAP - copied unchanged from r238911, head/tools/build/options/WITHOUT_PKGBOOTSTRAP projects/amd64_xen_pv/tools/build/options/WITH_BSDCONFIG - copied unchanged from r238911, head/tools/build/options/WITH_BSDCONFIG projects/amd64_xen_pv/tools/build/options/WITH_INSTALL_AS_USER - copied unchanged from r238911, head/tools/build/options/WITH_INSTALL_AS_USER projects/amd64_xen_pv/tools/regression/bin/sh/builtins/local1.0 - copied unchanged from r238911, head/tools/regression/bin/sh/builtins/local1.0 projects/amd64_xen_pv/tools/regression/bin/sh/expansion/export1.0 - copied unchanged from r238911, head/tools/regression/bin/sh/expansion/export1.0 projects/amd64_xen_pv/tools/regression/bin/sh/expansion/export2.0 - copied unchanged from r238911, head/tools/regression/bin/sh/expansion/export2.0 projects/amd64_xen_pv/tools/regression/bin/sh/expansion/export3.0 - copied unchanged from r238911, head/tools/regression/bin/sh/expansion/export3.0 projects/amd64_xen_pv/tools/regression/bin/sh/expansion/local1.0 - copied unchanged from r238911, head/tools/regression/bin/sh/expansion/local1.0 projects/amd64_xen_pv/tools/regression/bin/sh/expansion/local2.0 - copied unchanged from r238911, head/tools/regression/bin/sh/expansion/local2.0 projects/amd64_xen_pv/tools/regression/bin/sh/expansion/readonly1.0 - copied unchanged from r238911, head/tools/regression/bin/sh/expansion/readonly1.0 projects/amd64_xen_pv/tools/regression/usr.bin/make/syntax/funny-targets/ - copied from r238911, head/tools/regression/usr.bin/make/syntax/funny-targets/ projects/amd64_xen_pv/tools/regression/usr.sbin/etcupdate/ - copied from r238911, head/tools/regression/usr.sbin/etcupdate/ projects/amd64_xen_pv/tools/test/upsdl/ - copied from r238911, head/tools/test/upsdl/ projects/amd64_xen_pv/tools/tools/ath/athratestats/ - copied from r238911, head/tools/tools/ath/athratestats/ projects/amd64_xen_pv/usr.sbin/bsdconfig/ - copied from r238911, head/usr.sbin/bsdconfig/ projects/amd64_xen_pv/usr.sbin/etcupdate/ - copied from r238911, head/usr.sbin/etcupdate/ Replaced: projects/amd64_xen_pv/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/llquantize/ - copied from r238911, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/llquantize/ Deleted: projects/amd64_xen_pv/contrib/dtc/Makefile.convert-dtsv0 projects/amd64_xen_pv/contrib/dtc/Makefile.ftdump projects/amd64_xen_pv/contrib/dtc/convert-dtsv0-lexer.l projects/amd64_xen_pv/contrib/dtc/ftdump.c projects/amd64_xen_pv/contrib/libarchive/cpio/test/test_pathmatch.c projects/amd64_xen_pv/contrib/libarchive/libarchive_fe/matching.c projects/amd64_xen_pv/contrib/libarchive/libarchive_fe/matching.h projects/amd64_xen_pv/contrib/libarchive/libarchive_fe/pathmatch.c projects/amd64_xen_pv/contrib/libarchive/libarchive_fe/pathmatch.h projects/amd64_xen_pv/contrib/libarchive/tar/getdate.c projects/amd64_xen_pv/contrib/libarchive/tar/test/test_getdate.c projects/amd64_xen_pv/contrib/libarchive/tar/tree.c projects/amd64_xen_pv/contrib/libarchive/tar/tree.h projects/amd64_xen_pv/crypto/openssl/apps/demoCA/ projects/amd64_xen_pv/crypto/openssl/apps/winrand.c projects/amd64_xen_pv/crypto/openssl/bugs/ projects/amd64_xen_pv/crypto/openssl/certs/demo/ projects/amd64_xen_pv/crypto/openssl/crypto/LPdir_nyi.c projects/amd64_xen_pv/crypto/openssl/crypto/LPdir_vms.c projects/amd64_xen_pv/crypto/openssl/crypto/LPdir_win.c projects/amd64_xen_pv/crypto/openssl/crypto/LPdir_win32.c projects/amd64_xen_pv/crypto/openssl/crypto/LPdir_wince.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/a_hdr.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/a_meth.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/p8_key.c projects/amd64_xen_pv/crypto/openssl/crypto/bf/bfs.cpp projects/amd64_xen_pv/crypto/openssl/crypto/bn/asm/mo-586.pl projects/amd64_xen_pv/crypto/openssl/crypto/bn/bn_opt.c projects/amd64_xen_pv/crypto/openssl/crypto/cast/casts.cpp projects/amd64_xen_pv/crypto/openssl/crypto/des/asm/des686.pl projects/amd64_xen_pv/crypto/openssl/crypto/des/des3s.cpp projects/amd64_xen_pv/crypto/openssl/crypto/des/des_lib.c projects/amd64_xen_pv/crypto/openssl/crypto/des/dess.cpp projects/amd64_xen_pv/crypto/openssl/crypto/des/t/ projects/amd64_xen_pv/crypto/openssl/crypto/des/times/ projects/amd64_xen_pv/crypto/openssl/crypto/dsa/dsa_utl.c projects/amd64_xen_pv/crypto/openssl/crypto/dyn_lck.c projects/amd64_xen_pv/crypto/openssl/crypto/ec/ec2_smpt.c projects/amd64_xen_pv/crypto/openssl/crypto/engine/eng_padlock.c projects/amd64_xen_pv/crypto/openssl/crypto/err/err_bio.c projects/amd64_xen_pv/crypto/openssl/crypto/err/err_def.c projects/amd64_xen_pv/crypto/openssl/crypto/err/err_str.c projects/amd64_xen_pv/crypto/openssl/crypto/err/openssl.ec projects/amd64_xen_pv/crypto/openssl/crypto/evp/dig_eng.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/enc_min.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/evp_cnf.c projects/amd64_xen_pv/crypto/openssl/crypto/fips_err.c projects/amd64_xen_pv/crypto/openssl/crypto/md4/md4s.cpp projects/amd64_xen_pv/crypto/openssl/crypto/md5/md5s.cpp projects/amd64_xen_pv/crypto/openssl/crypto/perlasm/x86ms.pl projects/amd64_xen_pv/crypto/openssl/crypto/perlasm/x86unix.pl projects/amd64_xen_pv/crypto/openssl/crypto/pqueue/pq_compat.h projects/amd64_xen_pv/crypto/openssl/crypto/rand/rand_eng.c projects/amd64_xen_pv/crypto/openssl/crypto/rand/rand_nw.c projects/amd64_xen_pv/crypto/openssl/crypto/rand/rand_os2.c projects/amd64_xen_pv/crypto/openssl/crypto/rand/rand_vms.c projects/amd64_xen_pv/crypto/openssl/crypto/rand/rand_win.c projects/amd64_xen_pv/crypto/openssl/crypto/rc4/asm/rc4-ia64.S projects/amd64_xen_pv/crypto/openssl/crypto/rc4/rc4_fblk.c projects/amd64_xen_pv/crypto/openssl/crypto/rc4/rc4s.cpp projects/amd64_xen_pv/crypto/openssl/crypto/rc5/rc5s.cpp projects/amd64_xen_pv/crypto/openssl/crypto/ripemd/asm/rips.cpp projects/amd64_xen_pv/crypto/openssl/crypto/rsa/rsa_eng.c projects/amd64_xen_pv/crypto/openssl/crypto/rsa/rsa_x931g.c projects/amd64_xen_pv/crypto/openssl/crypto/sha/asm/sha512-sse2.pl projects/amd64_xen_pv/crypto/openssl/crypto/sha/sha1s.cpp projects/amd64_xen_pv/crypto/openssl/crypto/tmdiff.c projects/amd64_xen_pv/crypto/openssl/crypto/tmdiff.h projects/amd64_xen_pv/crypto/openssl/demos/ projects/amd64_xen_pv/crypto/openssl/engines/alpha.opt projects/amd64_xen_pv/crypto/openssl/engines/e_4758cca.ec projects/amd64_xen_pv/crypto/openssl/engines/e_aep.ec projects/amd64_xen_pv/crypto/openssl/engines/e_atalla.ec projects/amd64_xen_pv/crypto/openssl/engines/e_capi.ec projects/amd64_xen_pv/crypto/openssl/engines/e_chil.ec projects/amd64_xen_pv/crypto/openssl/engines/e_cswift.ec projects/amd64_xen_pv/crypto/openssl/engines/e_gmp.ec projects/amd64_xen_pv/crypto/openssl/engines/e_nuron.ec projects/amd64_xen_pv/crypto/openssl/engines/e_sureware.ec projects/amd64_xen_pv/crypto/openssl/engines/e_ubsec.ec projects/amd64_xen_pv/crypto/openssl/engines/ia64.opt projects/amd64_xen_pv/crypto/openssl/engines/vax.opt projects/amd64_xen_pv/crypto/openssl/fips/ projects/amd64_xen_pv/crypto/openssl/openssl.doxy projects/amd64_xen_pv/crypto/openssl/openssl.spec projects/amd64_xen_pv/crypto/openssl/test/ projects/amd64_xen_pv/crypto/openssl/times/ projects/amd64_xen_pv/crypto/openssl/tools/ projects/amd64_xen_pv/crypto/openssl/util/arx.pl projects/amd64_xen_pv/crypto/openssl/util/fipslink.pl projects/amd64_xen_pv/crypto/openssl/util/mksdef.pl projects/amd64_xen_pv/secure/lib/libcrypto/man/des_modes.3 projects/amd64_xen_pv/secure/lib/libcrypto/opensslconf-amd64.h projects/amd64_xen_pv/secure/lib/libcrypto/opensslconf-i386.h projects/amd64_xen_pv/secure/usr.bin/openssl/man/config.1 projects/amd64_xen_pv/sys/arm/at91/at91_pio_rm9200.h projects/amd64_xen_pv/sys/arm/at91/hints.at91rm9200 projects/amd64_xen_pv/sys/arm/at91/hints.at91sam9261 projects/amd64_xen_pv/sys/arm/at91/uart_cpu_at91rm9200usart.c projects/amd64_xen_pv/sys/vm/vm_contig.c Modified: projects/amd64_xen_pv/Makefile projects/amd64_xen_pv/Makefile.inc1 projects/amd64_xen_pv/ObsoleteFiles.inc projects/amd64_xen_pv/UPDATING projects/amd64_xen_pv/bin/cat/cat.c projects/amd64_xen_pv/bin/ps/print.c projects/amd64_xen_pv/bin/sh/eval.c projects/amd64_xen_pv/bin/sh/exec.c projects/amd64_xen_pv/bin/sh/exec.h projects/amd64_xen_pv/bin/sh/input.c projects/amd64_xen_pv/bin/sh/jobs.c projects/amd64_xen_pv/bin/sh/jobs.h projects/amd64_xen_pv/bin/sh/sh.1 projects/amd64_xen_pv/bin/sh/trap.c projects/amd64_xen_pv/bin/sh/trap.h projects/amd64_xen_pv/bin/stty/extern.h projects/amd64_xen_pv/cddl/compat/opensolaris/misc/deviceid.c projects/amd64_xen_pv/cddl/contrib/dtracetoolkit/dtruss projects/amd64_xen_pv/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c projects/amd64_xen_pv/cddl/contrib/opensolaris/lib/libdtrace/common/dt_cc.c projects/amd64_xen_pv/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c projects/amd64_xen_pv/cddl/contrib/opensolaris/lib/libdtrace/common/dt_parser.c projects/amd64_xen_pv/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pragma.c projects/amd64_xen_pv/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.c projects/amd64_xen_pv/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.h projects/amd64_xen_pv/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_config.c projects/amd64_xen_pv/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c projects/amd64_xen_pv/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c projects/amd64_xen_pv/cddl/lib/libdtrace/Makefile projects/amd64_xen_pv/cddl/lib/libdtrace/io.d projects/amd64_xen_pv/contrib/bind9/CHANGES projects/amd64_xen_pv/contrib/bind9/lib/dns/resolver.c projects/amd64_xen_pv/contrib/bind9/lib/dns/zone.c projects/amd64_xen_pv/contrib/bind9/version projects/amd64_xen_pv/contrib/binutils/gas/config/tc-i386.c projects/amd64_xen_pv/contrib/binutils/opcodes/i386-dis.c projects/amd64_xen_pv/contrib/binutils/opcodes/i386-opc.h projects/amd64_xen_pv/contrib/binutils/opcodes/i386-opc.tbl projects/amd64_xen_pv/contrib/binutils/opcodes/i386-tbl.h projects/amd64_xen_pv/contrib/dtc/Documentation/dts-format.txt projects/amd64_xen_pv/contrib/dtc/Documentation/manual.txt projects/amd64_xen_pv/contrib/dtc/Makefile projects/amd64_xen_pv/contrib/dtc/checks.c projects/amd64_xen_pv/contrib/dtc/data.c projects/amd64_xen_pv/contrib/dtc/dtc-lexer.l projects/amd64_xen_pv/contrib/dtc/dtc-parser.y projects/amd64_xen_pv/contrib/dtc/dtc.c projects/amd64_xen_pv/contrib/dtc/dtc.h projects/amd64_xen_pv/contrib/dtc/flattree.c projects/amd64_xen_pv/contrib/dtc/fstree.c projects/amd64_xen_pv/contrib/dtc/libfdt/Makefile.libfdt projects/amd64_xen_pv/contrib/dtc/libfdt/fdt.c projects/amd64_xen_pv/contrib/dtc/libfdt/fdt_ro.c projects/amd64_xen_pv/contrib/dtc/libfdt/fdt_rw.c projects/amd64_xen_pv/contrib/dtc/libfdt/libfdt.h projects/amd64_xen_pv/contrib/dtc/libfdt/libfdt_env.h projects/amd64_xen_pv/contrib/dtc/libfdt/libfdt_internal.h projects/amd64_xen_pv/contrib/dtc/livetree.c projects/amd64_xen_pv/contrib/dtc/srcpos.c projects/amd64_xen_pv/contrib/dtc/srcpos.h projects/amd64_xen_pv/contrib/dtc/treesource.c projects/amd64_xen_pv/contrib/dtc/util.c projects/amd64_xen_pv/contrib/dtc/util.h projects/amd64_xen_pv/contrib/gcc/config/arm/freebsd.h projects/amd64_xen_pv/contrib/gcc/config/i386/freebsd.h projects/amd64_xen_pv/contrib/gcc/config/i386/freebsd64.h projects/amd64_xen_pv/contrib/gcc/config/ia64/freebsd.h projects/amd64_xen_pv/contrib/gcc/config/mips/freebsd.h projects/amd64_xen_pv/contrib/gcc/config/rs6000/freebsd.h projects/amd64_xen_pv/contrib/gcc/config/sparc/freebsd.h projects/amd64_xen_pv/contrib/groff/tmac/doc-common projects/amd64_xen_pv/contrib/groff/tmac/doc-syms projects/amd64_xen_pv/contrib/groff/tmac/doc.tmac projects/amd64_xen_pv/contrib/groff/tmac/groff_mdoc.man projects/amd64_xen_pv/contrib/less/NEWS projects/amd64_xen_pv/contrib/less/README projects/amd64_xen_pv/contrib/less/brac.c projects/amd64_xen_pv/contrib/less/ch.c projects/amd64_xen_pv/contrib/less/charset.c projects/amd64_xen_pv/contrib/less/charset.h projects/amd64_xen_pv/contrib/less/cmd.h projects/amd64_xen_pv/contrib/less/cmdbuf.c projects/amd64_xen_pv/contrib/less/command.c projects/amd64_xen_pv/contrib/less/cvt.c projects/amd64_xen_pv/contrib/less/decode.c projects/amd64_xen_pv/contrib/less/defines.ds projects/amd64_xen_pv/contrib/less/defines.o2 projects/amd64_xen_pv/contrib/less/defines.o9 projects/amd64_xen_pv/contrib/less/defines.wn projects/amd64_xen_pv/contrib/less/edit.c projects/amd64_xen_pv/contrib/less/filename.c projects/amd64_xen_pv/contrib/less/forwback.c projects/amd64_xen_pv/contrib/less/funcs.h projects/amd64_xen_pv/contrib/less/help.c projects/amd64_xen_pv/contrib/less/ifile.c projects/amd64_xen_pv/contrib/less/input.c projects/amd64_xen_pv/contrib/less/jump.c projects/amd64_xen_pv/contrib/less/less.h projects/amd64_xen_pv/contrib/less/less.hlp projects/amd64_xen_pv/contrib/less/less.man projects/amd64_xen_pv/contrib/less/less.nro projects/amd64_xen_pv/contrib/less/lessecho.c projects/amd64_xen_pv/contrib/less/lessecho.man projects/amd64_xen_pv/contrib/less/lessecho.nro projects/amd64_xen_pv/contrib/less/lesskey.c projects/amd64_xen_pv/contrib/less/lesskey.h projects/amd64_xen_pv/contrib/less/lesskey.man projects/amd64_xen_pv/contrib/less/lesskey.nro projects/amd64_xen_pv/contrib/less/lglob.h projects/amd64_xen_pv/contrib/less/line.c projects/amd64_xen_pv/contrib/less/linenum.c projects/amd64_xen_pv/contrib/less/lsystem.c projects/amd64_xen_pv/contrib/less/main.c projects/amd64_xen_pv/contrib/less/mark.c projects/amd64_xen_pv/contrib/less/mkhelp.c projects/amd64_xen_pv/contrib/less/optfunc.c projects/amd64_xen_pv/contrib/less/option.c projects/amd64_xen_pv/contrib/less/option.h projects/amd64_xen_pv/contrib/less/opttbl.c projects/amd64_xen_pv/contrib/less/os.c projects/amd64_xen_pv/contrib/less/output.c projects/amd64_xen_pv/contrib/less/pattern.c projects/amd64_xen_pv/contrib/less/pattern.h projects/amd64_xen_pv/contrib/less/pckeys.h projects/amd64_xen_pv/contrib/less/position.c projects/amd64_xen_pv/contrib/less/position.h projects/amd64_xen_pv/contrib/less/prompt.c projects/amd64_xen_pv/contrib/less/screen.c projects/amd64_xen_pv/contrib/less/scrsize.c projects/amd64_xen_pv/contrib/less/search.c projects/amd64_xen_pv/contrib/less/signal.c projects/amd64_xen_pv/contrib/less/tags.c projects/amd64_xen_pv/contrib/less/ttyin.c projects/amd64_xen_pv/contrib/less/version.c projects/amd64_xen_pv/contrib/libarchive/FREEBSD-Xlist (contents, props changed) projects/amd64_xen_pv/contrib/libarchive/FREEBSD-upgrade projects/amd64_xen_pv/contrib/libarchive/NEWS projects/amd64_xen_pv/contrib/libarchive/README projects/amd64_xen_pv/contrib/libarchive/cpio/bsdcpio.1 projects/amd64_xen_pv/contrib/libarchive/cpio/cmdline.c projects/amd64_xen_pv/contrib/libarchive/cpio/cpio.c projects/amd64_xen_pv/contrib/libarchive/cpio/cpio.h projects/amd64_xen_pv/contrib/libarchive/cpio/test/main.c projects/amd64_xen_pv/contrib/libarchive/cpio/test/test.h projects/amd64_xen_pv/contrib/libarchive/libarchive/archive.h projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_acl.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_check_magic.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_endian.h projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_entry.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_entry.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_entry.h projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_entry_acl.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_entry_link_resolver.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_entry_linkify.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_entry_paths.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_entry_perms.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_entry_stat.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_entry_stat.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_entry_time.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_ppmd7.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_private.h projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_read.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_read.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_read_data.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_read_disk.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_read_disk_posix.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_read_disk_private.h projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_read_extract.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_read_filter.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_read_format.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_read_free.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_read_header.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_read_new.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_read_open.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_read_open_fd.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_read_open_filename.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_read_private.h projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_read_set_options.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_read_support_filter_rpm.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_read_support_format_7zip.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_read_support_format_cab.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_read_support_format_cpio.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_read_support_format_iso9660.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_read_support_format_lha.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_read_support_format_mtree.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_read_support_format_rar.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_read_support_format_tar.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_read_support_format_xar.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_read_support_format_zip.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_string.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_string.h projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_string_composition.h projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_string_sprintf.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_util.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_util.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_add_filter_bzip2.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_add_filter_compress.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_add_filter_gzip.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_add_filter_program.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_add_filter_xz.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_blocksize.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_data.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_disk.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_disk_posix.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_disk_private.h projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_disk_set_standard_lookup.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_filter.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_finish_entry.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_format.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_free.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_header.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_new.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_open.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_open_filename.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_private.h projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_set_format_7zip.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_set_format_ar.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_set_format_cpio.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_set_format_cpio_newc.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_set_format_gnutar.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_set_format_iso9660.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_set_format_mtree.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_set_format_pax.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_set_format_ustar.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_set_format_xar.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_set_format_zip.c projects/amd64_xen_pv/contrib/libarchive/libarchive/archive_write_set_options.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/cpio.5 projects/amd64_xen_pv/contrib/libarchive/libarchive/libarchive-formats.5 projects/amd64_xen_pv/contrib/libarchive/libarchive/libarchive.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/libarchive_changes.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/libarchive_internals.3 projects/amd64_xen_pv/contrib/libarchive/libarchive/tar.5 projects/amd64_xen_pv/contrib/libarchive/libarchive/test/main.c projects/amd64_xen_pv/contrib/libarchive/libarchive/test/read_open_memory.c projects/amd64_xen_pv/contrib/libarchive/libarchive/test/test.h projects/amd64_xen_pv/contrib/libarchive/libarchive/test/test_archive_string_conversion.c projects/amd64_xen_pv/contrib/libarchive/libarchive/test/test_compat_zip.c projects/amd64_xen_pv/contrib/libarchive/libarchive/test/test_read_disk_directory_traversals.c projects/amd64_xen_pv/contrib/libarchive/libarchive/test/test_read_format_7zip.c projects/amd64_xen_pv/contrib/libarchive/libarchive/test/test_read_format_cab.c projects/amd64_xen_pv/contrib/libarchive/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c projects/amd64_xen_pv/contrib/libarchive/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c projects/amd64_xen_pv/contrib/libarchive/libarchive/test/test_read_format_rar.c projects/amd64_xen_pv/contrib/libarchive/libarchive/test/test_read_format_rar_unicode.rar.uu projects/amd64_xen_pv/contrib/libarchive/libarchive/test/test_read_format_tar_filename.c projects/amd64_xen_pv/contrib/libarchive/libarchive/test/test_read_pax_truncated.c projects/amd64_xen_pv/contrib/libarchive/libarchive/test/test_read_position.c projects/amd64_xen_pv/contrib/libarchive/libarchive/test/test_sparse_basic.c projects/amd64_xen_pv/contrib/libarchive/libarchive/test/test_write_format_zip.c projects/amd64_xen_pv/contrib/libarchive/libarchive_fe/err.c projects/amd64_xen_pv/contrib/libarchive/libarchive_fe/err.h projects/amd64_xen_pv/contrib/libarchive/tar/bsdtar.1 projects/amd64_xen_pv/contrib/libarchive/tar/bsdtar.c projects/amd64_xen_pv/contrib/libarchive/tar/bsdtar.h projects/amd64_xen_pv/contrib/libarchive/tar/read.c projects/amd64_xen_pv/contrib/libarchive/tar/test/main.c projects/amd64_xen_pv/contrib/libarchive/tar/test/test.h projects/amd64_xen_pv/contrib/libarchive/tar/test/test_basic.c projects/amd64_xen_pv/contrib/libarchive/tar/write.c projects/amd64_xen_pv/contrib/llvm/tools/clang/lib/Driver/Tools.cpp projects/amd64_xen_pv/contrib/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp projects/amd64_xen_pv/crypto/openssl/CHANGES projects/amd64_xen_pv/crypto/openssl/CHANGES.SSLeay projects/amd64_xen_pv/crypto/openssl/Configure projects/amd64_xen_pv/crypto/openssl/INSTALL projects/amd64_xen_pv/crypto/openssl/Makefile projects/amd64_xen_pv/crypto/openssl/Makefile.org projects/amd64_xen_pv/crypto/openssl/Makefile.shared projects/amd64_xen_pv/crypto/openssl/NEWS projects/amd64_xen_pv/crypto/openssl/README projects/amd64_xen_pv/crypto/openssl/apps/Makefile projects/amd64_xen_pv/crypto/openssl/apps/apps.c projects/amd64_xen_pv/crypto/openssl/apps/apps.h projects/amd64_xen_pv/crypto/openssl/apps/asn1pars.c projects/amd64_xen_pv/crypto/openssl/apps/ca.c projects/amd64_xen_pv/crypto/openssl/apps/ciphers.c projects/amd64_xen_pv/crypto/openssl/apps/client.pem projects/amd64_xen_pv/crypto/openssl/apps/cms.c projects/amd64_xen_pv/crypto/openssl/apps/crl2p7.c projects/amd64_xen_pv/crypto/openssl/apps/dgst.c projects/amd64_xen_pv/crypto/openssl/apps/dh.c projects/amd64_xen_pv/crypto/openssl/apps/dhparam.c projects/amd64_xen_pv/crypto/openssl/apps/dsa.c projects/amd64_xen_pv/crypto/openssl/apps/ec.c projects/amd64_xen_pv/crypto/openssl/apps/ecparam.c projects/amd64_xen_pv/crypto/openssl/apps/enc.c projects/amd64_xen_pv/crypto/openssl/apps/engine.c projects/amd64_xen_pv/crypto/openssl/apps/errstr.c projects/amd64_xen_pv/crypto/openssl/apps/gendh.c projects/amd64_xen_pv/crypto/openssl/apps/genrsa.c projects/amd64_xen_pv/crypto/openssl/apps/ocsp.c projects/amd64_xen_pv/crypto/openssl/apps/openssl.c projects/amd64_xen_pv/crypto/openssl/apps/openssl.cnf projects/amd64_xen_pv/crypto/openssl/apps/pkcs12.c projects/amd64_xen_pv/crypto/openssl/apps/pkcs7.c projects/amd64_xen_pv/crypto/openssl/apps/pkcs8.c projects/amd64_xen_pv/crypto/openssl/apps/prime.c projects/amd64_xen_pv/crypto/openssl/apps/progs.h projects/amd64_xen_pv/crypto/openssl/apps/progs.pl projects/amd64_xen_pv/crypto/openssl/apps/req.c projects/amd64_xen_pv/crypto/openssl/apps/rsa.c projects/amd64_xen_pv/crypto/openssl/apps/rsautl.c projects/amd64_xen_pv/crypto/openssl/apps/s_apps.h projects/amd64_xen_pv/crypto/openssl/apps/s_cb.c projects/amd64_xen_pv/crypto/openssl/apps/s_client.c projects/amd64_xen_pv/crypto/openssl/apps/s_server.c projects/amd64_xen_pv/crypto/openssl/apps/s_socket.c projects/amd64_xen_pv/crypto/openssl/apps/s_time.c projects/amd64_xen_pv/crypto/openssl/apps/server.pem projects/amd64_xen_pv/crypto/openssl/apps/server2.pem projects/amd64_xen_pv/crypto/openssl/apps/sess_id.c projects/amd64_xen_pv/crypto/openssl/apps/smime.c projects/amd64_xen_pv/crypto/openssl/apps/speed.c projects/amd64_xen_pv/crypto/openssl/apps/verify.c projects/amd64_xen_pv/crypto/openssl/apps/x509.c projects/amd64_xen_pv/crypto/openssl/config projects/amd64_xen_pv/crypto/openssl/crypto/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/aes/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/aes/aes.h projects/amd64_xen_pv/crypto/openssl/crypto/aes/aes_cbc.c projects/amd64_xen_pv/crypto/openssl/crypto/aes/aes_cfb.c projects/amd64_xen_pv/crypto/openssl/crypto/aes/aes_core.c projects/amd64_xen_pv/crypto/openssl/crypto/aes/aes_ctr.c projects/amd64_xen_pv/crypto/openssl/crypto/aes/aes_ige.c projects/amd64_xen_pv/crypto/openssl/crypto/aes/aes_misc.c projects/amd64_xen_pv/crypto/openssl/crypto/aes/aes_ofb.c projects/amd64_xen_pv/crypto/openssl/crypto/aes/asm/aes-586.pl projects/amd64_xen_pv/crypto/openssl/crypto/aes/asm/aes-x86_64.pl projects/amd64_xen_pv/crypto/openssl/crypto/asn1/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/asn1/a_bitstr.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/a_digest.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/a_dup.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/a_gentm.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/a_int.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/a_object.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/a_octet.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/a_set.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/a_sign.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/a_strnid.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/a_time.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/a_type.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/a_utctm.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/a_verify.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/asn1.h projects/amd64_xen_pv/crypto/openssl/crypto/asn1/asn1_err.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/asn1_gen.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/asn1_lib.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/asn1_mac.h projects/amd64_xen_pv/crypto/openssl/crypto/asn1/asn1_par.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/asn1t.h projects/amd64_xen_pv/crypto/openssl/crypto/asn1/asn_mime.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/asn_pack.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/charmap.h projects/amd64_xen_pv/crypto/openssl/crypto/asn1/d2i_pr.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/d2i_pu.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/i2d_pr.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/n_pkey.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/nsseq.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/p5_pbe.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/p5_pbev2.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/p8_pkey.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/t_crl.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/t_pkey.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/t_req.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/t_spki.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/t_x509.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/tasn_dec.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/tasn_enc.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/tasn_fre.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/tasn_new.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/tasn_prn.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/tasn_typ.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/x_algor.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/x_crl.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/x_long.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/x_name.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/x_pubkey.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/x_req.c projects/amd64_xen_pv/crypto/openssl/crypto/asn1/x_x509.c projects/amd64_xen_pv/crypto/openssl/crypto/bf/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/bf/asm/bf-586.pl projects/amd64_xen_pv/crypto/openssl/crypto/bf/bf_skey.c projects/amd64_xen_pv/crypto/openssl/crypto/bf/blowfish.h projects/amd64_xen_pv/crypto/openssl/crypto/bio/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/bio/b_print.c projects/amd64_xen_pv/crypto/openssl/crypto/bio/b_sock.c projects/amd64_xen_pv/crypto/openssl/crypto/bio/bio.h projects/amd64_xen_pv/crypto/openssl/crypto/bio/bio_cb.c projects/amd64_xen_pv/crypto/openssl/crypto/bio/bio_err.c projects/amd64_xen_pv/crypto/openssl/crypto/bio/bio_lcl.h projects/amd64_xen_pv/crypto/openssl/crypto/bio/bio_lib.c projects/amd64_xen_pv/crypto/openssl/crypto/bio/bss_acpt.c projects/amd64_xen_pv/crypto/openssl/crypto/bio/bss_bio.c projects/amd64_xen_pv/crypto/openssl/crypto/bio/bss_dgram.c projects/amd64_xen_pv/crypto/openssl/crypto/bio/bss_fd.c projects/amd64_xen_pv/crypto/openssl/crypto/bio/bss_file.c projects/amd64_xen_pv/crypto/openssl/crypto/bio/bss_log.c projects/amd64_xen_pv/crypto/openssl/crypto/bio/bss_mem.c projects/amd64_xen_pv/crypto/openssl/crypto/bn/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/bn/asm/bn-586.pl projects/amd64_xen_pv/crypto/openssl/crypto/bn/asm/co-586.pl projects/amd64_xen_pv/crypto/openssl/crypto/bn/asm/ppc.pl projects/amd64_xen_pv/crypto/openssl/crypto/bn/asm/sparcv8plus.S projects/amd64_xen_pv/crypto/openssl/crypto/bn/asm/x86_64-gcc.c projects/amd64_xen_pv/crypto/openssl/crypto/bn/asm/x86_64-mont.pl projects/amd64_xen_pv/crypto/openssl/crypto/bn/bn.h projects/amd64_xen_pv/crypto/openssl/crypto/bn/bn_asm.c projects/amd64_xen_pv/crypto/openssl/crypto/bn/bn_blind.c projects/amd64_xen_pv/crypto/openssl/crypto/bn/bn_ctx.c projects/amd64_xen_pv/crypto/openssl/crypto/bn/bn_div.c projects/amd64_xen_pv/crypto/openssl/crypto/bn/bn_exp.c projects/amd64_xen_pv/crypto/openssl/crypto/bn/bn_gf2m.c projects/amd64_xen_pv/crypto/openssl/crypto/bn/bn_lcl.h projects/amd64_xen_pv/crypto/openssl/crypto/bn/bn_lib.c projects/amd64_xen_pv/crypto/openssl/crypto/bn/bn_mont.c projects/amd64_xen_pv/crypto/openssl/crypto/bn/bn_nist.c projects/amd64_xen_pv/crypto/openssl/crypto/bn/bn_print.c projects/amd64_xen_pv/crypto/openssl/crypto/bn/bn_shift.c projects/amd64_xen_pv/crypto/openssl/crypto/bn/bntest.c projects/amd64_xen_pv/crypto/openssl/crypto/bn/exptest.c projects/amd64_xen_pv/crypto/openssl/crypto/buffer/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/buffer/buf_err.c projects/amd64_xen_pv/crypto/openssl/crypto/buffer/buf_str.c projects/amd64_xen_pv/crypto/openssl/crypto/buffer/buffer.c projects/amd64_xen_pv/crypto/openssl/crypto/buffer/buffer.h projects/amd64_xen_pv/crypto/openssl/crypto/camellia/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/camellia/camellia.c projects/amd64_xen_pv/crypto/openssl/crypto/camellia/camellia.h projects/amd64_xen_pv/crypto/openssl/crypto/camellia/cmll_cbc.c projects/amd64_xen_pv/crypto/openssl/crypto/camellia/cmll_cfb.c projects/amd64_xen_pv/crypto/openssl/crypto/camellia/cmll_ctr.c projects/amd64_xen_pv/crypto/openssl/crypto/camellia/cmll_locl.h projects/amd64_xen_pv/crypto/openssl/crypto/camellia/cmll_misc.c projects/amd64_xen_pv/crypto/openssl/crypto/camellia/cmll_ofb.c projects/amd64_xen_pv/crypto/openssl/crypto/cast/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/cast/asm/cast-586.pl projects/amd64_xen_pv/crypto/openssl/crypto/cast/c_skey.c projects/amd64_xen_pv/crypto/openssl/crypto/cast/cast.h projects/amd64_xen_pv/crypto/openssl/crypto/cms/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/cms/cms.h projects/amd64_xen_pv/crypto/openssl/crypto/cms/cms_asn1.c projects/amd64_xen_pv/crypto/openssl/crypto/cms/cms_env.c projects/amd64_xen_pv/crypto/openssl/crypto/cms/cms_err.c projects/amd64_xen_pv/crypto/openssl/crypto/cms/cms_ess.c projects/amd64_xen_pv/crypto/openssl/crypto/cms/cms_io.c projects/amd64_xen_pv/crypto/openssl/crypto/cms/cms_lcl.h projects/amd64_xen_pv/crypto/openssl/crypto/cms/cms_lib.c projects/amd64_xen_pv/crypto/openssl/crypto/cms/cms_sd.c projects/amd64_xen_pv/crypto/openssl/crypto/cms/cms_smime.c projects/amd64_xen_pv/crypto/openssl/crypto/comp/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/comp/c_rle.c projects/amd64_xen_pv/crypto/openssl/crypto/comp/c_zlib.c projects/amd64_xen_pv/crypto/openssl/crypto/comp/comp_err.c projects/amd64_xen_pv/crypto/openssl/crypto/conf/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/conf/README projects/amd64_xen_pv/crypto/openssl/crypto/conf/conf.h projects/amd64_xen_pv/crypto/openssl/crypto/conf/conf_api.c projects/amd64_xen_pv/crypto/openssl/crypto/conf/conf_def.c projects/amd64_xen_pv/crypto/openssl/crypto/conf/conf_err.c projects/amd64_xen_pv/crypto/openssl/crypto/conf/conf_lib.c projects/amd64_xen_pv/crypto/openssl/crypto/conf/conf_mall.c projects/amd64_xen_pv/crypto/openssl/crypto/conf/conf_mod.c projects/amd64_xen_pv/crypto/openssl/crypto/cpt_err.c projects/amd64_xen_pv/crypto/openssl/crypto/cryptlib.c projects/amd64_xen_pv/crypto/openssl/crypto/cryptlib.h projects/amd64_xen_pv/crypto/openssl/crypto/crypto.h projects/amd64_xen_pv/crypto/openssl/crypto/des/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/des/asm/crypt586.pl projects/amd64_xen_pv/crypto/openssl/crypto/des/asm/des-586.pl projects/amd64_xen_pv/crypto/openssl/crypto/des/asm/des_enc.m4 projects/amd64_xen_pv/crypto/openssl/crypto/des/des.h projects/amd64_xen_pv/crypto/openssl/crypto/des/des_enc.c projects/amd64_xen_pv/crypto/openssl/crypto/des/des_locl.h projects/amd64_xen_pv/crypto/openssl/crypto/des/ecb_enc.c projects/amd64_xen_pv/crypto/openssl/crypto/des/enc_read.c projects/amd64_xen_pv/crypto/openssl/crypto/des/enc_writ.c projects/amd64_xen_pv/crypto/openssl/crypto/des/fcrypt_b.c projects/amd64_xen_pv/crypto/openssl/crypto/des/set_key.c projects/amd64_xen_pv/crypto/openssl/crypto/des/xcbc_enc.c projects/amd64_xen_pv/crypto/openssl/crypto/dh/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/dh/dh.h projects/amd64_xen_pv/crypto/openssl/crypto/dh/dh_asn1.c projects/amd64_xen_pv/crypto/openssl/crypto/dh/dh_check.c projects/amd64_xen_pv/crypto/openssl/crypto/dh/dh_err.c projects/amd64_xen_pv/crypto/openssl/crypto/dh/dh_gen.c projects/amd64_xen_pv/crypto/openssl/crypto/dh/dh_key.c projects/amd64_xen_pv/crypto/openssl/crypto/dh/dh_lib.c projects/amd64_xen_pv/crypto/openssl/crypto/dsa/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/dsa/dsa.h projects/amd64_xen_pv/crypto/openssl/crypto/dsa/dsa_asn1.c projects/amd64_xen_pv/crypto/openssl/crypto/dsa/dsa_err.c projects/amd64_xen_pv/crypto/openssl/crypto/dsa/dsa_gen.c projects/amd64_xen_pv/crypto/openssl/crypto/dsa/dsa_key.c projects/amd64_xen_pv/crypto/openssl/crypto/dsa/dsa_lib.c projects/amd64_xen_pv/crypto/openssl/crypto/dsa/dsa_ossl.c projects/amd64_xen_pv/crypto/openssl/crypto/dsa/dsa_sign.c projects/amd64_xen_pv/crypto/openssl/crypto/dsa/dsa_vrf.c projects/amd64_xen_pv/crypto/openssl/crypto/dsa/dsatest.c projects/amd64_xen_pv/crypto/openssl/crypto/dso/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/dso/dso.h projects/amd64_xen_pv/crypto/openssl/crypto/dso/dso_dl.c projects/amd64_xen_pv/crypto/openssl/crypto/dso/dso_dlfcn.c projects/amd64_xen_pv/crypto/openssl/crypto/dso/dso_err.c projects/amd64_xen_pv/crypto/openssl/crypto/dso/dso_lib.c projects/amd64_xen_pv/crypto/openssl/crypto/dso/dso_null.c projects/amd64_xen_pv/crypto/openssl/crypto/dso/dso_openssl.c projects/amd64_xen_pv/crypto/openssl/crypto/ec/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/ec/ec.h projects/amd64_xen_pv/crypto/openssl/crypto/ec/ec2_mult.c projects/amd64_xen_pv/crypto/openssl/crypto/ec/ec2_smpl.c projects/amd64_xen_pv/crypto/openssl/crypto/ec/ec_asn1.c projects/amd64_xen_pv/crypto/openssl/crypto/ec/ec_curve.c projects/amd64_xen_pv/crypto/openssl/crypto/ec/ec_cvt.c projects/amd64_xen_pv/crypto/openssl/crypto/ec/ec_err.c projects/amd64_xen_pv/crypto/openssl/crypto/ec/ec_key.c projects/amd64_xen_pv/crypto/openssl/crypto/ec/ec_lcl.h projects/amd64_xen_pv/crypto/openssl/crypto/ec/ec_lib.c projects/amd64_xen_pv/crypto/openssl/crypto/ec/ec_mult.c projects/amd64_xen_pv/crypto/openssl/crypto/ec/ecp_mont.c projects/amd64_xen_pv/crypto/openssl/crypto/ec/ecp_nist.c projects/amd64_xen_pv/crypto/openssl/crypto/ec/ecp_smpl.c projects/amd64_xen_pv/crypto/openssl/crypto/ec/ectest.c projects/amd64_xen_pv/crypto/openssl/crypto/ecdh/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/ecdh/ecdh.h projects/amd64_xen_pv/crypto/openssl/crypto/ecdh/ecdhtest.c projects/amd64_xen_pv/crypto/openssl/crypto/ecdh/ech_err.c projects/amd64_xen_pv/crypto/openssl/crypto/ecdh/ech_lib.c projects/amd64_xen_pv/crypto/openssl/crypto/ecdh/ech_locl.h projects/amd64_xen_pv/crypto/openssl/crypto/ecdh/ech_ossl.c projects/amd64_xen_pv/crypto/openssl/crypto/ecdsa/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/ecdsa/ecdsa.h projects/amd64_xen_pv/crypto/openssl/crypto/ecdsa/ecdsatest.c projects/amd64_xen_pv/crypto/openssl/crypto/ecdsa/ecs_err.c projects/amd64_xen_pv/crypto/openssl/crypto/ecdsa/ecs_lib.c projects/amd64_xen_pv/crypto/openssl/crypto/ecdsa/ecs_locl.h projects/amd64_xen_pv/crypto/openssl/crypto/ecdsa/ecs_ossl.c projects/amd64_xen_pv/crypto/openssl/crypto/engine/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/engine/eng_all.c projects/amd64_xen_pv/crypto/openssl/crypto/engine/eng_cryptodev.c projects/amd64_xen_pv/crypto/openssl/crypto/engine/eng_dyn.c projects/amd64_xen_pv/crypto/openssl/crypto/engine/eng_err.c projects/amd64_xen_pv/crypto/openssl/crypto/engine/eng_fat.c projects/amd64_xen_pv/crypto/openssl/crypto/engine/eng_int.h projects/amd64_xen_pv/crypto/openssl/crypto/engine/eng_lib.c projects/amd64_xen_pv/crypto/openssl/crypto/engine/eng_list.c projects/amd64_xen_pv/crypto/openssl/crypto/engine/eng_openssl.c projects/amd64_xen_pv/crypto/openssl/crypto/engine/eng_table.c projects/amd64_xen_pv/crypto/openssl/crypto/engine/engine.h projects/amd64_xen_pv/crypto/openssl/crypto/engine/enginetest.c projects/amd64_xen_pv/crypto/openssl/crypto/err/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/err/err.c projects/amd64_xen_pv/crypto/openssl/crypto/err/err.h projects/amd64_xen_pv/crypto/openssl/crypto/err/err_all.c projects/amd64_xen_pv/crypto/openssl/crypto/err/err_prn.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/evp/bio_enc.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/bio_md.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/bio_ok.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/c_all.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/c_allc.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/c_alld.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/digest.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/e_aes.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/e_camellia.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/e_des.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/e_des3.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/e_idea.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/e_null.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/e_rc2.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/e_rc4.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/e_seed.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/e_xcbc_d.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/encode.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/evp.h projects/amd64_xen_pv/crypto/openssl/crypto/evp/evp_enc.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/evp_err.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/evp_key.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/evp_lib.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/evp_locl.h projects/amd64_xen_pv/crypto/openssl/crypto/evp/evp_pbe.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/evp_pkey.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/evp_test.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/evptests.txt projects/amd64_xen_pv/crypto/openssl/crypto/evp/m_dss.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/m_dss1.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/m_ecdsa.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/m_md2.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/m_md4.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/m_md5.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/m_mdc2.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/m_ripemd.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/m_sha.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/m_sha1.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/names.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/p5_crpt.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/p5_crpt2.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/p_dec.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/p_enc.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/p_lib.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/p_open.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/p_seal.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/p_sign.c projects/amd64_xen_pv/crypto/openssl/crypto/evp/p_verify.c projects/amd64_xen_pv/crypto/openssl/crypto/ex_data.c projects/amd64_xen_pv/crypto/openssl/crypto/fips_err.h projects/amd64_xen_pv/crypto/openssl/crypto/hmac/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/hmac/hmac.c projects/amd64_xen_pv/crypto/openssl/crypto/hmac/hmac.h projects/amd64_xen_pv/crypto/openssl/crypto/ia64cpuid.S projects/amd64_xen_pv/crypto/openssl/crypto/idea/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/idea/i_skey.c projects/amd64_xen_pv/crypto/openssl/crypto/idea/idea.h projects/amd64_xen_pv/crypto/openssl/crypto/jpake/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/jpake/jpake.c projects/amd64_xen_pv/crypto/openssl/crypto/jpake/jpaketest.c projects/amd64_xen_pv/crypto/openssl/crypto/krb5/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/lhash/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/lhash/lh_stats.c projects/amd64_xen_pv/crypto/openssl/crypto/lhash/lhash.c projects/amd64_xen_pv/crypto/openssl/crypto/lhash/lhash.h projects/amd64_xen_pv/crypto/openssl/crypto/md2/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/md2/md2_dgst.c projects/amd64_xen_pv/crypto/openssl/crypto/md32_common.h projects/amd64_xen_pv/crypto/openssl/crypto/md4/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/md4/md4.h projects/amd64_xen_pv/crypto/openssl/crypto/md4/md4_dgst.c projects/amd64_xen_pv/crypto/openssl/crypto/md5/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/md5/asm/md5-586.pl projects/amd64_xen_pv/crypto/openssl/crypto/md5/asm/md5-x86_64.pl projects/amd64_xen_pv/crypto/openssl/crypto/md5/md5.h projects/amd64_xen_pv/crypto/openssl/crypto/md5/md5_dgst.c projects/amd64_xen_pv/crypto/openssl/crypto/md5/md5_locl.h projects/amd64_xen_pv/crypto/openssl/crypto/mdc2/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/mdc2/mdc2.h projects/amd64_xen_pv/crypto/openssl/crypto/mdc2/mdc2dgst.c projects/amd64_xen_pv/crypto/openssl/crypto/mem.c projects/amd64_xen_pv/crypto/openssl/crypto/mem_dbg.c projects/amd64_xen_pv/crypto/openssl/crypto/o_init.c projects/amd64_xen_pv/crypto/openssl/crypto/o_time.c projects/amd64_xen_pv/crypto/openssl/crypto/o_time.h projects/amd64_xen_pv/crypto/openssl/crypto/objects/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/objects/o_names.c projects/amd64_xen_pv/crypto/openssl/crypto/objects/obj_dat.c projects/amd64_xen_pv/crypto/openssl/crypto/objects/obj_dat.h projects/amd64_xen_pv/crypto/openssl/crypto/objects/obj_dat.pl projects/amd64_xen_pv/crypto/openssl/crypto/objects/obj_err.c projects/amd64_xen_pv/crypto/openssl/crypto/objects/obj_lib.c projects/amd64_xen_pv/crypto/openssl/crypto/objects/obj_mac.h projects/amd64_xen_pv/crypto/openssl/crypto/objects/obj_mac.num projects/amd64_xen_pv/crypto/openssl/crypto/objects/objects.h projects/amd64_xen_pv/crypto/openssl/crypto/objects/objects.pl projects/amd64_xen_pv/crypto/openssl/crypto/objects/objects.txt projects/amd64_xen_pv/crypto/openssl/crypto/ocsp/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/ocsp/ocsp.h projects/amd64_xen_pv/crypto/openssl/crypto/ocsp/ocsp_cl.c projects/amd64_xen_pv/crypto/openssl/crypto/ocsp/ocsp_err.c projects/amd64_xen_pv/crypto/openssl/crypto/ocsp/ocsp_ext.c projects/amd64_xen_pv/crypto/openssl/crypto/ocsp/ocsp_ht.c projects/amd64_xen_pv/crypto/openssl/crypto/ocsp/ocsp_lib.c projects/amd64_xen_pv/crypto/openssl/crypto/ocsp/ocsp_prn.c projects/amd64_xen_pv/crypto/openssl/crypto/ocsp/ocsp_vfy.c projects/amd64_xen_pv/crypto/openssl/crypto/opensslconf.h projects/amd64_xen_pv/crypto/openssl/crypto/opensslconf.h.in projects/amd64_xen_pv/crypto/openssl/crypto/opensslv.h projects/amd64_xen_pv/crypto/openssl/crypto/ossl_typ.h projects/amd64_xen_pv/crypto/openssl/crypto/pem/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/pem/pem.h projects/amd64_xen_pv/crypto/openssl/crypto/pem/pem_all.c projects/amd64_xen_pv/crypto/openssl/crypto/pem/pem_err.c projects/amd64_xen_pv/crypto/openssl/crypto/pem/pem_info.c projects/amd64_xen_pv/crypto/openssl/crypto/pem/pem_lib.c projects/amd64_xen_pv/crypto/openssl/crypto/pem/pem_pkey.c projects/amd64_xen_pv/crypto/openssl/crypto/pem/pem_x509.c projects/amd64_xen_pv/crypto/openssl/crypto/pem/pem_xaux.c projects/amd64_xen_pv/crypto/openssl/crypto/perlasm/x86_64-xlate.pl projects/amd64_xen_pv/crypto/openssl/crypto/perlasm/x86asm.pl projects/amd64_xen_pv/crypto/openssl/crypto/perlasm/x86nasm.pl projects/amd64_xen_pv/crypto/openssl/crypto/pkcs12/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/pkcs12/p12_add.c projects/amd64_xen_pv/crypto/openssl/crypto/pkcs12/p12_attr.c projects/amd64_xen_pv/crypto/openssl/crypto/pkcs12/p12_crpt.c projects/amd64_xen_pv/crypto/openssl/crypto/pkcs12/p12_crt.c projects/amd64_xen_pv/crypto/openssl/crypto/pkcs12/p12_decr.c projects/amd64_xen_pv/crypto/openssl/crypto/pkcs12/p12_key.c projects/amd64_xen_pv/crypto/openssl/crypto/pkcs12/p12_kiss.c projects/amd64_xen_pv/crypto/openssl/crypto/pkcs12/p12_mutl.c projects/amd64_xen_pv/crypto/openssl/crypto/pkcs12/p12_utl.c projects/amd64_xen_pv/crypto/openssl/crypto/pkcs12/pk12err.c projects/amd64_xen_pv/crypto/openssl/crypto/pkcs12/pkcs12.h projects/amd64_xen_pv/crypto/openssl/crypto/pkcs7/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/pkcs7/pk7_asn1.c projects/amd64_xen_pv/crypto/openssl/crypto/pkcs7/pk7_attr.c projects/amd64_xen_pv/crypto/openssl/crypto/pkcs7/pk7_doit.c projects/amd64_xen_pv/crypto/openssl/crypto/pkcs7/pk7_lib.c projects/amd64_xen_pv/crypto/openssl/crypto/pkcs7/pk7_mime.c projects/amd64_xen_pv/crypto/openssl/crypto/pkcs7/pk7_smime.c projects/amd64_xen_pv/crypto/openssl/crypto/pkcs7/pkcs7.h projects/amd64_xen_pv/crypto/openssl/crypto/pkcs7/pkcs7err.c projects/amd64_xen_pv/crypto/openssl/crypto/pqueue/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/pqueue/pqueue.c projects/amd64_xen_pv/crypto/openssl/crypto/pqueue/pqueue.h projects/amd64_xen_pv/crypto/openssl/crypto/rand/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/rand/md_rand.c projects/amd64_xen_pv/crypto/openssl/crypto/rand/rand.h projects/amd64_xen_pv/crypto/openssl/crypto/rand/rand_egd.c projects/amd64_xen_pv/crypto/openssl/crypto/rand/rand_err.c projects/amd64_xen_pv/crypto/openssl/crypto/rand/rand_lcl.h projects/amd64_xen_pv/crypto/openssl/crypto/rand/rand_lib.c projects/amd64_xen_pv/crypto/openssl/crypto/rand/rand_unix.c projects/amd64_xen_pv/crypto/openssl/crypto/rand/randfile.c projects/amd64_xen_pv/crypto/openssl/crypto/rc2/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/rc2/rc2_skey.c projects/amd64_xen_pv/crypto/openssl/crypto/rc4/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/rc4/asm/rc4-586.pl projects/amd64_xen_pv/crypto/openssl/crypto/rc4/asm/rc4-x86_64.pl projects/amd64_xen_pv/crypto/openssl/crypto/rc4/rc4.h projects/amd64_xen_pv/crypto/openssl/crypto/rc4/rc4_enc.c projects/amd64_xen_pv/crypto/openssl/crypto/rc4/rc4_skey.c projects/amd64_xen_pv/crypto/openssl/crypto/rc4/rc4test.c projects/amd64_xen_pv/crypto/openssl/crypto/rc5/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/rc5/asm/rc5-586.pl projects/amd64_xen_pv/crypto/openssl/crypto/rc5/rc5.h projects/amd64_xen_pv/crypto/openssl/crypto/rc5/rc5_skey.c projects/amd64_xen_pv/crypto/openssl/crypto/ripemd/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/ripemd/asm/rmd-586.pl projects/amd64_xen_pv/crypto/openssl/crypto/ripemd/ripemd.h projects/amd64_xen_pv/crypto/openssl/crypto/ripemd/rmd_dgst.c projects/amd64_xen_pv/crypto/openssl/crypto/ripemd/rmd_locl.h projects/amd64_xen_pv/crypto/openssl/crypto/rsa/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/rsa/rsa.h projects/amd64_xen_pv/crypto/openssl/crypto/rsa/rsa_asn1.c projects/amd64_xen_pv/crypto/openssl/crypto/rsa/rsa_eay.c projects/amd64_xen_pv/crypto/openssl/crypto/rsa/rsa_err.c projects/amd64_xen_pv/crypto/openssl/crypto/rsa/rsa_gen.c projects/amd64_xen_pv/crypto/openssl/crypto/rsa/rsa_lib.c projects/amd64_xen_pv/crypto/openssl/crypto/rsa/rsa_oaep.c projects/amd64_xen_pv/crypto/openssl/crypto/rsa/rsa_pss.c projects/amd64_xen_pv/crypto/openssl/crypto/rsa/rsa_sign.c projects/amd64_xen_pv/crypto/openssl/crypto/rsa/rsa_test.c projects/amd64_xen_pv/crypto/openssl/crypto/seed/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/seed/seed.c projects/amd64_xen_pv/crypto/openssl/crypto/seed/seed.h projects/amd64_xen_pv/crypto/openssl/crypto/seed/seed_cbc.c projects/amd64_xen_pv/crypto/openssl/crypto/seed/seed_cfb.c projects/amd64_xen_pv/crypto/openssl/crypto/seed/seed_ofb.c projects/amd64_xen_pv/crypto/openssl/crypto/sha/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/sha/asm/sha1-586.pl projects/amd64_xen_pv/crypto/openssl/crypto/sha/asm/sha1-ia64.pl projects/amd64_xen_pv/crypto/openssl/crypto/sha/asm/sha1-x86_64.pl projects/amd64_xen_pv/crypto/openssl/crypto/sha/asm/sha512-x86_64.pl projects/amd64_xen_pv/crypto/openssl/crypto/sha/sha.h projects/amd64_xen_pv/crypto/openssl/crypto/sha/sha1_one.c projects/amd64_xen_pv/crypto/openssl/crypto/sha/sha1dgst.c projects/amd64_xen_pv/crypto/openssl/crypto/sha/sha256.c projects/amd64_xen_pv/crypto/openssl/crypto/sha/sha512.c projects/amd64_xen_pv/crypto/openssl/crypto/sha/sha_dgst.c projects/amd64_xen_pv/crypto/openssl/crypto/sha/sha_locl.h projects/amd64_xen_pv/crypto/openssl/crypto/sha/shatest.c projects/amd64_xen_pv/crypto/openssl/crypto/sparccpuid.S projects/amd64_xen_pv/crypto/openssl/crypto/stack/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/stack/safestack.h projects/amd64_xen_pv/crypto/openssl/crypto/stack/stack.c projects/amd64_xen_pv/crypto/openssl/crypto/stack/stack.h projects/amd64_xen_pv/crypto/openssl/crypto/store/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/store/store.h projects/amd64_xen_pv/crypto/openssl/crypto/store/str_err.c projects/amd64_xen_pv/crypto/openssl/crypto/store/str_lib.c projects/amd64_xen_pv/crypto/openssl/crypto/store/str_mem.c projects/amd64_xen_pv/crypto/openssl/crypto/symhacks.h projects/amd64_xen_pv/crypto/openssl/crypto/threads/mttest.c projects/amd64_xen_pv/crypto/openssl/crypto/txt_db/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/txt_db/txt_db.c projects/amd64_xen_pv/crypto/openssl/crypto/txt_db/txt_db.h projects/amd64_xen_pv/crypto/openssl/crypto/ui/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/ui/ui.h projects/amd64_xen_pv/crypto/openssl/crypto/ui/ui_err.c projects/amd64_xen_pv/crypto/openssl/crypto/ui/ui_lib.c projects/amd64_xen_pv/crypto/openssl/crypto/ui/ui_openssl.c projects/amd64_xen_pv/crypto/openssl/crypto/x509/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/x509/by_dir.c projects/amd64_xen_pv/crypto/openssl/crypto/x509/by_file.c projects/amd64_xen_pv/crypto/openssl/crypto/x509/x509.h projects/amd64_xen_pv/crypto/openssl/crypto/x509/x509_cmp.c projects/amd64_xen_pv/crypto/openssl/crypto/x509/x509_err.c projects/amd64_xen_pv/crypto/openssl/crypto/x509/x509_lu.c projects/amd64_xen_pv/crypto/openssl/crypto/x509/x509_obj.c projects/amd64_xen_pv/crypto/openssl/crypto/x509/x509_req.c projects/amd64_xen_pv/crypto/openssl/crypto/x509/x509_set.c projects/amd64_xen_pv/crypto/openssl/crypto/x509/x509_trs.c projects/amd64_xen_pv/crypto/openssl/crypto/x509/x509_txt.c projects/amd64_xen_pv/crypto/openssl/crypto/x509/x509_vfy.c projects/amd64_xen_pv/crypto/openssl/crypto/x509/x509_vfy.h projects/amd64_xen_pv/crypto/openssl/crypto/x509/x509_vpm.c projects/amd64_xen_pv/crypto/openssl/crypto/x509/x509cset.c projects/amd64_xen_pv/crypto/openssl/crypto/x509/x509name.c projects/amd64_xen_pv/crypto/openssl/crypto/x509/x509type.c projects/amd64_xen_pv/crypto/openssl/crypto/x509/x_all.c projects/amd64_xen_pv/crypto/openssl/crypto/x509v3/Makefile projects/amd64_xen_pv/crypto/openssl/crypto/x509v3/ext_dat.h projects/amd64_xen_pv/crypto/openssl/crypto/x509v3/pcy_cache.c projects/amd64_xen_pv/crypto/openssl/crypto/x509v3/pcy_data.c projects/amd64_xen_pv/crypto/openssl/crypto/x509v3/pcy_int.h projects/amd64_xen_pv/crypto/openssl/crypto/x509v3/pcy_map.c projects/amd64_xen_pv/crypto/openssl/crypto/x509v3/pcy_node.c projects/amd64_xen_pv/crypto/openssl/crypto/x509v3/pcy_tree.c projects/amd64_xen_pv/crypto/openssl/crypto/x509v3/v3_addr.c projects/amd64_xen_pv/crypto/openssl/crypto/x509v3/v3_alt.c projects/amd64_xen_pv/crypto/openssl/crypto/x509v3/v3_asid.c projects/amd64_xen_pv/crypto/openssl/crypto/x509v3/v3_conf.c projects/amd64_xen_pv/crypto/openssl/crypto/x509v3/v3_cpols.c projects/amd64_xen_pv/crypto/openssl/crypto/x509v3/v3_crld.c projects/amd64_xen_pv/crypto/openssl/crypto/x509v3/v3_enum.c projects/amd64_xen_pv/crypto/openssl/crypto/x509v3/v3_extku.c projects/amd64_xen_pv/crypto/openssl/crypto/x509v3/v3_genn.c projects/amd64_xen_pv/crypto/openssl/crypto/x509v3/v3_lib.c projects/amd64_xen_pv/crypto/openssl/crypto/x509v3/v3_ncons.c projects/amd64_xen_pv/crypto/openssl/crypto/x509v3/v3_ocsp.c projects/amd64_xen_pv/crypto/openssl/crypto/x509v3/v3_pci.c projects/amd64_xen_pv/crypto/openssl/crypto/x509v3/v3_pcons.c projects/amd64_xen_pv/crypto/openssl/crypto/x509v3/v3_pmaps.c projects/amd64_xen_pv/crypto/openssl/crypto/x509v3/v3_prn.c projects/amd64_xen_pv/crypto/openssl/crypto/x509v3/v3_purp.c projects/amd64_xen_pv/crypto/openssl/crypto/x509v3/v3_skey.c projects/amd64_xen_pv/crypto/openssl/crypto/x509v3/v3_utl.c projects/amd64_xen_pv/crypto/openssl/crypto/x509v3/v3err.c projects/amd64_xen_pv/crypto/openssl/crypto/x509v3/x509v3.h projects/amd64_xen_pv/crypto/openssl/crypto/x86_64cpuid.pl projects/amd64_xen_pv/crypto/openssl/crypto/x86cpuid.pl projects/amd64_xen_pv/crypto/openssl/doc/apps/asn1parse.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/ca.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/ciphers.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/config.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/dgst.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/dhparam.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/dsa.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/dsaparam.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/ec.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/ecparam.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/enc.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/gendsa.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/genrsa.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/ocsp.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/openssl.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/pkcs12.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/pkcs7.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/pkcs8.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/req.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/rsa.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/s_client.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/s_server.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/smime.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/speed.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/spkac.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/verify.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/x509.pod projects/amd64_xen_pv/crypto/openssl/doc/apps/x509v3_config.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/ASN1_generate_nconf.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/BIO_f_md.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/BIO_f_ssl.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/BIO_s_file.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/BIO_s_mem.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/BN_BLINDING_new.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/DSA_get_ex_new_index.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/EVP_DigestInit.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/EVP_SignInit.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/EVP_VerifyInit.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/PKCS7_encrypt.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/PKCS7_sign.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/SMIME_write_PKCS7.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/d2i_RSAPublicKey.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/ecdsa.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/evp.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/hmac.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/lhash.pod projects/amd64_xen_pv/crypto/openssl/doc/crypto/threads.pod projects/amd64_xen_pv/crypto/openssl/doc/ssl/SSL_CTX_new.pod projects/amd64_xen_pv/crypto/openssl/doc/ssl/SSL_CTX_set_mode.pod projects/amd64_xen_pv/crypto/openssl/doc/ssl/SSL_CTX_set_options.pod projects/amd64_xen_pv/crypto/openssl/doc/ssl/SSL_CTX_set_ssl_version.pod projects/amd64_xen_pv/crypto/openssl/doc/ssl/SSL_alert_type_string.pod projects/amd64_xen_pv/crypto/openssl/doc/ssl/SSL_library_init.pod projects/amd64_xen_pv/crypto/openssl/doc/ssl/ssl.pod projects/amd64_xen_pv/crypto/openssl/doc/ssleay.txt projects/amd64_xen_pv/crypto/openssl/doc/standards.txt projects/amd64_xen_pv/crypto/openssl/e_os.h projects/amd64_xen_pv/crypto/openssl/e_os2.h projects/amd64_xen_pv/crypto/openssl/engines/Makefile projects/amd64_xen_pv/crypto/openssl/engines/e_4758cca.c projects/amd64_xen_pv/crypto/openssl/engines/e_aep.c projects/amd64_xen_pv/crypto/openssl/engines/e_capi.c projects/amd64_xen_pv/crypto/openssl/engines/e_capi_err.c projects/amd64_xen_pv/crypto/openssl/engines/e_chil.c projects/amd64_xen_pv/crypto/openssl/engines/e_gmp.c projects/amd64_xen_pv/crypto/openssl/engines/e_sureware.c projects/amd64_xen_pv/crypto/openssl/engines/e_ubsec.c projects/amd64_xen_pv/crypto/openssl/ssl/Makefile projects/amd64_xen_pv/crypto/openssl/ssl/bio_ssl.c projects/amd64_xen_pv/crypto/openssl/ssl/d1_both.c projects/amd64_xen_pv/crypto/openssl/ssl/d1_clnt.c projects/amd64_xen_pv/crypto/openssl/ssl/d1_enc.c projects/amd64_xen_pv/crypto/openssl/ssl/d1_lib.c projects/amd64_xen_pv/crypto/openssl/ssl/d1_meth.c projects/amd64_xen_pv/crypto/openssl/ssl/d1_pkt.c projects/amd64_xen_pv/crypto/openssl/ssl/d1_srvr.c projects/amd64_xen_pv/crypto/openssl/ssl/dtls1.h projects/amd64_xen_pv/crypto/openssl/ssl/kssl.c projects/amd64_xen_pv/crypto/openssl/ssl/kssl.h projects/amd64_xen_pv/crypto/openssl/ssl/kssl_lcl.h projects/amd64_xen_pv/crypto/openssl/ssl/s23_clnt.c projects/amd64_xen_pv/crypto/openssl/ssl/s23_lib.c projects/amd64_xen_pv/crypto/openssl/ssl/s23_meth.c projects/amd64_xen_pv/crypto/openssl/ssl/s23_srvr.c projects/amd64_xen_pv/crypto/openssl/ssl/s2_clnt.c projects/amd64_xen_pv/crypto/openssl/ssl/s2_enc.c projects/amd64_xen_pv/crypto/openssl/ssl/s2_lib.c projects/amd64_xen_pv/crypto/openssl/ssl/s2_meth.c projects/amd64_xen_pv/crypto/openssl/ssl/s2_pkt.c projects/amd64_xen_pv/crypto/openssl/ssl/s2_srvr.c projects/amd64_xen_pv/crypto/openssl/ssl/s3_both.c projects/amd64_xen_pv/crypto/openssl/ssl/s3_clnt.c projects/amd64_xen_pv/crypto/openssl/ssl/s3_enc.c projects/amd64_xen_pv/crypto/openssl/ssl/s3_lib.c projects/amd64_xen_pv/crypto/openssl/ssl/s3_meth.c projects/amd64_xen_pv/crypto/openssl/ssl/s3_pkt.c projects/amd64_xen_pv/crypto/openssl/ssl/s3_srvr.c projects/amd64_xen_pv/crypto/openssl/ssl/ssl.h projects/amd64_xen_pv/crypto/openssl/ssl/ssl2.h projects/amd64_xen_pv/crypto/openssl/ssl/ssl3.h projects/amd64_xen_pv/crypto/openssl/ssl/ssl_algs.c projects/amd64_xen_pv/crypto/openssl/ssl/ssl_asn1.c projects/amd64_xen_pv/crypto/openssl/ssl/ssl_cert.c projects/amd64_xen_pv/crypto/openssl/ssl/ssl_ciph.c projects/amd64_xen_pv/crypto/openssl/ssl/ssl_err.c projects/amd64_xen_pv/crypto/openssl/ssl/ssl_lib.c projects/amd64_xen_pv/crypto/openssl/ssl/ssl_locl.h projects/amd64_xen_pv/crypto/openssl/ssl/ssl_sess.c projects/amd64_xen_pv/crypto/openssl/ssl/ssl_stat.c projects/amd64_xen_pv/crypto/openssl/ssl/ssl_txt.c projects/amd64_xen_pv/crypto/openssl/ssl/ssltest.c projects/amd64_xen_pv/crypto/openssl/ssl/t1_clnt.c projects/amd64_xen_pv/crypto/openssl/ssl/t1_enc.c projects/amd64_xen_pv/crypto/openssl/ssl/t1_lib.c projects/amd64_xen_pv/crypto/openssl/ssl/t1_meth.c projects/amd64_xen_pv/crypto/openssl/ssl/t1_srvr.c projects/amd64_xen_pv/crypto/openssl/ssl/tls1.h projects/amd64_xen_pv/crypto/openssl/util/ck_errf.pl projects/amd64_xen_pv/crypto/openssl/util/clean-depend.pl projects/amd64_xen_pv/crypto/openssl/util/domd projects/amd64_xen_pv/crypto/openssl/util/libeay.num projects/amd64_xen_pv/crypto/openssl/util/mk1mf.pl projects/amd64_xen_pv/crypto/openssl/util/mkdef.pl projects/amd64_xen_pv/crypto/openssl/util/mkerr.pl projects/amd64_xen_pv/crypto/openssl/util/mkfiles.pl projects/amd64_xen_pv/crypto/openssl/util/mklink.pl projects/amd64_xen_pv/crypto/openssl/util/mkstack.pl projects/amd64_xen_pv/crypto/openssl/util/pl/BC-32.pl projects/amd64_xen_pv/crypto/openssl/util/pl/Mingw32.pl projects/amd64_xen_pv/crypto/openssl/util/pl/VC-32.pl projects/amd64_xen_pv/crypto/openssl/util/pl/netware.pl projects/amd64_xen_pv/crypto/openssl/util/point.sh projects/amd64_xen_pv/crypto/openssl/util/selftest.pl projects/amd64_xen_pv/crypto/openssl/util/shlib_wrap.sh projects/amd64_xen_pv/crypto/openssl/util/ssleay.num projects/amd64_xen_pv/etc/defaults/periodic.conf projects/amd64_xen_pv/etc/defaults/rc.conf projects/amd64_xen_pv/etc/devd.conf projects/amd64_xen_pv/etc/mtree/BSD.usr.dist projects/amd64_xen_pv/etc/rc.d/bgfsck projects/amd64_xen_pv/etc/rc.d/bridge projects/amd64_xen_pv/etc/rc.d/cleanvar projects/amd64_xen_pv/etc/rc.d/devd projects/amd64_xen_pv/etc/rc.d/ip6addrctl projects/amd64_xen_pv/etc/rc.d/ipfw projects/amd64_xen_pv/etc/rc.d/jail projects/amd64_xen_pv/etc/rc.d/kldxref projects/amd64_xen_pv/etc/rc.d/named projects/amd64_xen_pv/etc/rc.d/power_profile projects/amd64_xen_pv/etc/rc.d/rarpd projects/amd64_xen_pv/etc/rc.d/tmp projects/amd64_xen_pv/etc/rc.firewall projects/amd64_xen_pv/etc/rc.subr projects/amd64_xen_pv/etc/syslog.conf projects/amd64_xen_pv/games/fortune/datfiles/fortunes projects/amd64_xen_pv/gnu/usr.bin/cc/cc_tools/auto-host.h projects/amd64_xen_pv/gnu/usr.bin/groff/tmac/Makefile projects/amd64_xen_pv/gnu/usr.bin/groff/tmac/mdoc.local projects/amd64_xen_pv/include/printf.h projects/amd64_xen_pv/lib/libarchive/Makefile projects/amd64_xen_pv/lib/libarchive/config_freebsd.h projects/amd64_xen_pv/lib/libarchive/test/Makefile projects/amd64_xen_pv/lib/libc/gen/arc4random.c projects/amd64_xen_pv/lib/libc/gen/directory.3 projects/amd64_xen_pv/lib/libc/i386/gen/getcontextx.c projects/amd64_xen_pv/lib/libc/locale/Makefile.inc projects/amd64_xen_pv/lib/libc/locale/collate.c projects/amd64_xen_pv/lib/libc/locale/ctype_l.3 projects/amd64_xen_pv/lib/libc/locale/setrunelocale.c projects/amd64_xen_pv/lib/libc/net/getaddrinfo.c projects/amd64_xen_pv/lib/libc/rpc/getnetpath.c projects/amd64_xen_pv/lib/libc/stdio/xprintf.c projects/amd64_xen_pv/lib/libc/stdlib/at_quick_exit.3 projects/amd64_xen_pv/lib/libc/stdlib/quick_exit.3 projects/amd64_xen_pv/lib/libc/string/strerror.3 projects/amd64_xen_pv/lib/libc/sys/Symbol.map projects/amd64_xen_pv/lib/libc/sys/fcntl.2 projects/amd64_xen_pv/lib/libc/sys/fcntl.c projects/amd64_xen_pv/lib/libedit/chared.c projects/amd64_xen_pv/lib/libedit/chared.h projects/amd64_xen_pv/lib/libedit/el.c projects/amd64_xen_pv/lib/libedit/histedit.h projects/amd64_xen_pv/lib/libedit/makelist projects/amd64_xen_pv/lib/libedit/read.c projects/amd64_xen_pv/lib/libedit/sig.h projects/amd64_xen_pv/lib/libedit/term.c projects/amd64_xen_pv/lib/libedit/tokenizer.c projects/amd64_xen_pv/lib/libelf/Makefile projects/amd64_xen_pv/lib/libfetch/common.h projects/amd64_xen_pv/lib/libthr/thread/thr_getschedparam.c projects/amd64_xen_pv/lib/libthr/thread/thr_info.c projects/amd64_xen_pv/lib/libthr/thread/thr_setprio.c projects/amd64_xen_pv/lib/libthr/thread/thr_setschedparam.c projects/amd64_xen_pv/lib/msun/Makefile projects/amd64_xen_pv/lib/msun/Symbol.map projects/amd64_xen_pv/lib/msun/man/exp.3 projects/amd64_xen_pv/lib/msun/src/e_exp.c projects/amd64_xen_pv/lib/msun/src/math.h projects/amd64_xen_pv/lib/msun/src/math_private.h projects/amd64_xen_pv/lib/msun/src/s_cbrtl.c projects/amd64_xen_pv/libexec/rtld-elf/rtld.1 projects/amd64_xen_pv/libexec/rtld-elf/rtld.c projects/amd64_xen_pv/libexec/rtld-elf/rtld.h projects/amd64_xen_pv/sbin/geom/class/eli/geli.8 projects/amd64_xen_pv/sbin/geom/class/sched/gsched.8 projects/amd64_xen_pv/sbin/growfs/growfs.c projects/amd64_xen_pv/sbin/hastd/hast.conf.5 projects/amd64_xen_pv/sbin/hastd/primary.c projects/amd64_xen_pv/sbin/hastd/proto_common.c projects/amd64_xen_pv/sbin/ifconfig/af_inet6.c projects/amd64_xen_pv/sbin/ifconfig/ifconfig.8 projects/amd64_xen_pv/sbin/ipfw/dummynet.c projects/amd64_xen_pv/sbin/ipfw/ipfw.8 projects/amd64_xen_pv/sbin/ipfw/ipfw2.c projects/amd64_xen_pv/sbin/ipfw/nat.c projects/amd64_xen_pv/sbin/mdconfig/Makefile projects/amd64_xen_pv/sbin/mdconfig/mdconfig.8 projects/amd64_xen_pv/sbin/mdconfig/mdconfig.c projects/amd64_xen_pv/sbin/mount/mount.8 projects/amd64_xen_pv/sbin/ping/ping.c projects/amd64_xen_pv/secure/lib/libcrypto/Makefile projects/amd64_xen_pv/secure/lib/libcrypto/Makefile.asm projects/amd64_xen_pv/secure/lib/libcrypto/Makefile.inc projects/amd64_xen_pv/secure/lib/libcrypto/Makefile.man projects/amd64_xen_pv/secure/lib/libcrypto/engines/Makefile projects/amd64_xen_pv/secure/lib/libcrypto/engines/Makefile.inc projects/amd64_xen_pv/secure/lib/libcrypto/i386/bf-586.s projects/amd64_xen_pv/secure/lib/libcrypto/i386/bf-686.s projects/amd64_xen_pv/secure/lib/libcrypto/i386/bn-586.s projects/amd64_xen_pv/secure/lib/libcrypto/i386/cast-586.s projects/amd64_xen_pv/secure/lib/libcrypto/i386/co-586.s projects/amd64_xen_pv/secure/lib/libcrypto/i386/crypt586.s projects/amd64_xen_pv/secure/lib/libcrypto/i386/des-586.s projects/amd64_xen_pv/secure/lib/libcrypto/i386/md5-586.s projects/amd64_xen_pv/secure/lib/libcrypto/i386/rc4-586.s projects/amd64_xen_pv/secure/lib/libcrypto/i386/rc5-586.s projects/amd64_xen_pv/secure/lib/libcrypto/i386/rmd-586.s projects/amd64_xen_pv/secure/lib/libcrypto/i386/sha1-586.s projects/amd64_xen_pv/secure/lib/libcrypto/man/ASN1_OBJECT_new.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/ASN1_STRING_length.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/ASN1_STRING_new.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/ASN1_STRING_print_ex.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/ASN1_generate_nconf.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BIO_ctrl.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BIO_f_base64.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BIO_f_buffer.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BIO_f_cipher.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BIO_f_md.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BIO_f_null.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BIO_f_ssl.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BIO_find_type.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BIO_new.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BIO_push.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BIO_read.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BIO_s_accept.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BIO_s_bio.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BIO_s_connect.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BIO_s_fd.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BIO_s_file.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BIO_s_mem.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BIO_s_null.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BIO_s_socket.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BIO_set_callback.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BIO_should_retry.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BN_BLINDING_new.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BN_CTX_new.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BN_CTX_start.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BN_add.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BN_add_word.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BN_bn2bin.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BN_cmp.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BN_copy.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BN_generate_prime.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BN_mod_inverse.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BN_mod_mul_montgomery.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BN_mod_mul_reciprocal.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BN_new.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BN_num_bytes.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BN_rand.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BN_set_bit.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BN_swap.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/BN_zero.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/CONF_modules_free.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/CONF_modules_load_file.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/CRYPTO_set_ex_data.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/DH_generate_key.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/DH_generate_parameters.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/DH_get_ex_new_index.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/DH_new.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/DH_set_method.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/DH_size.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/DSA_SIG_new.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/DSA_do_sign.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/DSA_dup_DH.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/DSA_generate_key.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/DSA_generate_parameters.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/DSA_get_ex_new_index.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/DSA_new.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/DSA_set_method.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/DSA_sign.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/DSA_size.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/ERR_GET_LIB.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/ERR_clear_error.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/ERR_error_string.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/ERR_get_error.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/ERR_load_crypto_strings.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/ERR_load_strings.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/ERR_print_errors.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/ERR_put_error.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/ERR_remove_state.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/ERR_set_mark.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/EVP_BytesToKey.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/EVP_DigestInit.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/EVP_EncryptInit.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/EVP_OpenInit.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/EVP_PKEY_new.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/EVP_PKEY_set1_RSA.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/EVP_SealInit.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/EVP_SignInit.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/EVP_VerifyInit.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/OBJ_nid2obj.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/OPENSSL_Applink.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/OPENSSL_VERSION_NUMBER.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/OPENSSL_config.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/OPENSSL_ia32cap.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/OPENSSL_load_builtin_modules.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/OpenSSL_add_all_algorithms.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/PKCS12_create.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/PKCS12_parse.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/PKCS7_decrypt.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/PKCS7_encrypt.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/PKCS7_sign.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/PKCS7_verify.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/RAND_add.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/RAND_bytes.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/RAND_cleanup.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/RAND_egd.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/RAND_load_file.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/RAND_set_rand_method.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/RSA_blinding_on.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/RSA_check_key.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/RSA_generate_key.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/RSA_get_ex_new_index.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/RSA_new.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/RSA_padding_add_PKCS1_type_1.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/RSA_print.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/RSA_private_encrypt.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/RSA_public_encrypt.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/RSA_set_method.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/RSA_sign.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/RSA_sign_ASN1_OCTET_STRING.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/RSA_size.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/SMIME_read_PKCS7.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/SMIME_write_PKCS7.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/X509_NAME_ENTRY_get_object.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/X509_NAME_add_entry_by_txt.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/X509_NAME_get_index_by_NID.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/X509_NAME_print_ex.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/X509_new.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/bio.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/blowfish.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/bn.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/bn_internal.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/buffer.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/crypto.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/d2i_ASN1_OBJECT.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/d2i_DHparams.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/d2i_DSAPublicKey.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/d2i_PKCS8PrivateKey.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/d2i_RSAPublicKey.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/d2i_X509.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/d2i_X509_ALGOR.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/d2i_X509_CRL.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/d2i_X509_NAME.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/d2i_X509_REQ.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/d2i_X509_SIG.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/des.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/dh.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/dsa.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/ecdsa.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/engine.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/err.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/evp.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/hmac.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/lh_stats.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/lhash.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/md5.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/mdc2.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/pem.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/rand.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/rc4.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/ripemd.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/rsa.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/sha.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/threads.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/ui.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/ui_compat.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/man/x509.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libcrypto/opensslconf-arm.h projects/amd64_xen_pv/secure/lib/libcrypto/opensslconf-ia64.h projects/amd64_xen_pv/secure/lib/libcrypto/opensslconf-mips.h projects/amd64_xen_pv/secure/lib/libcrypto/opensslconf-powerpc.h projects/amd64_xen_pv/secure/lib/libcrypto/opensslconf-sparc64.h projects/amd64_xen_pv/secure/lib/libssl/Makefile projects/amd64_xen_pv/secure/lib/libssl/Makefile.man projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CIPHER_get_name.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_COMP_add_compression_method.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_add_extra_chain_cert.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_add_session.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_ctrl.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_flush_sessions.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_free.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_get_ex_new_index.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_get_verify_mode.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_load_verify_locations.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_new.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_sess_number.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_sess_set_cache_size.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_sess_set_get_cb.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_sessions.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_set_cert_store.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_set_cert_verify_callback.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_set_cipher_list.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_set_client_CA_list.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_set_client_cert_cb.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_set_default_passwd_cb.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_set_generate_session_id.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_set_info_callback.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_set_max_cert_list.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_set_mode.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_set_msg_callback.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_set_options.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_set_quiet_shutdown.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_set_session_cache_mode.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_set_session_id_context.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_set_ssl_version.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_set_timeout.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_set_tmp_dh_callback.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_set_tmp_rsa_callback.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_set_verify.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_CTX_use_certificate.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_SESSION_free.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_SESSION_get_ex_new_index.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_SESSION_get_time.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_accept.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_alert_type_string.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_clear.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_connect.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_do_handshake.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_free.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_get_SSL_CTX.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_get_ciphers.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_get_client_CA_list.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_get_current_cipher.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_get_default_timeout.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_get_error.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_get_ex_data_X509_STORE_CTX_idx.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_get_ex_new_index.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_get_fd.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_get_peer_cert_chain.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_get_peer_certificate.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_get_rbio.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_get_session.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_get_verify_result.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_get_version.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_library_init.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_load_client_CA_file.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_new.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_pending.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_read.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_rstate_string.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_session_reused.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_set_bio.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_set_connect_state.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_set_fd.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_set_session.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_set_shutdown.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_set_verify_result.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_shutdown.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_state_string.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_want.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/SSL_write.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/d2i_SSL_SESSION.3 (contents, props changed) projects/amd64_xen_pv/secure/lib/libssl/man/ssl.3 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/Makefile projects/amd64_xen_pv/secure/usr.bin/openssl/Makefile.man projects/amd64_xen_pv/secure/usr.bin/openssl/man/CA.pl.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/asn1parse.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/ca.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/ciphers.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/crl.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/crl2pkcs7.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/dgst.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/dhparam.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/dsa.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/dsaparam.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/ec.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/ecparam.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/enc.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/errstr.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/gendsa.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/genrsa.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/nseq.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/ocsp.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/openssl.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/passwd.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/pkcs12.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/pkcs7.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/pkcs8.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/rand.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/req.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/rsa.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/rsautl.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/s_client.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/s_server.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/s_time.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/sess_id.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/smime.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/speed.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/spkac.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/verify.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/version.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/x509.1 (contents, props changed) projects/amd64_xen_pv/secure/usr.bin/openssl/man/x509v3_config.1 (contents, props changed) projects/amd64_xen_pv/share/dtrace/Makefile projects/amd64_xen_pv/share/examples/Makefile projects/amd64_xen_pv/share/man/man4/Makefile projects/amd64_xen_pv/share/man/man4/acpi_asus.4 projects/amd64_xen_pv/share/man/man4/ahci.4 projects/amd64_xen_pv/share/man/man4/gpib.4 projects/amd64_xen_pv/share/man/man4/mps.4 projects/amd64_xen_pv/share/man/man4/run.4 projects/amd64_xen_pv/share/man/man4/ugen.4 projects/amd64_xen_pv/share/man/man4/uplcom.4 projects/amd64_xen_pv/share/man/man4/uslcom.4 projects/amd64_xen_pv/share/man/man5/moduli.5 projects/amd64_xen_pv/share/man/man5/rc.conf.5 projects/amd64_xen_pv/share/man/man5/src.conf.5 projects/amd64_xen_pv/share/man/man7/build.7 projects/amd64_xen_pv/share/man/man9/cd.9 projects/amd64_xen_pv/share/man/man9/ieee80211_node.9 projects/amd64_xen_pv/share/man/man9/kernel_mount.9 projects/amd64_xen_pv/share/man/man9/malloc.9 projects/amd64_xen_pv/share/man/man9/rtalloc.9 projects/amd64_xen_pv/share/misc/bsd-family-tree projects/amd64_xen_pv/share/misc/committers-doc.dot projects/amd64_xen_pv/share/misc/committers-ports.dot projects/amd64_xen_pv/share/misc/organization.dot projects/amd64_xen_pv/share/mk/bsd.own.mk projects/amd64_xen_pv/share/syscons/keymaps/INDEX.keymaps projects/amd64_xen_pv/sys/amd64/amd64/cpu_switch.S projects/amd64_xen_pv/sys/amd64/amd64/db_disasm.c projects/amd64_xen_pv/sys/amd64/amd64/fpu.c projects/amd64_xen_pv/sys/amd64/amd64/machdep.c projects/amd64_xen_pv/sys/amd64/amd64/mem.c projects/amd64_xen_pv/sys/amd64/amd64/pmap.c projects/amd64_xen_pv/sys/amd64/amd64/ptrace_machdep.c projects/amd64_xen_pv/sys/amd64/amd64/trap.c projects/amd64_xen_pv/sys/amd64/amd64/vm_machdep.c projects/amd64_xen_pv/sys/amd64/conf/GENERIC projects/amd64_xen_pv/sys/amd64/include/cpufunc.h projects/amd64_xen_pv/sys/amd64/include/fpu.h projects/amd64_xen_pv/sys/amd64/include/md_var.h projects/amd64_xen_pv/sys/amd64/include/pcpu.h projects/amd64_xen_pv/sys/arm/arm/nexus.c projects/amd64_xen_pv/sys/arm/at91/at91.c projects/amd64_xen_pv/sys/arm/at91/at91_machdep.c projects/amd64_xen_pv/sys/arm/at91/at91_mci.c projects/amd64_xen_pv/sys/arm/at91/at91_pit.c projects/amd64_xen_pv/sys/arm/at91/at91_pitreg.h projects/amd64_xen_pv/sys/arm/at91/at91_pmc.c projects/amd64_xen_pv/sys/arm/at91/at91_pmcreg.h projects/amd64_xen_pv/sys/arm/at91/at91_reset.S projects/amd64_xen_pv/sys/arm/at91/at91_rst.c projects/amd64_xen_pv/sys/arm/at91/at91_rstreg.h projects/amd64_xen_pv/sys/arm/at91/at91_st.c projects/amd64_xen_pv/sys/arm/at91/at91_streg.h projects/amd64_xen_pv/sys/arm/at91/at91board.h projects/amd64_xen_pv/sys/arm/at91/at91reg.h projects/amd64_xen_pv/sys/arm/at91/at91rm9200.c projects/amd64_xen_pv/sys/arm/at91/at91rm92reg.h projects/amd64_xen_pv/sys/arm/at91/at91sam9260.c projects/amd64_xen_pv/sys/arm/at91/at91sam9260reg.h projects/amd64_xen_pv/sys/arm/at91/at91sam9g20.c projects/amd64_xen_pv/sys/arm/at91/at91sam9g20reg.h projects/amd64_xen_pv/sys/arm/at91/at91sam9x25.c projects/amd64_xen_pv/sys/arm/at91/at91sam9x25reg.h projects/amd64_xen_pv/sys/arm/at91/at91var.h projects/amd64_xen_pv/sys/arm/at91/board_bwct.c projects/amd64_xen_pv/sys/arm/at91/board_ethernut5.c projects/amd64_xen_pv/sys/arm/at91/board_hl200.c projects/amd64_xen_pv/sys/arm/at91/board_hl201.c projects/amd64_xen_pv/sys/arm/at91/board_kb920x.c projects/amd64_xen_pv/sys/arm/at91/board_qila9g20.c projects/amd64_xen_pv/sys/arm/at91/board_sam9g20ek.c projects/amd64_xen_pv/sys/arm/at91/board_sam9x25ek.c projects/amd64_xen_pv/sys/arm/at91/board_tsc4370.c projects/amd64_xen_pv/sys/arm/at91/files.at91 projects/amd64_xen_pv/sys/arm/at91/if_ate.c projects/amd64_xen_pv/sys/arm/at91/std.at91 projects/amd64_xen_pv/sys/arm/at91/std.at91sam9 projects/amd64_xen_pv/sys/arm/at91/std.ethernut5 projects/amd64_xen_pv/sys/arm/at91/std.hl201 projects/amd64_xen_pv/sys/arm/at91/std.qila9g20 projects/amd64_xen_pv/sys/arm/at91/std.sam9g20ek projects/amd64_xen_pv/sys/arm/at91/std.sam9x25ek projects/amd64_xen_pv/sys/arm/at91/uart_bus_at91usart.c projects/amd64_xen_pv/sys/arm/conf/ETHERNUT5 projects/amd64_xen_pv/sys/arm/conf/ETHERNUT5.hints projects/amd64_xen_pv/sys/arm/conf/KB920X projects/amd64_xen_pv/sys/arm/econa/econa.c projects/amd64_xen_pv/sys/arm/econa/econa_machdep.c projects/amd64_xen_pv/sys/arm/mv/common.c projects/amd64_xen_pv/sys/arm/mv/gpio.c projects/amd64_xen_pv/sys/arm/mv/ic.c projects/amd64_xen_pv/sys/arm/mv/kirkwood/kirkwood.c projects/amd64_xen_pv/sys/arm/mv/mv_machdep.c projects/amd64_xen_pv/sys/arm/mv/mv_sata.c projects/amd64_xen_pv/sys/arm/mv/mvreg.h projects/amd64_xen_pv/sys/arm/s3c2xx0/s3c24x0.c projects/amd64_xen_pv/sys/arm/s3c2xx0/s3c24x0_machdep.c projects/amd64_xen_pv/sys/arm/sa11x0/assabet_machdep.c projects/amd64_xen_pv/sys/arm/xscale/i80321/ep80219_machdep.c projects/amd64_xen_pv/sys/arm/xscale/i80321/iq31244_machdep.c projects/amd64_xen_pv/sys/arm/xscale/i8134x/crb_machdep.c projects/amd64_xen_pv/sys/arm/xscale/i8134x/i81342.c projects/amd64_xen_pv/sys/arm/xscale/ixp425/avila_machdep.c projects/amd64_xen_pv/sys/arm/xscale/pxa/pxa_machdep.c projects/amd64_xen_pv/sys/arm/xscale/pxa/pxa_obio.c projects/amd64_xen_pv/sys/arm/xscale/std.xscale projects/amd64_xen_pv/sys/boot/arm/at91/boot0spi/main.c projects/amd64_xen_pv/sys/boot/arm/at91/bootspi/ee.c projects/amd64_xen_pv/sys/boot/arm/at91/libat91/Makefile projects/amd64_xen_pv/sys/boot/arm/at91/libat91/at91rm9200.h projects/amd64_xen_pv/sys/boot/arm/at91/libat91/at91rm9200_lowlevel.c projects/amd64_xen_pv/sys/boot/arm/at91/libat91/eeprom.c projects/amd64_xen_pv/sys/boot/arm/at91/libat91/emac_init.c projects/amd64_xen_pv/sys/boot/arm/at91/libat91/lib_AT91RM9200.h projects/amd64_xen_pv/sys/boot/arm/at91/libat91/spi_flash.c projects/amd64_xen_pv/sys/boot/arm/at91/linker.cfg projects/amd64_xen_pv/sys/boot/ficl/Makefile projects/amd64_xen_pv/sys/boot/forth/beastie.4th projects/amd64_xen_pv/sys/boot/forth/beastie.4th.8 projects/amd64_xen_pv/sys/boot/forth/brand.4th projects/amd64_xen_pv/sys/boot/forth/brand.4th.8 projects/amd64_xen_pv/sys/boot/forth/check-password.4th projects/amd64_xen_pv/sys/boot/forth/check-password.4th.8 projects/amd64_xen_pv/sys/boot/forth/color.4th projects/amd64_xen_pv/sys/boot/forth/color.4th.8 projects/amd64_xen_pv/sys/boot/forth/delay.4th projects/amd64_xen_pv/sys/boot/forth/delay.4th.8 projects/amd64_xen_pv/sys/boot/forth/menu-commands.4th projects/amd64_xen_pv/sys/boot/forth/menu.4th projects/amd64_xen_pv/sys/boot/forth/menu.4th.8 projects/amd64_xen_pv/sys/boot/forth/shortcuts.4th projects/amd64_xen_pv/sys/boot/forth/version.4th projects/amd64_xen_pv/sys/boot/forth/version.4th.8 projects/amd64_xen_pv/sys/boot/sparc64/loader/main.c projects/amd64_xen_pv/sys/boot/zfs/Makefile projects/amd64_xen_pv/sys/cam/ata/ata_all.c projects/amd64_xen_pv/sys/cam/ata/ata_all.h projects/amd64_xen_pv/sys/cam/ata/ata_da.c projects/amd64_xen_pv/sys/cam/ata/ata_xpt.c projects/amd64_xen_pv/sys/cam/cam_ccb.h projects/amd64_xen_pv/sys/cam/cam_periph.c projects/amd64_xen_pv/sys/cam/cam_xpt.c projects/amd64_xen_pv/sys/cam/ctl/scsi_ctl.c projects/amd64_xen_pv/sys/cam/scsi/scsi_all.c projects/amd64_xen_pv/sys/cam/scsi/scsi_cd.c projects/amd64_xen_pv/sys/cam/scsi/scsi_ch.c projects/amd64_xen_pv/sys/cam/scsi/scsi_da.c projects/amd64_xen_pv/sys/cam/scsi/scsi_enc.c projects/amd64_xen_pv/sys/cam/scsi/scsi_enc_safte.c projects/amd64_xen_pv/sys/cam/scsi/scsi_enc_ses.c projects/amd64_xen_pv/sys/cam/scsi/scsi_ses.h projects/amd64_xen_pv/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c projects/amd64_xen_pv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c projects/amd64_xen_pv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio_impl.h projects/amd64_xen_pv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c projects/amd64_xen_pv/sys/cddl/dev/dtrace/amd64/dis_tables.c projects/amd64_xen_pv/sys/cddl/dev/dtrace/amd64/dtrace_subr.c projects/amd64_xen_pv/sys/cddl/dev/dtrace/i386/dis_tables.c projects/amd64_xen_pv/sys/cddl/dev/dtrace/i386/dtrace_subr.c projects/amd64_xen_pv/sys/compat/ia32/ia32_sysvec.c projects/amd64_xen_pv/sys/compat/ia32/ia32_util.h projects/amd64_xen_pv/sys/compat/linux/linux_file.c projects/amd64_xen_pv/sys/conf/Makefile.arm projects/amd64_xen_pv/sys/conf/files projects/amd64_xen_pv/sys/conf/files.ia64 projects/amd64_xen_pv/sys/conf/files.powerpc projects/amd64_xen_pv/sys/conf/kern.post.mk projects/amd64_xen_pv/sys/conf/kmod.mk projects/amd64_xen_pv/sys/conf/options.arm projects/amd64_xen_pv/sys/contrib/dev/acpica/changes.txt (contents, props changed) projects/amd64_xen_pv/sys/contrib/dev/acpica/compiler/aslmain.c projects/amd64_xen_pv/sys/contrib/dev/acpica/components/debugger/dbcmds.c projects/amd64_xen_pv/sys/contrib/dev/acpica/components/debugger/dbinput.c projects/amd64_xen_pv/sys/contrib/dev/acpica/components/events/evxfgpe.c projects/amd64_xen_pv/sys/contrib/dev/acpica/components/executer/exprep.c projects/amd64_xen_pv/sys/contrib/dev/acpica/components/executer/exresolv.c projects/amd64_xen_pv/sys/contrib/dev/acpica/components/executer/exstore.c projects/amd64_xen_pv/sys/contrib/dev/acpica/components/executer/exutils.c projects/amd64_xen_pv/sys/contrib/dev/acpica/components/hardware/hwsleep.c projects/amd64_xen_pv/sys/contrib/dev/acpica/components/hardware/hwxfsleep.c projects/amd64_xen_pv/sys/contrib/dev/acpica/components/namespace/nspredef.c projects/amd64_xen_pv/sys/contrib/dev/acpica/components/parser/psxface.c projects/amd64_xen_pv/sys/contrib/dev/acpica/components/resources/rscreate.c projects/amd64_xen_pv/sys/contrib/dev/acpica/components/resources/rsutils.c projects/amd64_xen_pv/sys/contrib/dev/acpica/components/tables/tbfadt.c projects/amd64_xen_pv/sys/contrib/dev/acpica/components/tables/tbinstal.c projects/amd64_xen_pv/sys/contrib/dev/acpica/components/tables/tbutils.c projects/amd64_xen_pv/sys/contrib/dev/acpica/components/tables/tbxface.c projects/amd64_xen_pv/sys/contrib/dev/acpica/components/tables/tbxfroot.c projects/amd64_xen_pv/sys/contrib/dev/acpica/components/utilities/utdecode.c projects/amd64_xen_pv/sys/contrib/dev/acpica/components/utilities/utglobal.c projects/amd64_xen_pv/sys/contrib/dev/acpica/components/utilities/utmisc.c projects/amd64_xen_pv/sys/contrib/dev/acpica/components/utilities/utobject.c projects/amd64_xen_pv/sys/contrib/dev/acpica/components/utilities/utresrc.c projects/amd64_xen_pv/sys/contrib/dev/acpica/components/utilities/utxferror.c projects/amd64_xen_pv/sys/contrib/dev/acpica/include/acdebug.h projects/amd64_xen_pv/sys/contrib/dev/acpica/include/acexcep.h projects/amd64_xen_pv/sys/contrib/dev/acpica/include/acglobal.h projects/amd64_xen_pv/sys/contrib/dev/acpica/include/acmacros.h projects/amd64_xen_pv/sys/contrib/dev/acpica/include/acobject.h projects/amd64_xen_pv/sys/contrib/dev/acpica/include/acoutput.h projects/amd64_xen_pv/sys/contrib/dev/acpica/include/acpixf.h projects/amd64_xen_pv/sys/contrib/dev/acpica/include/actbl1.h projects/amd64_xen_pv/sys/contrib/dev/acpica/include/platform/acenv.h projects/amd64_xen_pv/sys/contrib/libfdt/fdt.c projects/amd64_xen_pv/sys/contrib/libfdt/fdt_ro.c projects/amd64_xen_pv/sys/contrib/libfdt/fdt_rw.c projects/amd64_xen_pv/sys/contrib/libfdt/libfdt.h projects/amd64_xen_pv/sys/contrib/libfdt/libfdt_env.h projects/amd64_xen_pv/sys/contrib/libfdt/libfdt_internal.h projects/amd64_xen_pv/sys/contrib/pf/net/pf_if.c projects/amd64_xen_pv/sys/dev/aac/aac_disk.c projects/amd64_xen_pv/sys/dev/acpica/acpi_cpu.c projects/amd64_xen_pv/sys/dev/acpica/acpi_powerres.c projects/amd64_xen_pv/sys/dev/agp/agp.c projects/amd64_xen_pv/sys/dev/ahci/ahci.c projects/amd64_xen_pv/sys/dev/ahci/ahci.h projects/amd64_xen_pv/sys/dev/ata/ata-all.c projects/amd64_xen_pv/sys/dev/ata/ata-lowlevel.c projects/amd64_xen_pv/sys/dev/ata/chipsets/ata-via.c projects/amd64_xen_pv/sys/dev/ath/ah_osdep.c projects/amd64_xen_pv/sys/dev/ath/ah_osdep.h projects/amd64_xen_pv/sys/dev/ath/ath_hal/ah.c projects/amd64_xen_pv/sys/dev/ath/ath_hal/ah.h projects/amd64_xen_pv/sys/dev/ath/ath_hal/ah_debug.h projects/amd64_xen_pv/sys/dev/ath/ath_hal/ah_desc.h projects/amd64_xen_pv/sys/dev/ath/ath_hal/ah_internal.h projects/amd64_xen_pv/sys/dev/ath/ath_hal/ar5210/ar5210.h projects/amd64_xen_pv/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c projects/amd64_xen_pv/sys/dev/ath/ath_hal/ar5210/ar5210_recv.c projects/amd64_xen_pv/sys/dev/ath/ath_hal/ar5210/ar5210_xmit.c projects/amd64_xen_pv/sys/dev/ath/ath_hal/ar5211/ar5211.h projects/amd64_xen_pv/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c projects/amd64_xen_pv/sys/dev/ath/ath_hal/ar5211/ar5211_recv.c projects/amd64_xen_pv/sys/dev/ath/ath_hal/ar5211/ar5211_xmit.c projects/amd64_xen_pv/sys/dev/ath/ath_hal/ar5212/ar5212.h projects/amd64_xen_pv/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c projects/amd64_xen_pv/sys/dev/ath/ath_hal/ar5212/ar5212_recv.c projects/amd64_xen_pv/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c projects/amd64_xen_pv/sys/dev/ath/ath_hal/ar5416/ar5416.h projects/amd64_xen_pv/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c projects/amd64_xen_pv/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c projects/amd64_xen_pv/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c projects/amd64_xen_pv/sys/dev/ath/ath_rate/amrr/amrr.c projects/amd64_xen_pv/sys/dev/ath/ath_rate/onoe/onoe.c projects/amd64_xen_pv/sys/dev/ath/ath_rate/sample/sample.c projects/amd64_xen_pv/sys/dev/ath/ath_rate/sample/sample.h projects/amd64_xen_pv/sys/dev/ath/if_ath.c projects/amd64_xen_pv/sys/dev/ath/if_ath_ahb.c projects/amd64_xen_pv/sys/dev/ath/if_ath_beacon.c projects/amd64_xen_pv/sys/dev/ath/if_ath_debug.c projects/amd64_xen_pv/sys/dev/ath/if_ath_debug.h projects/amd64_xen_pv/sys/dev/ath/if_ath_misc.h projects/amd64_xen_pv/sys/dev/ath/if_ath_pci.c projects/amd64_xen_pv/sys/dev/ath/if_ath_rx.c projects/amd64_xen_pv/sys/dev/ath/if_ath_rx.h projects/amd64_xen_pv/sys/dev/ath/if_ath_sysctl.c projects/amd64_xen_pv/sys/dev/ath/if_ath_tx.c projects/amd64_xen_pv/sys/dev/ath/if_ath_tx.h projects/amd64_xen_pv/sys/dev/ath/if_ath_tx_ht.c projects/amd64_xen_pv/sys/dev/ath/if_athioctl.h projects/amd64_xen_pv/sys/dev/ath/if_athrate.h projects/amd64_xen_pv/sys/dev/ath/if_athvar.h projects/amd64_xen_pv/sys/dev/atkbdc/atkbdc_isa.c projects/amd64_xen_pv/sys/dev/cesa/cesa.c projects/amd64_xen_pv/sys/dev/cxgb/cxgb_adapter.h projects/amd64_xen_pv/sys/dev/cxgb/cxgb_main.c projects/amd64_xen_pv/sys/dev/cxgb/cxgb_sge.c projects/amd64_xen_pv/sys/dev/cxgbe/adapter.h projects/amd64_xen_pv/sys/dev/cxgbe/t4_l2t.c projects/amd64_xen_pv/sys/dev/cxgbe/t4_main.c projects/amd64_xen_pv/sys/dev/cxgbe/t4_sge.c projects/amd64_xen_pv/sys/dev/e1000/e1000_82541.c projects/amd64_xen_pv/sys/dev/e1000/e1000_82543.c projects/amd64_xen_pv/sys/dev/e1000/e1000_82571.c projects/amd64_xen_pv/sys/dev/e1000/e1000_82575.c projects/amd64_xen_pv/sys/dev/e1000/e1000_api.c projects/amd64_xen_pv/sys/dev/e1000/e1000_api.h projects/amd64_xen_pv/sys/dev/e1000/e1000_defines.h projects/amd64_xen_pv/sys/dev/e1000/e1000_hw.h projects/amd64_xen_pv/sys/dev/e1000/e1000_ich8lan.c projects/amd64_xen_pv/sys/dev/e1000/e1000_mac.c projects/amd64_xen_pv/sys/dev/e1000/e1000_mac.h projects/amd64_xen_pv/sys/dev/e1000/e1000_manage.c projects/amd64_xen_pv/sys/dev/e1000/e1000_manage.h projects/amd64_xen_pv/sys/dev/e1000/e1000_phy.c projects/amd64_xen_pv/sys/dev/e1000/e1000_phy.h projects/amd64_xen_pv/sys/dev/e1000/e1000_regs.h projects/amd64_xen_pv/sys/dev/e1000/if_em.c projects/amd64_xen_pv/sys/dev/e1000/if_igb.c projects/amd64_xen_pv/sys/dev/e1000/if_lem.c projects/amd64_xen_pv/sys/dev/fdt/fdtbus.c projects/amd64_xen_pv/sys/dev/fdt/simplebus.c projects/amd64_xen_pv/sys/dev/filemon/filemon_wrapper.c projects/amd64_xen_pv/sys/dev/isp/isp.c projects/amd64_xen_pv/sys/dev/isp/isp_freebsd.c projects/amd64_xen_pv/sys/dev/isp/isp_freebsd.h projects/amd64_xen_pv/sys/dev/isp/isp_library.c projects/amd64_xen_pv/sys/dev/isp/isp_library.h projects/amd64_xen_pv/sys/dev/isp/isp_pci.c projects/amd64_xen_pv/sys/dev/isp/isp_sbus.c projects/amd64_xen_pv/sys/dev/isp/isp_stds.h projects/amd64_xen_pv/sys/dev/isp/isp_target.c projects/amd64_xen_pv/sys/dev/isp/isp_target.h projects/amd64_xen_pv/sys/dev/isp/ispmbox.h projects/amd64_xen_pv/sys/dev/isp/ispvar.h projects/amd64_xen_pv/sys/dev/ispfw/asm_2300.h projects/amd64_xen_pv/sys/dev/ixgbe/ixgbe.c projects/amd64_xen_pv/sys/dev/ixgbe/ixgbe_82598.c projects/amd64_xen_pv/sys/dev/ixgbe/ixgbe_82598.h projects/amd64_xen_pv/sys/dev/ixgbe/ixgbe_82599.c projects/amd64_xen_pv/sys/dev/ixgbe/ixgbe_api.c projects/amd64_xen_pv/sys/dev/ixgbe/ixgbe_api.h projects/amd64_xen_pv/sys/dev/ixgbe/ixgbe_common.c projects/amd64_xen_pv/sys/dev/ixgbe/ixgbe_common.h projects/amd64_xen_pv/sys/dev/ixgbe/ixgbe_osdep.h projects/amd64_xen_pv/sys/dev/ixgbe/ixgbe_phy.c projects/amd64_xen_pv/sys/dev/ixgbe/ixgbe_type.h projects/amd64_xen_pv/sys/dev/ixgbe/ixgbe_vf.c projects/amd64_xen_pv/sys/dev/ixgbe/ixgbe_x540.c projects/amd64_xen_pv/sys/dev/ixgbe/ixv.c projects/amd64_xen_pv/sys/dev/md/md.c projects/amd64_xen_pv/sys/dev/mfi/mfi.c projects/amd64_xen_pv/sys/dev/mfi/mfi_disk.c projects/amd64_xen_pv/sys/dev/mfi/mfivar.h projects/amd64_xen_pv/sys/dev/mge/if_mge.c projects/amd64_xen_pv/sys/dev/mii/e1000phy.c projects/amd64_xen_pv/sys/dev/mps/mps_sas.c projects/amd64_xen_pv/sys/dev/mps/mps_sas_lsi.c projects/amd64_xen_pv/sys/dev/mvs/mvs_soc.c projects/amd64_xen_pv/sys/dev/netmap/netmap.c projects/amd64_xen_pv/sys/dev/netmap/netmap_kern.h projects/amd64_xen_pv/sys/dev/netmap/netmap_mem2.c projects/amd64_xen_pv/sys/dev/sdhci/sdhci.c projects/amd64_xen_pv/sys/dev/sound/pci/hda/hdaa.c projects/amd64_xen_pv/sys/dev/sound/pci/hda/hdaa_patches.c projects/amd64_xen_pv/sys/dev/sound/pci/hdspe.c projects/amd64_xen_pv/sys/dev/sym/sym_hipd.c projects/amd64_xen_pv/sys/dev/usb/controller/at91dci_atmelarm.c projects/amd64_xen_pv/sys/dev/usb/controller/ehci_pci.c projects/amd64_xen_pv/sys/dev/usb/controller/ohci_atmelarm.c projects/amd64_xen_pv/sys/dev/usb/controller/ohci_pci.c projects/amd64_xen_pv/sys/dev/usb/controller/xhci_pci.c projects/amd64_xen_pv/sys/dev/usb/controller/xhcireg.h projects/amd64_xen_pv/sys/dev/usb/net/if_udav.c projects/amd64_xen_pv/sys/dev/usb/net/if_udavreg.h projects/amd64_xen_pv/sys/dev/usb/quirk/usb_quirk.c projects/amd64_xen_pv/sys/dev/usb/serial/u3g.c projects/amd64_xen_pv/sys/dev/usb/serial/uplcom.c projects/amd64_xen_pv/sys/dev/usb/serial/uslcom.c projects/amd64_xen_pv/sys/dev/usb/usb_pf.c projects/amd64_xen_pv/sys/dev/usb/usbdevs projects/amd64_xen_pv/sys/dev/usb/wlan/if_run.c projects/amd64_xen_pv/sys/dev/virtio/balloon/virtio_balloon.c projects/amd64_xen_pv/sys/dev/virtio/balloon/virtio_balloon.h projects/amd64_xen_pv/sys/dev/virtio/block/virtio_blk.c projects/amd64_xen_pv/sys/dev/virtio/block/virtio_blk.h projects/amd64_xen_pv/sys/dev/virtio/network/if_vtnet.c projects/amd64_xen_pv/sys/dev/virtio/network/virtio_net.h projects/amd64_xen_pv/sys/dev/virtio/pci/virtio_pci.c projects/amd64_xen_pv/sys/dev/virtio/pci/virtio_pci.h projects/amd64_xen_pv/sys/dev/virtio/virtio.c projects/amd64_xen_pv/sys/dev/virtio/virtio.h projects/amd64_xen_pv/sys/dev/virtio/virtio_ring.h projects/amd64_xen_pv/sys/dev/virtio/virtqueue.c projects/amd64_xen_pv/sys/dev/virtio/virtqueue.h projects/amd64_xen_pv/sys/fs/cd9660/cd9660_vfsops.c projects/amd64_xen_pv/sys/fs/devfs/devfs_vnops.c projects/amd64_xen_pv/sys/fs/ext2fs/ext2_vfsops.c projects/amd64_xen_pv/sys/fs/msdosfs/msdosfs_lookup.c projects/amd64_xen_pv/sys/fs/nfsclient/nfs_clbio.c projects/amd64_xen_pv/sys/fs/ntfs/ntfs_subr.c projects/amd64_xen_pv/sys/fs/ntfs/ntfs_subr.h projects/amd64_xen_pv/sys/fs/ntfs/ntfs_vfsops.c projects/amd64_xen_pv/sys/fs/ntfs/ntfs_vnops.c projects/amd64_xen_pv/sys/fs/portalfs/portal_vnops.c projects/amd64_xen_pv/sys/fs/smbfs/smbfs_node.c projects/amd64_xen_pv/sys/fs/udf/udf_vfsops.c projects/amd64_xen_pv/sys/geom/bde/g_bde.c projects/amd64_xen_pv/sys/geom/eli/g_eli.c projects/amd64_xen_pv/sys/geom/eli/g_eli.h projects/amd64_xen_pv/sys/geom/eli/g_eli_ctl.c projects/amd64_xen_pv/sys/geom/eli/g_eli_key.c projects/amd64_xen_pv/sys/geom/eli/g_eli_key_cache.c projects/amd64_xen_pv/sys/geom/gate/g_gate.c projects/amd64_xen_pv/sys/geom/gate/g_gate.h projects/amd64_xen_pv/sys/geom/geom.h projects/amd64_xen_pv/sys/geom/geom_aes.c projects/amd64_xen_pv/sys/geom/geom_dev.c projects/amd64_xen_pv/sys/geom/geom_disk.c projects/amd64_xen_pv/sys/geom/geom_disk.h projects/amd64_xen_pv/sys/geom/geom_event.c projects/amd64_xen_pv/sys/geom/geom_io.c projects/amd64_xen_pv/sys/geom/geom_map.c projects/amd64_xen_pv/sys/geom/geom_slice.c projects/amd64_xen_pv/sys/geom/geom_subr.c projects/amd64_xen_pv/sys/geom/mirror/g_mirror.c projects/amd64_xen_pv/sys/geom/mirror/g_mirror.h projects/amd64_xen_pv/sys/geom/mountver/g_mountver.c projects/amd64_xen_pv/sys/geom/nop/g_nop.c projects/amd64_xen_pv/sys/geom/nop/g_nop.h projects/amd64_xen_pv/sys/geom/part/g_part.c projects/amd64_xen_pv/sys/geom/uncompress/g_uncompress.c projects/amd64_xen_pv/sys/geom/uzip/g_uzip.c projects/amd64_xen_pv/sys/i386/i386/machdep.c projects/amd64_xen_pv/sys/i386/i386/mem.c projects/amd64_xen_pv/sys/i386/i386/pmap.c projects/amd64_xen_pv/sys/i386/i386/ptrace_machdep.c projects/amd64_xen_pv/sys/i386/i386/trap.c projects/amd64_xen_pv/sys/i386/i386/vm86.c projects/amd64_xen_pv/sys/i386/i386/vm_machdep.c projects/amd64_xen_pv/sys/i386/include/cpufunc.h projects/amd64_xen_pv/sys/i386/include/npx.h projects/amd64_xen_pv/sys/i386/include/pcpu.h projects/amd64_xen_pv/sys/i386/isa/npx.c projects/amd64_xen_pv/sys/ia64/ia64/busdma_machdep.c projects/amd64_xen_pv/sys/ia64/ia64/machdep.c projects/amd64_xen_pv/sys/ia64/ia64/mp_machdep.c projects/amd64_xen_pv/sys/ia64/ia64/pmap.c projects/amd64_xen_pv/sys/ia64/include/md_var.h projects/amd64_xen_pv/sys/ia64/include/param.h projects/amd64_xen_pv/sys/kern/imgact_aout.c projects/amd64_xen_pv/sys/kern/imgact_elf.c projects/amd64_xen_pv/sys/kern/kern_descrip.c projects/amd64_xen_pv/sys/kern/kern_event.c projects/amd64_xen_pv/sys/kern/kern_exec.c projects/amd64_xen_pv/sys/kern/kern_malloc.c projects/amd64_xen_pv/sys/kern/kern_proc.c projects/amd64_xen_pv/sys/kern/kern_sig.c projects/amd64_xen_pv/sys/kern/kern_tc.c projects/amd64_xen_pv/sys/kern/subr_devstat.c projects/amd64_xen_pv/sys/kern/sys_process.c projects/amd64_xen_pv/sys/kern/uipc_socket.c projects/amd64_xen_pv/sys/kern/vfs_syscalls.c projects/amd64_xen_pv/sys/kern/vfs_vnops.c projects/amd64_xen_pv/sys/mips/mips/pmap.c projects/amd64_xen_pv/sys/mips/nlm/board.c projects/amd64_xen_pv/sys/mips/nlm/dev/net/mdio.c projects/amd64_xen_pv/sys/mips/nlm/hal/mdio.h projects/amd64_xen_pv/sys/mips/nlm/xlp.h projects/amd64_xen_pv/sys/mips/nlm/xlp_pci.c projects/amd64_xen_pv/sys/modules/Makefile projects/amd64_xen_pv/sys/modules/acpi/Makefile projects/amd64_xen_pv/sys/modules/acpi/acpi/Makefile projects/amd64_xen_pv/sys/modules/ahci/Makefile projects/amd64_xen_pv/sys/modules/ath/Makefile projects/amd64_xen_pv/sys/modules/cam/Makefile projects/amd64_xen_pv/sys/modules/cxgbe/if_cxgbe/Makefile projects/amd64_xen_pv/sys/modules/dtrace/Makefile projects/amd64_xen_pv/sys/modules/dtrace/dtraceall/dtraceall.c projects/amd64_xen_pv/sys/modules/em/Makefile projects/amd64_xen_pv/sys/modules/igb/Makefile projects/amd64_xen_pv/sys/net/flowtable.c projects/amd64_xen_pv/sys/net/if.h projects/amd64_xen_pv/sys/net/if_bridge.c projects/amd64_xen_pv/sys/net/if_epair.c projects/amd64_xen_pv/sys/net/if_gif.c projects/amd64_xen_pv/sys/net/if_lagg.c projects/amd64_xen_pv/sys/net/if_loop.c projects/amd64_xen_pv/sys/net/if_stf.c projects/amd64_xen_pv/sys/net/if_tap.c projects/amd64_xen_pv/sys/net/route.h projects/amd64_xen_pv/sys/net80211/_ieee80211.h projects/amd64_xen_pv/sys/netgraph/ng_ether.c projects/amd64_xen_pv/sys/netinet/igmp.c projects/amd64_xen_pv/sys/netinet/in_var.h projects/amd64_xen_pv/sys/netinet/ip_carp.c projects/amd64_xen_pv/sys/netinet/ip_input.c projects/amd64_xen_pv/sys/netinet/ip_mroute.c projects/amd64_xen_pv/sys/netinet/ip_mroute.h projects/amd64_xen_pv/sys/netinet/ip_output.c projects/amd64_xen_pv/sys/netinet/ipfw/ip_dummynet.c projects/amd64_xen_pv/sys/netinet/ipfw/ip_fw_log.c projects/amd64_xen_pv/sys/netinet/ipfw/ip_fw_table.c projects/amd64_xen_pv/sys/netinet/sctp_asconf.c projects/amd64_xen_pv/sys/netinet/sctp_input.c projects/amd64_xen_pv/sys/netinet/sctp_input.h projects/amd64_xen_pv/sys/netinet/sctp_output.c projects/amd64_xen_pv/sys/netinet/sctp_pcb.c projects/amd64_xen_pv/sys/netinet/sctp_uio.h projects/amd64_xen_pv/sys/netinet/sctp_usrreq.c projects/amd64_xen_pv/sys/netinet/sctputil.c projects/amd64_xen_pv/sys/netinet/tcp_hostcache.c projects/amd64_xen_pv/sys/netinet/tcp_input.c projects/amd64_xen_pv/sys/netinet/tcp_output.c projects/amd64_xen_pv/sys/netinet6/frag6.c projects/amd64_xen_pv/sys/netinet6/in6.c projects/amd64_xen_pv/sys/netinet6/ip6_ipsec.c projects/amd64_xen_pv/sys/netinet6/ip6_mroute.c projects/amd64_xen_pv/sys/netinet6/ip6_mroute.h projects/amd64_xen_pv/sys/netinet6/ip6_output.c projects/amd64_xen_pv/sys/netinet6/nd6.h projects/amd64_xen_pv/sys/netinet6/nd6_nbr.c projects/amd64_xen_pv/sys/netinet6/sctp6_usrreq.c projects/amd64_xen_pv/sys/netipsec/ipsec_output.c projects/amd64_xen_pv/sys/netsmb/smb_trantcp.c projects/amd64_xen_pv/sys/pc98/pc98/machdep.c projects/amd64_xen_pv/sys/powerpc/aim/mmu_oea.c projects/amd64_xen_pv/sys/powerpc/aim/mmu_oea64.c projects/amd64_xen_pv/sys/powerpc/booke/machdep.c projects/amd64_xen_pv/sys/powerpc/booke/pmap.c projects/amd64_xen_pv/sys/powerpc/booke/trap.c projects/amd64_xen_pv/sys/powerpc/booke/trap_subr.S projects/amd64_xen_pv/sys/powerpc/conf/DEFAULTS projects/amd64_xen_pv/sys/powerpc/conf/GENERIC projects/amd64_xen_pv/sys/powerpc/conf/GENERIC64 projects/amd64_xen_pv/sys/powerpc/mpc85xx/lbc.c projects/amd64_xen_pv/sys/powerpc/mpc85xx/lbc.h projects/amd64_xen_pv/sys/powerpc/mpc85xx/nexus.c projects/amd64_xen_pv/sys/powerpc/powermac/hrowpic.c projects/amd64_xen_pv/sys/powerpc/powerpc/mmu_if.m projects/amd64_xen_pv/sys/sparc64/conf/GENERIC projects/amd64_xen_pv/sys/sys/ata.h projects/amd64_xen_pv/sys/sys/dtrace_bsd.h projects/amd64_xen_pv/sys/sys/fcntl.h projects/amd64_xen_pv/sys/sys/file.h projects/amd64_xen_pv/sys/sys/mdioctl.h projects/amd64_xen_pv/sys/sys/param.h projects/amd64_xen_pv/sys/sys/proc.h projects/amd64_xen_pv/sys/sys/refcount.h projects/amd64_xen_pv/sys/sys/stat.h projects/amd64_xen_pv/sys/sys/user.h projects/amd64_xen_pv/sys/sys/vmmeter.h projects/amd64_xen_pv/sys/ufs/ffs/ffs_alloc.c projects/amd64_xen_pv/sys/ufs/ffs/ffs_snapshot.c projects/amd64_xen_pv/sys/ufs/ffs/ffs_vfsops.c projects/amd64_xen_pv/sys/vm/memguard.c projects/amd64_xen_pv/sys/vm/memguard.h projects/amd64_xen_pv/sys/vm/uma_core.c projects/amd64_xen_pv/sys/vm/vm_kern.c projects/amd64_xen_pv/sys/vm/vm_map.h projects/amd64_xen_pv/sys/vm/vm_object.c projects/amd64_xen_pv/sys/vm/vm_page.c projects/amd64_xen_pv/sys/vm/vm_pageout.c projects/amd64_xen_pv/sys/vm/vm_pageout.h projects/amd64_xen_pv/sys/vm/vm_reserv.c projects/amd64_xen_pv/sys/x86/include/specialreg.h projects/amd64_xen_pv/sys/x86/x86/tsc.c projects/amd64_xen_pv/tools/build/make_check/Makefile projects/amd64_xen_pv/tools/build/mk/OptionalObsoleteFiles.inc projects/amd64_xen_pv/tools/regression/filemon/Makefile projects/amd64_xen_pv/tools/regression/pjdfstest/pjdfstest.c projects/amd64_xen_pv/tools/tools/ath/Makefile projects/amd64_xen_pv/tools/tools/ath/common/diag.h projects/amd64_xen_pv/tools/tools/ath/common/dumpregs_5416.c projects/amd64_xen_pv/tools/tools/netmap/pkt-gen.c projects/amd64_xen_pv/tools/tools/sysbuild/sysbuild.sh projects/amd64_xen_pv/usr.bin/Makefile projects/amd64_xen_pv/usr.bin/calendar/calendars/calendar.freebsd projects/amd64_xen_pv/usr.bin/cpio/Makefile projects/amd64_xen_pv/usr.bin/cpio/test/Makefile projects/amd64_xen_pv/usr.bin/du/du.1 projects/amd64_xen_pv/usr.bin/du/du.c projects/amd64_xen_pv/usr.bin/find/extern.h projects/amd64_xen_pv/usr.bin/find/find.1 projects/amd64_xen_pv/usr.bin/find/find.c projects/amd64_xen_pv/usr.bin/find/function.c projects/amd64_xen_pv/usr.bin/find/main.c projects/amd64_xen_pv/usr.bin/find/option.c projects/amd64_xen_pv/usr.bin/killall/killall.c projects/amd64_xen_pv/usr.bin/mkcsmapper/lex.l projects/amd64_xen_pv/usr.bin/mkesdb/ldef.h projects/amd64_xen_pv/usr.bin/mkesdb/lex.l projects/amd64_xen_pv/usr.bin/netstat/Makefile projects/amd64_xen_pv/usr.bin/netstat/sctp.c projects/amd64_xen_pv/usr.bin/nfsstat/nfsstat.c projects/amd64_xen_pv/usr.bin/procstat/procstat.1 projects/amd64_xen_pv/usr.bin/procstat/procstat_rlimit.c projects/amd64_xen_pv/usr.bin/procstat/procstat_vm.c projects/amd64_xen_pv/usr.bin/script/script.1 projects/amd64_xen_pv/usr.bin/script/script.c projects/amd64_xen_pv/usr.bin/sort/file.c projects/amd64_xen_pv/usr.bin/sort/file.h projects/amd64_xen_pv/usr.bin/sort/radixsort.c projects/amd64_xen_pv/usr.bin/sort/sort.1.in projects/amd64_xen_pv/usr.bin/sort/sort.c projects/amd64_xen_pv/usr.bin/tar/Makefile projects/amd64_xen_pv/usr.bin/tar/test/Makefile projects/amd64_xen_pv/usr.bin/top/machine.c projects/amd64_xen_pv/usr.bin/xinstall/xinstall.c projects/amd64_xen_pv/usr.sbin/Makefile projects/amd64_xen_pv/usr.sbin/acpi/acpidb/Makefile projects/amd64_xen_pv/usr.sbin/acpi/acpidump/acpi.c projects/amd64_xen_pv/usr.sbin/acpi/iasl/Makefile projects/amd64_xen_pv/usr.sbin/ancontrol/ancontrol.c projects/amd64_xen_pv/usr.sbin/cron/crontab/crontab.c projects/amd64_xen_pv/usr.sbin/ipfwpcap/ipfwpcap.8 projects/amd64_xen_pv/usr.sbin/lpr/common_source/common.c projects/amd64_xen_pv/usr.sbin/ndp/ndp.8 projects/amd64_xen_pv/usr.sbin/ndp/ndp.c projects/amd64_xen_pv/usr.sbin/newsyslog/newsyslog.c projects/amd64_xen_pv/usr.sbin/nscd/cachelib.c projects/amd64_xen_pv/usr.sbin/nscd/cachelib.h projects/amd64_xen_pv/usr.sbin/nscd/config.c projects/amd64_xen_pv/usr.sbin/nscd/config.h projects/amd64_xen_pv/usr.sbin/nscd/nscd.conf.5 projects/amd64_xen_pv/usr.sbin/nscd/parser.c projects/amd64_xen_pv/usr.sbin/pkg/pkg.c projects/amd64_xen_pv/usr.sbin/rarpd/Makefile projects/amd64_xen_pv/usr.sbin/rarpd/rarpd.8 projects/amd64_xen_pv/usr.sbin/rarpd/rarpd.c projects/amd64_xen_pv/usr.sbin/usbdump/usbdump.c projects/amd64_xen_pv/usr.sbin/wpa/hostapd/hostapd.8 Directory Properties: projects/amd64_xen_pv/ (props changed) projects/amd64_xen_pv/cddl/contrib/opensolaris/ (props changed) projects/amd64_xen_pv/cddl/contrib/opensolaris/cmd/zfs/ (props changed) projects/amd64_xen_pv/cddl/contrib/opensolaris/lib/libzfs/ (props changed) projects/amd64_xen_pv/contrib/bind9/ (props changed) projects/amd64_xen_pv/contrib/binutils/ (props changed) projects/amd64_xen_pv/contrib/dtc/ (props changed) projects/amd64_xen_pv/contrib/gcc/ (props changed) projects/amd64_xen_pv/contrib/groff/ (props changed) projects/amd64_xen_pv/contrib/less/ (props changed) projects/amd64_xen_pv/contrib/libarchive/ (props changed) projects/amd64_xen_pv/contrib/libarchive/cpio/ (props changed) projects/amd64_xen_pv/contrib/libarchive/libarchive/ (props changed) projects/amd64_xen_pv/contrib/libarchive/libarchive_fe/ (props changed) projects/amd64_xen_pv/contrib/libarchive/tar/ (props changed) projects/amd64_xen_pv/contrib/llvm/ (props changed) projects/amd64_xen_pv/contrib/llvm/tools/clang/ (props changed) projects/amd64_xen_pv/crypto/openssl/ (props changed) projects/amd64_xen_pv/gnu/usr.bin/cc/cc_tools/ (props changed) projects/amd64_xen_pv/lib/libc/ (props changed) projects/amd64_xen_pv/sbin/ (props changed) projects/amd64_xen_pv/sbin/ipfw/ (props changed) projects/amd64_xen_pv/share/man/man4/ (props changed) projects/amd64_xen_pv/sys/ (props changed) projects/amd64_xen_pv/sys/boot/ (props changed) projects/amd64_xen_pv/sys/cddl/contrib/opensolaris/ (props changed) projects/amd64_xen_pv/sys/conf/ (props changed) projects/amd64_xen_pv/sys/contrib/dev/acpica/ (props changed) projects/amd64_xen_pv/sys/contrib/dev/acpica/compiler/ (props changed) projects/amd64_xen_pv/sys/contrib/dev/acpica/components/debugger/ (props changed) projects/amd64_xen_pv/sys/contrib/dev/acpica/components/events/ (props changed) projects/amd64_xen_pv/sys/contrib/dev/acpica/components/executer/ (props changed) projects/amd64_xen_pv/sys/contrib/dev/acpica/components/hardware/ (props changed) projects/amd64_xen_pv/sys/contrib/dev/acpica/components/namespace/ (props changed) projects/amd64_xen_pv/sys/contrib/dev/acpica/components/parser/ (props changed) projects/amd64_xen_pv/sys/contrib/dev/acpica/components/resources/ (props changed) projects/amd64_xen_pv/sys/contrib/dev/acpica/components/tables/ (props changed) projects/amd64_xen_pv/sys/contrib/dev/acpica/components/utilities/ (props changed) projects/amd64_xen_pv/sys/contrib/dev/acpica/include/ (props changed) projects/amd64_xen_pv/sys/contrib/libfdt/ (props changed) projects/amd64_xen_pv/sys/contrib/pf/ (props changed) projects/amd64_xen_pv/usr.bin/calendar/ (props changed) projects/amd64_xen_pv/usr.bin/procstat/ (props changed) Modified: projects/amd64_xen_pv/Makefile ============================================================================== --- projects/amd64_xen_pv/Makefile Tue Jul 31 10:58:50 2012 (r238943) +++ projects/amd64_xen_pv/Makefile Tue Jul 31 11:16:19 2012 (r238944) @@ -92,7 +92,7 @@ TGTS= all all-man buildenv buildenvvars delete-old delete-old-dirs delete-old-files delete-old-libs \ depend distribute distributekernel distributekernel.debug \ distributeworld distrib-dirs distribution doxygen \ - everything hierarchy install installcheck installkernel \ + everything hier hierarchy install installcheck installkernel \ installkernel.debug packagekernel packageworld \ reinstallkernel reinstallkernel.debug \ installworld kernel-toolchain libraries lint maninstall \ Modified: projects/amd64_xen_pv/Makefile.inc1 ============================================================================== --- projects/amd64_xen_pv/Makefile.inc1 Tue Jul 31 10:58:50 2012 (r238943) +++ projects/amd64_xen_pv/Makefile.inc1 Tue Jul 31 11:16:19 2012 (r238944) @@ -1197,7 +1197,7 @@ cross-tools: # # hierarchy - ensure that all the needed directories are present # -hierarchy: +hierarchy hier: cd ${.CURDIR}/etc; ${MAKE} distrib-dirs # Modified: projects/amd64_xen_pv/ObsoleteFiles.inc ============================================================================== --- projects/amd64_xen_pv/ObsoleteFiles.inc Tue Jul 31 10:58:50 2012 (r238943) +++ projects/amd64_xen_pv/ObsoleteFiles.inc Tue Jul 31 11:16:19 2012 (r238944) @@ -38,6 +38,24 @@ # xargs -n1 | sort | uniq -d; # done +# 20120712: OpenSSL 1.0.1c import +OLD_LIBS+=lib/libcrypto.so.6 +OLD_LIBS+=usr/lib/libssl.so.6 +OLD_LIBS+=usr/lib32/libcrypto.so.6 +OLD_LIBS+=usr/lib32/libssl.so.6 +OLD_FILES+=usr/include/openssl/aes_locl.h +OLD_FILES+=usr/include/openssl/bio_lcl.h +OLD_FILES+=usr/include/openssl/e_os.h +OLD_FILES+=usr/include/openssl/fips.h +OLD_FILES+=usr/include/openssl/fips_rand.h +OLD_FILES+=usr/include/openssl/md2.h +OLD_FILES+=usr/include/openssl/pq_compat.h +OLD_FILES+=usr/include/openssl/store.h +OLD_FILES+=usr/include/openssl/tmdiff.h +OLD_FILES+=usr/include/openssl/ui_locl.h +OLD_FILES+=usr/share/openssl/man/man3/CRYPTO_set_id_callback.3.gz +# 20120621: remove old man page +OLD_FILES+=usr/share/man/man8/vnconfig.8.gz # 20120613: auth.conf removed OLD_FILES+=etc/auth.conf OLD_FILES+=usr/share/examples/etc/auth.conf @@ -1340,6 +1358,11 @@ OLD_FILES+=usr/share/man/man2/kse_thr_in OLD_FILES+=usr/share/man/man2/kse_wakeup.2.gz OLD_FILES+=usr/lib32/libkse.so OLD_LIBS+=usr/lib32/libkse.so.3 +# 20080225: bsdar/bsdranlib rename to ar/ranlib +OLD_FILES+=usr/bin/bsdar +OLD_FILES+=usr/bin/bsdranlib +OLD_FILES+=usr/share/man/man1/bsdar.1.gz +OLD_FILES+=usr/share/man/man1/bsdranlib.1.gz # 20080220: geom_lvm rename to geom_linux_lvm OLD_FILES+=usr/share/man/man4/geom_lvm.4.gz # 20080126: oldcard.4 removal Modified: projects/amd64_xen_pv/UPDATING ============================================================================== --- projects/amd64_xen_pv/UPDATING Tue Jul 31 10:58:50 2012 (r238943) +++ projects/amd64_xen_pv/UPDATING Tue Jul 31 11:16:19 2012 (r238944) @@ -24,6 +24,22 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20120727: + The sparc64 ZFS loader has been changed to no longer try to auto- + detect ZFS providers based on diskN aliases but now requires these + to be explicitly listed in the OFW boot-device environment variable. + +20120712: + The OpenSSL has been upgraded to 1.0.1c. Any binaries requiring + libcrypto.so.6 or libssl.so.6 must be recompiled. Also, there are + configuration changes. Make sure to merge /etc/ssl/openssl.cnf. + +20120712: + The following sysctls and tunables have been renamed for consistency + with other variables: + kern.cam.da.da_send_ordered -> kern.cam.da.send_ordered + kern.cam.ada.ada_send_ordered -> kern.cam.ada.send_ordered + 20120628: The sort utility has been replaced with BSD sort. For now, GNU sort is also available as "gnusort" or the default can be set back to Modified: projects/amd64_xen_pv/bin/cat/cat.c ============================================================================== --- projects/amd64_xen_pv/bin/cat/cat.c Tue Jul 31 10:58:50 2012 (r238943) +++ projects/amd64_xen_pv/bin/cat/cat.c Tue Jul 31 11:16:19 2012 (r238944) @@ -58,11 +58,11 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include #include -#include static int bflag, eflag, nflag, sflag, tflag, vflag; static int rval; @@ -77,16 +77,20 @@ static void raw_cat(int); static int udom_open(const char *path, int flags); #endif -/* Memory strategy threshold, in pages: if physmem is larger then this, use a - * large buffer */ -#define PHYSPAGES_THRESHOLD (32*1024) - -/* Maximum buffer size in bytes - do not allow it to grow larger than this */ -#define BUFSIZE_MAX (2*1024*1024) - -/* Small (default) buffer size in bytes. It's inefficient for this to be - * smaller than MAXPHYS */ -#define BUFSIZE_SMALL (MAXPHYS) +/* + * Memory strategy threshold, in pages: if physmem is larger than this, + * use a large buffer. + */ +#define PHYSPAGES_THRESHOLD (32 * 1024) + +/* Maximum buffer size in bytes - do not allow it to grow larger than this. */ +#define BUFSIZE_MAX (2 * 1024 * 1024) + +/* + * Small (default) buffer size in bytes. It's inefficient for this to be + * smaller than MAXPHYS. + */ +#define BUFSIZE_SMALL (MAXPHYS) int main(int argc, char *argv[]) @@ -144,13 +148,12 @@ usage(void) static void scanfiles(char *argv[], int cooked) { - int i = 0; + int fd, i; char *path; FILE *fp; + i = 0; while ((path = argv[i]) != NULL || i == 0) { - int fd; - if (path == NULL || strcmp(path, "-") == 0) { filename = "stdin"; fd = STDIN_FILENO; @@ -257,16 +260,16 @@ raw_cat(int rfd) wfd = fileno(stdout); if (buf == NULL) { if (fstat(wfd, &sbuf)) - err(1, "%s", filename); + err(1, "stdout"); if (S_ISREG(sbuf.st_mode)) { /* If there's plenty of RAM, use a large copy buffer */ if (sysconf(_SC_PHYS_PAGES) > PHYSPAGES_THRESHOLD) - bsize = MIN(BUFSIZE_MAX, MAXPHYS*8); + bsize = MIN(BUFSIZE_MAX, MAXPHYS * 8); else bsize = BUFSIZE_SMALL; } else - bsize = MAX(sbuf.st_blksize, - (blksize_t)sysconf(_SC_PAGESIZE)); + bsize = MAX(sbuf.st_blksize, + (blksize_t)sysconf(_SC_PAGESIZE)); if ((buf = malloc(bsize)) == NULL) err(1, "malloc() failure of IO buffer"); } @@ -327,7 +330,7 @@ udom_open(const char *path, int flags) break; } } - return(fd); + return (fd); } #endif Modified: projects/amd64_xen_pv/bin/ps/print.c ============================================================================== --- projects/amd64_xen_pv/bin/ps/print.c Tue Jul 31 10:58:50 2012 (r238943) +++ projects/amd64_xen_pv/bin/ps/print.c Tue Jul 31 11:16:19 2012 (r238944) @@ -387,12 +387,13 @@ started(KINFO *k, VARENT *ve __unused) size_t buflen = 100; char *buf; + if (!k->ki_valid) + return (NULL); + buf = malloc(buflen); if (buf == NULL) errx(1, "malloc failed"); - if (!k->ki_valid) - return (NULL); if (use_ampm < 0) use_ampm = (*nl_langinfo(T_FMT_AMPM) != '\0'); then = k->ki_p->ki_start.tv_sec; @@ -415,12 +416,13 @@ lstarted(KINFO *k, VARENT *ve __unused) char *buf; size_t buflen = 100; + if (!k->ki_valid) + return (NULL); + buf = malloc(buflen); if (buf == NULL) errx(1, "malloc failed"); - if (!k->ki_valid) - return (NULL); then = k->ki_p->ki_start.tv_sec; (void)strftime(buf, buflen, "%c", localtime(&then)); return (buf); Modified: projects/amd64_xen_pv/bin/sh/eval.c ============================================================================== --- projects/amd64_xen_pv/bin/sh/eval.c Tue Jul 31 10:58:50 2012 (r238943) +++ projects/amd64_xen_pv/bin/sh/eval.c Tue Jul 31 11:16:19 2012 (r238944) @@ -672,6 +672,52 @@ out: result->fd, result->buf, result->nleft, result->jp)); } +static int +mustexpandto(const char *argtext, const char *mask) +{ + for (;;) { + if (*argtext == CTLQUOTEMARK || *argtext == CTLQUOTEEND) { + argtext++; + continue; + } + if (*argtext == CTLESC) + argtext++; + else if (BASESYNTAX[(int)*argtext] == CCTL) + return (0); + if (*argtext != *mask) + return (0); + if (*argtext == '\0') + return (1); + argtext++; + mask++; + } +} + +static int +isdeclarationcmd(struct narg *arg) +{ + int have_command = 0; + + if (arg == NULL) + return (0); + while (mustexpandto(arg->text, "command")) { + have_command = 1; + arg = &arg->next->narg; + if (arg == NULL) + return (0); + /* + * To also allow "command -p" and "command --" as part of + * a declaration command, add code here. + * We do not do this, as ksh does not do it either and it + * is not required by POSIX. + */ + } + return (mustexpandto(arg->text, "export") || + mustexpandto(arg->text, "readonly") || + (mustexpandto(arg->text, "local") && + (have_command || !isfunc("local")))); +} + /* * Check if a builtin can safely be executed in the same process, * even though it should be in a subshell (command substitution). @@ -743,11 +789,12 @@ evalcommand(union node *cmd, int flags, exitstatus = 0; for (argp = cmd->ncmd.args ; argp ; argp = argp->narg.next) { if (varflag && isassignment(argp->narg.text)) { - expandarg(argp, &varlist, EXP_VARTILDE); + expandarg(argp, varflag == 1 ? &varlist : &arglist, + EXP_VARTILDE); continue; - } + } else if (varflag == 1) + varflag = isdeclarationcmd(&argp->narg) ? 2 : 0; expandarg(argp, &arglist, EXP_FULL | EXP_TILDE); - varflag = 0; } *arglist.lastp = NULL; *varlist.lastp = NULL; Modified: projects/amd64_xen_pv/bin/sh/exec.c ============================================================================== --- projects/amd64_xen_pv/bin/sh/exec.c Tue Jul 31 10:58:50 2012 (r238943) +++ projects/amd64_xen_pv/bin/sh/exec.c Tue Jul 31 11:16:19 2012 (r238944) @@ -648,6 +648,19 @@ unsetfunc(const char *name) return (0); } + +/* + * Check if a function by a certain name exists. + */ +int +isfunc(const char *name) +{ + struct tblentry *cmdp; + cmdp = cmdlookup(name, 0); + return (cmdp != NULL && cmdp->cmdtype == CMDFUNCTION); +} + + /* * Shared code for the following builtin commands: * type, command -v, command -V Modified: projects/amd64_xen_pv/bin/sh/exec.h ============================================================================== --- projects/amd64_xen_pv/bin/sh/exec.h Tue Jul 31 10:58:50 2012 (r238943) +++ projects/amd64_xen_pv/bin/sh/exec.h Tue Jul 31 11:16:19 2012 (r238944) @@ -72,5 +72,6 @@ void hashcd(void); void changepath(const char *); void defun(const char *, union node *); int unsetfunc(const char *); +int isfunc(const char *); int typecmd_impl(int, char **, int, const char *); void clearcmdentry(void); Modified: projects/amd64_xen_pv/bin/sh/input.c ============================================================================== --- projects/amd64_xen_pv/bin/sh/input.c Tue Jul 31 10:58:50 2012 (r238943) +++ projects/amd64_xen_pv/bin/sh/input.c Tue Jul 31 11:16:19 2012 (r238944) @@ -186,7 +186,7 @@ retry: if (rl_cp == NULL) rl_cp = el_gets(el, &el_len); if (rl_cp == NULL) - nr = 0; + nr = el_len == 0 ? 0 : -1; else { nr = el_len; if (nr > BUFSIZ) Modified: projects/amd64_xen_pv/bin/sh/jobs.c ============================================================================== --- projects/amd64_xen_pv/bin/sh/jobs.c Tue Jul 31 10:58:50 2012 (r238943) +++ projects/amd64_xen_pv/bin/sh/jobs.c Tue Jul 31 11:16:19 2012 (r238944) @@ -84,10 +84,13 @@ static struct job *jobmru; /* most recen static pid_t initialpgrp; /* pgrp of shell on invocation */ #endif int in_waitcmd = 0; /* are we in waitcmd()? */ -int in_dowait = 0; /* are we in dowait()? */ volatile sig_atomic_t breakwaitcmd = 0; /* should wait be terminated? */ static int ttyfd = -1; +/* mode flags for dowait */ +#define DOWAIT_BLOCK 0x1 /* wait until a child exits */ +#define DOWAIT_SIG 0x2 /* if DOWAIT_BLOCK, abort on signals */ + #if JOBS static void restartjob(struct job *); #endif @@ -95,7 +98,6 @@ static void freejob(struct job *); static struct job *getjob(char *); pid_t getjobpgrp(char *); static pid_t dowait(int, struct job *); -static pid_t waitproc(int, int *); static void checkzombies(void); static void cmdtxt(union node *); static void cmdputs(const char *); @@ -520,7 +522,7 @@ waitcmd(int argc, char **argv) break; } } - } while (dowait(1, (struct job *)NULL) != -1); + } while (dowait(DOWAIT_BLOCK | DOWAIT_SIG, (struct job *)NULL) != -1); in_waitcmd--; return 0; @@ -967,7 +969,7 @@ waitforjob(struct job *jp, int *origstat INTOFF; TRACE(("waitforjob(%%%td) called\n", jp - jobtab + 1)); while (jp->state == 0) - if (dowait(1, jp) == -1) + if (dowait(DOWAIT_BLOCK | (Tflag ? DOWAIT_SIG : 0), jp) == -1) dotrap(); #if JOBS if (jp->jobctl) { @@ -1005,14 +1007,20 @@ waitforjob(struct job *jp, int *origstat } +static void +dummy_handler(int sig) +{ +} /* * Wait for a process to terminate. */ static pid_t -dowait(int block, struct job *job) +dowait(int mode, struct job *job) { + struct sigaction sa, osa; + sigset_t mask, omask; pid_t pid; int status; struct procstat *sp; @@ -1022,17 +1030,49 @@ dowait(int block, struct job *job) int stopped; int sig; int coredump; + int wflags; + int restore_sigchld; - in_dowait++; TRACE(("dowait(%d) called\n", block)); + restore_sigchld = 0; + if ((mode & DOWAIT_SIG) != 0) { + sigfillset(&mask); + sigprocmask(SIG_BLOCK, &mask, &omask); + INTOFF; + if (!issigchldtrapped()) { + restore_sigchld = 1; + sa.sa_handler = dummy_handler; + sa.sa_flags = 0; + sigemptyset(&sa.sa_mask); + sigaction(SIGCHLD, &sa, &osa); + } + } do { - pid = waitproc(block, &status); +#if JOBS + if (iflag) + wflags = WUNTRACED | WCONTINUED; + else +#endif + wflags = 0; + if ((mode & (DOWAIT_BLOCK | DOWAIT_SIG)) != DOWAIT_BLOCK) + wflags |= WNOHANG; + pid = wait3(&status, wflags, (struct rusage *)NULL); TRACE(("wait returns %d, status=%d\n", (int)pid, status)); - } while ((pid == -1 && errno == EINTR && breakwaitcmd == 0) || - (pid > 0 && WIFSTOPPED(status) && !iflag)); - in_dowait--; + if (pid == 0 && (mode & DOWAIT_SIG) != 0) { + sigsuspend(&omask); + pid = -1; + if (int_pending()) + break; + } + } while (pid == -1 && errno == EINTR && breakwaitcmd == 0); if (pid == -1 && errno == ECHILD && job != NULL) job->state = JOBDONE; + if ((mode & DOWAIT_SIG) != 0) { + if (restore_sigchld) + sigaction(SIGCHLD, &osa, NULL); + sigprocmask(SIG_SETMASK, &omask, NULL); + INTON; + } if (breakwaitcmd != 0) { breakwaitcmd = 0; if (pid <= 0) @@ -1053,7 +1093,11 @@ dowait(int block, struct job *job) TRACE(("Changing status of proc %d from 0x%x to 0x%x\n", (int)pid, sp->status, status)); - sp->status = status; + if (WIFCONTINUED(status)) { + sp->status = -1; + jp->state = 0; + } else + sp->status = status; thisjob = jp; } if (sp->status == -1) @@ -1111,26 +1155,6 @@ dowait(int block, struct job *job) /* - * Do a wait system call. If job control is compiled in, we accept - * stopped processes. If block is zero, we return a value of zero - * rather than blocking. - */ -static pid_t -waitproc(int block, int *status) -{ - int flags; - -#if JOBS - flags = WUNTRACED; -#else - flags = 0; -#endif - if (block == 0) - flags |= WNOHANG; - return wait3(status, flags, (struct rusage *)NULL); -} - -/* * return 1 if there are stopped jobs, otherwise 0 */ int job_warning = 0; Modified: projects/amd64_xen_pv/bin/sh/jobs.h ============================================================================== --- projects/amd64_xen_pv/bin/sh/jobs.h Tue Jul 31 10:58:50 2012 (r238943) +++ projects/amd64_xen_pv/bin/sh/jobs.h Tue Jul 31 11:16:19 2012 (r238944) @@ -84,7 +84,6 @@ enum { extern int job_warning; /* user was warned about stopped jobs */ extern int in_waitcmd; /* are we in waitcmd()? */ -extern int in_dowait; /* are we in dowait()? */ extern volatile sig_atomic_t breakwaitcmd; /* break wait to process traps? */ void setjobctl(int); Modified: projects/amd64_xen_pv/bin/sh/sh.1 ============================================================================== --- projects/amd64_xen_pv/bin/sh/sh.1 Tue Jul 31 10:58:50 2012 (r238943) +++ projects/amd64_xen_pv/bin/sh/sh.1 Tue Jul 31 11:16:19 2012 (r238944) @@ -32,7 +32,7 @@ .\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95 .\" $FreeBSD$ .\" -.Dd November 5, 2011 +.Dd July 15, 2012 .Dt SH 1 .Os .Sh NAME @@ -1164,6 +1164,20 @@ Assignments are expanded differently fro tilde expansion is also performed after the equals sign and after any colon and usernames are also terminated by colons, and field splitting and pathname expansion are not performed. +.Pp +This special expansion applies not only to assignments that form a simple +command by themselves or precede a command word, +but also to words passed to the +.Ic export , +.Ic local +or +.Ic readonly +built-in commands that have this form. +For this, the builtin's name must be literal +(not the result of an expansion) +and may optionally be preceded by one or more literal instances of +.Ic command +without options. .Ss Positional Parameters A positional parameter is a parameter denoted by a number greater than zero. The shell sets these initially to the values of its command line Modified: projects/amd64_xen_pv/bin/sh/trap.c ============================================================================== --- projects/amd64_xen_pv/bin/sh/trap.c Tue Jul 31 10:58:50 2012 (r238943) +++ projects/amd64_xen_pv/bin/sh/trap.c Tue Jul 31 11:16:19 2012 (r238944) @@ -368,6 +368,14 @@ ignoresig(int signo) } +int +issigchldtrapped(void) +{ + + return (trap[SIGCHLD] != NULL && *trap[SIGCHLD] != '\0'); +} + + /* * Signal handler. */ @@ -416,6 +424,7 @@ dotrap(void) in_dotrap++; for (;;) { + pendingsigs = 0; for (i = 1; i < NSIG; i++) { if (gotsig[i]) { gotsig[i] = 0; @@ -467,7 +476,6 @@ dotrap(void) break; } in_dotrap--; - pendingsigs = 0; } Modified: projects/amd64_xen_pv/bin/sh/trap.h ============================================================================== --- projects/amd64_xen_pv/bin/sh/trap.h Tue Jul 31 10:58:50 2012 (r238943) +++ projects/amd64_xen_pv/bin/sh/trap.h Tue Jul 31 11:16:19 2012 (r238944) @@ -41,6 +41,7 @@ void clear_traps(void); int have_traps(void); void setsignal(int); void ignoresig(int); +int issigchldtrapped(void); void onsig(int); void dotrap(void); void setinteractive(int); Modified: projects/amd64_xen_pv/bin/stty/extern.h ============================================================================== --- projects/amd64_xen_pv/bin/stty/extern.h Tue Jul 31 10:58:50 2012 (r238943) +++ projects/amd64_xen_pv/bin/stty/extern.h Tue Jul 31 11:16:19 2012 (r238944) @@ -40,6 +40,6 @@ int ksearch(char ***, struct info *); int msearch(char ***, struct info *); void optlist(void); void print(struct termios *, struct winsize *, int, enum FMT); -void usage(void); +void usage(void) __dead2; extern struct cchar cchars1[], cchars2[]; Modified: projects/amd64_xen_pv/cddl/compat/opensolaris/misc/deviceid.c ============================================================================== --- projects/amd64_xen_pv/cddl/compat/opensolaris/misc/deviceid.c Tue Jul 31 10:58:50 2012 (r238943) +++ projects/amd64_xen_pv/cddl/compat/opensolaris/misc/deviceid.c Tue Jul 31 11:16:19 2012 (r238944) @@ -45,7 +45,7 @@ devid_str_decode(char *devidstr, ddi_dev return (EINVAL); } *retminor_name = strdup(""); - if (*retminor_name == NULL); + if (*retminor_name == NULL) return (ENOMEM); return (0); } Modified: projects/amd64_xen_pv/cddl/contrib/dtracetoolkit/dtruss ============================================================================== --- projects/amd64_xen_pv/cddl/contrib/dtracetoolkit/dtruss Tue Jul 31 10:58:50 2012 (r238943) +++ projects/amd64_xen_pv/cddl/contrib/dtracetoolkit/dtruss Tue Jul 31 11:16:19 2012 (r238944) @@ -240,7 +240,7 @@ syscall:::entry */ /* print 3 args, return as hex */ -syscall::lwp_sigmask:return +syscall::sigprocmask:return /self->start/ { /* calculate elapsed time */ @@ -268,10 +268,11 @@ syscall::lwp_sigmask:return } /* print 3 args, arg0 as a string */ +syscall::access*:return, syscall::stat*:return, syscall::lstat*:return, -syscall::open*:return, -syscall::resolvepath:return +syscall::readlink*:return, +syscall::open*:return /self->start/ { /* calculate elapsed time */ @@ -329,7 +330,6 @@ syscall::*read*:return } /* print 0 arg output */ -syscall::gtime:return, syscall::*fork*:return /self->start/ { @@ -357,9 +357,6 @@ syscall::*fork*:return } /* print 1 arg output */ -syscall::brk:return, -syscall::times:return, -syscall::stime:return, syscall::close:return /self->start/ { @@ -387,7 +384,7 @@ syscall::close:return } /* print 2 arg output */ -syscall::utime:return, +syscall::utimes:return, syscall::munmap:return /self->start/ { Copied: projects/amd64_xen_pv/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh (from r238911, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/amd64_xen_pv/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh Tue Jul 31 11:16:19 2012 (r238944, copy of r238911, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh) @@ -0,0 +1,76 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# + +# +# Copyright (c) 2011, Joyent Inc. All rights reserved. +# Use is subject to license terms. +# + +# +# Test to catch that we properly look for libraries dependencies in +# our full library parth +# + +if [ $# != 1 ]; then + echo expected one argument: '<'dtrace-path'>' + exit 2 +fi + +libdira=${TMPDIR:-/tmp}/libdepa.$$ +libdirb=${TMPDIR:-/tmp}/libdepb.$$ +libdirc=${TMPDIR:-/tmp}/libdepc.$$ +dtrace=$1 + +setup_libs() +{ + mkdir $libdira + mkdir $libdirb + mkdir $libdirc + cat > $libdira/liba.$$.d < $libdirb/libb.$$.d < $libdirb/libc.$$.d < $libdirb/libd.$$.d < $libdirc/libe.$$.d < $libdirc/libf.$$.d <cb_doclones) { + if (!cb->cb_doclones && !cb->cb_defer_destroy) { cb->cb_target = zhp; cb->cb_first = B_TRUE; err = zfs_iter_dependents(zhp, B_TRUE, Modified: projects/amd64_xen_pv/cddl/contrib/opensolaris/lib/libdtrace/common/dt_cc.c ============================================================================== --- projects/amd64_xen_pv/cddl/contrib/opensolaris/lib/libdtrace/common/dt_cc.c Tue Jul 31 10:58:50 2012 (r238943) +++ projects/amd64_xen_pv/cddl/contrib/opensolaris/lib/libdtrace/common/dt_cc.c Tue Jul 31 11:16:19 2012 (r238944) @@ -21,6 +21,7 @@ /* * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, Joyent Inc. All rights reserved. */ /* @@ -2150,25 +2151,23 @@ dt_lib_depend_free(dtrace_hdl_t *dtp) } } - /* - * Open all of the .d library files found in the specified directory and - * compile each one in topological order to cache its inlines and translators, - * etc. We silently ignore any missing directories and other files found - * therein. We only fail (and thereby fail dt_load_libs()) if we fail to - * compile a library and the error is something other than #pragma D depends_on. - * Dependency errors are silently ignored to permit a library directory to - * contain libraries which may not be accessible depending on our privileges. + * Open all the .d library files found in the specified directory and + * compile each one of them. We silently ignore any missing directories and + * other files found therein. We only fail (and thereby fail dt_load_libs()) if + * we fail to compile a library and the error is something other than #pragma D + * depends_on. Dependency errors are silently ignored to permit a library + * directory to contain libraries which may not be accessible depending on our + * privileges. */ static int dt_load_libs_dir(dtrace_hdl_t *dtp, const char *path) { struct dirent *dp; - const char *p; + const char *p, *end; DIR *dirp; char fname[PATH_MAX]; - dtrace_prog_t *pgp; FILE *fp; void *rv; dt_lib_depend_t *dld; @@ -2192,9 +2191,28 @@ dt_load_libs_dir(dtrace_hdl_t *dtp, cons continue; } + /* + * Skip files whose name match an already processed library + */ + for (dld = dt_list_next(&dtp->dt_lib_dep); dld != NULL; + dld = dt_list_next(dld)) { + end = strrchr(dld->dtld_library, '/'); + /* dt_lib_depend_add ensures this */ + assert(end != NULL); + if (strcmp(end + 1, dp->d_name) == 0) + break; + } + + if (dld != NULL) { + dt_dprintf("skipping library %s, already processed " + "library with the same name: %s", dp->d_name, + dld->dtld_library); + continue; + } + dtp->dt_filetag = fname; if (dt_lib_depend_add(dtp, &dtp->dt_lib_dep, fname) != 0) - goto err; + return (-1); /* preserve dt_errno */ rv = dt_compile(dtp, DT_CTX_DPROG, DTRACE_PROBESPEC_NAME, NULL, @@ -2203,7 +2221,7 @@ dt_load_libs_dir(dtrace_hdl_t *dtp, cons if (rv != NULL && dtp->dt_errno && (dtp->dt_errno != EDT_COMPILER || dtp->dt_errtag != dt_errtag(D_PRAGMA_DEPEND))) - goto err; + return (-1); /* preserve dt_errno */ if (dtp->dt_errno) dt_dprintf("error parsing library %s: %s\n", @@ -2214,6 +2232,27 @@ dt_load_libs_dir(dtrace_hdl_t *dtp, cons } (void) closedir(dirp); + + return (0); +} + +/* + * Perform a topological sorting of all the libraries found across the entire + * dt_lib_path. Once sorted, compile each one in topological order to cache its + * inlines and translators, etc. We silently ignore any missing directories and + * other files found therein. We only fail (and thereby fail dt_load_libs()) if + * we fail to compile a library and the error is something other than #pragma D + * depends_on. Dependency errors are silently ignored to permit a library + * directory to contain libraries which may not be accessible depending on our + * privileges. + */ +static int +dt_load_libs_sort(dtrace_hdl_t *dtp) +{ + dtrace_prog_t *pgp; + FILE *fp; + dt_lib_depend_t *dld; + /* * Finish building the graph containing the library dependencies * and perform a topological sort to generate an ordered list @@ -2274,7 +2313,14 @@ dt_load_libs(dtrace_hdl_t *dtp) dtp->dt_cflags |= DTRACE_C_NOLIBS; - for (dirp = dt_list_next(&dtp->dt_lib_path); + /* + * /usr/lib/dtrace is always at the head of the list. The rest of the + * list is specified in the precedence order the user requested. Process + * everything other than the head first. DTRACE_C_NOLIBS has already + * been spcified so dt_vopen will ensure that there is always one entry + * in dt_lib_path. + */ + for (dirp = dt_list_next(dt_list_next(&dtp->dt_lib_path)); dirp != NULL; dirp = dt_list_next(dirp)) { if (dt_load_libs_dir(dtp, dirp->dir_path) != 0) { dtp->dt_cflags &= ~DTRACE_C_NOLIBS; @@ -2282,6 +2328,16 @@ dt_load_libs(dtrace_hdl_t *dtp) } } + /* Handle /usr/lib/dtrace */ + dirp = dt_list_next(&dtp->dt_lib_path); + if (dt_load_libs_dir(dtp, dirp->dir_path) != 0) { + dtp->dt_cflags &= ~DTRACE_C_NOLIBS; + return (-1); /* errno is set for us */ + } + + if (dt_load_libs_sort(dtp) < 0) + return (-1); /* errno is set for us */ + return (0); } Modified: projects/amd64_xen_pv/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c ============================================================================== --- projects/amd64_xen_pv/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c Tue Jul 31 10:58:50 2012 (r238943) +++ projects/amd64_xen_pv/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c Tue Jul 31 11:16:19 2012 (r238944) @@ -796,7 +796,7 @@ dt_print_llquantize(dtrace_hdl_t *dtp, F return (0); assert(last_bin == bin); - (void) snprintf(c, sizeof (c), ">= %lld", value); + (void) snprintf(c, sizeof (c), ">= %lld", (long long)value); if (dt_printf(dtp, fp, "%16s ", c) < 0) return (-1); Modified: projects/amd64_xen_pv/cddl/contrib/opensolaris/lib/libdtrace/common/dt_parser.c ============================================================================== --- projects/amd64_xen_pv/cddl/contrib/opensolaris/lib/libdtrace/common/dt_parser.c Tue Jul 31 10:58:50 2012 (r238943) +++ projects/amd64_xen_pv/cddl/contrib/opensolaris/lib/libdtrace/common/dt_parser.c Tue Jul 31 11:16:19 2012 (r238944) @@ -22,7 +22,7 @@ /* * Copyright 2006 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. + * Copyright (c) 2011, Joyent Inc. All rights reserved. */ #pragma ident "%Z%%M% %I% %E% SMI" @@ -725,12 +725,19 @@ dt_node_type_name(const dt_node_t *dnp, size_t dt_node_type_size(const dt_node_t *dnp) { + ctf_id_t base; + if (dnp->dn_kind == DT_NODE_STRING) return (strlen(dnp->dn_string) + 1); if (dt_node_is_dynamic(dnp) && dnp->dn_ident != NULL) return (dt_ident_size(dnp->dn_ident)); + base = ctf_type_resolve(dnp->dn_ctfp, dnp->dn_type); + + if (ctf_type_kind(dnp->dn_ctfp, base) == CTF_K_FORWARD) + return (0); + return (ctf_type_size(dnp->dn_ctfp, dnp->dn_type)); } Modified: projects/amd64_xen_pv/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pragma.c ============================================================================== --- projects/amd64_xen_pv/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pragma.c Tue Jul 31 10:58:50 2012 (r238943) +++ projects/amd64_xen_pv/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pragma.c Tue Jul 31 11:16:19 2012 (r238944) @@ -21,7 +21,7 @@ /* * Copyright 2008 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. + * Copyright (c) 2011, Joyent Inc. All rights reserved. */ #pragma ident "%Z%%M% %I% %E% SMI" @@ -31,9 +31,13 @@ #if defined(sun) #include #endif +#include #include #include +#include +#include + #include #include #include @@ -201,6 +205,29 @@ dt_pragma_binding(const char *prname, dt dtp->dt_globals->dh_defer = &dt_pragma_apply; } +static void +dt_pragma_depends_finddep(dtrace_hdl_t *dtp, const char *lname, char *lib, + size_t len) +{ + dt_dirpath_t *dirp; + struct stat sbuf; + int found = 0; + + for (dirp = dt_list_next(&dtp->dt_lib_path); dirp != NULL; + dirp = dt_list_next(dirp)) { + (void) snprintf(lib, len, "%s/%s", dirp->dir_path, lname); + + if (stat(lib, &sbuf) == 0) { + found = 1; + break; + } + } + + if (!found) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Tue Jul 31 13:11:21 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BB47D106564A; Tue, 31 Jul 2012 13:11:21 +0000 (UTC) (envelope-from monthadar@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8D4D28FC15; Tue, 31 Jul 2012 13:11:21 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q6VDBLeU030276; Tue, 31 Jul 2012 13:11:21 GMT (envelope-from monthadar@svn.freebsd.org) Received: (from monthadar@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q6VDBLGR030274; Tue, 31 Jul 2012 13:11:21 GMT (envelope-from monthadar@svn.freebsd.org) Message-Id: <201207311311.q6VDBLGR030274@svn.freebsd.org> From: Monthadar Al Jaberi Date: Tue, 31 Jul 2012 13:11:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r238946 - projects/net80211_testsuite/wtap/009 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Jul 2012 13:11:21 -0000 Author: monthadar Date: Tue Jul 31 13:11:20 2012 New Revision: 238946 URL: http://svn.freebsd.org/changeset/base/238946 Log: Modified test 9 to test ping between each node at the end. Modified: projects/net80211_testsuite/wtap/009/test.sh Modified: projects/net80211_testsuite/wtap/009/test.sh ============================================================================== --- projects/net80211_testsuite/wtap/009/test.sh Tue Jul 31 11:31:12 2012 (r238945) +++ projects/net80211_testsuite/wtap/009/test.sh Tue Jul 31 13:11:20 2012 (r238946) @@ -48,6 +48,8 @@ It: * node A filters out B with ACL deny policy * node B should not flood with PEER OPEN +* node A changed ACL policy to open +* does a ping test from each node to each other node. EOL } @@ -101,19 +103,47 @@ run() { NBR_TESTS=1 NBR_FAIL=0 - cmd sleep 10 + # chicken egg problem, this is default value + cmd sleep 5 #net.wlan.mesh.backofftimeout=5 n="`expr ${NBR_NODES} - 1`" for i in `seq 0 ${n}`; do vnet="`expr ${i} + 1`" cmd cat /dev/wtap${i} > wtap${i}.debug done - TMP=`cat wtap${i}.debug | grep "send PEER OPEN" | wc -l` + TMP=`cat wtap${i}.debug | grep "OPEN SENT -> HOLDING" | wc -l` - if [ $TMP -gt "3" ]; then # 3 is just random, should read from sysctl. + NBR_HOLDING="2" #net.wlan.mesh.maxholding=2 + + if [ $TMP -gt "$NBR_HOLDING" ]; then info "node B is flooding!" NBR_FAIL="`expr ${NBR_FAIL} + 1`" fi + # Now remove ACL policy and see if we can ping + cmd jexec 1 ifconfig wlan0 mac:open + + # Test connectivity from each node to each other node + for i in `seq 1 ${NBR_NODES}`; do + for j in `seq 1 ${NBR_NODES}`; do + if [ "$i" != "$j" ]; then + # From vimage '$i' to vimage '$j'.. + info "Checking ${i} -> ${j}.." + NBR_TESTS="`expr ${NBR_TESTS} + 1`" + # Return after a single successful packet + cmd jexec $i ping -q -t 5 -c 5 \ + -o ${IP_SUBNET}${j} + + if [ "$?" = "0" ]; then + info "CHECK: ${i} -> ${j}: SUCCESS" + else + info "CHECK: ${i} -> ${j}: FAILURE" + NBR_FAIL="`expr ${NBR_FAIL} + 1`" + fi + fi + done + done + + if [ $NBR_FAIL = 0 ]; then info "ALL TESTS PASSED" TEST_RESULT=0 From owner-svn-src-projects@FreeBSD.ORG Wed Aug 1 05:53:21 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 48078106564A; Wed, 1 Aug 2012 05:53:21 +0000 (UTC) (envelope-from grehan@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 32A528FC27; Wed, 1 Aug 2012 05:53:21 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q715rLWB016033; Wed, 1 Aug 2012 05:53:21 GMT (envelope-from grehan@svn.freebsd.org) Received: (from grehan@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q715rLAd016031; Wed, 1 Aug 2012 05:53:21 GMT (envelope-from grehan@svn.freebsd.org) Message-Id: <201208010553.q715rLAd016031@svn.freebsd.org> From: Peter Grehan Date: Wed, 1 Aug 2012 05:53:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r238966 - projects/bhyve/sys/boot/userboot/userboot X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Aug 2012 05:53:21 -0000 Author: grehan Date: Wed Aug 1 05:53:20 2012 New Revision: 238966 URL: http://svn.freebsd.org/changeset/base/238966 Log: Bump up the heap size to 1MB. With a few kernel modules, libstand zalloc and userboot seem to want to use ~600KB of heap space, which results in a segfault when malloc fails in bhyveload. Reported by: sree dot openwrk at gmail dot com Modified: projects/bhyve/sys/boot/userboot/userboot/main.c Modified: projects/bhyve/sys/boot/userboot/userboot/main.c ============================================================================== --- projects/bhyve/sys/boot/userboot/userboot/main.c Wed Aug 1 01:18:36 2012 (r238965) +++ projects/bhyve/sys/boot/userboot/userboot/main.c Wed Aug 1 05:53:20 2012 (r238966) @@ -67,7 +67,7 @@ exit(int v) void loader_main(struct loader_callbacks_v1 *cb, void *arg, int version, int ndisks) { - static char malloc[512*1024]; + static char malloc[1024*1024]; int i; if (version != USERBOOT_VERSION_1) @@ -82,7 +82,7 @@ loader_main(struct loader_callbacks_v1 * * alloc() is usable. The stack is buried inside us, so this is * safe. */ - setheap((void *)malloc, (void *)(malloc + 512*1024)); + setheap((void *)malloc, (void *)(malloc + 1024*1024)); /* * Hook up the console From owner-svn-src-projects@FreeBSD.ORG Thu Aug 2 20:56:06 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id BC92F1065677; Thu, 2 Aug 2012 20:56:06 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: from mail-lpp01m010-f54.google.com (mail-lpp01m010-f54.google.com [209.85.215.54]) by mx1.freebsd.org (Postfix) with ESMTP id 9F3478FC1D; Thu, 2 Aug 2012 20:56:05 +0000 (UTC) Received: by laai10 with SMTP id i10so6746574laa.13 for ; Thu, 02 Aug 2012 13:56:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=UVSZuMJS4K9jGWKl2HucgMlQzwDQ4fadltCuyQCIRAw=; b=HKeOkbLoB6kmUlCmb9epcg6iABVJ3lj+R4VBfLU0FgaSYA9lxypl+7YaUpc3wfkf86 or5HsmaDXAoxCvFSXuxZb18o0oPKpwbt2RsPmSdfzgYI8+bUWRkye5OjGYRh+BpOTbtP ozpxwi5BLO3IoN6L5NEdxhnNX0JtrxWdQcOEZzrBspKtgpeWNmloGKwDMLRYbuiYkOHz SNwUb/p3htFeCkJLBDGsxNb9uR0uvrR/tUQYCzo+w8LmOesq2O6ThLF+arYOa3RPuHl2 mE4161rd0+2RopQYKFSq9wKRll1XvG9IrklhFw5L7gKKwxIXFzw1dWD0meZaWlgrij59 d9vg== MIME-Version: 1.0 Received: by 10.112.11.100 with SMTP id p4mr10223917lbb.35.1343940964156; Thu, 02 Aug 2012 13:56:04 -0700 (PDT) Sender: asmrookie@gmail.com Received: by 10.112.27.65 with HTTP; Thu, 2 Aug 2012 13:56:03 -0700 (PDT) In-Reply-To: <201207301732.33474.jhb@freebsd.org> References: <201207301350.q6UDobCI099069@svn.freebsd.org> <201207301732.33474.jhb@freebsd.org> Date: Thu, 2 Aug 2012 21:56:03 +0100 X-Google-Sender-Auth: y9HTdkK94zK2UiapVfasLJwy15c Message-ID: From: Attilio Rao To: John Baldwin Content-Type: text/plain; charset=UTF-8 Cc: Konstantin Belousov , Davide Italiano , src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: Re: svn commit: r238907 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: attilio@FreeBSD.org List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Aug 2012 20:56:06 -0000 On 7/30/12, John Baldwin wrote: > On Monday, July 30, 2012 5:00:20 pm Attilio Rao wrote: [ trimm ] >> Right now some sort of similar check is enforced by WITNESS, but I can >> see a value in cases where you want to test a kernel with INVARIANTS >> but without WITNESS (it is not a matter of performance, it is just >> that sometimes you cannot reproduce some specific races with WITNESS >> on, while you can do it with WITNESS off, so it is funny to note how >> sometimes WITNESS should be just dropped for some locking issues). > > No, it's to fix the constraint for RM_SLEEPABLE locks. The larger patch > containing it is below. I still need to test it though. > > --- //depot/projects/smpng/sys/kern/kern_cpuset.c 2012-03-25 > 18:45:29.000000000 0000 > +++ //depot/user/jhb/lock/kern/kern_cpuset.c 2012-06-18 21:20:58.000000000 > 0000 > @@ -1147,25 +1147,34 @@ > } > > #ifdef DDB > +void > +ddb_display_cpuset(const cpuset_t *set) > +{ > + int cpu, once; > + > + for (once = 0, cpu = 0; cpu < CPU_SETSIZE; cpu++) { > + if (CPU_ISSET(cpu, set)) { > + if (once == 0) { > + db_printf("%d", cpu); > + once = 1; > + } else > + db_printf(",%d", cpu); > + } > + } > + if (once == 0) > + db_printf(""); > +} > + > DB_SHOW_COMMAND(cpusets, db_show_cpusets) > { > struct cpuset *set; > - int cpu, once; > > LIST_FOREACH(set, &cpuset_ids, cs_link) { > db_printf("set=%p id=%-6u ref=%-6d flags=0x%04x parent id=%d\n", > set, set->cs_id, set->cs_ref, set->cs_flags, > (set->cs_parent != NULL) ? set->cs_parent->cs_id : 0); > db_printf(" mask="); > - for (once = 0, cpu = 0; cpu < CPU_SETSIZE; cpu++) { > - if (CPU_ISSET(cpu, &set->cs_mask)) { > - if (once == 0) { > - db_printf("%d", cpu); > - once = 1; > - } else > - db_printf(",%d", cpu); > - } > - } > + ddb_display_cpuset(&set->cs_mask); > db_printf("\n"); > if (db_pager_quit) > break; I think this is a nice add-on, please commit it separately. > --- //depot/projects/smpng/sys/kern/kern_lock.c 2012-06-04 > 18:27:32.000000000 0000 > +++ //depot/user/jhb/lock/kern/kern_lock.c 2012-06-18 14:44:48.000000000 > 0000 > @@ -394,12 +394,12 @@ > iflags |= LO_QUIET; > iflags |= flags & (LK_ADAPTIVE | LK_NOSHARE); > > + lock_init(&lk->lock_object, &lock_class_lockmgr, wmesg, NULL, iflags); > lk->lk_lock = LK_UNLOCKED; > lk->lk_recurse = 0; > lk->lk_exslpfail = 0; > lk->lk_timo = timo; > lk->lk_pri = pri; > - lock_init(&lk->lock_object, &lock_class_lockmgr, wmesg, NULL, iflags); > STACK_ZERO(lk); > } I'm not sure, why these reshuffling are needed? > --- //depot/projects/smpng/sys/kern/kern_rmlock.c 2012-03-25 > 18:45:29.000000000 0000 > +++ //depot/user/jhb/lock/kern/kern_rmlock.c 2012-06-18 21:20:58.000000000 > 0000 > @@ -70,6 +70,9 @@ > } > > static void assert_rm(const struct lock_object *lock, int what); > +#ifdef DDB > +static void db_show_rm(const struct lock_object *lock); > +#endif > static void lock_rm(struct lock_object *lock, int how); > #ifdef KDTRACE_HOOKS > static int owner_rm(const struct lock_object *lock, struct thread > **owner); While here, did you consider also: - Abstracting compiler_memory_barrier() into a MI, compiler dependent function? - Fix rm_queue with DCPU possibly > --- //depot/projects/smpng/sys/kern/subr_sleepqueue.c 2012-06-04 > 18:27:32.000000000 0000 > +++ //depot/user/jhb/lock/kern/subr_sleepqueue.c 2012-06-05 > 14:46:23.000000000 0000 > @@ -296,7 +296,7 @@ > MPASS((queue >= 0) && (queue < NR_SLEEPQS)); > > /* If this thread is not allowed to sleep, die a horrible death. */ > - KASSERT(!(td->td_pflags & TDP_NOSLEEPING), > + KASSERT(td->td_no_sleeping == 0, > ("Trying sleep, but thread marked as sleeping prohibited")); > > /* Look up the sleep queue associated with the wait channel 'wchan'. */ Do we want to complete the TDP_NOSLEEPING support by also offering a macro for the check? Maybe as a separate patch. > --- //depot/projects/smpng/sys/kern/subr_syscall.c 2012-06-04 > 18:27:32.000000000 0000 > +++ //depot/user/jhb/lock/kern/subr_syscall.c 2012-06-05 14:46:23.000000000 > 0000 > @@ -185,9 +185,12 @@ > KASSERT((td->td_pflags & TDP_NOFAULTING) == 0, > ("System call %s returning with pagefaults disabled", > syscallname(p, sa->code))); > - KASSERT((td->td_pflags & TDP_NOSLEEPING) == 0, > + KASSERT(td->td_no_sleeping == 0, > ("System call %s returning with sleep disabled", > syscallname(p, sa->code))); > + KASSERT(td->td_pinned == 0, > + ("System call %s returning with pinned thread", > + syscallname(p, sa->code))); > > /* > * Handle reschedule and other end-of-syscall issues Can you also add CRITICAL_ASSERT()? > --- //depot/projects/smpng/sys/kern/subr_turnstile.c 2012-06-04 > 18:27:32.000000000 0000 > +++ //depot/user/jhb/lock/kern/subr_turnstile.c 2012-06-05 > 00:27:57.000000000 0000 > @@ -684,6 +684,7 @@ > if (owner) > MPASS(owner->td_proc->p_magic == P_MAGIC); > MPASS(queue == TS_SHARED_QUEUE || queue == TS_EXCLUSIVE_QUEUE); > + KASSERT(!TD_IS_IDLETHREAD(td), ("idle threads cannot block on locks")); > > /* > * If the lock does not already have a turnstile, use this thread's I'm wondering if we should also use similar checks in places doing adaptive spinning (including the TD_NO_SLEEPING check). Likely yes. > --- //depot/projects/smpng/sys/sys/_rmlock.h 2011-06-20 00:58:40.000000000 > 0000 > +++ //depot/user/jhb/lock/sys/_rmlock.h 2012-06-05 01:54:51.000000000 0000 > @@ -44,14 +44,17 @@ > LIST_HEAD(rmpriolist,rm_priotracker); > > struct rmlock { > - struct lock_object lock_object; > + struct lock_object lock_object; > volatile cpuset_t rm_writecpus; > LIST_HEAD(,rm_priotracker) rm_activeReaders; > union { > + struct lock_object _rm_wlock_object; > struct mtx _rm_lock_mtx; > struct sx _rm_lock_sx; > } _rm_lock; > }; > + > +#define rm_wlock_object _rm_lock._rm_wlock_object > #define rm_lock_mtx _rm_lock._rm_lock_mtx > #define rm_lock_sx _rm_lock._rm_lock_sx What is the point of keeping both the mtx and the rwlock? > --- //depot/projects/smpng/sys/sys/cpuset.h 2012-03-25 18:45:29.000000000 > 0000 > +++ //depot/user/jhb/lock/sys/cpuset.h 2012-06-18 21:20:58.000000000 0000 > @@ -216,6 +216,9 @@ > int cpusetobj_ffs(const cpuset_t *); > char *cpusetobj_strprint(char *, const cpuset_t *); > int cpusetobj_strscan(cpuset_t *, const char *); > +#ifdef DDB > +void ddb_display_cpuset(const cpuset_t *); > +#endif > > #else > __BEGIN_DECLS I'd prefer you offer a compat stub in order to avoid a KPI breakage rather than make an header dependent by DDB. If it was INVARIANTS dependant you may have user INVARIANT_SUPPORT for this, but I guess we just use that for INVARIANTS and not DDB (even if we could generalize it to, maybe under another name, to all the debugging mechanisms). The rest of the patch looks good. Attilio -- Peace can only be achieved by understanding - A. Einstein From owner-svn-src-projects@FreeBSD.ORG Thu Aug 2 21:04:11 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 35166106566C; Thu, 2 Aug 2012 21:04:11 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: from mail-lpp01m010-f54.google.com (mail-lpp01m010-f54.google.com [209.85.215.54]) by mx1.freebsd.org (Postfix) with ESMTP id 1101F8FC08; Thu, 2 Aug 2012 21:04:09 +0000 (UTC) Received: by laai10 with SMTP id i10so6751350laa.13 for ; Thu, 02 Aug 2012 14:04:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=6/V4ITtxPiuEtiw2ZpJuD17VFbHYD7gy4g9WAIyWjTg=; b=RuKbAVdWAYxMKFQ5YyvsMq/y7kQvDrhJYH8ExSvgjfypbdoMSELbsbwceztI7j/Z/j 7QIjQH/Oz3jHTvvCrctzsmHsv/eP1wTQ9Q2DeZs+yRzmE8qMuaG/B0DPblOprpa5/liu Zjrevq+E7lGe/861jVLCblHWjh3OwIsAhZR9lJcRVsDctgzHwZGmQSTEdS2a2h55K8K7 7wK20zgQbNDFK97sLYwViTb5SVY3BajLC1wDfMUQuSSXnhHInfmXcPc0OELa32ggm5/L 9Pql0M/nCPFG0ZUezfFJhTMejbh90DF7dK4ZeyWF3QFYCw1kHztsMGSRWaU7qJD0w39I mRGA== MIME-Version: 1.0 Received: by 10.112.104.104 with SMTP id gd8mr1026783lbb.0.1343941448810; Thu, 02 Aug 2012 14:04:08 -0700 (PDT) Sender: asmrookie@gmail.com Received: by 10.112.27.65 with HTTP; Thu, 2 Aug 2012 14:04:08 -0700 (PDT) In-Reply-To: <20120731095922.GC2676@deviant.kiev.zoral.com.ua> References: <201207301350.q6UDobCI099069@svn.freebsd.org> <20120730143943.GY2676@deviant.kiev.zoral.com.ua> <20120730145912.GZ2676@deviant.kiev.zoral.com.ua> <20120731093735.GB2676@deviant.kiev.zoral.com.ua> <5017A82B.3040704@FreeBSD.org> <20120731095922.GC2676@deviant.kiev.zoral.com.ua> Date: Thu, 2 Aug 2012 22:04:08 +0100 X-Google-Sender-Auth: YSQUl7Zz3ww8D3jQEXTnBQ8GpS8 Message-ID: From: Attilio Rao To: Konstantin Belousov Content-Type: text/plain; charset=UTF-8 Cc: Davide Italiano , svn-src-projects@freebsd.org, Alexander Motin , src-committers@freebsd.org Subject: Re: svn commit: r238907 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: attilio@FreeBSD.org List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Aug 2012 21:04:11 -0000 On 7/31/12, Konstantin Belousov wrote: > On Tue, Jul 31, 2012 at 12:40:59PM +0300, Alexander Motin wrote: >> On 31.07.2012 12:37, Konstantin Belousov wrote: >> >On Mon, Jul 30, 2012 at 09:48:08PM +0100, Attilio Rao wrote: >> >>On Mon, Jul 30, 2012 at 3:59 PM, Konstantin Belousov >> >> wrote: >> >>>On Mon, Jul 30, 2012 at 03:51:22PM +0100, Attilio Rao wrote: >> >>>>On 7/30/12, Konstantin Belousov wrote: >> >>>>>On Mon, Jul 30, 2012 at 03:24:26PM +0100, Attilio Rao wrote: >> >>>>>>On 7/30/12, Davide Italiano wrote: >> >>>>>>>On Mon, Jul 30, 2012 at 4:02 PM, Attilio Rao >> >>>>>>>wrote: >> >>>>>>>Thanks for the comment, Attilio. >> >>>>>>>Yes, it's exactly what you thought. If direct flag is equal to one >> >>>>>>>you're sure you're processing a callout which runs directly from >> >>>>>>>hardware interrupt context. In this case, the running thread >> >>>>>>> cannot >> >>>>>>>sleep and it's likely you have TDP_NOSLEEPING flags set, failing >> >>>>>>> the >> >>>>>>>KASSERT() in THREAD_NO_SLEEPING() and leading to panic if kernel >> >>>>>>> is >> >>>>>>>compiled with INVARIANTS. >> >>>>>>>In case you're running from SWI context (direct equals to zero) >> >>>>>>> code >> >>>>>>>remains the same as before. >> >>>>>>>I think what I'm doing works due the assumption thread running >> >>>>>>> never >> >>>>>>>sleeps. Do you suggest some other way to handle this? >> >>>>>> >> >>>>>>Possibly the quicker way to do this is to have a way to deal with >> >>>>>> the >> >>>>>>TDP_NOSLEEPING flag in recursed way, thus implement the same logic >> >>>>>> as >> >>>>>>VFS_LOCK_GIANT() does, for example. >> >>>>>>You will need to change the few callers of THREAD_NO_SLEEPING(), >> >>>>>> but >> >>>>>>the patch should be no longer than 10/15 lines. >> >>>>> >> >>>>>There are already curthread_pflags_set/restore KPI designed exactly >> >>>>> to >> >>>>>handle >> >>>>>nested private thread flags. >> >>>> >> >>>>Yes, however I would use curthread_pflags* KPI within >> >>>>THREAD_NO_SLEEPING() as this name is much more explicit. >> >>>> >> >>>Sure, hiding it in THREAD_NO_SLEEPING (THREAD_NO_SLEEP_ENTER/LEAVE ?) >> >>>is the way to use curthread_pflags_set there. >> >>> >> >>>As a second though, on the other hand, is it safe to modify td_flags >> >>>from the interrupt context at all ? Probably yes if interrupt handler >> >>>always leave td_pflags in the same state on leave as it was on entry, >> >>>but couldn't too smart compiler cause inconsistent view of td_pflags >> >>>inside the handler ? >> >> >> >>Can you think of any? Because I cannot think of a case where a nested >> >>interrupt can messup with already compiled code, unless it leaks a >> >>cleanup. >> >In principle, compiler might compile the >> > x |= a; >> >into whatever it finds suitable, e.g. it could write 0 temporary into >> >x if the corresponding instruction sequence is considered faster. >> > >> >No sane compiler for x86 does this. >> >> >> >>I was more worried about the compiler reordering operations before >> >>locking could really see it, but I think in this case the functions >> >>call to sleepqueue (at least) works as a sequence point so we are >> >>safe. >> >> >> >>> >> >>>>>Also, I wonder, should you assert somehow that direct dispatch cannot >> >>>>> >> >>>>>block >> >>>>>as well ? >> >>>> >> >>>>Yes, it would be optimal, but I don't think we have a flag for that >> >>>>right now, do we? >> >>> >> >>>I am not aware of such flag, this might be a good reason to introduce >> >>> it, >> >>>if issue about td_pflags is just a product of my imagination. >> >> >> >>I think you should be good to go. Do you plan to work on such a patch? >> > >> >Ok, I looked closely at the direct dispatch and TD_NOBLOCKING. I now >> >think that such flag is not needed. >> > >> >Am I right that direct dispatch executes callback while owning cc_lock >> >spinlock ? >> >> No, does not now. It was so originally, but was fixed recently, as it >> caused LOR deadlocks. > Hm, ok. Probably I misread the diff. > > Anyway, I believe that both direct interrupt dispatch and IPIs take > critical sections around handlers. This should have the same effect > for assertion in the mi_switch(). I agree, this is certainly true. Attilio -- Peace can only be achieved by understanding - A. Einstein From owner-svn-src-projects@FreeBSD.ORG Thu Aug 2 21:07:46 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7AA4C106566B; Thu, 2 Aug 2012 21:07:46 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigknife-pt.tunnel.tserv9.chi1.ipv6.he.net [IPv6:2001:470:1f10:75::2]) by mx1.freebsd.org (Postfix) with ESMTP id 2126E8FC08; Thu, 2 Aug 2012 21:07:46 +0000 (UTC) Received: from jhbbsd.localnet (unknown [209.249.190.124]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 8A92EB94B; Thu, 2 Aug 2012 17:07:45 -0400 (EDT) From: John Baldwin To: attilio@freebsd.org Date: Thu, 2 Aug 2012 17:07:22 -0400 User-Agent: KMail/1.13.5 (FreeBSD/8.2-CBSD-20110714-p17; KDE/4.5.5; amd64; ; ) References: <201207301350.q6UDobCI099069@svn.freebsd.org> <201207301732.33474.jhb@freebsd.org> In-Reply-To: MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <201208021707.22356.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Thu, 02 Aug 2012 17:07:45 -0400 (EDT) Cc: Konstantin Belousov , Davide Italiano , src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: Re: svn commit: r238907 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Aug 2012 21:07:46 -0000 On Thursday, August 02, 2012 4:56:03 pm Attilio Rao wrote: > On 7/30/12, John Baldwin wrote: > > --- //depot/projects/smpng/sys/kern/kern_lock.c 2012-06-04 > > 18:27:32.000000000 0000 > > +++ //depot/user/jhb/lock/kern/kern_lock.c 2012-06-18 14:44:48.000000000 > > 0000 > > @@ -394,12 +394,12 @@ > > iflags |= LO_QUIET; > > iflags |= flags & (LK_ADAPTIVE | LK_NOSHARE); > > > > + lock_init(&lk->lock_object, &lock_class_lockmgr, wmesg, NULL, iflags); > > lk->lk_lock = LK_UNLOCKED; > > lk->lk_recurse = 0; > > lk->lk_exslpfail = 0; > > lk->lk_timo = timo; > > lk->lk_pri = pri; > > - lock_init(&lk->lock_object, &lock_class_lockmgr, wmesg, NULL, iflags); > > STACK_ZERO(lk); > > } > > I'm not sure, why these reshuffling are needed? This is related to another set of changes in the tree. I want to have the panic for a duplicate initialization of a lock to panic right away so you can see what the "old" state of the lock was. > > --- //depot/projects/smpng/sys/kern/kern_rmlock.c 2012-03-25 > > 18:45:29.000000000 0000 > > +++ //depot/user/jhb/lock/kern/kern_rmlock.c 2012-06-18 21:20:58.000000000 > > 0000 > > @@ -70,6 +70,9 @@ > > } > > > > static void assert_rm(const struct lock_object *lock, int what); > > +#ifdef DDB > > +static void db_show_rm(const struct lock_object *lock); > > +#endif > > static void lock_rm(struct lock_object *lock, int how); > > #ifdef KDTRACE_HOOKS > > static int owner_rm(const struct lock_object *lock, struct thread > > **owner); > > While here, did you consider also: > - Abstracting compiler_memory_barrier() into a MI, compiler dependent function? > - Fix rm_queue with DCPU possibly Mostly I just wanted to fill in missing functionality and fixup the RM_SLEEPABLE bits a bit. > > --- //depot/projects/smpng/sys/kern/subr_sleepqueue.c 2012-06-04 > > 18:27:32.000000000 0000 > > +++ //depot/user/jhb/lock/kern/subr_sleepqueue.c 2012-06-05 > > 14:46:23.000000000 0000 > > @@ -296,7 +296,7 @@ > > MPASS((queue >= 0) && (queue < NR_SLEEPQS)); > > > > /* If this thread is not allowed to sleep, die a horrible death. */ > > - KASSERT(!(td->td_pflags & TDP_NOSLEEPING), > > + KASSERT(td->td_no_sleeping == 0, > > ("Trying sleep, but thread marked as sleeping prohibited")); > > > > /* Look up the sleep queue associated with the wait channel 'wchan'. */ > > Do we want to complete the TDP_NOSLEEPING support by also offering a > macro for the check? Maybe as a separate patch. Humm, we don't check it in many places, not sure we need a separate flag. We don't have one for checking td_pinned for example. > > --- //depot/projects/smpng/sys/kern/subr_syscall.c 2012-06-04 > > 18:27:32.000000000 0000 > > +++ //depot/user/jhb/lock/kern/subr_syscall.c 2012-06-05 14:46:23.000000000 > > 0000 > > @@ -185,9 +185,12 @@ > > KASSERT((td->td_pflags & TDP_NOFAULTING) == 0, > > ("System call %s returning with pagefaults disabled", > > syscallname(p, sa->code))); > > - KASSERT((td->td_pflags & TDP_NOSLEEPING) == 0, > > + KASSERT(td->td_no_sleeping == 0, > > ("System call %s returning with sleep disabled", > > syscallname(p, sa->code))); > > + KASSERT(td->td_pinned == 0, > > + ("System call %s returning with pinned thread", > > + syscallname(p, sa->code))); > > > > /* > > * Handle reschedule and other end-of-syscall issues > > Can you also add CRITICAL_ASSERT()? It's earler in the file already as: KASSERT(td->td_critnest == 0, ("System call %s returning in a critical section", syscallname(p, sa->code))); (More readable panic message than CRITICAL_ASSERT(), but I think in practice this check just predated CRITICAL_ASSERT()). > > --- //depot/projects/smpng/sys/kern/subr_turnstile.c 2012-06-04 > > 18:27:32.000000000 0000 > > +++ //depot/user/jhb/lock/kern/subr_turnstile.c 2012-06-05 > > 00:27:57.000000000 0000 > > @@ -684,6 +684,7 @@ > > if (owner) > > MPASS(owner->td_proc->p_magic == P_MAGIC); > > MPASS(queue == TS_SHARED_QUEUE || queue == TS_EXCLUSIVE_QUEUE); > > + KASSERT(!TD_IS_IDLETHREAD(td), ("idle threads cannot block on locks")); > > > > /* > > * If the lock does not already have a turnstile, use this thread's > > I'm wondering if we should also use similar checks in places doing > adaptive spinning (including the TD_NO_SLEEPING check). Likely yes. Hmm, possibly. > > --- //depot/projects/smpng/sys/sys/_rmlock.h 2011-06-20 00:58:40.000000000 > > 0000 > > +++ //depot/user/jhb/lock/sys/_rmlock.h 2012-06-05 01:54:51.000000000 0000 > > @@ -44,14 +44,17 @@ > > LIST_HEAD(rmpriolist,rm_priotracker); > > > > struct rmlock { > > - struct lock_object lock_object; > > + struct lock_object lock_object; > > volatile cpuset_t rm_writecpus; > > LIST_HEAD(,rm_priotracker) rm_activeReaders; > > union { > > + struct lock_object _rm_wlock_object; > > struct mtx _rm_lock_mtx; > > struct sx _rm_lock_sx; > > } _rm_lock; > > }; > > + > > +#define rm_wlock_object _rm_lock._rm_wlock_object > > #define rm_lock_mtx _rm_lock._rm_lock_mtx > > #define rm_lock_sx _rm_lock._rm_lock_sx > > What is the point of keeping both the mtx and the rwlock? There is no rwlock? There is a mutex (used for "normal" rmlocks) and an sx lock (used for RM_SLEEPABLE rmlocks). For some of the the lock_class methods, I want to forward a request on to the underlying write lock. Having rm_wlock_object makes that a bit simpler removing the need for a branch as I'm just going to invoke a lock_class method of the underlying lock anyway. > > --- //depot/projects/smpng/sys/sys/cpuset.h 2012-03-25 18:45:29.000000000 > > 0000 > > +++ //depot/user/jhb/lock/sys/cpuset.h 2012-06-18 21:20:58.000000000 0000 > > @@ -216,6 +216,9 @@ > > int cpusetobj_ffs(const cpuset_t *); > > char *cpusetobj_strprint(char *, const cpuset_t *); > > int cpusetobj_strscan(cpuset_t *, const char *); > > +#ifdef DDB > > +void ddb_display_cpuset(const cpuset_t *); > > +#endif > > > > #else > > __BEGIN_DECLS > > I'd prefer you offer a compat stub in order to avoid a KPI breakage > rather than make an header dependent by DDB. If it was INVARIANTS > dependant you may have user INVARIANT_SUPPORT for this, but I guess we > just use that for INVARIANTS and not DDB (even if we could generalize > it to, maybe under another name, to all the debugging mechanisms). Humm. Do we do that anywhere else for DDB (provide empty shims)? I think you already can't use a module that depends on DDB if the kernel doesn't have DDB enabled (no db_printf() for example), so I don't think this introduces any new KPI breakage. -- John Baldwin From owner-svn-src-projects@FreeBSD.ORG Thu Aug 2 21:15:22 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id BB77A106566B; Thu, 2 Aug 2012 21:15:22 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: from mail-lpp01m010-f54.google.com (mail-lpp01m010-f54.google.com [209.85.215.54]) by mx1.freebsd.org (Postfix) with ESMTP id 9F1078FC0C; Thu, 2 Aug 2012 21:15:21 +0000 (UTC) Received: by laai10 with SMTP id i10so6757630laa.13 for ; Thu, 02 Aug 2012 14:15:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=iD5IhOXLyzkrWBsE/FLxR0kwawpFhoMsZlA3gQPG9Uc=; b=e2ZzUC8CGQY/DWEQUBF6hPwD8rE6X/QBwTifAFsSEDtWTkDgiQ0x55zvWZ4mX9cW8a J+mnYnQktIGa3CniySI6Pnwm6s8X4MbzRooCOY3Y20OSqYDxnngbgnc4NgyAJU4warbg yOV6rhjquXqIsSDUW+xw3iCkdjqy+wNUa8KcVsEIVM6up/VumlIHXL7Q3kW3CycszA78 wZPcizXyBJ57ZNAM/mMsF4Ew57JhIPN2eWufjWZm2iXjoxDb51cVI9W4C3RerjNMaW5S 1dRK+x0HTg7Z0MVwTKcHsF5E2VFMEto83k327+6KN7N6ZesPZN5LgE0bqDKgUnhDIhqi PBXw== MIME-Version: 1.0 Received: by 10.112.41.130 with SMTP id f2mr10173550lbl.5.1343942120439; Thu, 02 Aug 2012 14:15:20 -0700 (PDT) Sender: asmrookie@gmail.com Received: by 10.112.27.65 with HTTP; Thu, 2 Aug 2012 14:15:20 -0700 (PDT) In-Reply-To: <201208021707.22356.jhb@freebsd.org> References: <201207301350.q6UDobCI099069@svn.freebsd.org> <201207301732.33474.jhb@freebsd.org> <201208021707.22356.jhb@freebsd.org> Date: Thu, 2 Aug 2012 22:15:20 +0100 X-Google-Sender-Auth: 17jKxD8zlj_RC67jDpTZ28AgRo8 Message-ID: From: Attilio Rao To: John Baldwin Content-Type: text/plain; charset=UTF-8 Cc: Konstantin Belousov , Davide Italiano , src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: Re: svn commit: r238907 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: attilio@FreeBSD.org List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Aug 2012 21:15:22 -0000 On 8/2/12, John Baldwin wrote: > On Thursday, August 02, 2012 4:56:03 pm Attilio Rao wrote: >> On 7/30/12, John Baldwin wrote: >> > --- //depot/projects/smpng/sys/kern/kern_lock.c 2012-06-04 >> > 18:27:32.000000000 0000 >> > +++ //depot/user/jhb/lock/kern/kern_lock.c 2012-06-18 >> > 14:44:48.000000000 >> > 0000 >> > @@ -394,12 +394,12 @@ >> > iflags |= LO_QUIET; >> > iflags |= flags & (LK_ADAPTIVE | LK_NOSHARE); >> > >> > + lock_init(&lk->lock_object, &lock_class_lockmgr, wmesg, NULL, >> > iflags); >> > lk->lk_lock = LK_UNLOCKED; >> > lk->lk_recurse = 0; >> > lk->lk_exslpfail = 0; >> > lk->lk_timo = timo; >> > lk->lk_pri = pri; >> > - lock_init(&lk->lock_object, &lock_class_lockmgr, wmesg, NULL, >> > iflags); >> > STACK_ZERO(lk); >> > } >> >> I'm not sure, why these reshuffling are needed? > > This is related to another set of changes in the tree. I want to have the > panic for a duplicate initialization of a lock to panic right away so you > can > see what the "old" state of the lock was. If you are going to commit this, please make sure to add right comments that explain the reasons. Likely you may want to add that on top of implementation of lock_init(). >> > --- //depot/projects/smpng/sys/kern/subr_sleepqueue.c 2012-06-04 >> > 18:27:32.000000000 0000 >> > +++ //depot/user/jhb/lock/kern/subr_sleepqueue.c 2012-06-05 >> > 14:46:23.000000000 0000 >> > @@ -296,7 +296,7 @@ >> > MPASS((queue >= 0) && (queue < NR_SLEEPQS)); >> > >> > /* If this thread is not allowed to sleep, die a horrible death. */ >> > - KASSERT(!(td->td_pflags & TDP_NOSLEEPING), >> > + KASSERT(td->td_no_sleeping == 0, >> > ("Trying sleep, but thread marked as sleeping prohibited")); >> > >> > /* Look up the sleep queue associated with the wait channel 'wchan'. >> > */ >> >> Do we want to complete the TDP_NOSLEEPING support by also offering a >> macro for the check? Maybe as a separate patch. > > Humm, we don't check it in many places, not sure we need a separate flag. > We don't have one for checking td_pinned for example. I just meant a macro for checking that as we have special macro for dealing with bumping/unbumping. But this is up to you, it is not really important. >> > --- //depot/projects/smpng/sys/kern/subr_syscall.c 2012-06-04 >> > 18:27:32.000000000 0000 >> > +++ //depot/user/jhb/lock/kern/subr_syscall.c 2012-06-05 >> > 14:46:23.000000000 >> > 0000 >> > @@ -185,9 +185,12 @@ >> > KASSERT((td->td_pflags & TDP_NOFAULTING) == 0, >> > ("System call %s returning with pagefaults disabled", >> > syscallname(p, sa->code))); >> > - KASSERT((td->td_pflags & TDP_NOSLEEPING) == 0, >> > + KASSERT(td->td_no_sleeping == 0, >> > ("System call %s returning with sleep disabled", >> > syscallname(p, sa->code))); >> > + KASSERT(td->td_pinned == 0, >> > + ("System call %s returning with pinned thread", >> > + syscallname(p, sa->code))); >> > >> > /* >> > * Handle reschedule and other end-of-syscall issues >> >> Can you also add CRITICAL_ASSERT()? > > It's earler in the file already as: > > KASSERT(td->td_critnest == 0, > ("System call %s returning in a critical section", > syscallname(p, sa->code))); > > (More readable panic message than CRITICAL_ASSERT(), but I think in > practice > this check just predated CRITICAL_ASSERT()). I think we should just use one form or another. I propose at some point we just adopt the CRITICAL_ASSERT(), so I hope we will change all the occurence of the dumby check in proper CRITICAL_ASSERT(). >> > --- //depot/projects/smpng/sys/sys/_rmlock.h 2011-06-20 >> > 00:58:40.000000000 >> > 0000 >> > +++ //depot/user/jhb/lock/sys/_rmlock.h 2012-06-05 01:54:51.000000000 >> > 0000 >> > @@ -44,14 +44,17 @@ >> > LIST_HEAD(rmpriolist,rm_priotracker); >> > >> > struct rmlock { >> > - struct lock_object lock_object; >> > + struct lock_object lock_object; >> > volatile cpuset_t rm_writecpus; >> > LIST_HEAD(,rm_priotracker) rm_activeReaders; >> > union { >> > + struct lock_object _rm_wlock_object; >> > struct mtx _rm_lock_mtx; >> > struct sx _rm_lock_sx; >> > } _rm_lock; >> > }; >> > + >> > +#define rm_wlock_object _rm_lock._rm_wlock_object >> > #define rm_lock_mtx _rm_lock._rm_lock_mtx >> > #define rm_lock_sx _rm_lock._rm_lock_sx >> >> What is the point of keeping both the mtx and the rwlock? > > There is no rwlock? There is a mutex (used for "normal" rmlocks) and > an sx lock (used for RM_SLEEPABLE rmlocks). For some of the the lock_class > methods, I want to forward a request on to the underlying write lock. > Having rm_wlock_object makes that a bit simpler removing the need for > a branch as I'm just going to invoke a lock_class method of the underlying > lock anyway. Yes, sorry, misread that part of the patch. > >> > --- //depot/projects/smpng/sys/sys/cpuset.h 2012-03-25 >> > 18:45:29.000000000 >> > 0000 >> > +++ //depot/user/jhb/lock/sys/cpuset.h 2012-06-18 21:20:58.000000000 >> > 0000 >> > @@ -216,6 +216,9 @@ >> > int cpusetobj_ffs(const cpuset_t *); >> > char *cpusetobj_strprint(char *, const cpuset_t *); >> > int cpusetobj_strscan(cpuset_t *, const char *); >> > +#ifdef DDB >> > +void ddb_display_cpuset(const cpuset_t *); >> > +#endif >> > >> > #else >> > __BEGIN_DECLS >> >> I'd prefer you offer a compat stub in order to avoid a KPI breakage >> rather than make an header dependent by DDB. If it was INVARIANTS >> dependant you may have user INVARIANT_SUPPORT for this, but I guess we >> just use that for INVARIANTS and not DDB (even if we could generalize >> it to, maybe under another name, to all the debugging mechanisms). > > Humm. Do we do that anywhere else for DDB (provide empty shims)? I think > you already can't use a module that depends on DDB if the kernel doesn't > have > DDB enabled (no db_printf() for example), so I don't think this introduces > any > new KPI breakage. I think it is sensitive we don't add further KPI breakage. I think it is a good time we start discussing expansion of INVARIANT_SUPPORT to something more general that offers compat shims for all the debugging mechanisms. Attilio -- Peace can only be achieved by understanding - A. Einstein From owner-svn-src-projects@FreeBSD.ORG Fri Aug 3 05:25:28 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 56A0B106564A; Fri, 3 Aug 2012 05:25:28 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 41C3A8FC0C; Fri, 3 Aug 2012 05:25:28 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q735PSub075123; Fri, 3 Aug 2012 05:25:28 GMT (envelope-from kientzle@svn.freebsd.org) Received: (from kientzle@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q735PSGi075121; Fri, 3 Aug 2012 05:25:28 GMT (envelope-from kientzle@svn.freebsd.org) Message-Id: <201208030525.q735PSGi075121@svn.freebsd.org> From: Tim Kientzle Date: Fri, 3 Aug 2012 05:25:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r239001 - projects/armv6/sys/arm/conf X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Aug 2012 05:25:28 -0000 Author: kientzle Date: Fri Aug 3 05:25:27 2012 New Revision: 239001 URL: http://svn.freebsd.org/changeset/base/239001 Log: Add bpf to the BEAGLEBONE config to help diagnose networking issues. Modified: projects/armv6/sys/arm/conf/BEAGLEBONE Modified: projects/armv6/sys/arm/conf/BEAGLEBONE ============================================================================== --- projects/armv6/sys/arm/conf/BEAGLEBONE Fri Aug 3 04:54:36 2012 (r239000) +++ projects/armv6/sys/arm/conf/BEAGLEBONE Fri Aug 3 05:25:27 2012 (r239001) @@ -112,6 +112,7 @@ device loop device ether device mii device smcphy +device bpf # USB ethernet support, requires miibus device miibus From owner-svn-src-projects@FreeBSD.ORG Fri Aug 3 05:26:40 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C2B5D106564A; Fri, 3 Aug 2012 05:26:40 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id ADA248FC08; Fri, 3 Aug 2012 05:26:40 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q735Qekc075247; Fri, 3 Aug 2012 05:26:40 GMT (envelope-from kientzle@svn.freebsd.org) Received: (from kientzle@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q735QeIW075245; Fri, 3 Aug 2012 05:26:40 GMT (envelope-from kientzle@svn.freebsd.org) Message-Id: <201208030526.q735QeIW075245@svn.freebsd.org> From: Tim Kientzle Date: Fri, 3 Aug 2012 05:26:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r239002 - projects/armv6/sys/arm/conf X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Aug 2012 05:26:40 -0000 Author: kientzle Date: Fri Aug 3 05:26:40 2012 New Revision: 239002 URL: http://svn.freebsd.org/changeset/base/239002 Log: cpsw is a regular Ethernet port, not a USB Ethernet. Modified: projects/armv6/sys/arm/conf/BEAGLEBONE Modified: projects/armv6/sys/arm/conf/BEAGLEBONE ============================================================================== --- projects/armv6/sys/arm/conf/BEAGLEBONE Fri Aug 3 05:25:27 2012 (r239001) +++ projects/armv6/sys/arm/conf/BEAGLEBONE Fri Aug 3 05:26:40 2012 (r239002) @@ -112,11 +112,11 @@ device loop device ether device mii device smcphy +device cpsw device bpf # USB ethernet support, requires miibus device miibus -device cpsw device axe # ASIX Electronics USB Ethernet # Flattened Device Tree From owner-svn-src-projects@FreeBSD.ORG Fri Aug 3 05:31:13 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 0DE54106566C; Fri, 3 Aug 2012 05:31:13 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id ECC0E8FC0C; Fri, 3 Aug 2012 05:31:12 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q735VCwO075629; Fri, 3 Aug 2012 05:31:12 GMT (envelope-from kientzle@svn.freebsd.org) Received: (from kientzle@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q735VC7R075627; Fri, 3 Aug 2012 05:31:12 GMT (envelope-from kientzle@svn.freebsd.org) Message-Id: <201208030531.q735VC7R075627@svn.freebsd.org> From: Tim Kientzle Date: Fri, 3 Aug 2012 05:31:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r239003 - projects/armv6/sys/arm/ti/cpsw X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Aug 2012 05:31:13 -0000 Author: kientzle Date: Fri Aug 3 05:31:12 2012 New Revision: 239003 URL: http://svn.freebsd.org/changeset/base/239003 Log: Mark a couple of unused arguments, separate debugging messages between SIOCGIFMEDIA and SIOCSIFMEDIA. Modified: projects/armv6/sys/arm/ti/cpsw/if_cpsw.c Modified: projects/armv6/sys/arm/ti/cpsw/if_cpsw.c ============================================================================== --- projects/armv6/sys/arm/ti/cpsw/if_cpsw.c Fri Aug 3 05:26:40 2012 (r239002) +++ projects/armv6/sys/arm/ti/cpsw/if_cpsw.c Fri Aug 3 05:31:12 2012 (r239003) @@ -511,6 +511,7 @@ cpsw_allocate_dma(struct cpsw_softc *sc) static int cpsw_free_dma(struct cpsw_softc *sc) { + (void)sc; /* UNUSED */ // TODO return 0; } @@ -727,6 +728,8 @@ cpsw_ioctl(struct ifnet *ifp, u_long com break; case SIOCGIFMEDIA: /* fall through */ printf("%s: SIOCGIFMEDIA\n",__func__); + error = ifmedia_ioctl(ifp, ifr, &sc->mii->mii_media, command); + break; case SIOCSIFMEDIA: printf("%s: SIOCSIFMEDIA\n",__func__); error = ifmedia_ioctl(ifp, ifr, &sc->mii->mii_media, command); @@ -776,6 +779,7 @@ cpsw_ifmedia_upd(struct ifnet *ifp) static void cpsw_intr_rx_thresh(void *arg) { + (void)arg; /* UNUSED */ } static void From owner-svn-src-projects@FreeBSD.ORG Fri Aug 3 05:39:33 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 70A08106564A; Fri, 3 Aug 2012 05:39:33 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5A31D8FC0A; Fri, 3 Aug 2012 05:39:33 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q735dXGK076299; Fri, 3 Aug 2012 05:39:33 GMT (envelope-from kientzle@svn.freebsd.org) Received: (from kientzle@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q735dXmi076293; Fri, 3 Aug 2012 05:39:33 GMT (envelope-from kientzle@svn.freebsd.org) Message-Id: <201208030539.q735dXmi076293@svn.freebsd.org> From: Tim Kientzle Date: Fri, 3 Aug 2012 05:39:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r239004 - in projects/armv6/sys: arm/conf conf dev/mii modules/mii X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Aug 2012 05:39:33 -0000 Author: kientzle Date: Fri Aug 3 05:39:32 2012 New Revision: 239004 URL: http://svn.freebsd.org/changeset/base/239004 Log: Split the SMSC LAN8710A into a separate PHY module. It's not really that similar to the SEEQ PHYs supported by smcphy.c. Added: projects/armv6/sys/dev/mii/smscphy.c - copied, changed from r238269, projects/armv6/sys/dev/mii/smcphy.c Modified: projects/armv6/sys/arm/conf/BEAGLEBONE projects/armv6/sys/conf/files projects/armv6/sys/dev/mii/smcphy.c projects/armv6/sys/modules/mii/Makefile Modified: projects/armv6/sys/arm/conf/BEAGLEBONE ============================================================================== --- projects/armv6/sys/arm/conf/BEAGLEBONE Fri Aug 3 05:31:12 2012 (r239003) +++ projects/armv6/sys/arm/conf/BEAGLEBONE Fri Aug 3 05:39:32 2012 (r239004) @@ -111,7 +111,7 @@ device da # Direct Access (disks) device loop device ether device mii -device smcphy +device smscphy device cpsw device bpf Modified: projects/armv6/sys/conf/files ============================================================================== --- projects/armv6/sys/conf/files Fri Aug 3 05:31:12 2012 (r239003) +++ projects/armv6/sys/conf/files Fri Aug 3 05:39:32 2012 (r239004) @@ -1591,6 +1591,7 @@ dev/mii/rgephy.c optional miibus | rgep dev/mii/rlphy.c optional miibus | rlphy dev/mii/rlswitch.c optional rlswitch dev/mii/smcphy.c optional miibus | smcphy +dev/mii/smscphy.c optional miibus | smscphy dev/mii/tdkphy.c optional miibus | tdkphy dev/mii/tlphy.c optional miibus | tlphy dev/mii/truephy.c optional miibus | truephy Modified: projects/armv6/sys/dev/mii/smcphy.c ============================================================================== --- projects/armv6/sys/dev/mii/smcphy.c Fri Aug 3 05:31:12 2012 (r239003) +++ projects/armv6/sys/dev/mii/smcphy.c Fri Aug 3 05:39:32 2012 (r239004) @@ -26,7 +26,8 @@ __FBSDID("$FreeBSD$"); /* - * Driver for the internal PHY on the SMSC LAN91C111. + * Driver for the SEEQ 80220 and 84220. + * (Originally developed for the internal PHY on the SMSC LAN91C111.) */ #include @@ -79,7 +80,6 @@ DRIVER_MODULE(smcphy, miibus, smcphy_dri static const struct mii_phydesc smcphys[] = { MII_PHY_DESC(SEEQ, 80220), MII_PHY_DESC(SEEQ, 84220), - MII_PHY_DESC(SMC, LAN8710A), MII_PHY_END }; Copied and modified: projects/armv6/sys/dev/mii/smscphy.c (from r238269, projects/armv6/sys/dev/mii/smcphy.c) ============================================================================== --- projects/armv6/sys/dev/mii/smcphy.c Sun Jul 8 23:50:57 2012 (r238269, copy source) +++ projects/armv6/sys/dev/mii/smscphy.c Fri Aug 3 05:39:32 2012 (r239004) @@ -26,7 +26,7 @@ __FBSDID("$FreeBSD$"); /* - * Driver for the internal PHY on the SMSC LAN91C111. + * Driver for the SMSC LAN8710A */ #include @@ -49,61 +49,52 @@ __FBSDID("$FreeBSD$"); #include "miibus_if.h" -static int smcphy_probe(device_t); -static int smcphy_attach(device_t); +static int smscphy_probe(device_t); +static int smscphy_attach(device_t); -static int smcphy_service(struct mii_softc *, struct mii_data *, int); -static void smcphy_reset(struct mii_softc *); -static void smcphy_auto(struct mii_softc *, int); -static void smcphy_status(struct mii_softc *); +static int smscphy_service(struct mii_softc *, struct mii_data *, int); +static void smscphy_auto(struct mii_softc *, int); +static void smscphy_status(struct mii_softc *); -static device_method_t smcphy_methods[] = { +static device_method_t smscphy_methods[] = { /* device interface */ - DEVMETHOD(device_probe, smcphy_probe), - DEVMETHOD(device_attach, smcphy_attach), + DEVMETHOD(device_probe, smscphy_probe), + DEVMETHOD(device_attach, smscphy_attach), DEVMETHOD(device_detach, mii_phy_detach), DEVMETHOD(device_shutdown, bus_generic_shutdown), DEVMETHOD_END }; -static devclass_t smcphy_devclass; +static devclass_t smscphy_devclass; -static driver_t smcphy_driver = { - "smcphy", - smcphy_methods, +static driver_t smscphy_driver = { + "smscphy", + smscphy_methods, sizeof(struct mii_softc) }; -DRIVER_MODULE(smcphy, miibus, smcphy_driver, smcphy_devclass, 0, 0); +DRIVER_MODULE(smscphy, miibus, smscphy_driver, smscphy_devclass, 0, 0); -static const struct mii_phydesc smcphys[] = { - MII_PHY_DESC(SEEQ, 80220), - MII_PHY_DESC(SEEQ, 84220), +static const struct mii_phydesc smscphys[] = { MII_PHY_DESC(SMC, LAN8710A), MII_PHY_END }; -static const struct mii_phy_funcs smcphy80220_funcs = { - smcphy_service, - smcphy_status, +static const struct mii_phy_funcs smscphy_funcs = { + smscphy_service, + smscphy_status, mii_phy_reset }; -static const struct mii_phy_funcs smcphy_funcs = { - smcphy_service, - smcphy_status, - smcphy_reset -}; - static int -smcphy_probe(device_t dev) +smscphy_probe(device_t dev) { - return (mii_phy_dev_probe(dev, smcphys, BUS_PROBE_DEFAULT)); + return (mii_phy_dev_probe(dev, smscphys, BUS_PROBE_DEFAULT)); } static int -smcphy_attach(device_t dev) +smscphy_attach(device_t dev) { struct mii_softc *sc; struct mii_attach_args *ma; @@ -111,10 +102,7 @@ smcphy_attach(device_t dev) sc = device_get_softc(dev); ma = device_get_ivars(dev); - if (MII_MODEL(ma->mii_id2) == MII_MODEL_SEEQ_80220) - mpf = &smcphy80220_funcs; - else - mpf = &smcphy_funcs; + mpf = &smscphy_funcs; mii_phy_dev_attach(dev, MIIF_NOISOLATE | MIIF_NOMANPAUSE, mpf, 1); mii_phy_setmedia(sc); @@ -122,7 +110,7 @@ smcphy_attach(device_t dev) } static int -smcphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd) +smscphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd) { struct ifmedia_entry *ife; int reg; @@ -142,7 +130,7 @@ smcphy_service(struct mii_softc *sc, str switch (IFM_SUBTYPE(ife->ifm_media)) { case IFM_AUTO: - smcphy_auto(sc, ife->ifm_media); + smscphy_auto(sc, ife->ifm_media); break; default: @@ -179,7 +167,7 @@ smcphy_service(struct mii_softc *sc, str sc->mii_ticks = 0; PHY_RESET(sc); - smcphy_auto(sc, ife->ifm_media); + smscphy_auto(sc, ife->ifm_media); break; } @@ -192,31 +180,7 @@ smcphy_service(struct mii_softc *sc, str } static void -smcphy_reset(struct mii_softc *sc) -{ - u_int bmcr; - int timeout; - - PHY_WRITE(sc, MII_BMCR, BMCR_RESET); - - for (timeout = 2; timeout > 0; timeout--) { - DELAY(50000); - bmcr = PHY_READ(sc, MII_BMCR); - if ((bmcr & BMCR_RESET) == 0) - break; - } - - if (bmcr & BMCR_RESET) - device_printf(sc->mii_dev, "reset failed\n"); - - PHY_WRITE(sc, MII_BMCR, 0x3000); - - /* Mask interrupts, we poll instead. */ - PHY_WRITE(sc, 0x1e, 0xffc0); -} - -static void -smcphy_auto(struct mii_softc *sc, int media) +smscphy_auto(struct mii_softc *sc, int media) { uint16_t anar; @@ -230,7 +194,7 @@ smcphy_auto(struct mii_softc *sc, int me } static void -smcphy_status(struct mii_softc *sc) +smscphy_status(struct mii_softc *sc) { struct mii_data *mii; uint32_t bmcr, bmsr, status; @@ -261,12 +225,12 @@ smcphy_status(struct mii_softc *sc) } } - status = PHY_READ(sc, 0x12); - if (status & 0x0080) + status = PHY_READ(sc, 0x1F); + if (status & 0x0008) mii->mii_media_active |= IFM_100_TX; else mii->mii_media_active |= IFM_10_T; - if (status & 0x0040) + if (status & 0x0010) mii->mii_media_active |= IFM_FDX | mii_phy_flowstatus(sc); else mii->mii_media_active |= IFM_HDX; Modified: projects/armv6/sys/modules/mii/Makefile ============================================================================== --- projects/armv6/sys/modules/mii/Makefile Fri Aug 3 05:31:12 2012 (r239003) +++ projects/armv6/sys/modules/mii/Makefile Fri Aug 3 05:39:32 2012 (r239004) @@ -8,7 +8,8 @@ SRCS+= ciphy.c device_if.h SRCS+= e1000phy.c gentbi.c icsphy.c ip1000phy.c jmphy.c lxtphy.c SRCS+= miibus_if.c miibus_if.h mii.c miidevs.h mii_bitbang.c mii_physubr.c SRCS+= mlphy.c nsgphy.c nsphy.c nsphyter.c pci_if.h pnaphy.c qsphy.c -SRCS+= rdcphy.c rgephy.c rlphy.c smcphy.c tdkphy.c tlphy.c truephy.c +SRCS+= rdcphy.c rgephy.c rlphy.c smcphy.c +SRCS+= smscphy.c tdkphy.c tlphy.c truephy.c SRCS+= ukphy.c ukphy_subr.c SRCS+= xmphy.c From owner-svn-src-projects@FreeBSD.ORG Fri Aug 3 08:02:33 2012 Return-Path: Delivered-To: svn-src-projects@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D5C101065670; Fri, 3 Aug 2012 08:02:33 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail13.syd.optusnet.com.au (mail13.syd.optusnet.com.au [211.29.132.194]) by mx1.freebsd.org (Postfix) with ESMTP id 66EA78FC17; Fri, 3 Aug 2012 08:02:32 +0000 (UTC) Received: from c122-106-171-246.carlnfd1.nsw.optusnet.com.au (c122-106-171-246.carlnfd1.nsw.optusnet.com.au [122.106.171.246]) by mail13.syd.optusnet.com.au (8.13.1/8.13.1) with ESMTP id q7382NOv012002 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 3 Aug 2012 18:02:24 +1000 Date: Fri, 3 Aug 2012 18:02:23 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Attilio Rao In-Reply-To: Message-ID: <20120803174624.K1152@besplex.bde.org> References: <201207301350.q6UDobCI099069@svn.freebsd.org> <201207301732.33474.jhb@freebsd.org> <201208021707.22356.jhb@freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: Konstantin Belousov , Davide Italiano , svn-src-projects@FreeBSD.org, src-committers@FreeBSD.org, John Baldwin Subject: Re: svn commit: r238907 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Aug 2012 08:02:33 -0000 On Thu, 2 Aug 2012, Attilio Rao wrote: > On 8/2/12, John Baldwin wrote: >> On Thursday, August 02, 2012 4:56:03 pm Attilio Rao wrote: >>> On 7/30/12, John Baldwin wrote: > ... >>>> --- //depot/projects/smpng/sys/sys/cpuset.h 2012-03-25 >>>> 18:45:29.000000000 >>>> 0000 >>>> +++ //depot/user/jhb/lock/sys/cpuset.h 2012-06-18 21:20:58.000000000 >>>> 0000 >>>> @@ -216,6 +216,9 @@ >>>> int cpusetobj_ffs(const cpuset_t *); >>>> char *cpusetobj_strprint(char *, const cpuset_t *); >>>> int cpusetobj_strscan(cpuset_t *, const char *); >>>> +#ifdef DDB >>>> +void ddb_display_cpuset(const cpuset_t *); >>>> +#endif >>>> >>>> #else >>>> __BEGIN_DECLS >>> >>> I'd prefer you offer a compat stub in order to avoid a KPI breakage >>> rather than make an header dependent by DDB. If it was INVARIANTS >>> dependant you may have user INVARIANT_SUPPORT for this, but I guess we >>> just use that for INVARIANTS and not DDB (even if we could generalize >>> it to, maybe under another name, to all the debugging mechanisms). Always add bloat if possible. >> Humm. Do we do that anywhere else for DDB (provide empty shims)? I think >> you already can't use a module that depends on DDB if the kernel doesn't >> have >> DDB enabled (no db_printf() for example), so I don't think this introduces >> any >> new KPI breakage. Headers can't depend on options. Elsewhere we often declare functions whose existence might depend on options unconditionally, to avoid the ifdef tangles and header dependencies that would be needed to declare them precisely when they exist. The above foot shooting uses a simple tangle and 1 dependency (on not having the style bug of including opt_ddb.h after cpuset.h. This style bug is easy to avoid by the convention of sorting all options headers before all other headers, but due to namespace pollution, including opt_ddb.h before sys/cpuset.h is not enough. sys/cpuset.h is included nested in at least smp.h and sysproto.h, despite the existence of sys/_cpuset.h to reduce the pollution). > I think it is sensitive we don't add further KPI breakage. I think it > is a good time we start discussing expansion of INVARIANT_SUPPORT to > something more general that offers compat shims for all the debugging > mechanisms. Then it would be so large and complicated that it would include and #include almost everything, but still be harder to use correctly than it is now. Bruce From owner-svn-src-projects@FreeBSD.ORG Fri Aug 3 09:18:59 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 28707106564A; Fri, 3 Aug 2012 09:18:59 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: from mail-lpp01m010-f54.google.com (mail-lpp01m010-f54.google.com [209.85.215.54]) by mx1.freebsd.org (Postfix) with ESMTP id 0B2698FC0C; Fri, 3 Aug 2012 09:18:57 +0000 (UTC) Received: by laai10 with SMTP id i10so290684laa.13 for ; Fri, 03 Aug 2012 02:18:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=LyaWDOfYgOT52jImcYh1RywAvPH7eA2IBcLWISVEgAY=; b=e8iFnD3Wd8WWBGG4ImpO3jk3E8JZjOo4DY9I7WZuy9nEA1AtRvlG/LnTNC2gotvldu xmYNNpaTWTx+94HVkUUhbMIIdrtb+WiFU9n62Aua6ozpOQlqIi0CsrGHNukKTIzFwiew 0gQuD5DyT1+RJ7uE+mRpC/Z4wZsQujkijWmIIvQl2vNfDiMCO7iiYpVX0jrAxTzJe7AK NcRAhY78MCZl4rFWQ9eR5iyThZKPXI9blGaRu5th37w20pbySEOJbMuIc9IV4zUrOf/1 SMulr9bgyF73OrQKZ0jdBvzbGiUkpkdBBEY2pz40vDSQh6NWL5yrpyskLf8ssdUN8Rqg O0oQ== MIME-Version: 1.0 Received: by 10.152.136.18 with SMTP id pw18mr1012018lab.17.1343985536608; Fri, 03 Aug 2012 02:18:56 -0700 (PDT) Sender: asmrookie@gmail.com Received: by 10.112.27.65 with HTTP; Fri, 3 Aug 2012 02:18:56 -0700 (PDT) In-Reply-To: <20120803174624.K1152@besplex.bde.org> References: <201207301350.q6UDobCI099069@svn.freebsd.org> <201207301732.33474.jhb@freebsd.org> <201208021707.22356.jhb@freebsd.org> <20120803174624.K1152@besplex.bde.org> Date: Fri, 3 Aug 2012 10:18:56 +0100 X-Google-Sender-Auth: 6mx9kh6Sgu0OYdBRTCEFg3YtXlw Message-ID: From: Attilio Rao To: Bruce Evans Content-Type: text/plain; charset=UTF-8 Cc: Konstantin Belousov , Davide Italiano , src-committers@freebsd.org, svn-src-projects@freebsd.org, John Baldwin Subject: Re: svn commit: r238907 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: attilio@FreeBSD.org List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Aug 2012 09:18:59 -0000 On 8/3/12, Bruce Evans wrote: > On Thu, 2 Aug 2012, Attilio Rao wrote: [ trimm ] >> I think it is sensitive we don't add further KPI breakage. I think it >> is a good time we start discussing expansion of INVARIANT_SUPPORT to >> something more general that offers compat shims for all the debugging >> mechanisms. > > Then it would be so large and complicated that it would include and > #include almost everything, but still be harder to use correctly than > it is now. I tought quickly while I was having shower today about that. I think that adding KDB_SUPPORT (and using for both KDB and its consumers, like DDB) and maybe WITNESS_SUPPORT, and enable them separately, would be good enough. Attilio -- Peace can only be achieved by understanding - A. Einstein From owner-svn-src-projects@FreeBSD.ORG Fri Aug 3 14:49:20 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 2AC73106566B; Fri, 3 Aug 2012 14:49:20 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 10E868FC15; Fri, 3 Aug 2012 14:49:20 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q73EnK7V034928; Fri, 3 Aug 2012 14:49:20 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q73EnJuQ034909; Fri, 3 Aug 2012 14:49:19 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201208031449.q73EnJuQ034909@svn.freebsd.org> From: Gleb Smirnoff Date: Fri, 3 Aug 2012 14:49:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r239011 - in projects/pf/head: . bin/cat bin/ps bin/sh bin/stty cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/include cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma cd... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Aug 2012 14:49:20 -0000 Author: glebius Date: Fri Aug 3 14:49:18 2012 New Revision: 239011 URL: http://svn.freebsd.org/changeset/base/239011 Log: Merge head r233826 through r239010. Added: projects/pf/head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/include/ - copied from r239010, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/include/ projects/pf/head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh - copied unchanged from r239010, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh projects/pf/head/contrib/dtc/dtdiff - copied unchanged from r239010, head/contrib/dtc/dtdiff projects/pf/head/contrib/dtc/fdtdump.c - copied unchanged from r239010, head/contrib/dtc/fdtdump.c projects/pf/head/contrib/dtc/fdtget.c - copied unchanged from r239010, head/contrib/dtc/fdtget.c projects/pf/head/contrib/dtc/fdtput.c - copied unchanged from r239010, head/contrib/dtc/fdtput.c projects/pf/head/contrib/dtc/libfdt/fdt_empty_tree.c - copied unchanged from r239010, head/contrib/dtc/libfdt/fdt_empty_tree.c projects/pf/head/contrib/libarchive/libarchive/archive_getdate.c - copied unchanged from r239010, head/contrib/libarchive/libarchive/archive_getdate.c projects/pf/head/contrib/libarchive/libarchive/archive_match.c - copied unchanged from r239010, head/contrib/libarchive/libarchive/archive_match.c projects/pf/head/contrib/libarchive/libarchive/archive_pathmatch.c - copied unchanged from r239010, head/contrib/libarchive/libarchive/archive_pathmatch.c projects/pf/head/contrib/libarchive/libarchive/archive_pathmatch.h - copied unchanged from r239010, head/contrib/libarchive/libarchive/archive_pathmatch.h projects/pf/head/contrib/libarchive/libarchive/archive_write_add_filter.c - copied unchanged from r239010, head/contrib/libarchive/libarchive/archive_write_add_filter.c projects/pf/head/contrib/libarchive/libarchive/archive_write_disk_acl.c - copied unchanged from r239010, head/contrib/libarchive/libarchive/archive_write_disk_acl.c projects/pf/head/contrib/libarchive/libarchive/test/test_acl_freebsd_nfs4.c - copied unchanged from r239010, head/contrib/libarchive/libarchive/test/test_acl_freebsd_nfs4.c projects/pf/head/contrib/libarchive/libarchive/test/test_acl_freebsd_posix1e.c - copied unchanged from r239010, head/contrib/libarchive/libarchive/test/test_acl_freebsd_posix1e.c projects/pf/head/contrib/libarchive/libarchive/test/test_archive_getdate.c - copied unchanged from r239010, head/contrib/libarchive/libarchive/test/test_archive_getdate.c projects/pf/head/contrib/libarchive/libarchive/test/test_archive_match_owner.c - copied unchanged from r239010, head/contrib/libarchive/libarchive/test/test_archive_match_owner.c projects/pf/head/contrib/libarchive/libarchive/test/test_archive_match_path.c - copied unchanged from r239010, head/contrib/libarchive/libarchive/test/test_archive_match_path.c projects/pf/head/contrib/libarchive/libarchive/test/test_archive_match_time.c - copied unchanged from r239010, head/contrib/libarchive/libarchive/test/test_archive_match_time.c projects/pf/head/contrib/libarchive/libarchive/test/test_archive_pathmatch.c - copied unchanged from r239010, head/contrib/libarchive/libarchive/test/test_archive_pathmatch.c projects/pf/head/contrib/libarchive/tar/test/test_format_newc.c - copied unchanged from r239010, head/contrib/libarchive/tar/test/test_format_newc.c projects/pf/head/contrib/libarchive/tar/test/test_option_nodump.c - copied unchanged from r239010, head/contrib/libarchive/tar/test/test_option_nodump.c projects/pf/head/lib/libc/locale/iswalnum_l.3 - copied unchanged from r239010, head/lib/libc/locale/iswalnum_l.3 projects/pf/head/lib/msun/ld128/s_expl.c - copied unchanged from r239010, head/lib/msun/ld128/s_expl.c projects/pf/head/lib/msun/ld80/s_expl.c - copied unchanged from r239010, head/lib/msun/ld80/s_expl.c projects/pf/head/share/dtrace/hotopen - copied unchanged from r239010, head/share/dtrace/hotopen projects/pf/head/share/dtrace/nfsattrstats - copied unchanged from r239010, head/share/dtrace/nfsattrstats projects/pf/head/share/examples/libusb20/ - copied from r239010, head/share/examples/libusb20/ projects/pf/head/share/man/man4/vale.4 - copied unchanged from r239010, head/share/man/man4/vale.4 projects/pf/head/sys/arm/at91/at91_pio_sam9g45.h - copied unchanged from r239010, head/sys/arm/at91/at91_pio_sam9g45.h projects/pf/head/sys/arm/at91/at91sam9g45.c - copied unchanged from r239010, head/sys/arm/at91/at91sam9g45.c projects/pf/head/sys/arm/at91/at91sam9g45reg.h - copied unchanged from r239010, head/sys/arm/at91/at91sam9g45reg.h projects/pf/head/sys/arm/at91/at91sam9x5.c - copied unchanged from r239010, head/sys/arm/at91/at91sam9x5.c projects/pf/head/sys/arm/at91/at91sam9x5reg.h - copied unchanged from r239010, head/sys/arm/at91/at91sam9x5reg.h projects/pf/head/sys/arm/at91/board_sn9g45.c - copied unchanged from r239010, head/sys/arm/at91/board_sn9g45.c projects/pf/head/sys/arm/at91/std.at91sam9g45 - copied unchanged from r239010, head/sys/arm/at91/std.at91sam9g45 projects/pf/head/sys/arm/at91/std.sn9g45 - copied unchanged from r239010, head/sys/arm/at91/std.sn9g45 projects/pf/head/sys/arm/conf/SN9G45 - copied unchanged from r239010, head/sys/arm/conf/SN9G45 projects/pf/head/sys/contrib/libfdt/fdt_empty_tree.c - copied unchanged from r239010, head/sys/contrib/libfdt/fdt_empty_tree.c projects/pf/head/sys/dev/ahci/ahciem.c - copied unchanged from r239010, head/sys/dev/ahci/ahciem.c projects/pf/head/sys/dev/ath/if_ath_tx_edma.c - copied unchanged from r239010, head/sys/dev/ath/if_ath_tx_edma.c projects/pf/head/sys/dev/ath/if_ath_tx_edma.h - copied unchanged from r239010, head/sys/dev/ath/if_ath_tx_edma.h projects/pf/head/tools/regression/bin/sh/builtins/local1.0 - copied unchanged from r239010, head/tools/regression/bin/sh/builtins/local1.0 projects/pf/head/tools/regression/bin/sh/expansion/export2.0 - copied unchanged from r239010, head/tools/regression/bin/sh/expansion/export2.0 projects/pf/head/tools/regression/bin/sh/expansion/export3.0 - copied unchanged from r239010, head/tools/regression/bin/sh/expansion/export3.0 projects/pf/head/tools/regression/bin/sh/expansion/local1.0 - copied unchanged from r239010, head/tools/regression/bin/sh/expansion/local1.0 projects/pf/head/tools/regression/bin/sh/expansion/local2.0 - copied unchanged from r239010, head/tools/regression/bin/sh/expansion/local2.0 projects/pf/head/tools/regression/bin/sh/expansion/readonly1.0 - copied unchanged from r239010, head/tools/regression/bin/sh/expansion/readonly1.0 projects/pf/head/tools/tools/ath/athratestats/ - copied from r239010, head/tools/tools/ath/athratestats/ Deleted: projects/pf/head/contrib/dtc/Makefile.convert-dtsv0 projects/pf/head/contrib/dtc/Makefile.ftdump projects/pf/head/contrib/dtc/convert-dtsv0-lexer.l projects/pf/head/contrib/dtc/ftdump.c projects/pf/head/contrib/libarchive/cpio/test/test_pathmatch.c projects/pf/head/contrib/libarchive/libarchive_fe/matching.c projects/pf/head/contrib/libarchive/libarchive_fe/matching.h projects/pf/head/contrib/libarchive/libarchive_fe/pathmatch.c projects/pf/head/contrib/libarchive/libarchive_fe/pathmatch.h projects/pf/head/contrib/libarchive/tar/getdate.c projects/pf/head/contrib/libarchive/tar/test/test_getdate.c projects/pf/head/contrib/libarchive/tar/tree.c projects/pf/head/contrib/libarchive/tar/tree.h projects/pf/head/sys/arm/at91/at91sam9x25.c projects/pf/head/sys/arm/at91/at91sam9x25reg.h projects/pf/head/sys/vm/vm_contig.c Modified: projects/pf/head/Makefile.inc1 projects/pf/head/ObsoleteFiles.inc projects/pf/head/UPDATING projects/pf/head/bin/cat/cat.c projects/pf/head/bin/ps/print.c projects/pf/head/bin/sh/eval.c projects/pf/head/bin/sh/exec.c projects/pf/head/bin/sh/exec.h projects/pf/head/bin/sh/jobs.c projects/pf/head/bin/sh/jobs.h projects/pf/head/bin/sh/sh.1 projects/pf/head/bin/sh/trap.c projects/pf/head/bin/sh/trap.h projects/pf/head/bin/stty/extern.h projects/pf/head/cddl/contrib/opensolaris/cmd/zpool/zpool.8 projects/pf/head/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c projects/pf/head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_cc.c projects/pf/head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pragma.c projects/pf/head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_proc.c projects/pf/head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.c projects/pf/head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.h projects/pf/head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h projects/pf/head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_status.c projects/pf/head/cddl/lib/libzfs/Makefile projects/pf/head/contrib/bind9/CHANGES projects/pf/head/contrib/bind9/lib/dns/resolver.c projects/pf/head/contrib/bind9/lib/dns/zone.c projects/pf/head/contrib/bind9/version projects/pf/head/contrib/dtc/Documentation/dts-format.txt projects/pf/head/contrib/dtc/Documentation/manual.txt projects/pf/head/contrib/dtc/Makefile projects/pf/head/contrib/dtc/checks.c projects/pf/head/contrib/dtc/data.c projects/pf/head/contrib/dtc/dtc-lexer.l projects/pf/head/contrib/dtc/dtc-parser.y projects/pf/head/contrib/dtc/dtc.c projects/pf/head/contrib/dtc/dtc.h projects/pf/head/contrib/dtc/flattree.c projects/pf/head/contrib/dtc/fstree.c projects/pf/head/contrib/dtc/libfdt/Makefile.libfdt projects/pf/head/contrib/dtc/libfdt/fdt.c projects/pf/head/contrib/dtc/libfdt/fdt_ro.c projects/pf/head/contrib/dtc/libfdt/fdt_rw.c projects/pf/head/contrib/dtc/libfdt/libfdt.h projects/pf/head/contrib/dtc/libfdt/libfdt_env.h projects/pf/head/contrib/dtc/libfdt/libfdt_internal.h projects/pf/head/contrib/dtc/livetree.c projects/pf/head/contrib/dtc/srcpos.c projects/pf/head/contrib/dtc/srcpos.h projects/pf/head/contrib/dtc/treesource.c projects/pf/head/contrib/dtc/util.c projects/pf/head/contrib/dtc/util.h projects/pf/head/contrib/gcc/config/arm/freebsd.h projects/pf/head/contrib/gcc/config/i386/freebsd.h projects/pf/head/contrib/gcc/config/i386/freebsd64.h projects/pf/head/contrib/gcc/config/ia64/freebsd.h projects/pf/head/contrib/gcc/config/mips/freebsd.h projects/pf/head/contrib/gcc/config/rs6000/freebsd.h projects/pf/head/contrib/gcc/config/sparc/freebsd.h projects/pf/head/contrib/groff/tmac/doc-common projects/pf/head/contrib/groff/tmac/doc-syms projects/pf/head/contrib/groff/tmac/doc.tmac projects/pf/head/contrib/groff/tmac/groff_mdoc.man projects/pf/head/contrib/less/NEWS projects/pf/head/contrib/less/README projects/pf/head/contrib/less/brac.c projects/pf/head/contrib/less/ch.c projects/pf/head/contrib/less/charset.c projects/pf/head/contrib/less/charset.h projects/pf/head/contrib/less/cmd.h projects/pf/head/contrib/less/cmdbuf.c projects/pf/head/contrib/less/command.c projects/pf/head/contrib/less/cvt.c projects/pf/head/contrib/less/decode.c projects/pf/head/contrib/less/defines.ds projects/pf/head/contrib/less/defines.o2 projects/pf/head/contrib/less/defines.o9 projects/pf/head/contrib/less/defines.wn projects/pf/head/contrib/less/edit.c projects/pf/head/contrib/less/filename.c projects/pf/head/contrib/less/forwback.c projects/pf/head/contrib/less/funcs.h projects/pf/head/contrib/less/help.c projects/pf/head/contrib/less/ifile.c projects/pf/head/contrib/less/input.c projects/pf/head/contrib/less/jump.c projects/pf/head/contrib/less/less.h projects/pf/head/contrib/less/less.hlp projects/pf/head/contrib/less/less.man projects/pf/head/contrib/less/less.nro projects/pf/head/contrib/less/lessecho.c projects/pf/head/contrib/less/lessecho.man projects/pf/head/contrib/less/lessecho.nro projects/pf/head/contrib/less/lesskey.c projects/pf/head/contrib/less/lesskey.h projects/pf/head/contrib/less/lesskey.man projects/pf/head/contrib/less/lesskey.nro projects/pf/head/contrib/less/lglob.h projects/pf/head/contrib/less/line.c projects/pf/head/contrib/less/linenum.c projects/pf/head/contrib/less/lsystem.c projects/pf/head/contrib/less/main.c projects/pf/head/contrib/less/mark.c projects/pf/head/contrib/less/mkhelp.c projects/pf/head/contrib/less/optfunc.c projects/pf/head/contrib/less/option.c projects/pf/head/contrib/less/option.h projects/pf/head/contrib/less/opttbl.c projects/pf/head/contrib/less/os.c projects/pf/head/contrib/less/output.c projects/pf/head/contrib/less/pattern.c projects/pf/head/contrib/less/pattern.h projects/pf/head/contrib/less/pckeys.h projects/pf/head/contrib/less/position.c projects/pf/head/contrib/less/position.h projects/pf/head/contrib/less/prompt.c projects/pf/head/contrib/less/screen.c projects/pf/head/contrib/less/scrsize.c projects/pf/head/contrib/less/search.c projects/pf/head/contrib/less/signal.c projects/pf/head/contrib/less/tags.c projects/pf/head/contrib/less/ttyin.c projects/pf/head/contrib/less/version.c projects/pf/head/contrib/libarchive/FREEBSD-Xlist (contents, props changed) projects/pf/head/contrib/libarchive/FREEBSD-upgrade projects/pf/head/contrib/libarchive/NEWS projects/pf/head/contrib/libarchive/README projects/pf/head/contrib/libarchive/cpio/bsdcpio.1 projects/pf/head/contrib/libarchive/cpio/cmdline.c projects/pf/head/contrib/libarchive/cpio/cpio.c projects/pf/head/contrib/libarchive/cpio/cpio.h projects/pf/head/contrib/libarchive/cpio/test/main.c projects/pf/head/contrib/libarchive/cpio/test/test.h projects/pf/head/contrib/libarchive/libarchive/archive.h projects/pf/head/contrib/libarchive/libarchive/archive_acl.c projects/pf/head/contrib/libarchive/libarchive/archive_check_magic.c projects/pf/head/contrib/libarchive/libarchive/archive_endian.h projects/pf/head/contrib/libarchive/libarchive/archive_entry.3 projects/pf/head/contrib/libarchive/libarchive/archive_entry.c projects/pf/head/contrib/libarchive/libarchive/archive_entry.h projects/pf/head/contrib/libarchive/libarchive/archive_entry_acl.3 projects/pf/head/contrib/libarchive/libarchive/archive_entry_link_resolver.c projects/pf/head/contrib/libarchive/libarchive/archive_entry_linkify.3 projects/pf/head/contrib/libarchive/libarchive/archive_entry_paths.3 projects/pf/head/contrib/libarchive/libarchive/archive_entry_perms.3 projects/pf/head/contrib/libarchive/libarchive/archive_entry_stat.3 projects/pf/head/contrib/libarchive/libarchive/archive_entry_stat.c projects/pf/head/contrib/libarchive/libarchive/archive_entry_time.3 projects/pf/head/contrib/libarchive/libarchive/archive_ppmd7.c projects/pf/head/contrib/libarchive/libarchive/archive_private.h projects/pf/head/contrib/libarchive/libarchive/archive_read.3 projects/pf/head/contrib/libarchive/libarchive/archive_read.c projects/pf/head/contrib/libarchive/libarchive/archive_read_data.3 projects/pf/head/contrib/libarchive/libarchive/archive_read_disk.3 projects/pf/head/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c projects/pf/head/contrib/libarchive/libarchive/archive_read_disk_posix.c projects/pf/head/contrib/libarchive/libarchive/archive_read_disk_private.h projects/pf/head/contrib/libarchive/libarchive/archive_read_extract.3 projects/pf/head/contrib/libarchive/libarchive/archive_read_filter.3 projects/pf/head/contrib/libarchive/libarchive/archive_read_format.3 projects/pf/head/contrib/libarchive/libarchive/archive_read_free.3 projects/pf/head/contrib/libarchive/libarchive/archive_read_header.3 projects/pf/head/contrib/libarchive/libarchive/archive_read_new.3 projects/pf/head/contrib/libarchive/libarchive/archive_read_open.3 projects/pf/head/contrib/libarchive/libarchive/archive_read_open_fd.c projects/pf/head/contrib/libarchive/libarchive/archive_read_open_filename.c projects/pf/head/contrib/libarchive/libarchive/archive_read_private.h projects/pf/head/contrib/libarchive/libarchive/archive_read_set_options.3 projects/pf/head/contrib/libarchive/libarchive/archive_read_support_filter_rpm.c projects/pf/head/contrib/libarchive/libarchive/archive_read_support_format_7zip.c projects/pf/head/contrib/libarchive/libarchive/archive_read_support_format_cab.c projects/pf/head/contrib/libarchive/libarchive/archive_read_support_format_cpio.c projects/pf/head/contrib/libarchive/libarchive/archive_read_support_format_iso9660.c projects/pf/head/contrib/libarchive/libarchive/archive_read_support_format_lha.c projects/pf/head/contrib/libarchive/libarchive/archive_read_support_format_mtree.c projects/pf/head/contrib/libarchive/libarchive/archive_read_support_format_rar.c projects/pf/head/contrib/libarchive/libarchive/archive_read_support_format_tar.c projects/pf/head/contrib/libarchive/libarchive/archive_read_support_format_xar.c projects/pf/head/contrib/libarchive/libarchive/archive_read_support_format_zip.c projects/pf/head/contrib/libarchive/libarchive/archive_string.c projects/pf/head/contrib/libarchive/libarchive/archive_string.h projects/pf/head/contrib/libarchive/libarchive/archive_string_composition.h projects/pf/head/contrib/libarchive/libarchive/archive_string_sprintf.c projects/pf/head/contrib/libarchive/libarchive/archive_util.3 projects/pf/head/contrib/libarchive/libarchive/archive_util.c projects/pf/head/contrib/libarchive/libarchive/archive_write.3 projects/pf/head/contrib/libarchive/libarchive/archive_write.c projects/pf/head/contrib/libarchive/libarchive/archive_write_add_filter_bzip2.c projects/pf/head/contrib/libarchive/libarchive/archive_write_add_filter_compress.c projects/pf/head/contrib/libarchive/libarchive/archive_write_add_filter_gzip.c projects/pf/head/contrib/libarchive/libarchive/archive_write_add_filter_program.c projects/pf/head/contrib/libarchive/libarchive/archive_write_add_filter_xz.c projects/pf/head/contrib/libarchive/libarchive/archive_write_blocksize.3 projects/pf/head/contrib/libarchive/libarchive/archive_write_data.3 projects/pf/head/contrib/libarchive/libarchive/archive_write_disk.3 projects/pf/head/contrib/libarchive/libarchive/archive_write_disk_posix.c projects/pf/head/contrib/libarchive/libarchive/archive_write_disk_private.h projects/pf/head/contrib/libarchive/libarchive/archive_write_disk_set_standard_lookup.c projects/pf/head/contrib/libarchive/libarchive/archive_write_filter.3 projects/pf/head/contrib/libarchive/libarchive/archive_write_finish_entry.3 projects/pf/head/contrib/libarchive/libarchive/archive_write_format.3 projects/pf/head/contrib/libarchive/libarchive/archive_write_free.3 projects/pf/head/contrib/libarchive/libarchive/archive_write_header.3 projects/pf/head/contrib/libarchive/libarchive/archive_write_new.3 projects/pf/head/contrib/libarchive/libarchive/archive_write_open.3 projects/pf/head/contrib/libarchive/libarchive/archive_write_open_filename.c projects/pf/head/contrib/libarchive/libarchive/archive_write_private.h projects/pf/head/contrib/libarchive/libarchive/archive_write_set_format_7zip.c projects/pf/head/contrib/libarchive/libarchive/archive_write_set_format_ar.c projects/pf/head/contrib/libarchive/libarchive/archive_write_set_format_cpio.c projects/pf/head/contrib/libarchive/libarchive/archive_write_set_format_cpio_newc.c projects/pf/head/contrib/libarchive/libarchive/archive_write_set_format_gnutar.c projects/pf/head/contrib/libarchive/libarchive/archive_write_set_format_iso9660.c projects/pf/head/contrib/libarchive/libarchive/archive_write_set_format_mtree.c projects/pf/head/contrib/libarchive/libarchive/archive_write_set_format_pax.c projects/pf/head/contrib/libarchive/libarchive/archive_write_set_format_ustar.c projects/pf/head/contrib/libarchive/libarchive/archive_write_set_format_xar.c projects/pf/head/contrib/libarchive/libarchive/archive_write_set_format_zip.c projects/pf/head/contrib/libarchive/libarchive/archive_write_set_options.3 projects/pf/head/contrib/libarchive/libarchive/cpio.5 projects/pf/head/contrib/libarchive/libarchive/libarchive-formats.5 projects/pf/head/contrib/libarchive/libarchive/libarchive.3 projects/pf/head/contrib/libarchive/libarchive/libarchive_changes.3 projects/pf/head/contrib/libarchive/libarchive/libarchive_internals.3 projects/pf/head/contrib/libarchive/libarchive/tar.5 projects/pf/head/contrib/libarchive/libarchive/test/main.c projects/pf/head/contrib/libarchive/libarchive/test/read_open_memory.c projects/pf/head/contrib/libarchive/libarchive/test/test.h projects/pf/head/contrib/libarchive/libarchive/test/test_archive_string_conversion.c projects/pf/head/contrib/libarchive/libarchive/test/test_compat_zip.c projects/pf/head/contrib/libarchive/libarchive/test/test_read_disk_directory_traversals.c projects/pf/head/contrib/libarchive/libarchive/test/test_read_format_7zip.c projects/pf/head/contrib/libarchive/libarchive/test/test_read_format_cab.c projects/pf/head/contrib/libarchive/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c projects/pf/head/contrib/libarchive/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c projects/pf/head/contrib/libarchive/libarchive/test/test_read_format_rar.c projects/pf/head/contrib/libarchive/libarchive/test/test_read_format_rar_unicode.rar.uu projects/pf/head/contrib/libarchive/libarchive/test/test_read_format_tar_filename.c projects/pf/head/contrib/libarchive/libarchive/test/test_read_pax_truncated.c projects/pf/head/contrib/libarchive/libarchive/test/test_read_position.c projects/pf/head/contrib/libarchive/libarchive/test/test_sparse_basic.c projects/pf/head/contrib/libarchive/libarchive/test/test_write_format_zip.c projects/pf/head/contrib/libarchive/libarchive_fe/err.c projects/pf/head/contrib/libarchive/libarchive_fe/err.h projects/pf/head/contrib/libarchive/tar/bsdtar.1 projects/pf/head/contrib/libarchive/tar/bsdtar.c projects/pf/head/contrib/libarchive/tar/bsdtar.h projects/pf/head/contrib/libarchive/tar/read.c projects/pf/head/contrib/libarchive/tar/test/main.c projects/pf/head/contrib/libarchive/tar/test/test.h projects/pf/head/contrib/libarchive/tar/test/test_basic.c projects/pf/head/contrib/libarchive/tar/write.c projects/pf/head/contrib/llvm/tools/clang/lib/Driver/Tools.cpp projects/pf/head/etc/mtree/BSD.usr.dist projects/pf/head/etc/rc.d/bgfsck projects/pf/head/etc/rc.d/ip6addrctl projects/pf/head/etc/rc.d/jail projects/pf/head/games/fortune/datfiles/fortunes projects/pf/head/gnu/usr.bin/groff/tmac/Makefile projects/pf/head/gnu/usr.bin/groff/tmac/mdoc.local projects/pf/head/lib/libarchive/Makefile projects/pf/head/lib/libarchive/config_freebsd.h projects/pf/head/lib/libarchive/test/Makefile projects/pf/head/lib/libc/gen/fts.c projects/pf/head/lib/libc/locale/Makefile.inc projects/pf/head/lib/libc/locale/isgraph.3 projects/pf/head/lib/libc/locale/islower.3 projects/pf/head/lib/libc/locale/ispunct.3 projects/pf/head/lib/libc/locale/isspace.3 projects/pf/head/lib/libc/locale/nl_langinfo.3 projects/pf/head/lib/libc/net/getaddrinfo.c projects/pf/head/lib/libc/rpc/getnetpath.c projects/pf/head/lib/libc/stdlib/at_quick_exit.3 projects/pf/head/lib/libc/stdlib/quick_exit.3 projects/pf/head/lib/libc/string/strerror.3 projects/pf/head/lib/libc/sys/fcntl.2 projects/pf/head/lib/libc/sys/fcntl.c projects/pf/head/lib/libedit/el.c projects/pf/head/lib/libedit/histedit.h projects/pf/head/lib/libedit/makelist projects/pf/head/lib/libedit/term.c projects/pf/head/lib/libedit/tokenizer.c projects/pf/head/lib/libelf/Makefile projects/pf/head/lib/libthr/thread/thr_getschedparam.c projects/pf/head/lib/libthr/thread/thr_info.c projects/pf/head/lib/libthr/thread/thr_setprio.c projects/pf/head/lib/libthr/thread/thr_setschedparam.c projects/pf/head/lib/msun/Makefile projects/pf/head/lib/msun/Symbol.map projects/pf/head/lib/msun/man/exp.3 projects/pf/head/lib/msun/src/e_exp.c projects/pf/head/lib/msun/src/math.h projects/pf/head/lib/msun/src/math_private.h projects/pf/head/lib/msun/src/s_cbrtl.c projects/pf/head/libexec/rtld-elf/rtld.1 projects/pf/head/libexec/rtld-elf/rtld.c projects/pf/head/libexec/rtld-elf/rtld.h projects/pf/head/rescue/rescue/Makefile projects/pf/head/sbin/fsck_ffs/suj.c projects/pf/head/sbin/geom/class/sched/gsched.8 projects/pf/head/sbin/hastd/hast.conf.5 projects/pf/head/sbin/ipfw/dummynet.c projects/pf/head/sbin/ipfw/ipfw.8 projects/pf/head/sbin/ipfw/ipfw2.c projects/pf/head/sbin/ipfw/nat.c projects/pf/head/sbin/md5/Makefile projects/pf/head/sbin/md5/md5.1 projects/pf/head/sbin/md5/md5.c projects/pf/head/sbin/shutdown/shutdown.c projects/pf/head/share/dtrace/Makefile projects/pf/head/share/examples/Makefile projects/pf/head/share/man/man4/Makefile projects/pf/head/share/man/man4/ahci.4 projects/pf/head/share/man/man4/gpib.4 projects/pf/head/share/man/man4/netmap.4 projects/pf/head/share/man/man4/ugen.4 projects/pf/head/share/man/man4/uplcom.4 projects/pf/head/share/man/man4/uslcom.4 projects/pf/head/share/man/man5/moduli.5 projects/pf/head/share/man/man5/rc.conf.5 projects/pf/head/share/man/man9/ieee80211_node.9 projects/pf/head/share/man/man9/kernel_mount.9 projects/pf/head/share/man/man9/malloc.9 projects/pf/head/share/misc/bsd-family-tree projects/pf/head/share/misc/committers-ports.dot projects/pf/head/sys/amd64/amd64/fpu.c projects/pf/head/sys/amd64/amd64/machdep.c projects/pf/head/sys/amd64/amd64/pmap.c projects/pf/head/sys/amd64/amd64/ptrace_machdep.c projects/pf/head/sys/amd64/amd64/trap.c projects/pf/head/sys/amd64/amd64/vm_machdep.c projects/pf/head/sys/amd64/include/cpufunc.h projects/pf/head/sys/amd64/include/fpu.h projects/pf/head/sys/amd64/include/pcpu.h projects/pf/head/sys/arm/arm/nexus.c projects/pf/head/sys/arm/at91/at91.c projects/pf/head/sys/arm/at91/at91_machdep.c projects/pf/head/sys/arm/at91/at91_pmc.c projects/pf/head/sys/arm/at91/at91_pmcreg.h projects/pf/head/sys/arm/at91/at91_spi.c projects/pf/head/sys/arm/at91/board_sam9260ek.c projects/pf/head/sys/arm/at91/files.at91 projects/pf/head/sys/arm/at91/if_ate.c projects/pf/head/sys/arm/at91/std.atmel projects/pf/head/sys/arm/at91/std.sam9x25ek projects/pf/head/sys/arm/at91/uart_bus_at91usart.c projects/pf/head/sys/arm/conf/ATMEL projects/pf/head/sys/arm/conf/ETHERNUT5 projects/pf/head/sys/arm/conf/ETHERNUT5.hints projects/pf/head/sys/arm/conf/HL201 projects/pf/head/sys/arm/conf/KB920X projects/pf/head/sys/arm/conf/QILA9G20 projects/pf/head/sys/arm/conf/SAM9260EK projects/pf/head/sys/arm/conf/SAM9260EK.hints projects/pf/head/sys/arm/conf/SAM9G20EK projects/pf/head/sys/arm/conf/SAM9X25EK projects/pf/head/sys/arm/econa/econa.c projects/pf/head/sys/arm/mv/common.c projects/pf/head/sys/arm/mv/gpio.c projects/pf/head/sys/arm/mv/ic.c projects/pf/head/sys/arm/mv/kirkwood/kirkwood.c projects/pf/head/sys/arm/mv/mv_sata.c projects/pf/head/sys/arm/mv/mvreg.h projects/pf/head/sys/arm/s3c2xx0/s3c24x0.c projects/pf/head/sys/arm/xscale/i8134x/i81342.c projects/pf/head/sys/arm/xscale/pxa/pxa_obio.c projects/pf/head/sys/boot/ficl/Makefile projects/pf/head/sys/boot/sparc64/loader/main.c projects/pf/head/sys/boot/zfs/Makefile projects/pf/head/sys/cam/ata/ata_all.h projects/pf/head/sys/cam/ata/ata_xpt.c projects/pf/head/sys/cam/cam_ccb.h projects/pf/head/sys/cam/cam_periph.c projects/pf/head/sys/cam/cam_xpt.c projects/pf/head/sys/cam/ctl/scsi_ctl.c projects/pf/head/sys/cam/scsi/scsi_all.c projects/pf/head/sys/cam/scsi/scsi_cd.c projects/pf/head/sys/cam/scsi/scsi_da.c projects/pf/head/sys/cam/scsi/scsi_enc.c projects/pf/head/sys/cam/scsi/scsi_enc_safte.c projects/pf/head/sys/cam/scsi/scsi_enc_ses.c projects/pf/head/sys/cam/scsi/scsi_ses.h projects/pf/head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c projects/pf/head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfeature.h projects/pf/head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfeature.c projects/pf/head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c projects/pf/head/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h projects/pf/head/sys/cddl/dev/dtrace/amd64/dtrace_subr.c projects/pf/head/sys/cddl/dev/dtrace/i386/dtrace_subr.c projects/pf/head/sys/compat/ia32/ia32_sysvec.c projects/pf/head/sys/compat/ia32/ia32_util.h projects/pf/head/sys/conf/NOTES projects/pf/head/sys/conf/files projects/pf/head/sys/contrib/libfdt/fdt.c projects/pf/head/sys/contrib/libfdt/fdt_ro.c projects/pf/head/sys/contrib/libfdt/fdt_rw.c projects/pf/head/sys/contrib/libfdt/libfdt.h projects/pf/head/sys/contrib/libfdt/libfdt_env.h projects/pf/head/sys/contrib/libfdt/libfdt_internal.h projects/pf/head/sys/dev/aac/aac_disk.c projects/pf/head/sys/dev/acpica/acpi_cpu.c projects/pf/head/sys/dev/ahci/ahci.c projects/pf/head/sys/dev/ahci/ahci.h projects/pf/head/sys/dev/ata/ata-all.c projects/pf/head/sys/dev/ata/ata-lowlevel.c projects/pf/head/sys/dev/ath/ath_hal/ah.c projects/pf/head/sys/dev/ath/ath_hal/ah.h projects/pf/head/sys/dev/ath/ath_hal/ah_desc.h projects/pf/head/sys/dev/ath/ath_hal/ah_internal.h projects/pf/head/sys/dev/ath/ath_hal/ar5210/ar5210.h projects/pf/head/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c projects/pf/head/sys/dev/ath/ath_hal/ar5210/ar5210_xmit.c projects/pf/head/sys/dev/ath/ath_hal/ar5211/ar5211.h projects/pf/head/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c projects/pf/head/sys/dev/ath/ath_hal/ar5211/ar5211_xmit.c projects/pf/head/sys/dev/ath/ath_hal/ar5212/ar5212.h projects/pf/head/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c projects/pf/head/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c projects/pf/head/sys/dev/ath/ath_hal/ar5416/ar5416.h projects/pf/head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c projects/pf/head/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c projects/pf/head/sys/dev/ath/ath_rate/amrr/amrr.c projects/pf/head/sys/dev/ath/ath_rate/onoe/onoe.c projects/pf/head/sys/dev/ath/ath_rate/sample/sample.c projects/pf/head/sys/dev/ath/ath_rate/sample/sample.h projects/pf/head/sys/dev/ath/if_ath.c projects/pf/head/sys/dev/ath/if_ath_ahb.c projects/pf/head/sys/dev/ath/if_ath_beacon.c projects/pf/head/sys/dev/ath/if_ath_misc.h projects/pf/head/sys/dev/ath/if_ath_pci.c projects/pf/head/sys/dev/ath/if_ath_rx.c projects/pf/head/sys/dev/ath/if_ath_rx_edma.c projects/pf/head/sys/dev/ath/if_ath_sysctl.c projects/pf/head/sys/dev/ath/if_ath_tx.c projects/pf/head/sys/dev/ath/if_ath_tx.h projects/pf/head/sys/dev/ath/if_ath_tx_ht.c projects/pf/head/sys/dev/ath/if_athioctl.h projects/pf/head/sys/dev/ath/if_athrate.h projects/pf/head/sys/dev/ath/if_athvar.h projects/pf/head/sys/dev/cesa/cesa.c projects/pf/head/sys/dev/e1000/if_igb.c projects/pf/head/sys/dev/e1000/if_lem.c projects/pf/head/sys/dev/isp/isp.c projects/pf/head/sys/dev/isp/isp_freebsd.c projects/pf/head/sys/dev/isp/isp_freebsd.h projects/pf/head/sys/dev/isp/isp_library.c projects/pf/head/sys/dev/isp/isp_library.h projects/pf/head/sys/dev/isp/isp_pci.c projects/pf/head/sys/dev/isp/isp_sbus.c projects/pf/head/sys/dev/isp/isp_stds.h projects/pf/head/sys/dev/isp/isp_target.c projects/pf/head/sys/dev/isp/isp_target.h projects/pf/head/sys/dev/isp/ispmbox.h projects/pf/head/sys/dev/isp/ispvar.h projects/pf/head/sys/dev/ispfw/asm_2300.h projects/pf/head/sys/dev/md/md.c projects/pf/head/sys/dev/mge/if_mge.c projects/pf/head/sys/dev/mii/e1000phy.c projects/pf/head/sys/dev/mlx/mlxvar.h projects/pf/head/sys/dev/mps/mps.c projects/pf/head/sys/dev/mps/mps_sas.c projects/pf/head/sys/dev/mps/mps_sas_lsi.c projects/pf/head/sys/dev/mps/mps_table.c projects/pf/head/sys/dev/mps/mps_user.c projects/pf/head/sys/dev/mps/mpsvar.h projects/pf/head/sys/dev/mvs/mvs_soc.c projects/pf/head/sys/dev/netmap/if_em_netmap.h projects/pf/head/sys/dev/netmap/if_igb_netmap.h projects/pf/head/sys/dev/netmap/ixgbe_netmap.h projects/pf/head/sys/dev/netmap/netmap.c projects/pf/head/sys/dev/netmap/netmap_kern.h projects/pf/head/sys/dev/netmap/netmap_mem2.c projects/pf/head/sys/dev/pccbb/pccbb_pci.c projects/pf/head/sys/dev/puc/puc_cfg.h projects/pf/head/sys/dev/puc/pucdata.c projects/pf/head/sys/dev/sdhci/sdhci.c projects/pf/head/sys/dev/spibus/spi.h projects/pf/head/sys/dev/spibus/spibus.c projects/pf/head/sys/dev/sym/sym_hipd.c projects/pf/head/sys/dev/usb/controller/at91dci_atmelarm.c projects/pf/head/sys/dev/usb/controller/ohci_atmelarm.c projects/pf/head/sys/dev/usb/controller/xhci_pci.c projects/pf/head/sys/dev/usb/controller/xhcireg.h projects/pf/head/sys/dev/usb/quirk/usb_quirk.c projects/pf/head/sys/dev/usb/serial/u3g.c projects/pf/head/sys/dev/usb/serial/uplcom.c projects/pf/head/sys/dev/usb/serial/uslcom.c projects/pf/head/sys/dev/usb/usbdevs projects/pf/head/sys/dev/wtap/if_wtap.c projects/pf/head/sys/fs/cd9660/cd9660_vfsops.c projects/pf/head/sys/fs/ext2fs/ext2_vfsops.c projects/pf/head/sys/fs/fifofs/fifo_vnops.c projects/pf/head/sys/fs/msdosfs/msdosfs_lookup.c projects/pf/head/sys/fs/portalfs/portal_vnops.c projects/pf/head/sys/fs/smbfs/smbfs_node.c projects/pf/head/sys/fs/udf/udf_vfsops.c projects/pf/head/sys/geom/gate/g_gate.c projects/pf/head/sys/geom/geom.h projects/pf/head/sys/geom/geom_dev.c projects/pf/head/sys/geom/geom_disk.c projects/pf/head/sys/geom/geom_disk.h projects/pf/head/sys/geom/geom_event.c projects/pf/head/sys/geom/geom_io.c projects/pf/head/sys/geom/geom_slice.c projects/pf/head/sys/geom/geom_subr.c projects/pf/head/sys/geom/part/g_part.c projects/pf/head/sys/gnu/fs/reiserfs/reiserfs_vfsops.c projects/pf/head/sys/i386/i386/machdep.c projects/pf/head/sys/i386/i386/pmap.c projects/pf/head/sys/i386/i386/ptrace_machdep.c projects/pf/head/sys/i386/i386/trap.c projects/pf/head/sys/i386/i386/vm86.c projects/pf/head/sys/i386/i386/vm_machdep.c projects/pf/head/sys/i386/include/cpufunc.h projects/pf/head/sys/i386/include/npx.h projects/pf/head/sys/i386/include/pcpu.h projects/pf/head/sys/i386/isa/npx.c projects/pf/head/sys/i386/linux/linux_proto.h projects/pf/head/sys/i386/linux/linux_syscall.h projects/pf/head/sys/i386/linux/linux_syscalls.c projects/pf/head/sys/i386/linux/linux_sysent.c projects/pf/head/sys/i386/linux/linux_systrace_args.c projects/pf/head/sys/i386/linux/syscalls.master projects/pf/head/sys/kern/imgact_aout.c projects/pf/head/sys/kern/imgact_elf.c projects/pf/head/sys/kern/kern_clocksource.c projects/pf/head/sys/kern/kern_descrip.c projects/pf/head/sys/kern/kern_ktr.c projects/pf/head/sys/kern/kern_malloc.c projects/pf/head/sys/kern/kern_proc.c projects/pf/head/sys/kern/kern_tc.c projects/pf/head/sys/kern/sys_pipe.c projects/pf/head/sys/kern/vfs_syscalls.c projects/pf/head/sys/kern/vfs_vnops.c projects/pf/head/sys/mips/mips/pmap.c projects/pf/head/sys/modules/ahci/Makefile projects/pf/head/sys/modules/ath/Makefile projects/pf/head/sys/modules/cam/Makefile projects/pf/head/sys/net/flowtable.c projects/pf/head/sys/net/if_llatbl.c projects/pf/head/sys/net/if_llatbl.h projects/pf/head/sys/net/if_loop.c projects/pf/head/sys/net/if_stf.c projects/pf/head/sys/net/if_var.h projects/pf/head/sys/net80211/ieee80211_hwmp.c projects/pf/head/sys/netgraph/ng_ether.c projects/pf/head/sys/netgraph/ng_pptpgre.c projects/pf/head/sys/netinet/if_ether.c projects/pf/head/sys/netinet/in.c projects/pf/head/sys/netinet/in_cksum.c projects/pf/head/sys/netinet/in_var.h projects/pf/head/sys/netinet/ip_carp.c projects/pf/head/sys/netinet/ip_output.c projects/pf/head/sys/netinet/ipfw/ip_dummynet.c projects/pf/head/sys/netinet/ipfw/ip_fw2.c projects/pf/head/sys/netinet/ipfw/ip_fw_dynamic.c projects/pf/head/sys/netinet/ipfw/ip_fw_log.c projects/pf/head/sys/netinet/sctp_asconf.c projects/pf/head/sys/netinet/sctp_output.c projects/pf/head/sys/netinet/sctp_pcb.c projects/pf/head/sys/netinet/sctp_uio.h projects/pf/head/sys/netinet/sctp_usrreq.c projects/pf/head/sys/netinet/sctputil.c projects/pf/head/sys/netinet/tcp_input.c projects/pf/head/sys/netinet/tcp_output.c projects/pf/head/sys/netinet6/in6.c projects/pf/head/sys/netinet6/ip6_ipsec.c projects/pf/head/sys/netinet6/ip6_output.c projects/pf/head/sys/netinet6/sctp6_usrreq.c projects/pf/head/sys/netipsec/ipsec_output.c projects/pf/head/sys/powerpc/powerpc/busdma_machdep.c projects/pf/head/sys/sys/fcntl.h projects/pf/head/sys/sys/pipe.h projects/pf/head/sys/sys/refcount.h projects/pf/head/sys/sys/stat.h projects/pf/head/sys/sys/user.h projects/pf/head/sys/ufs/ffs/ffs_snapshot.c projects/pf/head/sys/ufs/ffs/ffs_vfsops.c projects/pf/head/sys/vm/memguard.c projects/pf/head/sys/vm/memguard.h projects/pf/head/sys/vm/vm_kern.c projects/pf/head/sys/vm/vm_map.h projects/pf/head/sys/vm/vm_page.c projects/pf/head/sys/vm/vm_page.h projects/pf/head/sys/vm/vm_pageout.c projects/pf/head/sys/vm/vm_pageout.h projects/pf/head/sys/vm/vm_reserv.c projects/pf/head/sys/x86/x86/busdma_machdep.c projects/pf/head/sys/x86/x86/tsc.c projects/pf/head/tools/build/mk/OptionalObsoleteFiles.inc projects/pf/head/tools/tools/ath/Makefile projects/pf/head/tools/tools/ath/common/diag.h projects/pf/head/tools/tools/sysbuild/sysbuild.sh projects/pf/head/usr.bin/Makefile projects/pf/head/usr.bin/calendar/calendars/calendar.freebsd projects/pf/head/usr.bin/cpio/Makefile projects/pf/head/usr.bin/cpio/test/Makefile projects/pf/head/usr.bin/du/du.1 projects/pf/head/usr.bin/du/du.c projects/pf/head/usr.bin/find/extern.h projects/pf/head/usr.bin/find/find.1 projects/pf/head/usr.bin/find/find.c projects/pf/head/usr.bin/find/function.c projects/pf/head/usr.bin/find/main.c projects/pf/head/usr.bin/find/option.c projects/pf/head/usr.bin/netstat/Makefile projects/pf/head/usr.bin/netstat/sctp.c projects/pf/head/usr.bin/nfsstat/nfsstat.c projects/pf/head/usr.bin/procstat/procstat.1 projects/pf/head/usr.bin/procstat/procstat_vm.c projects/pf/head/usr.bin/script/script.1 projects/pf/head/usr.bin/script/script.c projects/pf/head/usr.bin/tar/Makefile projects/pf/head/usr.bin/tar/test/Makefile projects/pf/head/usr.sbin/ipfwpcap/ipfwpcap.8 projects/pf/head/usr.sbin/lpr/common_source/common.c projects/pf/head/usr.sbin/wpa/hostapd/hostapd.8 Directory Properties: projects/pf/head/ (props changed) projects/pf/head/cddl/contrib/opensolaris/ (props changed) projects/pf/head/cddl/contrib/opensolaris/lib/libzfs/ (props changed) projects/pf/head/contrib/bind9/ (props changed) projects/pf/head/contrib/dtc/ (props changed) projects/pf/head/contrib/gcc/ (props changed) projects/pf/head/contrib/groff/ (props changed) projects/pf/head/contrib/less/ (props changed) projects/pf/head/contrib/libarchive/ (props changed) projects/pf/head/contrib/libarchive/cpio/ (props changed) projects/pf/head/contrib/libarchive/libarchive/ (props changed) projects/pf/head/contrib/libarchive/libarchive_fe/ (props changed) projects/pf/head/contrib/libarchive/tar/ (props changed) projects/pf/head/contrib/llvm/ (props changed) projects/pf/head/contrib/llvm/tools/clang/ (props changed) projects/pf/head/lib/libc/ (props changed) projects/pf/head/sbin/ (props changed) projects/pf/head/sbin/ipfw/ (props changed) projects/pf/head/share/man/man4/ (props changed) projects/pf/head/sys/ (props changed) projects/pf/head/sys/boot/ (props changed) projects/pf/head/sys/cddl/contrib/opensolaris/ (props changed) projects/pf/head/sys/conf/ (props changed) projects/pf/head/sys/contrib/libfdt/ (props changed) projects/pf/head/sys/contrib/pf/ (props changed) projects/pf/head/usr.bin/calendar/ (props changed) projects/pf/head/usr.bin/procstat/ (props changed) Modified: projects/pf/head/Makefile.inc1 ============================================================================== --- projects/pf/head/Makefile.inc1 Fri Aug 3 14:25:35 2012 (r239010) +++ projects/pf/head/Makefile.inc1 Fri Aug 3 14:49:18 2012 (r239011) @@ -1260,7 +1260,7 @@ _prebuild_libs= ${_kerberos5_lib_libasn1 lib/ncurses/ncurses lib/ncurses/ncursesw \ lib/libopie lib/libpam ${_lib_libthr} \ lib/libradius lib/libsbuf lib/libtacplus \ - ${_cddl_lib_libumem} \ + ${_cddl_lib_libumem} ${_cddl_lib_libnvpair} \ lib/libutil ${_lib_libypclnt} lib/libz lib/msun \ ${_secure_lib_libcrypto} ${_secure_lib_libssh} \ ${_secure_lib_libssl} @@ -1284,6 +1284,7 @@ lib/libopie__L lib/libtacplus__L: lib/li .if ${MK_CDDL} != "no" _cddl_lib_libumem= cddl/lib/libumem +_cddl_lib_libnvpair= cddl/lib/libnvpair _cddl_lib= cddl/lib .endif Modified: projects/pf/head/ObsoleteFiles.inc ============================================================================== --- projects/pf/head/ObsoleteFiles.inc Fri Aug 3 14:25:35 2012 (r239010) +++ projects/pf/head/ObsoleteFiles.inc Fri Aug 3 14:49:18 2012 (r239011) @@ -1358,6 +1358,11 @@ OLD_FILES+=usr/share/man/man2/kse_thr_in OLD_FILES+=usr/share/man/man2/kse_wakeup.2.gz OLD_FILES+=usr/lib32/libkse.so OLD_LIBS+=usr/lib32/libkse.so.3 +# 20080225: bsdar/bsdranlib rename to ar/ranlib +OLD_FILES+=usr/bin/bsdar +OLD_FILES+=usr/bin/bsdranlib +OLD_FILES+=usr/share/man/man1/bsdar.1.gz +OLD_FILES+=usr/share/man/man1/bsdranlib.1.gz # 20080220: geom_lvm rename to geom_linux_lvm OLD_FILES+=usr/share/man/man4/geom_lvm.4.gz # 20080126: oldcard.4 removal Modified: projects/pf/head/UPDATING ============================================================================== --- projects/pf/head/UPDATING Fri Aug 3 14:25:35 2012 (r239010) +++ projects/pf/head/UPDATING Fri Aug 3 14:49:18 2012 (r239011) @@ -24,6 +24,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20120727: + The sparc64 ZFS loader has been changed to no longer try to auto- + detect ZFS providers based on diskN aliases but now requires these + to be explicitly listed in the OFW boot-device environment variable. + 20120712: The OpenSSL has been upgraded to 1.0.1c. Any binaries requiring libcrypto.so.6 or libssl.so.6 must be recompiled. Also, there are Modified: projects/pf/head/bin/cat/cat.c ============================================================================== --- projects/pf/head/bin/cat/cat.c Fri Aug 3 14:25:35 2012 (r239010) +++ projects/pf/head/bin/cat/cat.c Fri Aug 3 14:49:18 2012 (r239011) @@ -58,11 +58,11 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include #include -#include static int bflag, eflag, nflag, sflag, tflag, vflag; static int rval; @@ -77,16 +77,20 @@ static void raw_cat(int); static int udom_open(const char *path, int flags); #endif -/* Memory strategy threshold, in pages: if physmem is larger then this, use a - * large buffer */ -#define PHYSPAGES_THRESHOLD (32*1024) - -/* Maximum buffer size in bytes - do not allow it to grow larger than this */ -#define BUFSIZE_MAX (2*1024*1024) - -/* Small (default) buffer size in bytes. It's inefficient for this to be - * smaller than MAXPHYS */ -#define BUFSIZE_SMALL (MAXPHYS) +/* + * Memory strategy threshold, in pages: if physmem is larger than this, + * use a large buffer. + */ +#define PHYSPAGES_THRESHOLD (32 * 1024) + +/* Maximum buffer size in bytes - do not allow it to grow larger than this. */ +#define BUFSIZE_MAX (2 * 1024 * 1024) + +/* + * Small (default) buffer size in bytes. It's inefficient for this to be + * smaller than MAXPHYS. + */ +#define BUFSIZE_SMALL (MAXPHYS) int main(int argc, char *argv[]) @@ -144,13 +148,12 @@ usage(void) static void scanfiles(char *argv[], int cooked) { - int i = 0; + int fd, i; char *path; FILE *fp; + i = 0; while ((path = argv[i]) != NULL || i == 0) { - int fd; - if (path == NULL || strcmp(path, "-") == 0) { filename = "stdin"; fd = STDIN_FILENO; @@ -257,16 +260,16 @@ raw_cat(int rfd) wfd = fileno(stdout); if (buf == NULL) { if (fstat(wfd, &sbuf)) - err(1, "%s", filename); + err(1, "stdout"); if (S_ISREG(sbuf.st_mode)) { /* If there's plenty of RAM, use a large copy buffer */ if (sysconf(_SC_PHYS_PAGES) > PHYSPAGES_THRESHOLD) - bsize = MIN(BUFSIZE_MAX, MAXPHYS*8); + bsize = MIN(BUFSIZE_MAX, MAXPHYS * 8); else bsize = BUFSIZE_SMALL; } else - bsize = MAX(sbuf.st_blksize, - (blksize_t)sysconf(_SC_PAGESIZE)); + bsize = MAX(sbuf.st_blksize, + (blksize_t)sysconf(_SC_PAGESIZE)); if ((buf = malloc(bsize)) == NULL) err(1, "malloc() failure of IO buffer"); } @@ -327,7 +330,7 @@ udom_open(const char *path, int flags) break; } } - return(fd); + return (fd); } #endif Modified: projects/pf/head/bin/ps/print.c ============================================================================== --- projects/pf/head/bin/ps/print.c Fri Aug 3 14:25:35 2012 (r239010) +++ projects/pf/head/bin/ps/print.c Fri Aug 3 14:49:18 2012 (r239011) @@ -387,12 +387,13 @@ started(KINFO *k, VARENT *ve __unused) size_t buflen = 100; char *buf; + if (!k->ki_valid) + return (NULL); + buf = malloc(buflen); if (buf == NULL) errx(1, "malloc failed"); - if (!k->ki_valid) - return (NULL); if (use_ampm < 0) use_ampm = (*nl_langinfo(T_FMT_AMPM) != '\0'); then = k->ki_p->ki_start.tv_sec; @@ -415,12 +416,13 @@ lstarted(KINFO *k, VARENT *ve __unused) char *buf; size_t buflen = 100; + if (!k->ki_valid) + return (NULL); + buf = malloc(buflen); if (buf == NULL) errx(1, "malloc failed"); - if (!k->ki_valid) - return (NULL); then = k->ki_p->ki_start.tv_sec; (void)strftime(buf, buflen, "%c", localtime(&then)); return (buf); Modified: projects/pf/head/bin/sh/eval.c ============================================================================== --- projects/pf/head/bin/sh/eval.c Fri Aug 3 14:25:35 2012 (r239010) +++ projects/pf/head/bin/sh/eval.c Fri Aug 3 14:49:18 2012 (r239011) @@ -672,6 +672,52 @@ out: result->fd, result->buf, result->nleft, result->jp)); } +static int +mustexpandto(const char *argtext, const char *mask) +{ + for (;;) { + if (*argtext == CTLQUOTEMARK || *argtext == CTLQUOTEEND) { + argtext++; + continue; + } + if (*argtext == CTLESC) + argtext++; + else if (BASESYNTAX[(int)*argtext] == CCTL) + return (0); + if (*argtext != *mask) + return (0); + if (*argtext == '\0') + return (1); + argtext++; + mask++; + } +} + +static int +isdeclarationcmd(struct narg *arg) +{ + int have_command = 0; + + if (arg == NULL) + return (0); + while (mustexpandto(arg->text, "command")) { + have_command = 1; + arg = &arg->next->narg; + if (arg == NULL) + return (0); + /* + * To also allow "command -p" and "command --" as part of + * a declaration command, add code here. + * We do not do this, as ksh does not do it either and it + * is not required by POSIX. + */ + } + return (mustexpandto(arg->text, "export") || + mustexpandto(arg->text, "readonly") || + (mustexpandto(arg->text, "local") && + (have_command || !isfunc("local")))); +} + /* * Check if a builtin can safely be executed in the same process, * even though it should be in a subshell (command substitution). @@ -743,11 +789,12 @@ evalcommand(union node *cmd, int flags, exitstatus = 0; for (argp = cmd->ncmd.args ; argp ; argp = argp->narg.next) { if (varflag && isassignment(argp->narg.text)) { - expandarg(argp, &varlist, EXP_VARTILDE); + expandarg(argp, varflag == 1 ? &varlist : &arglist, + EXP_VARTILDE); continue; - } + } else if (varflag == 1) + varflag = isdeclarationcmd(&argp->narg) ? 2 : 0; expandarg(argp, &arglist, EXP_FULL | EXP_TILDE); - varflag = 0; } *arglist.lastp = NULL; *varlist.lastp = NULL; Modified: projects/pf/head/bin/sh/exec.c ============================================================================== --- projects/pf/head/bin/sh/exec.c Fri Aug 3 14:25:35 2012 (r239010) +++ projects/pf/head/bin/sh/exec.c Fri Aug 3 14:49:18 2012 (r239011) @@ -648,6 +648,19 @@ unsetfunc(const char *name) return (0); } + +/* + * Check if a function by a certain name exists. + */ +int +isfunc(const char *name) +{ + struct tblentry *cmdp; + cmdp = cmdlookup(name, 0); + return (cmdp != NULL && cmdp->cmdtype == CMDFUNCTION); +} + + /* * Shared code for the following builtin commands: * type, command -v, command -V Modified: projects/pf/head/bin/sh/exec.h ============================================================================== --- projects/pf/head/bin/sh/exec.h Fri Aug 3 14:25:35 2012 (r239010) +++ projects/pf/head/bin/sh/exec.h Fri Aug 3 14:49:18 2012 (r239011) @@ -72,5 +72,6 @@ void hashcd(void); void changepath(const char *); void defun(const char *, union node *); int unsetfunc(const char *); +int isfunc(const char *); int typecmd_impl(int, char **, int, const char *); void clearcmdentry(void); Modified: projects/pf/head/bin/sh/jobs.c ============================================================================== --- projects/pf/head/bin/sh/jobs.c Fri Aug 3 14:25:35 2012 (r239010) +++ projects/pf/head/bin/sh/jobs.c Fri Aug 3 14:49:18 2012 (r239011) @@ -84,10 +84,13 @@ static struct job *jobmru; /* most recen static pid_t initialpgrp; /* pgrp of shell on invocation */ #endif int in_waitcmd = 0; /* are we in waitcmd()? */ -int in_dowait = 0; /* are we in dowait()? */ volatile sig_atomic_t breakwaitcmd = 0; /* should wait be terminated? */ static int ttyfd = -1; +/* mode flags for dowait */ +#define DOWAIT_BLOCK 0x1 /* wait until a child exits */ +#define DOWAIT_SIG 0x2 /* if DOWAIT_BLOCK, abort on signals */ + #if JOBS static void restartjob(struct job *); #endif @@ -95,7 +98,6 @@ static void freejob(struct job *); static struct job *getjob(char *); pid_t getjobpgrp(char *); static pid_t dowait(int, struct job *); -static pid_t waitproc(int, int *); static void checkzombies(void); static void cmdtxt(union node *); static void cmdputs(const char *); @@ -520,7 +522,7 @@ waitcmd(int argc, char **argv) break; } } - } while (dowait(1, (struct job *)NULL) != -1); + } while (dowait(DOWAIT_BLOCK | DOWAIT_SIG, (struct job *)NULL) != -1); in_waitcmd--; return 0; @@ -967,7 +969,7 @@ waitforjob(struct job *jp, int *origstat INTOFF; TRACE(("waitforjob(%%%td) called\n", jp - jobtab + 1)); while (jp->state == 0) - if (dowait(1, jp) == -1) + if (dowait(DOWAIT_BLOCK | (Tflag ? DOWAIT_SIG : 0), jp) == -1) dotrap(); #if JOBS if (jp->jobctl) { @@ -1005,14 +1007,20 @@ waitforjob(struct job *jp, int *origstat } +static void +dummy_handler(int sig) +{ +} /* * Wait for a process to terminate. */ static pid_t -dowait(int block, struct job *job) +dowait(int mode, struct job *job) { + struct sigaction sa, osa; + sigset_t mask, omask; pid_t pid; int status; struct procstat *sp; @@ -1022,17 +1030,49 @@ dowait(int block, struct job *job) int stopped; int sig; int coredump; + int wflags; + int restore_sigchld; - in_dowait++; TRACE(("dowait(%d) called\n", block)); + restore_sigchld = 0; + if ((mode & DOWAIT_SIG) != 0) { + sigfillset(&mask); + sigprocmask(SIG_BLOCK, &mask, &omask); + INTOFF; + if (!issigchldtrapped()) { + restore_sigchld = 1; + sa.sa_handler = dummy_handler; + sa.sa_flags = 0; + sigemptyset(&sa.sa_mask); + sigaction(SIGCHLD, &sa, &osa); + } + } do { - pid = waitproc(block, &status); +#if JOBS + if (iflag) + wflags = WUNTRACED | WCONTINUED; + else +#endif + wflags = 0; + if ((mode & (DOWAIT_BLOCK | DOWAIT_SIG)) != DOWAIT_BLOCK) + wflags |= WNOHANG; + pid = wait3(&status, wflags, (struct rusage *)NULL); TRACE(("wait returns %d, status=%d\n", (int)pid, status)); - } while ((pid == -1 && errno == EINTR && breakwaitcmd == 0) || - (pid > 0 && WIFSTOPPED(status) && !iflag)); - in_dowait--; + if (pid == 0 && (mode & DOWAIT_SIG) != 0) { + sigsuspend(&omask); + pid = -1; + if (int_pending()) + break; + } + } while (pid == -1 && errno == EINTR && breakwaitcmd == 0); if (pid == -1 && errno == ECHILD && job != NULL) job->state = JOBDONE; + if ((mode & DOWAIT_SIG) != 0) { + if (restore_sigchld) + sigaction(SIGCHLD, &osa, NULL); + sigprocmask(SIG_SETMASK, &omask, NULL); + INTON; + } if (breakwaitcmd != 0) { breakwaitcmd = 0; if (pid <= 0) @@ -1053,7 +1093,11 @@ dowait(int block, struct job *job) TRACE(("Changing status of proc %d from 0x%x to 0x%x\n", (int)pid, sp->status, status)); - sp->status = status; + if (WIFCONTINUED(status)) { + sp->status = -1; + jp->state = 0; + } else + sp->status = status; thisjob = jp; } if (sp->status == -1) @@ -1111,26 +1155,6 @@ dowait(int block, struct job *job) /* - * Do a wait system call. If job control is compiled in, we accept - * stopped processes. If block is zero, we return a value of zero - * rather than blocking. - */ -static pid_t -waitproc(int block, int *status) -{ - int flags; - -#if JOBS - flags = WUNTRACED; -#else - flags = 0; -#endif - if (block == 0) - flags |= WNOHANG; - return wait3(status, flags, (struct rusage *)NULL); -} - -/* * return 1 if there are stopped jobs, otherwise 0 */ int job_warning = 0; Modified: projects/pf/head/bin/sh/jobs.h ============================================================================== --- projects/pf/head/bin/sh/jobs.h Fri Aug 3 14:25:35 2012 (r239010) +++ projects/pf/head/bin/sh/jobs.h Fri Aug 3 14:49:18 2012 (r239011) @@ -84,7 +84,6 @@ enum { extern int job_warning; /* user was warned about stopped jobs */ extern int in_waitcmd; /* are we in waitcmd()? */ -extern int in_dowait; /* are we in dowait()? */ extern volatile sig_atomic_t breakwaitcmd; /* break wait to process traps? */ void setjobctl(int); Modified: projects/pf/head/bin/sh/sh.1 ============================================================================== --- projects/pf/head/bin/sh/sh.1 Fri Aug 3 14:25:35 2012 (r239010) +++ projects/pf/head/bin/sh/sh.1 Fri Aug 3 14:49:18 2012 (r239011) @@ -32,7 +32,7 @@ .\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95 .\" $FreeBSD$ .\" -.Dd November 5, 2011 +.Dd July 15, 2012 .Dt SH 1 .Os .Sh NAME @@ -1164,6 +1164,20 @@ Assignments are expanded differently fro tilde expansion is also performed after the equals sign and after any colon and usernames are also terminated by colons, and field splitting and pathname expansion are not performed. +.Pp +This special expansion applies not only to assignments that form a simple +command by themselves or precede a command word, +but also to words passed to the +.Ic export , +.Ic local +or +.Ic readonly +built-in commands that have this form. +For this, the builtin's name must be literal +(not the result of an expansion) +and may optionally be preceded by one or more literal instances of +.Ic command +without options. .Ss Positional Parameters A positional parameter is a parameter denoted by a number greater than zero. The shell sets these initially to the values of its command line Modified: projects/pf/head/bin/sh/trap.c ============================================================================== --- projects/pf/head/bin/sh/trap.c Fri Aug 3 14:25:35 2012 (r239010) +++ projects/pf/head/bin/sh/trap.c Fri Aug 3 14:49:18 2012 (r239011) @@ -368,6 +368,14 @@ ignoresig(int signo) } +int +issigchldtrapped(void) +{ + + return (trap[SIGCHLD] != NULL && *trap[SIGCHLD] != '\0'); +} + + /* * Signal handler. */ @@ -416,6 +424,7 @@ dotrap(void) in_dotrap++; for (;;) { + pendingsigs = 0; for (i = 1; i < NSIG; i++) { if (gotsig[i]) { gotsig[i] = 0; @@ -467,7 +476,6 @@ dotrap(void) break; } in_dotrap--; - pendingsigs = 0; } Modified: projects/pf/head/bin/sh/trap.h ============================================================================== --- projects/pf/head/bin/sh/trap.h Fri Aug 3 14:25:35 2012 (r239010) +++ projects/pf/head/bin/sh/trap.h Fri Aug 3 14:49:18 2012 (r239011) @@ -41,6 +41,7 @@ void clear_traps(void); int have_traps(void); void setsignal(int); void ignoresig(int); +int issigchldtrapped(void); void onsig(int); void dotrap(void); void setinteractive(int); Modified: projects/pf/head/bin/stty/extern.h ============================================================================== --- projects/pf/head/bin/stty/extern.h Fri Aug 3 14:25:35 2012 (r239010) +++ projects/pf/head/bin/stty/extern.h Fri Aug 3 14:49:18 2012 (r239011) @@ -40,6 +40,6 @@ int ksearch(char ***, struct info *); int msearch(char ***, struct info *); void optlist(void); void print(struct termios *, struct winsize *, int, enum FMT); -void usage(void); +void usage(void) __dead2; extern struct cchar cchars1[], cchars2[]; Copied: projects/pf/head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh (from r239010, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pf/head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh Fri Aug 3 14:49:18 2012 (r239011, copy of r239010, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh) @@ -0,0 +1,76 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# + +# +# Copyright (c) 2011, Joyent Inc. All rights reserved. +# Use is subject to license terms. +# + +# +# Test to catch that we properly look for libraries dependencies in +# our full library parth +# + +if [ $# != 1 ]; then + echo expected one argument: '<'dtrace-path'>' + exit 2 +fi + +libdira=${TMPDIR:-/tmp}/libdepa.$$ +libdirb=${TMPDIR:-/tmp}/libdepb.$$ +libdirc=${TMPDIR:-/tmp}/libdepc.$$ +dtrace=$1 + +setup_libs() +{ + mkdir $libdira + mkdir $libdirb + mkdir $libdirc + cat > $libdira/liba.$$.d < $libdirb/libb.$$.d < $libdirb/libc.$$.d < $libdirb/libd.$$.d < $libdirc/libe.$$.d < $libdirc/libf.$$.d <vs_state == VDEV_STATE_HEALTHY) { - if (reason == ZPOOL_STATUS_VERSION_OLDER) + if (reason == ZPOOL_STATUS_VERSION_OLDER || + reason == ZPOOL_STATUS_FEAT_DISABLED) { (void) printf(gettext(" action: The pool can be " "imported using its name or numeric identifier, " "though\n\tsome features will not be available " "without an explicit 'zpool upgrade'.\n")); - else if (reason == ZPOOL_STATUS_HOSTID_MISMATCH) + } else if (reason == ZPOOL_STATUS_HOSTID_MISMATCH) { (void) printf(gettext(" action: The pool can be " "imported using its name or numeric " "identifier and\n\tthe '-f' flag.\n")); - else + } else { (void) printf(gettext(" action: The pool can be " "imported using its name or numeric " "identifier.\n")); + } } else if (vs->vs_state == VDEV_STATE_DEGRADED) { (void) printf(gettext(" action: The pool can be imported " "despite missing or damaged devices. The\n\tfault " @@ -4108,12 +4145,13 @@ status_callback(zpool_handle_t *zhp, voi break; case ZPOOL_STATUS_VERSION_OLDER: - (void) printf(gettext("status: The pool is formatted using an " - "older on-disk format. The pool can\n\tstill be used, but " - "some features are unavailable.\n")); + (void) printf(gettext("status: The pool is formatted using a " + "legacy on-disk format. The pool can\n\tstill be used, " + "but some features are unavailable.\n")); (void) printf(gettext("action: Upgrade the pool using 'zpool " "upgrade'. Once this is done, the\n\tpool will no longer " - "be accessible on older software versions.\n")); + "be accessible on software that does not support feature\n" + "\tflags.\n")); break; case ZPOOL_STATUS_VERSION_NEWER: @@ -4125,6 +4163,16 @@ status_callback(zpool_handle_t *zhp, voi "backup.\n")); break; + case ZPOOL_STATUS_FEAT_DISABLED: + (void) printf(gettext("status: Some supported features are not " + "enabled on the pool. The pool can\n\tstill be used, but " + "some features are unavailable.\n")); + (void) printf(gettext("action: Enable all features using " + "'zpool upgrade'. Once this is done,\n\tthe pool may no " + "longer be accessible by software that does not support\n\t" + "the features. See zpool-features(5) for details.\n")); + break; + case ZPOOL_STATUS_UNSUP_FEAT_READ: (void) printf(gettext("status: The pool cannot be accessed on " "this system because it uses the\n\tfollowing feature(s) " @@ -4354,15 +4402,14 @@ zpool_do_status(int argc, char **argv) } typedef struct upgrade_cbdata { - int cb_all; int cb_first; - int cb_newer; char cb_poolname[ZPOOL_MAXNAMELEN]; int cb_argc; uint64_t cb_version; char **cb_argv; } upgrade_cbdata_t; +#ifdef __FreeBSD__ static int is_root_pool(zpool_handle_t *zhp) { @@ -4388,56 +4435,161 @@ is_root_pool(zpool_handle_t *zhp) return (poolname != NULL && strcmp(poolname, zpool_get_name(zhp)) == 0); } +static void +root_pool_upgrade_check(zpool_handle_t *zhp, char *poolname, int size) { + + if (poolname[0] == '\0' && is_root_pool(zhp)) + (void) strlcpy(poolname, zpool_get_name(zhp), size); +} +#endif /* FreeBSD */ + +static int +upgrade_version(zpool_handle_t *zhp, uint64_t version) +{ + int ret; + nvlist_t *config; + uint64_t oldversion; + + config = zpool_get_config(zhp, NULL); + verify(nvlist_lookup_uint64(config, ZPOOL_CONFIG_VERSION, + &oldversion) == 0); + + assert(SPA_VERSION_IS_SUPPORTED(oldversion)); + assert(oldversion < version); + + ret = zpool_upgrade(zhp, version); + if (ret != 0) + return (ret); + + if (version >= SPA_VERSION_FEATURES) { + (void) printf(gettext("Successfully upgraded " + "'%s' from version %llu to feature flags.\n"), + zpool_get_name(zhp), oldversion); + } else { + (void) printf(gettext("Successfully upgraded " + "'%s' from version %llu to version %llu.\n"), + zpool_get_name(zhp), oldversion, version); + } + + return (0); +} + +static int +upgrade_enable_all(zpool_handle_t *zhp, int *countp) +{ + int i, ret, count; + boolean_t firstff = B_TRUE; + nvlist_t *enabled = zpool_get_features(zhp); + + count = 0; + for (i = 0; i < SPA_FEATURES; i++) { + const char *fname = spa_feature_table[i].fi_uname; + const char *fguid = spa_feature_table[i].fi_guid; + if (!nvlist_exists(enabled, fguid)) { + char *propname; + verify(-1 != asprintf(&propname, "feature@%s", fname)); + ret = zpool_set_prop(zhp, propname, + ZFS_FEATURE_ENABLED); + if (ret != 0) { + free(propname); + return (ret); + } + count++; + + if (firstff) { + (void) printf(gettext("Enabled the " + "following features on '%s':\n"), + zpool_get_name(zhp)); + firstff = B_FALSE; + } + (void) printf(gettext(" %s\n"), fname); + free(propname); + } + } + + if (countp != NULL) + *countp = count; + return (0); +} + static int upgrade_cb(zpool_handle_t *zhp, void *arg) { upgrade_cbdata_t *cbp = arg; nvlist_t *config; uint64_t version; - int ret = 0; + boolean_t printnl = B_FALSE; + int ret; config = zpool_get_config(zhp, NULL); verify(nvlist_lookup_uint64(config, ZPOOL_CONFIG_VERSION, &version) == 0); - if (!cbp->cb_newer && SPA_VERSION_IS_SUPPORTED(version) && - version != SPA_VERSION) { - if (!cbp->cb_all) { - if (cbp->cb_first) { - (void) printf(gettext("The following pools are " - "out of date, and can be upgraded. After " - "being\nupgraded, these pools will no " - "longer be accessible by older software " - "versions.\n\n")); - (void) printf(gettext("VER POOL\n")); - (void) printf(gettext("--- ------------\n")); - cbp->cb_first = B_FALSE; - } + assert(SPA_VERSION_IS_SUPPORTED(version)); - (void) printf("%2llu %s\n", (u_longlong_t)version, - zpool_get_name(zhp)); - } else { + if (version < cbp->cb_version) { + cbp->cb_first = B_FALSE; + ret = upgrade_version(zhp, cbp->cb_version); + if (ret != 0) + return (ret); +#ifdef __FreeBSD__ + root_pool_upgrade_check(zhp, cbp->cb_poolname, + sizeof(cbp->cb_poolname)); +#endif /* ___FreeBSD__ */ + printnl = B_TRUE; + +#ifdef illumos + /* + * If they did "zpool upgrade -a", then we could + * be doing ioctls to different pools. We need + * to log this history once to each pool, and bypass + * the normal history logging that happens in main(). + */ + (void) zpool_log_history(g_zfs, history_str); + log_history = B_FALSE; +#endif + } + + if (cbp->cb_version >= SPA_VERSION_FEATURES) { + int count; + ret = upgrade_enable_all(zhp, &count); + if (ret != 0) + return (ret); + + if (count > 0) { cbp->cb_first = B_FALSE; - ret = zpool_upgrade(zhp, cbp->cb_version); - if (!ret) { - (void) printf(gettext("Successfully upgraded " - "'%s'\n\n"), zpool_get_name(zhp)); - if (cbp->cb_poolname[0] == '\0' && - is_root_pool(zhp)) { - (void) strlcpy(cbp->cb_poolname, - zpool_get_name(zhp), - sizeof(cbp->cb_poolname)); - } - } + printnl = B_TRUE; } - } else if (cbp->cb_newer && !SPA_VERSION_IS_SUPPORTED(version)) { - assert(!cbp->cb_all); + } + + if (printnl) { + (void) printf(gettext("\n")); + } + + return (0); +} + +static int +upgrade_list_older_cb(zpool_handle_t *zhp, void *arg) +{ + upgrade_cbdata_t *cbp = arg; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Fri Aug 3 15:38:29 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E0BC9106566B; Fri, 3 Aug 2012 15:38:29 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C66A38FC18; Fri, 3 Aug 2012 15:38:29 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q73FcTvG039474; Fri, 3 Aug 2012 15:38:29 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q73FcThY039459; Fri, 3 Aug 2012 15:38:29 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201208031538.q73FcThY039459@svn.freebsd.org> From: Attilio Rao Date: Fri, 3 Aug 2012 15:38:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r239015 - in projects/fuse: . bin/sh cddl/contrib/opensolaris/cmd/zpool cddl/contrib/opensolaris/lib/libdtrace/common cddl/contrib/opensolaris/lib/libzfs/common cddl/lib/libzfs contrib/... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Aug 2012 15:38:30 -0000 Author: attilio Date: Fri Aug 3 15:38:28 2012 New Revision: 239015 URL: http://svn.freebsd.org/changeset/base/239015 Log: MFC Added: projects/fuse/contrib/dtc/dtdiff - copied unchanged from r239014, head/contrib/dtc/dtdiff projects/fuse/contrib/dtc/fdtdump.c - copied unchanged from r239014, head/contrib/dtc/fdtdump.c projects/fuse/contrib/dtc/fdtget.c - copied unchanged from r239014, head/contrib/dtc/fdtget.c projects/fuse/contrib/dtc/fdtput.c - copied unchanged from r239014, head/contrib/dtc/fdtput.c projects/fuse/contrib/dtc/libfdt/fdt_empty_tree.c - copied unchanged from r239014, head/contrib/dtc/libfdt/fdt_empty_tree.c projects/fuse/contrib/libarchive/libarchive/archive_getdate.c - copied unchanged from r239014, head/contrib/libarchive/libarchive/archive_getdate.c projects/fuse/contrib/libarchive/libarchive/archive_match.c - copied unchanged from r239014, head/contrib/libarchive/libarchive/archive_match.c projects/fuse/contrib/libarchive/libarchive/archive_pathmatch.c - copied unchanged from r239014, head/contrib/libarchive/libarchive/archive_pathmatch.c projects/fuse/contrib/libarchive/libarchive/archive_pathmatch.h - copied unchanged from r239014, head/contrib/libarchive/libarchive/archive_pathmatch.h projects/fuse/contrib/libarchive/libarchive/archive_write_add_filter.c - copied unchanged from r239014, head/contrib/libarchive/libarchive/archive_write_add_filter.c projects/fuse/contrib/libarchive/libarchive/archive_write_disk_acl.c - copied unchanged from r239014, head/contrib/libarchive/libarchive/archive_write_disk_acl.c projects/fuse/contrib/libarchive/libarchive/test/test_acl_freebsd_nfs4.c - copied unchanged from r239014, head/contrib/libarchive/libarchive/test/test_acl_freebsd_nfs4.c projects/fuse/contrib/libarchive/libarchive/test/test_acl_freebsd_posix1e.c - copied unchanged from r239014, head/contrib/libarchive/libarchive/test/test_acl_freebsd_posix1e.c projects/fuse/contrib/libarchive/libarchive/test/test_archive_getdate.c - copied unchanged from r239014, head/contrib/libarchive/libarchive/test/test_archive_getdate.c projects/fuse/contrib/libarchive/libarchive/test/test_archive_match_owner.c - copied unchanged from r239014, head/contrib/libarchive/libarchive/test/test_archive_match_owner.c projects/fuse/contrib/libarchive/libarchive/test/test_archive_match_path.c - copied unchanged from r239014, head/contrib/libarchive/libarchive/test/test_archive_match_path.c projects/fuse/contrib/libarchive/libarchive/test/test_archive_match_time.c - copied unchanged from r239014, head/contrib/libarchive/libarchive/test/test_archive_match_time.c projects/fuse/contrib/libarchive/libarchive/test/test_archive_pathmatch.c - copied unchanged from r239014, head/contrib/libarchive/libarchive/test/test_archive_pathmatch.c projects/fuse/contrib/libarchive/tar/test/test_format_newc.c - copied unchanged from r239014, head/contrib/libarchive/tar/test/test_format_newc.c projects/fuse/contrib/libarchive/tar/test/test_option_nodump.c - copied unchanged from r239014, head/contrib/libarchive/tar/test/test_option_nodump.c projects/fuse/lib/libc/locale/iswalnum_l.3 - copied unchanged from r239014, head/lib/libc/locale/iswalnum_l.3 projects/fuse/lib/msun/ld128/s_expl.c - copied unchanged from r239014, head/lib/msun/ld128/s_expl.c projects/fuse/lib/msun/ld80/s_expl.c - copied unchanged from r239014, head/lib/msun/ld80/s_expl.c projects/fuse/share/man/man4/vale.4 - copied unchanged from r239014, head/share/man/man4/vale.4 projects/fuse/sys/arm/at91/at91_pio_sam9g45.h - copied unchanged from r239014, head/sys/arm/at91/at91_pio_sam9g45.h projects/fuse/sys/arm/at91/at91sam9g45.c - copied unchanged from r239014, head/sys/arm/at91/at91sam9g45.c projects/fuse/sys/arm/at91/at91sam9g45reg.h - copied unchanged from r239014, head/sys/arm/at91/at91sam9g45reg.h projects/fuse/sys/arm/at91/at91sam9x5.c - copied unchanged from r239014, head/sys/arm/at91/at91sam9x5.c projects/fuse/sys/arm/at91/at91sam9x5reg.h - copied unchanged from r239014, head/sys/arm/at91/at91sam9x5reg.h projects/fuse/sys/arm/at91/board_sn9g45.c - copied unchanged from r239014, head/sys/arm/at91/board_sn9g45.c projects/fuse/sys/arm/at91/std.at91sam9g45 - copied unchanged from r239014, head/sys/arm/at91/std.at91sam9g45 projects/fuse/sys/arm/at91/std.sn9g45 - copied unchanged from r239014, head/sys/arm/at91/std.sn9g45 projects/fuse/sys/arm/conf/SN9G45 - copied unchanged from r239014, head/sys/arm/conf/SN9G45 projects/fuse/sys/contrib/libfdt/fdt_empty_tree.c - copied unchanged from r239014, head/sys/contrib/libfdt/fdt_empty_tree.c projects/fuse/sys/dev/ahci/ahciem.c - copied unchanged from r239014, head/sys/dev/ahci/ahciem.c projects/fuse/sys/dev/ath/if_ath_tx_edma.c - copied unchanged from r239014, head/sys/dev/ath/if_ath_tx_edma.c projects/fuse/sys/dev/ath/if_ath_tx_edma.h - copied unchanged from r239014, head/sys/dev/ath/if_ath_tx_edma.h Deleted: projects/fuse/contrib/dtc/Makefile.convert-dtsv0 projects/fuse/contrib/dtc/Makefile.ftdump projects/fuse/contrib/dtc/convert-dtsv0-lexer.l projects/fuse/contrib/dtc/ftdump.c projects/fuse/contrib/libarchive/cpio/test/test_pathmatch.c projects/fuse/contrib/libarchive/libarchive_fe/matching.c projects/fuse/contrib/libarchive/libarchive_fe/matching.h projects/fuse/contrib/libarchive/libarchive_fe/pathmatch.c projects/fuse/contrib/libarchive/libarchive_fe/pathmatch.h projects/fuse/contrib/libarchive/tar/getdate.c projects/fuse/contrib/libarchive/tar/test/test_getdate.c projects/fuse/contrib/libarchive/tar/tree.c projects/fuse/contrib/libarchive/tar/tree.h projects/fuse/sys/arm/at91/at91sam9x25.c projects/fuse/sys/arm/at91/at91sam9x25reg.h Modified: projects/fuse/Makefile.inc1 projects/fuse/UPDATING projects/fuse/bin/sh/jobs.c projects/fuse/bin/sh/trap.c projects/fuse/bin/sh/trap.h projects/fuse/cddl/contrib/opensolaris/cmd/zpool/zpool.8 projects/fuse/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_proc.c projects/fuse/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h projects/fuse/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_status.c projects/fuse/cddl/lib/libzfs/Makefile projects/fuse/contrib/bind9/CHANGES projects/fuse/contrib/bind9/lib/dns/resolver.c projects/fuse/contrib/bind9/lib/dns/zone.c projects/fuse/contrib/bind9/version projects/fuse/contrib/dtc/Documentation/dts-format.txt projects/fuse/contrib/dtc/Documentation/manual.txt projects/fuse/contrib/dtc/Makefile projects/fuse/contrib/dtc/checks.c projects/fuse/contrib/dtc/data.c projects/fuse/contrib/dtc/dtc-lexer.l projects/fuse/contrib/dtc/dtc-parser.y projects/fuse/contrib/dtc/dtc.c projects/fuse/contrib/dtc/dtc.h projects/fuse/contrib/dtc/flattree.c projects/fuse/contrib/dtc/fstree.c projects/fuse/contrib/dtc/libfdt/Makefile.libfdt projects/fuse/contrib/dtc/libfdt/fdt.c projects/fuse/contrib/dtc/libfdt/fdt_ro.c projects/fuse/contrib/dtc/libfdt/fdt_rw.c projects/fuse/contrib/dtc/libfdt/libfdt.h projects/fuse/contrib/dtc/libfdt/libfdt_env.h projects/fuse/contrib/dtc/libfdt/libfdt_internal.h projects/fuse/contrib/dtc/livetree.c projects/fuse/contrib/dtc/srcpos.c projects/fuse/contrib/dtc/srcpos.h projects/fuse/contrib/dtc/treesource.c projects/fuse/contrib/dtc/util.c projects/fuse/contrib/dtc/util.h projects/fuse/contrib/groff/tmac/doc-common projects/fuse/contrib/groff/tmac/doc-syms projects/fuse/contrib/groff/tmac/doc.tmac projects/fuse/contrib/groff/tmac/groff_mdoc.man projects/fuse/contrib/less/NEWS projects/fuse/contrib/less/README projects/fuse/contrib/less/brac.c projects/fuse/contrib/less/ch.c projects/fuse/contrib/less/charset.c projects/fuse/contrib/less/charset.h projects/fuse/contrib/less/cmd.h projects/fuse/contrib/less/cmdbuf.c projects/fuse/contrib/less/command.c projects/fuse/contrib/less/cvt.c projects/fuse/contrib/less/decode.c projects/fuse/contrib/less/defines.ds projects/fuse/contrib/less/defines.o2 projects/fuse/contrib/less/defines.o9 projects/fuse/contrib/less/defines.wn projects/fuse/contrib/less/edit.c projects/fuse/contrib/less/filename.c projects/fuse/contrib/less/forwback.c projects/fuse/contrib/less/funcs.h projects/fuse/contrib/less/help.c projects/fuse/contrib/less/ifile.c projects/fuse/contrib/less/input.c projects/fuse/contrib/less/jump.c projects/fuse/contrib/less/less.h projects/fuse/contrib/less/less.hlp projects/fuse/contrib/less/less.man projects/fuse/contrib/less/less.nro projects/fuse/contrib/less/lessecho.c projects/fuse/contrib/less/lessecho.man projects/fuse/contrib/less/lessecho.nro projects/fuse/contrib/less/lesskey.c projects/fuse/contrib/less/lesskey.h projects/fuse/contrib/less/lesskey.man projects/fuse/contrib/less/lesskey.nro projects/fuse/contrib/less/lglob.h projects/fuse/contrib/less/line.c projects/fuse/contrib/less/linenum.c projects/fuse/contrib/less/lsystem.c projects/fuse/contrib/less/main.c projects/fuse/contrib/less/mark.c projects/fuse/contrib/less/mkhelp.c projects/fuse/contrib/less/optfunc.c projects/fuse/contrib/less/option.c projects/fuse/contrib/less/option.h projects/fuse/contrib/less/opttbl.c projects/fuse/contrib/less/os.c projects/fuse/contrib/less/output.c projects/fuse/contrib/less/pattern.c projects/fuse/contrib/less/pattern.h projects/fuse/contrib/less/pckeys.h projects/fuse/contrib/less/position.c projects/fuse/contrib/less/position.h projects/fuse/contrib/less/prompt.c projects/fuse/contrib/less/screen.c projects/fuse/contrib/less/scrsize.c projects/fuse/contrib/less/search.c projects/fuse/contrib/less/signal.c projects/fuse/contrib/less/tags.c projects/fuse/contrib/less/ttyin.c projects/fuse/contrib/less/version.c projects/fuse/contrib/libarchive/FREEBSD-Xlist (contents, props changed) projects/fuse/contrib/libarchive/FREEBSD-upgrade projects/fuse/contrib/libarchive/NEWS projects/fuse/contrib/libarchive/README projects/fuse/contrib/libarchive/cpio/bsdcpio.1 projects/fuse/contrib/libarchive/cpio/cmdline.c projects/fuse/contrib/libarchive/cpio/cpio.c projects/fuse/contrib/libarchive/cpio/cpio.h projects/fuse/contrib/libarchive/cpio/test/main.c projects/fuse/contrib/libarchive/cpio/test/test.h projects/fuse/contrib/libarchive/libarchive/archive.h projects/fuse/contrib/libarchive/libarchive/archive_acl.c projects/fuse/contrib/libarchive/libarchive/archive_check_magic.c projects/fuse/contrib/libarchive/libarchive/archive_endian.h projects/fuse/contrib/libarchive/libarchive/archive_entry.3 projects/fuse/contrib/libarchive/libarchive/archive_entry.c projects/fuse/contrib/libarchive/libarchive/archive_entry.h projects/fuse/contrib/libarchive/libarchive/archive_entry_acl.3 projects/fuse/contrib/libarchive/libarchive/archive_entry_link_resolver.c projects/fuse/contrib/libarchive/libarchive/archive_entry_linkify.3 projects/fuse/contrib/libarchive/libarchive/archive_entry_paths.3 projects/fuse/contrib/libarchive/libarchive/archive_entry_perms.3 projects/fuse/contrib/libarchive/libarchive/archive_entry_stat.3 projects/fuse/contrib/libarchive/libarchive/archive_entry_stat.c projects/fuse/contrib/libarchive/libarchive/archive_entry_time.3 projects/fuse/contrib/libarchive/libarchive/archive_ppmd7.c projects/fuse/contrib/libarchive/libarchive/archive_private.h projects/fuse/contrib/libarchive/libarchive/archive_read.3 projects/fuse/contrib/libarchive/libarchive/archive_read.c projects/fuse/contrib/libarchive/libarchive/archive_read_data.3 projects/fuse/contrib/libarchive/libarchive/archive_read_disk.3 projects/fuse/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c projects/fuse/contrib/libarchive/libarchive/archive_read_disk_posix.c projects/fuse/contrib/libarchive/libarchive/archive_read_disk_private.h projects/fuse/contrib/libarchive/libarchive/archive_read_extract.3 projects/fuse/contrib/libarchive/libarchive/archive_read_filter.3 projects/fuse/contrib/libarchive/libarchive/archive_read_format.3 projects/fuse/contrib/libarchive/libarchive/archive_read_free.3 projects/fuse/contrib/libarchive/libarchive/archive_read_header.3 projects/fuse/contrib/libarchive/libarchive/archive_read_new.3 projects/fuse/contrib/libarchive/libarchive/archive_read_open.3 projects/fuse/contrib/libarchive/libarchive/archive_read_open_fd.c projects/fuse/contrib/libarchive/libarchive/archive_read_open_filename.c projects/fuse/contrib/libarchive/libarchive/archive_read_private.h projects/fuse/contrib/libarchive/libarchive/archive_read_set_options.3 projects/fuse/contrib/libarchive/libarchive/archive_read_support_filter_rpm.c projects/fuse/contrib/libarchive/libarchive/archive_read_support_format_7zip.c projects/fuse/contrib/libarchive/libarchive/archive_read_support_format_cab.c projects/fuse/contrib/libarchive/libarchive/archive_read_support_format_cpio.c projects/fuse/contrib/libarchive/libarchive/archive_read_support_format_iso9660.c projects/fuse/contrib/libarchive/libarchive/archive_read_support_format_lha.c projects/fuse/contrib/libarchive/libarchive/archive_read_support_format_mtree.c projects/fuse/contrib/libarchive/libarchive/archive_read_support_format_rar.c projects/fuse/contrib/libarchive/libarchive/archive_read_support_format_tar.c projects/fuse/contrib/libarchive/libarchive/archive_read_support_format_xar.c projects/fuse/contrib/libarchive/libarchive/archive_read_support_format_zip.c projects/fuse/contrib/libarchive/libarchive/archive_string.c projects/fuse/contrib/libarchive/libarchive/archive_string.h projects/fuse/contrib/libarchive/libarchive/archive_string_composition.h projects/fuse/contrib/libarchive/libarchive/archive_string_sprintf.c projects/fuse/contrib/libarchive/libarchive/archive_util.3 projects/fuse/contrib/libarchive/libarchive/archive_util.c projects/fuse/contrib/libarchive/libarchive/archive_write.3 projects/fuse/contrib/libarchive/libarchive/archive_write.c projects/fuse/contrib/libarchive/libarchive/archive_write_add_filter_bzip2.c projects/fuse/contrib/libarchive/libarchive/archive_write_add_filter_compress.c projects/fuse/contrib/libarchive/libarchive/archive_write_add_filter_gzip.c projects/fuse/contrib/libarchive/libarchive/archive_write_add_filter_program.c projects/fuse/contrib/libarchive/libarchive/archive_write_add_filter_xz.c projects/fuse/contrib/libarchive/libarchive/archive_write_blocksize.3 projects/fuse/contrib/libarchive/libarchive/archive_write_data.3 projects/fuse/contrib/libarchive/libarchive/archive_write_disk.3 projects/fuse/contrib/libarchive/libarchive/archive_write_disk_posix.c projects/fuse/contrib/libarchive/libarchive/archive_write_disk_private.h projects/fuse/contrib/libarchive/libarchive/archive_write_disk_set_standard_lookup.c projects/fuse/contrib/libarchive/libarchive/archive_write_filter.3 projects/fuse/contrib/libarchive/libarchive/archive_write_finish_entry.3 projects/fuse/contrib/libarchive/libarchive/archive_write_format.3 projects/fuse/contrib/libarchive/libarchive/archive_write_free.3 projects/fuse/contrib/libarchive/libarchive/archive_write_header.3 projects/fuse/contrib/libarchive/libarchive/archive_write_new.3 projects/fuse/contrib/libarchive/libarchive/archive_write_open.3 projects/fuse/contrib/libarchive/libarchive/archive_write_open_filename.c projects/fuse/contrib/libarchive/libarchive/archive_write_private.h projects/fuse/contrib/libarchive/libarchive/archive_write_set_format_7zip.c projects/fuse/contrib/libarchive/libarchive/archive_write_set_format_ar.c projects/fuse/contrib/libarchive/libarchive/archive_write_set_format_cpio.c projects/fuse/contrib/libarchive/libarchive/archive_write_set_format_cpio_newc.c projects/fuse/contrib/libarchive/libarchive/archive_write_set_format_gnutar.c projects/fuse/contrib/libarchive/libarchive/archive_write_set_format_iso9660.c projects/fuse/contrib/libarchive/libarchive/archive_write_set_format_mtree.c projects/fuse/contrib/libarchive/libarchive/archive_write_set_format_pax.c projects/fuse/contrib/libarchive/libarchive/archive_write_set_format_ustar.c projects/fuse/contrib/libarchive/libarchive/archive_write_set_format_xar.c projects/fuse/contrib/libarchive/libarchive/archive_write_set_format_zip.c projects/fuse/contrib/libarchive/libarchive/archive_write_set_options.3 projects/fuse/contrib/libarchive/libarchive/cpio.5 projects/fuse/contrib/libarchive/libarchive/libarchive-formats.5 projects/fuse/contrib/libarchive/libarchive/libarchive.3 projects/fuse/contrib/libarchive/libarchive/libarchive_changes.3 projects/fuse/contrib/libarchive/libarchive/libarchive_internals.3 projects/fuse/contrib/libarchive/libarchive/tar.5 projects/fuse/contrib/libarchive/libarchive/test/main.c projects/fuse/contrib/libarchive/libarchive/test/read_open_memory.c projects/fuse/contrib/libarchive/libarchive/test/test.h projects/fuse/contrib/libarchive/libarchive/test/test_archive_string_conversion.c projects/fuse/contrib/libarchive/libarchive/test/test_compat_zip.c projects/fuse/contrib/libarchive/libarchive/test/test_read_disk_directory_traversals.c projects/fuse/contrib/libarchive/libarchive/test/test_read_format_7zip.c projects/fuse/contrib/libarchive/libarchive/test/test_read_format_cab.c projects/fuse/contrib/libarchive/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c projects/fuse/contrib/libarchive/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c projects/fuse/contrib/libarchive/libarchive/test/test_read_format_rar.c projects/fuse/contrib/libarchive/libarchive/test/test_read_format_rar_unicode.rar.uu projects/fuse/contrib/libarchive/libarchive/test/test_read_format_tar_filename.c projects/fuse/contrib/libarchive/libarchive/test/test_read_pax_truncated.c projects/fuse/contrib/libarchive/libarchive/test/test_read_position.c projects/fuse/contrib/libarchive/libarchive/test/test_sparse_basic.c projects/fuse/contrib/libarchive/libarchive/test/test_write_format_zip.c projects/fuse/contrib/libarchive/libarchive_fe/err.c projects/fuse/contrib/libarchive/libarchive_fe/err.h projects/fuse/contrib/libarchive/tar/bsdtar.1 projects/fuse/contrib/libarchive/tar/bsdtar.c projects/fuse/contrib/libarchive/tar/bsdtar.h projects/fuse/contrib/libarchive/tar/read.c projects/fuse/contrib/libarchive/tar/test/main.c projects/fuse/contrib/libarchive/tar/test/test.h projects/fuse/contrib/libarchive/tar/test/test_basic.c projects/fuse/contrib/libarchive/tar/write.c projects/fuse/contrib/llvm/tools/clang/lib/Driver/Tools.cpp projects/fuse/games/fortune/datfiles/fortunes projects/fuse/gnu/usr.bin/groff/tmac/mdoc.local projects/fuse/lib/libarchive/Makefile projects/fuse/lib/libarchive/config_freebsd.h projects/fuse/lib/libarchive/test/Makefile projects/fuse/lib/libc/gen/fts.c projects/fuse/lib/libc/locale/Makefile.inc projects/fuse/lib/libc/locale/isgraph.3 projects/fuse/lib/libc/locale/islower.3 projects/fuse/lib/libc/locale/ispunct.3 projects/fuse/lib/libc/locale/isspace.3 projects/fuse/lib/libc/locale/nl_langinfo.3 projects/fuse/lib/libc/stdlib/at_quick_exit.3 projects/fuse/lib/libc/stdlib/quick_exit.3 projects/fuse/lib/libc/string/strerror.3 projects/fuse/lib/libc/sys/fcntl.2 projects/fuse/lib/libedit/el.c projects/fuse/lib/libedit/histedit.h projects/fuse/lib/libedit/term.c projects/fuse/lib/libelf/Makefile projects/fuse/lib/msun/Makefile projects/fuse/lib/msun/Symbol.map projects/fuse/lib/msun/man/exp.3 projects/fuse/lib/msun/src/e_exp.c projects/fuse/lib/msun/src/math.h projects/fuse/lib/msun/src/math_private.h projects/fuse/lib/msun/src/s_cbrtl.c projects/fuse/rescue/rescue/Makefile projects/fuse/sbin/fsck_ffs/suj.c projects/fuse/sbin/geom/class/multipath/geom_multipath.c projects/fuse/sbin/geom/class/multipath/gmultipath.8 projects/fuse/sbin/geom/class/sched/gsched.8 projects/fuse/sbin/ipfw/dummynet.c projects/fuse/sbin/ipfw/ipfw2.c projects/fuse/sbin/ipfw/nat.c projects/fuse/sbin/md5/Makefile projects/fuse/sbin/md5/md5.1 projects/fuse/sbin/md5/md5.c projects/fuse/sbin/shutdown/shutdown.c projects/fuse/share/man/man4/Makefile projects/fuse/share/man/man4/ahci.4 projects/fuse/share/man/man4/netmap.4 projects/fuse/share/man/man4/ugen.4 projects/fuse/share/man/man4/uplcom.4 projects/fuse/share/man/man4/uslcom.4 projects/fuse/share/man/man5/rc.conf.5 projects/fuse/share/misc/bsd-family-tree projects/fuse/share/misc/committers-ports.dot projects/fuse/sys/amd64/amd64/fpu.c projects/fuse/sys/amd64/amd64/pmap.c projects/fuse/sys/amd64/include/cpufunc.h projects/fuse/sys/amd64/include/pcpu.h projects/fuse/sys/arm/at91/at91_machdep.c projects/fuse/sys/arm/at91/at91_pmc.c projects/fuse/sys/arm/at91/at91_pmcreg.h projects/fuse/sys/arm/at91/at91_spi.c projects/fuse/sys/arm/at91/board_sam9260ek.c projects/fuse/sys/arm/at91/files.at91 projects/fuse/sys/arm/at91/if_ate.c projects/fuse/sys/arm/at91/std.atmel projects/fuse/sys/arm/at91/std.sam9x25ek projects/fuse/sys/arm/at91/uart_bus_at91usart.c projects/fuse/sys/arm/conf/ATMEL projects/fuse/sys/arm/conf/ETHERNUT5 projects/fuse/sys/arm/conf/ETHERNUT5.hints projects/fuse/sys/arm/conf/HL201 projects/fuse/sys/arm/conf/KB920X projects/fuse/sys/arm/conf/QILA9G20 projects/fuse/sys/arm/conf/SAM9260EK projects/fuse/sys/arm/conf/SAM9260EK.hints projects/fuse/sys/arm/conf/SAM9G20EK projects/fuse/sys/arm/conf/SAM9X25EK projects/fuse/sys/arm/mv/common.c projects/fuse/sys/arm/mv/gpio.c projects/fuse/sys/arm/mv/ic.c projects/fuse/sys/arm/mv/kirkwood/kirkwood.c projects/fuse/sys/arm/mv/mv_sata.c projects/fuse/sys/arm/mv/mvreg.h projects/fuse/sys/boot/ficl/Makefile projects/fuse/sys/boot/sparc64/loader/main.c projects/fuse/sys/boot/zfs/Makefile projects/fuse/sys/cam/ata/ata_all.h projects/fuse/sys/cam/ata/ata_xpt.c projects/fuse/sys/cam/cam_ccb.h projects/fuse/sys/cam/cam_periph.c projects/fuse/sys/cam/cam_xpt.c projects/fuse/sys/cam/ctl/scsi_ctl.c projects/fuse/sys/cam/scsi/scsi_cd.c projects/fuse/sys/cam/scsi/scsi_da.c projects/fuse/sys/cam/scsi/scsi_enc.c projects/fuse/sys/cam/scsi/scsi_enc_safte.c projects/fuse/sys/cam/scsi/scsi_enc_ses.c projects/fuse/sys/cam/scsi/scsi_ses.h projects/fuse/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c projects/fuse/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfeature.h projects/fuse/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfeature.c projects/fuse/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h projects/fuse/sys/conf/NOTES projects/fuse/sys/conf/files projects/fuse/sys/contrib/libfdt/fdt.c projects/fuse/sys/contrib/libfdt/fdt_ro.c projects/fuse/sys/contrib/libfdt/fdt_rw.c projects/fuse/sys/contrib/libfdt/libfdt.h projects/fuse/sys/contrib/libfdt/libfdt_env.h projects/fuse/sys/contrib/libfdt/libfdt_internal.h projects/fuse/sys/dev/acpica/acpi_cpu.c projects/fuse/sys/dev/ahci/ahci.c projects/fuse/sys/dev/ahci/ahci.h projects/fuse/sys/dev/ath/ath_hal/ah.c projects/fuse/sys/dev/ath/ath_hal/ah.h projects/fuse/sys/dev/ath/ath_hal/ah_desc.h projects/fuse/sys/dev/ath/ath_hal/ah_internal.h projects/fuse/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c projects/fuse/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c projects/fuse/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c projects/fuse/sys/dev/ath/ath_hal/ar5416/ar5416.h projects/fuse/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c projects/fuse/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c projects/fuse/sys/dev/ath/ath_rate/sample/sample.c projects/fuse/sys/dev/ath/if_ath.c projects/fuse/sys/dev/ath/if_ath_ahb.c projects/fuse/sys/dev/ath/if_ath_misc.h projects/fuse/sys/dev/ath/if_ath_pci.c projects/fuse/sys/dev/ath/if_ath_rx.c projects/fuse/sys/dev/ath/if_ath_rx_edma.c projects/fuse/sys/dev/ath/if_ath_tx.c projects/fuse/sys/dev/ath/if_ath_tx.h projects/fuse/sys/dev/ath/if_ath_tx_ht.c projects/fuse/sys/dev/ath/if_athioctl.h projects/fuse/sys/dev/ath/if_athvar.h projects/fuse/sys/dev/cesa/cesa.c projects/fuse/sys/dev/e1000/if_igb.c projects/fuse/sys/dev/e1000/if_lem.c projects/fuse/sys/dev/isp/isp.c projects/fuse/sys/dev/isp/isp_freebsd.c projects/fuse/sys/dev/isp/isp_freebsd.h projects/fuse/sys/dev/isp/isp_library.c projects/fuse/sys/dev/isp/isp_library.h projects/fuse/sys/dev/isp/isp_pci.c projects/fuse/sys/dev/isp/isp_sbus.c projects/fuse/sys/dev/isp/isp_stds.h projects/fuse/sys/dev/isp/isp_target.c projects/fuse/sys/dev/isp/isp_target.h projects/fuse/sys/dev/isp/ispmbox.h projects/fuse/sys/dev/isp/ispvar.h projects/fuse/sys/dev/ispfw/asm_2300.h projects/fuse/sys/dev/md/md.c projects/fuse/sys/dev/mge/if_mge.c projects/fuse/sys/dev/mii/e1000phy.c projects/fuse/sys/dev/mlx/mlxvar.h projects/fuse/sys/dev/mps/mps.c projects/fuse/sys/dev/mps/mps_sas.c projects/fuse/sys/dev/mps/mps_table.c projects/fuse/sys/dev/mps/mps_user.c projects/fuse/sys/dev/mps/mpsvar.h projects/fuse/sys/dev/mvs/mvs_soc.c projects/fuse/sys/dev/netmap/if_em_netmap.h projects/fuse/sys/dev/netmap/if_igb_netmap.h projects/fuse/sys/dev/netmap/ixgbe_netmap.h projects/fuse/sys/dev/netmap/netmap.c projects/fuse/sys/dev/netmap/netmap_kern.h projects/fuse/sys/dev/netmap/netmap_mem2.c projects/fuse/sys/dev/pccbb/pccbb_pci.c projects/fuse/sys/dev/puc/puc_cfg.h projects/fuse/sys/dev/puc/pucdata.c projects/fuse/sys/dev/sdhci/sdhci.c projects/fuse/sys/dev/spibus/spi.h projects/fuse/sys/dev/spibus/spibus.c projects/fuse/sys/dev/usb/controller/at91dci_atmelarm.c projects/fuse/sys/dev/usb/controller/ohci_atmelarm.c projects/fuse/sys/dev/usb/quirk/usb_quirk.c projects/fuse/sys/dev/usb/serial/u3g.c projects/fuse/sys/dev/usb/serial/uplcom.c projects/fuse/sys/dev/usb/serial/uslcom.c projects/fuse/sys/dev/usb/usbdevs projects/fuse/sys/dev/wtap/if_wtap.c projects/fuse/sys/fs/cd9660/cd9660_vfsops.c projects/fuse/sys/fs/ext2fs/ext2_vfsops.c projects/fuse/sys/fs/fifofs/fifo_vnops.c projects/fuse/sys/fs/msdosfs/msdosfs_lookup.c projects/fuse/sys/fs/portalfs/portal_vnops.c projects/fuse/sys/fs/udf/udf_vfsops.c projects/fuse/sys/geom/gate/g_gate.c projects/fuse/sys/geom/geom.h projects/fuse/sys/geom/geom_dev.c projects/fuse/sys/geom/geom_disk.c projects/fuse/sys/geom/geom_disk.h projects/fuse/sys/geom/geom_event.c projects/fuse/sys/geom/geom_io.c projects/fuse/sys/geom/geom_slice.c projects/fuse/sys/geom/geom_subr.c projects/fuse/sys/geom/multipath/g_multipath.c projects/fuse/sys/geom/part/g_part.c projects/fuse/sys/gnu/fs/reiserfs/reiserfs_vfsops.c projects/fuse/sys/i386/i386/machdep.c projects/fuse/sys/i386/i386/pmap.c projects/fuse/sys/i386/i386/trap.c projects/fuse/sys/i386/i386/vm86.c projects/fuse/sys/i386/i386/vm_machdep.c projects/fuse/sys/i386/include/cpufunc.h projects/fuse/sys/i386/include/pcpu.h projects/fuse/sys/i386/isa/npx.c projects/fuse/sys/i386/linux/linux_proto.h projects/fuse/sys/i386/linux/linux_syscall.h projects/fuse/sys/i386/linux/linux_syscalls.c projects/fuse/sys/i386/linux/linux_sysent.c projects/fuse/sys/i386/linux/linux_systrace_args.c projects/fuse/sys/i386/linux/syscalls.master projects/fuse/sys/kern/kern_clocksource.c projects/fuse/sys/kern/kern_descrip.c projects/fuse/sys/kern/kern_ktr.c projects/fuse/sys/kern/sys_pipe.c projects/fuse/sys/kern/vfs_syscalls.c projects/fuse/sys/kern/vfs_vnops.c projects/fuse/sys/mips/mips/pmap.c projects/fuse/sys/modules/ahci/Makefile projects/fuse/sys/modules/ath/Makefile projects/fuse/sys/modules/cam/Makefile projects/fuse/sys/net/flowtable.c projects/fuse/sys/net/if_llatbl.c projects/fuse/sys/net/if_llatbl.h projects/fuse/sys/net/if_loop.c projects/fuse/sys/net/if_var.h projects/fuse/sys/net80211/ieee80211_hwmp.c projects/fuse/sys/netgraph/ng_ether.c projects/fuse/sys/netgraph/ng_pptpgre.c projects/fuse/sys/netinet/if_ether.c projects/fuse/sys/netinet/in.c projects/fuse/sys/netinet/in_cksum.c projects/fuse/sys/netinet/ip_carp.c projects/fuse/sys/netinet/ipfw/ip_dummynet.c projects/fuse/sys/netinet/ipfw/ip_fw2.c projects/fuse/sys/netinet/ipfw/ip_fw_dynamic.c projects/fuse/sys/netinet/ipfw/ip_fw_log.c projects/fuse/sys/netinet/sctp_uio.h projects/fuse/sys/netinet/tcp_input.c projects/fuse/sys/netinet6/in6.c projects/fuse/sys/netinet6/ip6_ipsec.c projects/fuse/sys/netinet6/ip6_output.c projects/fuse/sys/netipsec/ipsec_output.c projects/fuse/sys/powerpc/powerpc/busdma_machdep.c projects/fuse/sys/sys/fcntl.h projects/fuse/sys/sys/pipe.h projects/fuse/sys/sys/refcount.h projects/fuse/sys/sys/stat.h projects/fuse/sys/ufs/ffs/ffs_snapshot.c projects/fuse/sys/ufs/ffs/ffs_vfsops.c projects/fuse/sys/vm/vm_page.c projects/fuse/sys/vm/vm_page.h projects/fuse/sys/vm/vm_pageout.c projects/fuse/sys/x86/x86/busdma_machdep.c projects/fuse/sys/x86/x86/local_apic.c projects/fuse/sys/x86/x86/tsc.c projects/fuse/tools/build/mk/OptionalObsoleteFiles.inc projects/fuse/tools/tools/ath/athratestats/main.c projects/fuse/tools/tools/sysbuild/sysbuild.sh projects/fuse/usr.bin/calendar/calendars/calendar.freebsd projects/fuse/usr.bin/cpio/Makefile projects/fuse/usr.bin/cpio/test/Makefile projects/fuse/usr.bin/du/du.c projects/fuse/usr.bin/find/extern.h projects/fuse/usr.bin/find/find.1 projects/fuse/usr.bin/find/find.c projects/fuse/usr.bin/find/function.c projects/fuse/usr.bin/find/main.c projects/fuse/usr.bin/find/option.c projects/fuse/usr.bin/nfsstat/nfsstat.c projects/fuse/usr.bin/procstat/procstat_vm.c projects/fuse/usr.bin/script/script.1 projects/fuse/usr.bin/script/script.c projects/fuse/usr.bin/tar/Makefile projects/fuse/usr.bin/tar/test/Makefile Directory Properties: projects/fuse/ (props changed) projects/fuse/cddl/contrib/opensolaris/ (props changed) projects/fuse/cddl/contrib/opensolaris/lib/libzfs/ (props changed) projects/fuse/contrib/bind9/ (props changed) projects/fuse/contrib/dtc/ (props changed) projects/fuse/contrib/groff/ (props changed) projects/fuse/contrib/less/ (props changed) projects/fuse/contrib/libarchive/ (props changed) projects/fuse/contrib/libarchive/cpio/ (props changed) projects/fuse/contrib/libarchive/libarchive/ (props changed) projects/fuse/contrib/libarchive/libarchive_fe/ (props changed) projects/fuse/contrib/libarchive/tar/ (props changed) projects/fuse/contrib/llvm/ (props changed) projects/fuse/contrib/llvm/tools/clang/ (props changed) projects/fuse/lib/libc/ (props changed) projects/fuse/sbin/ (props changed) projects/fuse/sbin/ipfw/ (props changed) projects/fuse/share/man/man4/ (props changed) projects/fuse/sys/ (props changed) projects/fuse/sys/boot/ (props changed) projects/fuse/sys/cddl/contrib/opensolaris/ (props changed) projects/fuse/sys/conf/ (props changed) projects/fuse/sys/contrib/libfdt/ (props changed) projects/fuse/usr.bin/calendar/ (props changed) projects/fuse/usr.bin/procstat/ (props changed) Modified: projects/fuse/Makefile.inc1 ============================================================================== --- projects/fuse/Makefile.inc1 Fri Aug 3 15:29:19 2012 (r239014) +++ projects/fuse/Makefile.inc1 Fri Aug 3 15:38:28 2012 (r239015) @@ -1260,7 +1260,7 @@ _prebuild_libs= ${_kerberos5_lib_libasn1 lib/ncurses/ncurses lib/ncurses/ncursesw \ lib/libopie lib/libpam ${_lib_libthr} \ lib/libradius lib/libsbuf lib/libtacplus \ - ${_cddl_lib_libumem} \ + ${_cddl_lib_libumem} ${_cddl_lib_libnvpair} \ lib/libutil ${_lib_libypclnt} lib/libz lib/msun \ ${_secure_lib_libcrypto} ${_secure_lib_libssh} \ ${_secure_lib_libssl} @@ -1284,6 +1284,7 @@ lib/libopie__L lib/libtacplus__L: lib/li .if ${MK_CDDL} != "no" _cddl_lib_libumem= cddl/lib/libumem +_cddl_lib_libnvpair= cddl/lib/libnvpair _cddl_lib= cddl/lib .endif Modified: projects/fuse/UPDATING ============================================================================== --- projects/fuse/UPDATING Fri Aug 3 15:29:19 2012 (r239014) +++ projects/fuse/UPDATING Fri Aug 3 15:38:28 2012 (r239015) @@ -24,6 +24,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20120727: + The sparc64 ZFS loader has been changed to no longer try to auto- + detect ZFS providers based on diskN aliases but now requires these + to be explicitly listed in the OFW boot-device environment variable. + 20120712: The OpenSSL has been upgraded to 1.0.1c. Any binaries requiring libcrypto.so.6 or libssl.so.6 must be recompiled. Also, there are Modified: projects/fuse/bin/sh/jobs.c ============================================================================== --- projects/fuse/bin/sh/jobs.c Fri Aug 3 15:29:19 2012 (r239014) +++ projects/fuse/bin/sh/jobs.c Fri Aug 3 15:38:28 2012 (r239015) @@ -87,6 +87,10 @@ int in_waitcmd = 0; /* are we in waitcm volatile sig_atomic_t breakwaitcmd = 0; /* should wait be terminated? */ static int ttyfd = -1; +/* mode flags for dowait */ +#define DOWAIT_BLOCK 0x1 /* wait until a child exits */ +#define DOWAIT_SIG 0x2 /* if DOWAIT_BLOCK, abort on signals */ + #if JOBS static void restartjob(struct job *); #endif @@ -94,7 +98,6 @@ static void freejob(struct job *); static struct job *getjob(char *); pid_t getjobpgrp(char *); static pid_t dowait(int, struct job *); -static pid_t waitproc(int, int *); static void checkzombies(void); static void cmdtxt(union node *); static void cmdputs(const char *); @@ -519,7 +522,7 @@ waitcmd(int argc, char **argv) break; } } - } while (dowait(1, (struct job *)NULL) != -1); + } while (dowait(DOWAIT_BLOCK | DOWAIT_SIG, (struct job *)NULL) != -1); in_waitcmd--; return 0; @@ -966,7 +969,7 @@ waitforjob(struct job *jp, int *origstat INTOFF; TRACE(("waitforjob(%%%td) called\n", jp - jobtab + 1)); while (jp->state == 0) - if (dowait(1, jp) == -1) + if (dowait(DOWAIT_BLOCK | (Tflag ? DOWAIT_SIG : 0), jp) == -1) dotrap(); #if JOBS if (jp->jobctl) { @@ -1004,14 +1007,20 @@ waitforjob(struct job *jp, int *origstat } +static void +dummy_handler(int sig) +{ +} /* * Wait for a process to terminate. */ static pid_t -dowait(int block, struct job *job) +dowait(int mode, struct job *job) { + struct sigaction sa, osa; + sigset_t mask, omask; pid_t pid; int status; struct procstat *sp; @@ -1021,15 +1030,49 @@ dowait(int block, struct job *job) int stopped; int sig; int coredump; + int wflags; + int restore_sigchld; TRACE(("dowait(%d) called\n", block)); + restore_sigchld = 0; + if ((mode & DOWAIT_SIG) != 0) { + sigfillset(&mask); + sigprocmask(SIG_BLOCK, &mask, &omask); + INTOFF; + if (!issigchldtrapped()) { + restore_sigchld = 1; + sa.sa_handler = dummy_handler; + sa.sa_flags = 0; + sigemptyset(&sa.sa_mask); + sigaction(SIGCHLD, &sa, &osa); + } + } do { - pid = waitproc(block, &status); +#if JOBS + if (iflag) + wflags = WUNTRACED | WCONTINUED; + else +#endif + wflags = 0; + if ((mode & (DOWAIT_BLOCK | DOWAIT_SIG)) != DOWAIT_BLOCK) + wflags |= WNOHANG; + pid = wait3(&status, wflags, (struct rusage *)NULL); TRACE(("wait returns %d, status=%d\n", (int)pid, status)); - } while ((pid == -1 && errno == EINTR && breakwaitcmd == 0) || - (pid > 0 && WIFSTOPPED(status) && !iflag)); + if (pid == 0 && (mode & DOWAIT_SIG) != 0) { + sigsuspend(&omask); + pid = -1; + if (int_pending()) + break; + } + } while (pid == -1 && errno == EINTR && breakwaitcmd == 0); if (pid == -1 && errno == ECHILD && job != NULL) job->state = JOBDONE; + if ((mode & DOWAIT_SIG) != 0) { + if (restore_sigchld) + sigaction(SIGCHLD, &osa, NULL); + sigprocmask(SIG_SETMASK, &omask, NULL); + INTON; + } if (breakwaitcmd != 0) { breakwaitcmd = 0; if (pid <= 0) @@ -1050,7 +1093,11 @@ dowait(int block, struct job *job) TRACE(("Changing status of proc %d from 0x%x to 0x%x\n", (int)pid, sp->status, status)); - sp->status = status; + if (WIFCONTINUED(status)) { + sp->status = -1; + jp->state = 0; + } else + sp->status = status; thisjob = jp; } if (sp->status == -1) @@ -1108,26 +1155,6 @@ dowait(int block, struct job *job) /* - * Do a wait system call. If job control is compiled in, we accept - * stopped processes. If block is zero, we return a value of zero - * rather than blocking. - */ -static pid_t -waitproc(int block, int *status) -{ - int flags; - -#if JOBS - flags = WUNTRACED; -#else - flags = 0; -#endif - if (block == 0) - flags |= WNOHANG; - return wait3(status, flags, (struct rusage *)NULL); -} - -/* * return 1 if there are stopped jobs, otherwise 0 */ int job_warning = 0; Modified: projects/fuse/bin/sh/trap.c ============================================================================== --- projects/fuse/bin/sh/trap.c Fri Aug 3 15:29:19 2012 (r239014) +++ projects/fuse/bin/sh/trap.c Fri Aug 3 15:38:28 2012 (r239015) @@ -368,6 +368,14 @@ ignoresig(int signo) } +int +issigchldtrapped(void) +{ + + return (trap[SIGCHLD] != NULL && *trap[SIGCHLD] != '\0'); +} + + /* * Signal handler. */ Modified: projects/fuse/bin/sh/trap.h ============================================================================== --- projects/fuse/bin/sh/trap.h Fri Aug 3 15:29:19 2012 (r239014) +++ projects/fuse/bin/sh/trap.h Fri Aug 3 15:38:28 2012 (r239015) @@ -41,6 +41,7 @@ void clear_traps(void); int have_traps(void); void setsignal(int); void ignoresig(int); +int issigchldtrapped(void); void onsig(int); void dotrap(void); void setinteractive(int); Modified: projects/fuse/cddl/contrib/opensolaris/cmd/zpool/zpool.8 ============================================================================== --- projects/fuse/cddl/contrib/opensolaris/cmd/zpool/zpool.8 Fri Aug 3 15:29:19 2012 (r239014) +++ projects/fuse/cddl/contrib/opensolaris/cmd/zpool/zpool.8 Fri Aug 3 15:38:28 2012 (r239015) @@ -1636,21 +1636,22 @@ for unixtime .Op Fl v .Xc .Pp -Displays all pools formatted using a different +Displays pools which do not have all supported features enabled and pools +formatted using a legacy .Tn ZFS -pool on-disk version. Older versions can continue to be used, but some -features may not be available. These pools can be upgraded using -.Qq Nm Cm upgrade Fl a . -Pools that are formatted with a more recent version are also displayed, -although these pools will be inaccessible on the system. +version number. +These pools can continue to be used, but some features may not be available. +Use +.Nm Cm upgrade Fl a +to enable all features on all pools. .Bl -tag -width indent .It Fl v -Displays +Displays legacy .Tn ZFS -pool versions supported by the current software. The current -.Tn ZFS -pool version and all previous supported versions are displayed, along -with an explanation of the features provided with each version. +versions supported by the current software. +See +.Xr zpool-features.5 +for a description of feature flags features supported by the current software. .El .It Xo .Nm @@ -1659,18 +1660,22 @@ with an explanation of the features prov .Fl a | Ar pool ... .Xc .Pp -Upgrades the given pool to the latest on-disk pool version. Once this is done, -the pool will no longer be accessible on systems running older versions of the -software. +Enables all supported features on the given pool. +Once this is done, the pool will no longer be accessible on systems that do +not support feature flags. +See +.Xr zpool-features.5 +for details on compatability with system sthat support feature flags, but do +not support all features enabled on the pool. .Bl -tag -width indent .It Fl a -Upgrades all pools. +Enables all supported features on all pools. .It Fl V Ar version -Upgrade to the specified version. If the +Upgrade to the specified legacy version. If the .Fl V -flag is not specified, the pool is upgraded to the most recent version. This -option can only be used to increase the version number, and only up to the most -recent version supported by this software. +flag is specified, no features will be enabled on the pool. +This option can only be used to increase version number up to the last +supported legacy version number. .El .El .Sh EXAMPLES Modified: projects/fuse/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c ============================================================================== --- projects/fuse/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Fri Aug 3 15:29:19 2012 (r239014) +++ projects/fuse/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Fri Aug 3 15:38:28 2012 (r239015) @@ -389,6 +389,18 @@ print_vdev_tree(zpool_handle_t *zhp, con } } +static boolean_t +prop_list_contains_feature(nvlist_t *proplist) +{ + nvpair_t *nvp; + for (nvp = nvlist_next_nvpair(proplist, NULL); NULL != nvp; + nvp = nvlist_next_nvpair(proplist, nvp)) { + if (zpool_prop_feature(nvpair_name(nvp))) + return (B_TRUE); + } + return (B_FALSE); +} + /* * Add a property pair (name, string-value) into a property nvlist. */ @@ -412,12 +424,30 @@ add_prop_list(const char *propname, char proplist = *props; if (poolprop) { + const char *vname = zpool_prop_to_name(ZPOOL_PROP_VERSION); + if ((prop = zpool_name_to_prop(propname)) == ZPROP_INVAL && !zpool_prop_feature(propname)) { (void) fprintf(stderr, gettext("property '%s' is " "not a valid pool property\n"), propname); return (2); } + + /* + * feature@ properties and version should not be specified + * at the same time. + */ + if ((prop == ZPROP_INVAL && zpool_prop_feature(propname) && + nvlist_exists(proplist, vname)) || + (prop == ZPOOL_PROP_VERSION && + prop_list_contains_feature(proplist))) { + (void) fprintf(stderr, gettext("'feature@' and " + "'version' properties cannot be specified " + "together\n")); + return (2); + } + + if (zpool_prop_feature(propname)) normnm = propname; else @@ -1583,8 +1613,8 @@ show_import(nvlist_t *config) break; case ZPOOL_STATUS_VERSION_OLDER: - (void) printf(gettext(" status: The pool is formatted using an " - "older on-disk version.\n")); + (void) printf(gettext(" status: The pool is formatted using a " + "legacy on-disk version.\n")); break; case ZPOOL_STATUS_VERSION_NEWER: @@ -1592,6 +1622,11 @@ show_import(nvlist_t *config) "incompatible version.\n")); break; + case ZPOOL_STATUS_FEAT_DISABLED: + (void) printf(gettext(" status: Some supported features are " + "not enabled on the pool.\n")); + break; + case ZPOOL_STATUS_UNSUP_FEAT_READ: (void) printf(gettext("status: The pool uses the following " "feature(s) not supported on this sytem:\n")); @@ -1638,19 +1673,21 @@ show_import(nvlist_t *config) * Print out an action according to the overall state of the pool. */ if (vs->vs_state == VDEV_STATE_HEALTHY) { - if (reason == ZPOOL_STATUS_VERSION_OLDER) + if (reason == ZPOOL_STATUS_VERSION_OLDER || + reason == ZPOOL_STATUS_FEAT_DISABLED) { (void) printf(gettext(" action: The pool can be " "imported using its name or numeric identifier, " "though\n\tsome features will not be available " "without an explicit 'zpool upgrade'.\n")); - else if (reason == ZPOOL_STATUS_HOSTID_MISMATCH) + } else if (reason == ZPOOL_STATUS_HOSTID_MISMATCH) { (void) printf(gettext(" action: The pool can be " "imported using its name or numeric " "identifier and\n\tthe '-f' flag.\n")); - else + } else { (void) printf(gettext(" action: The pool can be " "imported using its name or numeric " "identifier.\n")); + } } else if (vs->vs_state == VDEV_STATE_DEGRADED) { (void) printf(gettext(" action: The pool can be imported " "despite missing or damaged devices. The\n\tfault " @@ -4108,12 +4145,13 @@ status_callback(zpool_handle_t *zhp, voi break; case ZPOOL_STATUS_VERSION_OLDER: - (void) printf(gettext("status: The pool is formatted using an " - "older on-disk format. The pool can\n\tstill be used, but " - "some features are unavailable.\n")); + (void) printf(gettext("status: The pool is formatted using a " + "legacy on-disk format. The pool can\n\tstill be used, " + "but some features are unavailable.\n")); (void) printf(gettext("action: Upgrade the pool using 'zpool " "upgrade'. Once this is done, the\n\tpool will no longer " - "be accessible on older software versions.\n")); + "be accessible on software that does not support feature\n" + "\tflags.\n")); break; case ZPOOL_STATUS_VERSION_NEWER: @@ -4125,6 +4163,16 @@ status_callback(zpool_handle_t *zhp, voi "backup.\n")); break; + case ZPOOL_STATUS_FEAT_DISABLED: + (void) printf(gettext("status: Some supported features are not " + "enabled on the pool. The pool can\n\tstill be used, but " + "some features are unavailable.\n")); + (void) printf(gettext("action: Enable all features using " + "'zpool upgrade'. Once this is done,\n\tthe pool may no " + "longer be accessible by software that does not support\n\t" + "the features. See zpool-features(5) for details.\n")); + break; + case ZPOOL_STATUS_UNSUP_FEAT_READ: (void) printf(gettext("status: The pool cannot be accessed on " "this system because it uses the\n\tfollowing feature(s) " @@ -4354,15 +4402,14 @@ zpool_do_status(int argc, char **argv) } typedef struct upgrade_cbdata { - int cb_all; int cb_first; - int cb_newer; char cb_poolname[ZPOOL_MAXNAMELEN]; int cb_argc; uint64_t cb_version; char **cb_argv; } upgrade_cbdata_t; +#ifdef __FreeBSD__ static int is_root_pool(zpool_handle_t *zhp) { @@ -4388,56 +4435,161 @@ is_root_pool(zpool_handle_t *zhp) return (poolname != NULL && strcmp(poolname, zpool_get_name(zhp)) == 0); } +static void +root_pool_upgrade_check(zpool_handle_t *zhp, char *poolname, int size) { + + if (poolname[0] == '\0' && is_root_pool(zhp)) + (void) strlcpy(poolname, zpool_get_name(zhp), size); +} +#endif /* FreeBSD */ + +static int +upgrade_version(zpool_handle_t *zhp, uint64_t version) +{ + int ret; + nvlist_t *config; + uint64_t oldversion; + + config = zpool_get_config(zhp, NULL); + verify(nvlist_lookup_uint64(config, ZPOOL_CONFIG_VERSION, + &oldversion) == 0); + + assert(SPA_VERSION_IS_SUPPORTED(oldversion)); + assert(oldversion < version); + + ret = zpool_upgrade(zhp, version); + if (ret != 0) + return (ret); + + if (version >= SPA_VERSION_FEATURES) { + (void) printf(gettext("Successfully upgraded " + "'%s' from version %llu to feature flags.\n"), + zpool_get_name(zhp), oldversion); + } else { + (void) printf(gettext("Successfully upgraded " + "'%s' from version %llu to version %llu.\n"), + zpool_get_name(zhp), oldversion, version); + } + + return (0); +} + +static int +upgrade_enable_all(zpool_handle_t *zhp, int *countp) +{ + int i, ret, count; + boolean_t firstff = B_TRUE; + nvlist_t *enabled = zpool_get_features(zhp); + + count = 0; + for (i = 0; i < SPA_FEATURES; i++) { + const char *fname = spa_feature_table[i].fi_uname; + const char *fguid = spa_feature_table[i].fi_guid; + if (!nvlist_exists(enabled, fguid)) { + char *propname; + verify(-1 != asprintf(&propname, "feature@%s", fname)); + ret = zpool_set_prop(zhp, propname, + ZFS_FEATURE_ENABLED); + if (ret != 0) { + free(propname); + return (ret); + } + count++; + + if (firstff) { + (void) printf(gettext("Enabled the " + "following features on '%s':\n"), + zpool_get_name(zhp)); + firstff = B_FALSE; + } + (void) printf(gettext(" %s\n"), fname); + free(propname); + } + } + + if (countp != NULL) + *countp = count; + return (0); +} + static int upgrade_cb(zpool_handle_t *zhp, void *arg) { upgrade_cbdata_t *cbp = arg; nvlist_t *config; uint64_t version; - int ret = 0; + boolean_t printnl = B_FALSE; + int ret; config = zpool_get_config(zhp, NULL); verify(nvlist_lookup_uint64(config, ZPOOL_CONFIG_VERSION, &version) == 0); - if (!cbp->cb_newer && SPA_VERSION_IS_SUPPORTED(version) && - version != SPA_VERSION) { - if (!cbp->cb_all) { - if (cbp->cb_first) { - (void) printf(gettext("The following pools are " - "out of date, and can be upgraded. After " - "being\nupgraded, these pools will no " - "longer be accessible by older software " - "versions.\n\n")); - (void) printf(gettext("VER POOL\n")); - (void) printf(gettext("--- ------------\n")); - cbp->cb_first = B_FALSE; - } + assert(SPA_VERSION_IS_SUPPORTED(version)); - (void) printf("%2llu %s\n", (u_longlong_t)version, - zpool_get_name(zhp)); - } else { + if (version < cbp->cb_version) { + cbp->cb_first = B_FALSE; + ret = upgrade_version(zhp, cbp->cb_version); + if (ret != 0) + return (ret); +#ifdef __FreeBSD__ + root_pool_upgrade_check(zhp, cbp->cb_poolname, + sizeof(cbp->cb_poolname)); +#endif /* ___FreeBSD__ */ + printnl = B_TRUE; + +#ifdef illumos + /* + * If they did "zpool upgrade -a", then we could + * be doing ioctls to different pools. We need + * to log this history once to each pool, and bypass + * the normal history logging that happens in main(). + */ + (void) zpool_log_history(g_zfs, history_str); + log_history = B_FALSE; +#endif + } + + if (cbp->cb_version >= SPA_VERSION_FEATURES) { + int count; + ret = upgrade_enable_all(zhp, &count); + if (ret != 0) + return (ret); + + if (count > 0) { cbp->cb_first = B_FALSE; - ret = zpool_upgrade(zhp, cbp->cb_version); - if (!ret) { - (void) printf(gettext("Successfully upgraded " - "'%s'\n\n"), zpool_get_name(zhp)); - if (cbp->cb_poolname[0] == '\0' && - is_root_pool(zhp)) { - (void) strlcpy(cbp->cb_poolname, - zpool_get_name(zhp), - sizeof(cbp->cb_poolname)); - } - } + printnl = B_TRUE; } - } else if (cbp->cb_newer && !SPA_VERSION_IS_SUPPORTED(version)) { - assert(!cbp->cb_all); + } + + if (printnl) { + (void) printf(gettext("\n")); + } + + return (0); +} + +static int +upgrade_list_older_cb(zpool_handle_t *zhp, void *arg) +{ + upgrade_cbdata_t *cbp = arg; + nvlist_t *config; + uint64_t version; + + config = zpool_get_config(zhp, NULL); + verify(nvlist_lookup_uint64(config, ZPOOL_CONFIG_VERSION, + &version) == 0); + + assert(SPA_VERSION_IS_SUPPORTED(version)); + if (version < SPA_VERSION_FEATURES) { if (cbp->cb_first) { (void) printf(gettext("The following pools are " - "formatted using an unsupported software version " - "and\ncannot be accessed on the current " - "system.\n\n")); + "formatted with legacy version numbers and can\n" + "be upgraded to use feature flags. After " + "being upgraded, these pools\nwill no " + "longer be accessible by software that does not " + "support feature\nflags.\n\n")); (void) printf(gettext("VER POOL\n")); (void) printf(gettext("--- ------------\n")); cbp->cb_first = B_FALSE; @@ -4447,14 +4599,65 @@ upgrade_cb(zpool_handle_t *zhp, void *ar zpool_get_name(zhp)); } - zpool_close(zhp); - return (ret); + return (0); +} + +static int +upgrade_list_disabled_cb(zpool_handle_t *zhp, void *arg) +{ + upgrade_cbdata_t *cbp = arg; + nvlist_t *config; + uint64_t version; + + config = zpool_get_config(zhp, NULL); + verify(nvlist_lookup_uint64(config, ZPOOL_CONFIG_VERSION, + &version) == 0); + + if (version >= SPA_VERSION_FEATURES) { + int i; + boolean_t poolfirst = B_TRUE; + nvlist_t *enabled = zpool_get_features(zhp); + + for (i = 0; i < SPA_FEATURES; i++) { + const char *fguid = spa_feature_table[i].fi_guid; + const char *fname = spa_feature_table[i].fi_uname; + if (!nvlist_exists(enabled, fguid)) { + if (cbp->cb_first) { + (void) printf(gettext("\nSome " + "supported features are not " + "enabled on the following pools. " + "Once a\nfeature is enabled the " + "pool may become incompatible with " + "software\nthat does not support " + "the feature. See " + "zpool-features(5) for " + "details.\n\n")); + (void) printf(gettext("POOL " + "FEATURE\n")); + (void) printf(gettext("------" + "---------\n")); + cbp->cb_first = B_FALSE; + } + + if (poolfirst) { + (void) printf(gettext("%s\n"), + zpool_get_name(zhp)); + poolfirst = B_FALSE; + } + + (void) printf(gettext(" %s\n"), fname); + } + } + } + + return (0); } /* ARGSUSED */ static int upgrade_one(zpool_handle_t *zhp, void *data) { + boolean_t printnl = B_FALSE; upgrade_cbdata_t *cbp = data; uint64_t cur_version; int ret; @@ -4469,30 +4672,53 @@ upgrade_one(zpool_handle_t *zhp, void *d cur_version = zpool_get_prop_int(zhp, ZPOOL_PROP_VERSION, NULL); if (cur_version > cbp->cb_version) { (void) printf(gettext("Pool '%s' is already formatted " - "using more current version '%llu'.\n"), + "using more current version '%llu'.\n\n"), zpool_get_name(zhp), cur_version); return (0); } - if (cur_version == cbp->cb_version) { + + if (cbp->cb_version != SPA_VERSION && cur_version == cbp->cb_version) { (void) printf(gettext("Pool '%s' is already formatted " - "using the current version.\n"), zpool_get_name(zhp)); + "using version %llu.\n\n"), zpool_get_name(zhp), + cbp->cb_version); return (0); } - ret = zpool_upgrade(zhp, cbp->cb_version); + if (cur_version != cbp->cb_version) { + printnl = B_TRUE; + ret = upgrade_version(zhp, cbp->cb_version); + if (ret != 0) + return (ret); +#ifdef __FreeBSD__ + root_pool_upgrade_check(zhp, cbp->cb_poolname, + sizeof(cbp->cb_poolname)); +#endif /* ___FreeBSD__ */ + } + + if (cbp->cb_version >= SPA_VERSION_FEATURES) { + int count = 0; + ret = upgrade_enable_all(zhp, &count); + if (ret != 0) + return (ret); - if (!ret) { - (void) printf(gettext("Successfully upgraded '%s' " - "from version %llu to version %llu\n\n"), - zpool_get_name(zhp), (u_longlong_t)cur_version, - (u_longlong_t)cbp->cb_version); - if (cbp->cb_poolname[0] == '\0' && is_root_pool(zhp)) { - (void) strlcpy(cbp->cb_poolname, zpool_get_name(zhp), + if (count != 0) { + printnl = B_TRUE; +#ifdef __FreeBSD__ + root_pool_upgrade_check(zhp, cbp->cb_poolname, sizeof(cbp->cb_poolname)); +#endif /* __FreeBSD __*/ + } else if (cur_version == SPA_VERSION) { + (void) printf(gettext("Pool '%s' already has all " + "supported features enabled.\n"), + zpool_get_name(zhp)); } } - return (ret != 0); + if (printnl) { + (void) printf(gettext("\n")); + } + + return (0); } /* @@ -4511,6 +4737,7 @@ zpool_do_upgrade(int argc, char **argv) upgrade_cbdata_t cb = { 0 }; int ret = 0; boolean_t showversions = B_FALSE; + boolean_t upgradeall = B_FALSE; char *end; @@ -4518,7 +4745,7 @@ zpool_do_upgrade(int argc, char **argv) while ((c = getopt(argc, argv, ":avV:")) != -1) { switch (c) { case 'a': - cb.cb_all = B_TRUE; + upgradeall = B_TRUE; break; case 'v': showversions = B_TRUE; @@ -4551,19 +4778,19 @@ zpool_do_upgrade(int argc, char **argv) if (cb.cb_version == 0) { cb.cb_version = SPA_VERSION; - } else if (!cb.cb_all && argc == 0) { + } else if (!upgradeall && argc == 0) { (void) fprintf(stderr, gettext("-V option is " "incompatible with other arguments\n")); usage(B_FALSE); } if (showversions) { - if (cb.cb_all || argc != 0) { + if (upgradeall || argc != 0) { (void) fprintf(stderr, gettext("-v option is " "incompatible with other arguments\n")); usage(B_FALSE); } - } else if (cb.cb_all) { + } else if (upgradeall) { if (argc != 0) { (void) fprintf(stderr, gettext("-a option should not " "be used along with a pool name\n")); @@ -4573,9 +4800,25 @@ zpool_do_upgrade(int argc, char **argv) (void) printf(gettext("This system supports ZFS pool feature " "flags.\n\n")); - cb.cb_first = B_TRUE; if (showversions) { - (void) printf(gettext("The following versions are " + int i; + + (void) printf(gettext("The following features are " + "supported:\n\n")); + (void) printf(gettext("FEAT DESCRIPTION\n")); + (void) printf("----------------------------------------------" + "---------------\n"); + for (i = 0; i < SPA_FEATURES; i++) { + zfeature_info_t *fi = &spa_feature_table[i]; + const char *ro = fi->fi_can_readonly ? + " (read-only compatible)" : ""; + + (void) printf("%-37s%s\n", fi->fi_uname, ro); + (void) printf(" %s\n", fi->fi_desc); + } + (void) printf("\n"); + + (void) printf(gettext("The following legacy versions are also " "supported:\n\n")); (void) printf(gettext("VER DESCRIPTION\n")); (void) printf("--- -----------------------------------------" @@ -4618,32 +4861,44 @@ zpool_do_upgrade(int argc, char **argv) (void) printf(gettext("\nFor more information on a particular " "version, including supported releases,\n")); (void) printf(gettext("see the ZFS Administration Guide.\n\n")); - } else if (argc == 0) { - int notfound; - + } else if (argc == 0 && upgradeall) { + cb.cb_first = B_TRUE; ret = zpool_iter(g_zfs, upgrade_cb, &cb); - notfound = cb.cb_first; - - if (!cb.cb_all && ret == 0) { - if (!cb.cb_first) - (void) printf("\n"); - cb.cb_first = B_TRUE; - cb.cb_newer = B_TRUE; - ret = zpool_iter(g_zfs, upgrade_cb, &cb); - if (!cb.cb_first) { - notfound = B_FALSE; - (void) printf("\n"); + if (ret == 0 && cb.cb_first) { + if (cb.cb_version == SPA_VERSION) { + (void) printf(gettext("All pools are already " + "formatted using feature flags.\n\n")); + (void) printf(gettext("Every feature flags " + "pool already has all supported features " + "enabled.\n")); + } else { + (void) printf(gettext("All pools are already " + "formatted with version %llu or higher.\n"), + cb.cb_version); } } + } else if (argc == 0) { + cb.cb_first = B_TRUE; + ret = zpool_iter(g_zfs, upgrade_list_older_cb, &cb); + assert(ret == 0); + + if (cb.cb_first) { + (void) printf(gettext("All pools are formatted " + "using feature flags.\n\n")); + } else { + (void) printf(gettext("\nUse 'zpool upgrade -v' " + "for a list of available legacy versions.\n")); + } - if (ret == 0) { - if (notfound) - (void) printf(gettext("All pools are formatted " - "using this version.\n")); - else if (!cb.cb_all) - (void) printf(gettext("Use 'zpool upgrade -v' " - "for a list of available versions and " - "their associated\nfeatures.\n")); + cb.cb_first = B_TRUE; + ret = zpool_iter(g_zfs, upgrade_list_disabled_cb, &cb); + assert(ret == 0); + + if (cb.cb_first) { + (void) printf(gettext("Every feature flags pool has " + "all supported features enabled.\n")); + } else { + (void) printf(gettext("\n")); } } else { ret = for_each_pool(argc, argv, B_FALSE, NULL, Modified: projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_proc.c ============================================================================== --- projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_proc.c Fri Aug 3 15:29:19 2012 (r239014) +++ projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_proc.c Fri Aug 3 15:38:28 2012 (r239015) @@ -942,7 +942,8 @@ dt_proc_create_thread(dtrace_hdl_t *dtp, (int)dpr->dpr_pid, strerror(err)); } - (void) pthread_mutex_unlock(&dpr->dpr_lock); + if (err == 0) + (void) pthread_mutex_unlock(&dpr->dpr_lock); (void) pthread_attr_destroy(&a); return (err); Modified: projects/fuse/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h ============================================================================== --- projects/fuse/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h Fri Aug 3 15:29:19 2012 (r239014) +++ projects/fuse/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h Fri Aug 3 15:38:28 2012 (r239015) @@ -316,7 +316,8 @@ typedef enum { * requiring administrative attention. There is no corresponding * message ID. */ - ZPOOL_STATUS_VERSION_OLDER, /* older on-disk version */ + ZPOOL_STATUS_VERSION_OLDER, /* older legacy on-disk version */ + ZPOOL_STATUS_FEAT_DISABLED, /* supported features are disabled */ ZPOOL_STATUS_RESILVERING, /* device being resilvered */ ZPOOL_STATUS_OFFLINE_DEV, /* device online */ ZPOOL_STATUS_REMOVED_DEV, /* removed device */ Modified: projects/fuse/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_status.c ============================================================================== --- projects/fuse/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_status.c Fri Aug 3 15:29:19 2012 (r239014) +++ projects/fuse/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_status.c Fri Aug 3 15:38:28 2012 (r239015) @@ -44,6 +44,7 @@ #include #include #include "libzfs_impl.h" +#include "zfeature_common.h" /* * Message ID table. This must be kept in sync with the ZPOOL_STATUS_* defines @@ -319,6 +320,30 @@ check_status(nvlist_t *config, boolean_t if (SPA_VERSION_IS_SUPPORTED(version) && version != SPA_VERSION) return (ZPOOL_STATUS_VERSION_OLDER); + /* + * Usable pool with disabled features + */ + if (version >= SPA_VERSION_FEATURES) { + int i; + nvlist_t *feat; + + if (isimport) { + feat = fnvlist_lookup_nvlist(config, + ZPOOL_CONFIG_LOAD_INFO); + feat = fnvlist_lookup_nvlist(feat, + ZPOOL_CONFIG_ENABLED_FEAT); + } else { + feat = fnvlist_lookup_nvlist(config, + ZPOOL_CONFIG_FEATURE_STATS); + } + + for (i = 0; i < SPA_FEATURES; i++) { + zfeature_info_t *fi = &spa_feature_table[i]; + if (!nvlist_exists(feat, fi->fi_guid)) + return (ZPOOL_STATUS_FEAT_DISABLED); + } + } + return (ZPOOL_STATUS_OK); } Modified: projects/fuse/cddl/lib/libzfs/Makefile ============================================================================== --- projects/fuse/cddl/lib/libzfs/Makefile Fri Aug 3 15:29:19 2012 (r239014) +++ projects/fuse/cddl/lib/libzfs/Makefile Fri Aug 3 15:38:28 2012 (r239015) @@ -6,8 +6,8 @@ .PATH: ${.CURDIR}/../../../cddl/contrib/opensolaris/lib/libzfs/common LIB= zfs -DPADD= ${LIBMD} ${LIBPTHREAD} ${LIBUMEM} ${LIBUTIL} ${LIBM} -LDADD= -lmd -lpthread -lumem -lutil -lm +DPADD= ${LIBMD} ${LIBPTHREAD} ${LIBUMEM} ${LIBUTIL} ${LIBM} ${LIBNVPAIR} +LDADD= -lmd -lpthread -lumem -lutil -lm -lnvpair SRCS= deviceid.c \ fsshare.c \ Modified: projects/fuse/contrib/bind9/CHANGES ============================================================================== --- projects/fuse/contrib/bind9/CHANGES Fri Aug 3 15:29:19 2012 (r239014) +++ projects/fuse/contrib/bind9/CHANGES Fri Aug 3 15:38:28 2012 (r239015) @@ -1,3 +1,12 @@ + --- 9.8.3-P2 released --- + +3346. [security] Bad-cache data could be used before it was + initialized, causing an assert. [RT #30025] + +3342. [bug] Change #3314 broke saving of stub zones to disk + resulting in excessive cpu usage in some cases. + [RT #29952] + --- 9.8.3-P1 released --- 3331. [security] dns_rdataslab_fromrdataset could produce bad Modified: projects/fuse/contrib/bind9/lib/dns/resolver.c ============================================================================== --- projects/fuse/contrib/bind9/lib/dns/resolver.c Fri Aug 3 15:29:19 2012 (r239014) +++ projects/fuse/contrib/bind9/lib/dns/resolver.c Fri Aug 3 15:38:28 2012 (r239015) @@ -8448,6 +8448,7 @@ dns_resolver_addbadcache(dns_resolver_t goto cleanup; bad->type = type; bad->hashval = hashval; + bad->expire = *expire; isc_buffer_init(&buffer, bad + 1, name->length); dns_name_init(&bad->name, NULL); dns_name_copy(name, &bad->name, &buffer); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Fri Aug 3 16:04:36 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A0B95106566B; Fri, 3 Aug 2012 16:04:36 +0000 (UTC) (envelope-from davide@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7433C8FC0C; Fri, 3 Aug 2012 16:04:36 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q73G4aXe042845; Fri, 3 Aug 2012 16:04:36 GMT (envelope-from davide@svn.freebsd.org) Received: (from davide@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q73G4a4s042843; Fri, 3 Aug 2012 16:04:36 GMT (envelope-from davide@svn.freebsd.org) Message-Id: <201208031604.q73G4a4s042843@svn.freebsd.org> From: Davide Italiano Date: Fri, 3 Aug 2012 16:04:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r239017 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Aug 2012 16:04:36 -0000 Author: davide Date: Fri Aug 3 16:04:35 2012 New Revision: 239017 URL: http://svn.freebsd.org/changeset/base/239017 Log: Some optimizations: simplify the logic of softclock() removing a check which is likely to be false in most of the cases, after recent changes. Also, remove an unneeded and duplicated bitwise and operation. Discussed with: mav Modified: projects/calloutng/sys/kern/kern_timeout.c Modified: projects/calloutng/sys/kern/kern_timeout.c ============================================================================== --- projects/calloutng/sys/kern/kern_timeout.c Fri Aug 3 15:58:05 2012 (r239016) +++ projects/calloutng/sys/kern/kern_timeout.c Fri Aug 3 16:04:35 2012 (r239017) @@ -596,8 +596,7 @@ callout_cc_add(struct callout *c, struct (u_int) (c->c_time.frac & 0xffffffff)); } bucket = get_bucket(&c->c_time); - TAILQ_INSERT_TAIL(&cc->cc_callwheel[bucket & callwheelmask], - c, c_links.tqe); + TAILQ_INSERT_TAIL(&cc->cc_callwheel[bucket], c, c_links.tqe); /* * Inform the eventtimers(4) subsystem there's a new callout * that has been inserted, but only if really required. @@ -824,41 +823,20 @@ softclock(void *arg) { struct callout_cpu *cc; struct callout *c; - int steps; /* #steps since we last allowed interrupts */ - int depth; - int mpcalls; - int lockcalls; - int gcalls; - -#ifndef MAX_SOFTCLOCK_STEPS -#define MAX_SOFTCLOCK_STEPS 100 /* Maximum allowed value of steps. */ -#endif /* MAX_SOFTCLOCK_STEPS */ - + int depth, gcalls, lockcalls, mpcalls; + depth = 0; mpcalls = 0; lockcalls = 0; gcalls = 0; - steps = 0; cc = (struct callout_cpu *)arg; CC_LOCK(cc); - c = TAILQ_FIRST(&cc->cc_expireq); while (c != NULL) { ++depth; - ++steps; - if (steps >= MAX_SOFTCLOCK_STEPS) { - cc->cc_exec_next = c; - /* Give interrupts a chance. */ - CC_UNLOCK(cc); - ; /* nothing */ - CC_LOCK(cc); - c = cc->cc_exec_next; - steps = 0; - } else { - TAILQ_REMOVE(&cc->cc_expireq, c, c_staiter); - c = softclock_call_cc(c, cc, &mpcalls, - &lockcalls, &gcalls, 0); - } + TAILQ_REMOVE(&cc->cc_expireq, c, c_staiter); + c = softclock_call_cc(c, cc, &mpcalls, + &lockcalls, &gcalls, 0); } #ifdef CALLOUT_PROFILING avg_depth += (depth * 1000 - avg_depth) >> 8; @@ -866,7 +844,6 @@ softclock(void *arg) avg_lockcalls += (lockcalls * 1000 - avg_lockcalls) >> 8; avg_gcalls += (gcalls * 1000 - avg_gcalls) >> 8; #endif - cc->cc_exec_next = NULL; CC_UNLOCK(cc); } From owner-svn-src-projects@FreeBSD.ORG Fri Aug 3 16:18:22 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4CCBE106564A; Fri, 3 Aug 2012 16:18:22 +0000 (UTC) (envelope-from davide@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 32C028FC08; Fri, 3 Aug 2012 16:18:22 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q73GIMEX043930; Fri, 3 Aug 2012 16:18:22 GMT (envelope-from davide@svn.freebsd.org) Received: (from davide@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q73GILfM043917; Fri, 3 Aug 2012 16:18:21 GMT (envelope-from davide@svn.freebsd.org) Message-Id: <201208031618.q73GILfM043917@svn.freebsd.org> From: Davide Italiano Date: Fri, 3 Aug 2012 16:18:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r239018 - in projects/calloutng: . bin/cat bin/sh bin/stty cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/include cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma cddl/co... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Aug 2012 16:18:22 -0000 Author: davide Date: Fri Aug 3 16:18:20 2012 New Revision: 239018 URL: http://svn.freebsd.org/changeset/base/239018 Log: MFC as per r239013. Added: projects/calloutng/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/include/ - copied from r239017, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/include/ projects/calloutng/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh - copied unchanged from r239017, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh projects/calloutng/contrib/dtc/dtdiff - copied unchanged from r239017, head/contrib/dtc/dtdiff projects/calloutng/contrib/dtc/fdtdump.c - copied unchanged from r239017, head/contrib/dtc/fdtdump.c projects/calloutng/contrib/dtc/fdtget.c - copied unchanged from r239017, head/contrib/dtc/fdtget.c projects/calloutng/contrib/dtc/fdtput.c - copied unchanged from r239017, head/contrib/dtc/fdtput.c projects/calloutng/contrib/dtc/libfdt/fdt_empty_tree.c - copied unchanged from r239017, head/contrib/dtc/libfdt/fdt_empty_tree.c projects/calloutng/contrib/libarchive/libarchive/archive_getdate.c - copied unchanged from r239017, head/contrib/libarchive/libarchive/archive_getdate.c projects/calloutng/contrib/libarchive/libarchive/archive_match.c - copied unchanged from r239017, head/contrib/libarchive/libarchive/archive_match.c projects/calloutng/contrib/libarchive/libarchive/archive_pathmatch.c - copied unchanged from r239017, head/contrib/libarchive/libarchive/archive_pathmatch.c projects/calloutng/contrib/libarchive/libarchive/archive_pathmatch.h - copied unchanged from r239017, head/contrib/libarchive/libarchive/archive_pathmatch.h projects/calloutng/contrib/libarchive/libarchive/archive_write_add_filter.c - copied unchanged from r239017, head/contrib/libarchive/libarchive/archive_write_add_filter.c projects/calloutng/contrib/libarchive/libarchive/archive_write_disk_acl.c - copied unchanged from r239017, head/contrib/libarchive/libarchive/archive_write_disk_acl.c projects/calloutng/contrib/libarchive/libarchive/test/test_acl_freebsd_nfs4.c - copied unchanged from r239017, head/contrib/libarchive/libarchive/test/test_acl_freebsd_nfs4.c projects/calloutng/contrib/libarchive/libarchive/test/test_acl_freebsd_posix1e.c - copied unchanged from r239017, head/contrib/libarchive/libarchive/test/test_acl_freebsd_posix1e.c projects/calloutng/contrib/libarchive/libarchive/test/test_archive_getdate.c - copied unchanged from r239017, head/contrib/libarchive/libarchive/test/test_archive_getdate.c projects/calloutng/contrib/libarchive/libarchive/test/test_archive_match_owner.c - copied unchanged from r239017, head/contrib/libarchive/libarchive/test/test_archive_match_owner.c projects/calloutng/contrib/libarchive/libarchive/test/test_archive_match_path.c - copied unchanged from r239017, head/contrib/libarchive/libarchive/test/test_archive_match_path.c projects/calloutng/contrib/libarchive/libarchive/test/test_archive_match_time.c - copied unchanged from r239017, head/contrib/libarchive/libarchive/test/test_archive_match_time.c projects/calloutng/contrib/libarchive/libarchive/test/test_archive_pathmatch.c - copied unchanged from r239017, head/contrib/libarchive/libarchive/test/test_archive_pathmatch.c projects/calloutng/contrib/libarchive/tar/test/test_format_newc.c - copied unchanged from r239017, head/contrib/libarchive/tar/test/test_format_newc.c projects/calloutng/contrib/libarchive/tar/test/test_option_nodump.c - copied unchanged from r239017, head/contrib/libarchive/tar/test/test_option_nodump.c projects/calloutng/lib/libc/locale/iswalnum_l.3 - copied unchanged from r239017, head/lib/libc/locale/iswalnum_l.3 projects/calloutng/lib/msun/ld128/s_expl.c - copied unchanged from r239017, head/lib/msun/ld128/s_expl.c projects/calloutng/lib/msun/ld80/s_expl.c - copied unchanged from r239017, head/lib/msun/ld80/s_expl.c projects/calloutng/share/dtrace/hotopen - copied unchanged from r239017, head/share/dtrace/hotopen projects/calloutng/share/dtrace/nfsattrstats - copied unchanged from r239017, head/share/dtrace/nfsattrstats projects/calloutng/share/examples/libusb20/ - copied from r239017, head/share/examples/libusb20/ projects/calloutng/share/man/man4/vale.4 - copied unchanged from r239017, head/share/man/man4/vale.4 projects/calloutng/sys/arm/at91/at91_pio_sam9g45.h - copied unchanged from r239017, head/sys/arm/at91/at91_pio_sam9g45.h projects/calloutng/sys/arm/at91/at91sam9g45.c - copied unchanged from r239017, head/sys/arm/at91/at91sam9g45.c projects/calloutng/sys/arm/at91/at91sam9g45reg.h - copied unchanged from r239017, head/sys/arm/at91/at91sam9g45reg.h projects/calloutng/sys/arm/at91/at91sam9x5.c - copied unchanged from r239017, head/sys/arm/at91/at91sam9x5.c projects/calloutng/sys/arm/at91/at91sam9x5reg.h - copied unchanged from r239017, head/sys/arm/at91/at91sam9x5reg.h projects/calloutng/sys/arm/at91/board_sn9g45.c - copied unchanged from r239017, head/sys/arm/at91/board_sn9g45.c projects/calloutng/sys/arm/at91/std.at91sam9g45 - copied unchanged from r239017, head/sys/arm/at91/std.at91sam9g45 projects/calloutng/sys/arm/at91/std.sn9g45 - copied unchanged from r239017, head/sys/arm/at91/std.sn9g45 projects/calloutng/sys/arm/conf/SN9G45 - copied unchanged from r239017, head/sys/arm/conf/SN9G45 projects/calloutng/sys/contrib/libfdt/fdt_empty_tree.c - copied unchanged from r239017, head/sys/contrib/libfdt/fdt_empty_tree.c projects/calloutng/sys/dev/ahci/ahciem.c - copied unchanged from r239017, head/sys/dev/ahci/ahciem.c projects/calloutng/sys/dev/ath/if_ath_tx_edma.c - copied unchanged from r239017, head/sys/dev/ath/if_ath_tx_edma.c projects/calloutng/sys/dev/ath/if_ath_tx_edma.h - copied unchanged from r239017, head/sys/dev/ath/if_ath_tx_edma.h projects/calloutng/tools/tools/ath/athratestats/ - copied from r239017, head/tools/tools/ath/athratestats/ Deleted: projects/calloutng/contrib/dtc/Makefile.convert-dtsv0 projects/calloutng/contrib/dtc/Makefile.ftdump projects/calloutng/contrib/dtc/convert-dtsv0-lexer.l projects/calloutng/contrib/dtc/ftdump.c projects/calloutng/contrib/libarchive/cpio/test/test_pathmatch.c projects/calloutng/contrib/libarchive/libarchive_fe/matching.c projects/calloutng/contrib/libarchive/libarchive_fe/matching.h projects/calloutng/contrib/libarchive/libarchive_fe/pathmatch.c projects/calloutng/contrib/libarchive/libarchive_fe/pathmatch.h projects/calloutng/contrib/libarchive/tar/getdate.c projects/calloutng/contrib/libarchive/tar/test/test_getdate.c projects/calloutng/contrib/libarchive/tar/tree.c projects/calloutng/contrib/libarchive/tar/tree.h projects/calloutng/sys/arm/at91/at91sam9x25.c projects/calloutng/sys/arm/at91/at91sam9x25reg.h projects/calloutng/sys/vm/vm_contig.c Modified: projects/calloutng/Makefile.inc1 projects/calloutng/ObsoleteFiles.inc projects/calloutng/UPDATING projects/calloutng/bin/cat/cat.c projects/calloutng/bin/sh/jobs.c projects/calloutng/bin/sh/trap.c projects/calloutng/bin/sh/trap.h projects/calloutng/bin/stty/extern.h projects/calloutng/cddl/contrib/opensolaris/cmd/zpool/zpool.8 projects/calloutng/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c projects/calloutng/cddl/contrib/opensolaris/lib/libdtrace/common/dt_cc.c projects/calloutng/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pragma.c projects/calloutng/cddl/contrib/opensolaris/lib/libdtrace/common/dt_proc.c projects/calloutng/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.c projects/calloutng/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.h projects/calloutng/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h projects/calloutng/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_status.c projects/calloutng/cddl/lib/libzfs/Makefile projects/calloutng/contrib/bind9/CHANGES projects/calloutng/contrib/bind9/lib/dns/resolver.c projects/calloutng/contrib/bind9/lib/dns/zone.c projects/calloutng/contrib/bind9/version projects/calloutng/contrib/dtc/Documentation/dts-format.txt projects/calloutng/contrib/dtc/Documentation/manual.txt projects/calloutng/contrib/dtc/Makefile projects/calloutng/contrib/dtc/checks.c projects/calloutng/contrib/dtc/data.c projects/calloutng/contrib/dtc/dtc-lexer.l projects/calloutng/contrib/dtc/dtc-parser.y projects/calloutng/contrib/dtc/dtc.c projects/calloutng/contrib/dtc/dtc.h projects/calloutng/contrib/dtc/flattree.c projects/calloutng/contrib/dtc/fstree.c projects/calloutng/contrib/dtc/libfdt/Makefile.libfdt projects/calloutng/contrib/dtc/libfdt/fdt.c projects/calloutng/contrib/dtc/libfdt/fdt_ro.c projects/calloutng/contrib/dtc/libfdt/fdt_rw.c projects/calloutng/contrib/dtc/libfdt/libfdt.h projects/calloutng/contrib/dtc/libfdt/libfdt_env.h projects/calloutng/contrib/dtc/libfdt/libfdt_internal.h projects/calloutng/contrib/dtc/livetree.c projects/calloutng/contrib/dtc/srcpos.c projects/calloutng/contrib/dtc/srcpos.h projects/calloutng/contrib/dtc/treesource.c projects/calloutng/contrib/dtc/util.c projects/calloutng/contrib/dtc/util.h projects/calloutng/contrib/groff/tmac/doc-common projects/calloutng/contrib/groff/tmac/doc-syms projects/calloutng/contrib/groff/tmac/doc.tmac projects/calloutng/contrib/groff/tmac/groff_mdoc.man projects/calloutng/contrib/less/NEWS projects/calloutng/contrib/less/README projects/calloutng/contrib/less/brac.c projects/calloutng/contrib/less/ch.c projects/calloutng/contrib/less/charset.c projects/calloutng/contrib/less/charset.h projects/calloutng/contrib/less/cmd.h projects/calloutng/contrib/less/cmdbuf.c projects/calloutng/contrib/less/command.c projects/calloutng/contrib/less/cvt.c projects/calloutng/contrib/less/decode.c projects/calloutng/contrib/less/defines.ds projects/calloutng/contrib/less/defines.o2 projects/calloutng/contrib/less/defines.o9 projects/calloutng/contrib/less/defines.wn projects/calloutng/contrib/less/edit.c projects/calloutng/contrib/less/filename.c projects/calloutng/contrib/less/forwback.c projects/calloutng/contrib/less/funcs.h projects/calloutng/contrib/less/help.c projects/calloutng/contrib/less/ifile.c projects/calloutng/contrib/less/input.c projects/calloutng/contrib/less/jump.c projects/calloutng/contrib/less/less.h projects/calloutng/contrib/less/less.hlp projects/calloutng/contrib/less/less.man projects/calloutng/contrib/less/less.nro projects/calloutng/contrib/less/lessecho.c projects/calloutng/contrib/less/lessecho.man projects/calloutng/contrib/less/lessecho.nro projects/calloutng/contrib/less/lesskey.c projects/calloutng/contrib/less/lesskey.h projects/calloutng/contrib/less/lesskey.man projects/calloutng/contrib/less/lesskey.nro projects/calloutng/contrib/less/lglob.h projects/calloutng/contrib/less/line.c projects/calloutng/contrib/less/linenum.c projects/calloutng/contrib/less/lsystem.c projects/calloutng/contrib/less/main.c projects/calloutng/contrib/less/mark.c projects/calloutng/contrib/less/mkhelp.c projects/calloutng/contrib/less/optfunc.c projects/calloutng/contrib/less/option.c projects/calloutng/contrib/less/option.h projects/calloutng/contrib/less/opttbl.c projects/calloutng/contrib/less/os.c projects/calloutng/contrib/less/output.c projects/calloutng/contrib/less/pattern.c projects/calloutng/contrib/less/pattern.h projects/calloutng/contrib/less/pckeys.h projects/calloutng/contrib/less/position.c projects/calloutng/contrib/less/position.h projects/calloutng/contrib/less/prompt.c projects/calloutng/contrib/less/screen.c projects/calloutng/contrib/less/scrsize.c projects/calloutng/contrib/less/search.c projects/calloutng/contrib/less/signal.c projects/calloutng/contrib/less/tags.c projects/calloutng/contrib/less/ttyin.c projects/calloutng/contrib/less/version.c projects/calloutng/contrib/libarchive/FREEBSD-Xlist (contents, props changed) projects/calloutng/contrib/libarchive/FREEBSD-upgrade projects/calloutng/contrib/libarchive/NEWS projects/calloutng/contrib/libarchive/README projects/calloutng/contrib/libarchive/cpio/bsdcpio.1 projects/calloutng/contrib/libarchive/cpio/cmdline.c projects/calloutng/contrib/libarchive/cpio/cpio.c projects/calloutng/contrib/libarchive/cpio/cpio.h projects/calloutng/contrib/libarchive/cpio/test/main.c projects/calloutng/contrib/libarchive/cpio/test/test.h projects/calloutng/contrib/libarchive/libarchive/archive.h projects/calloutng/contrib/libarchive/libarchive/archive_acl.c projects/calloutng/contrib/libarchive/libarchive/archive_check_magic.c projects/calloutng/contrib/libarchive/libarchive/archive_endian.h projects/calloutng/contrib/libarchive/libarchive/archive_entry.3 projects/calloutng/contrib/libarchive/libarchive/archive_entry.c projects/calloutng/contrib/libarchive/libarchive/archive_entry.h projects/calloutng/contrib/libarchive/libarchive/archive_entry_acl.3 projects/calloutng/contrib/libarchive/libarchive/archive_entry_link_resolver.c projects/calloutng/contrib/libarchive/libarchive/archive_entry_linkify.3 projects/calloutng/contrib/libarchive/libarchive/archive_entry_paths.3 projects/calloutng/contrib/libarchive/libarchive/archive_entry_perms.3 projects/calloutng/contrib/libarchive/libarchive/archive_entry_stat.3 projects/calloutng/contrib/libarchive/libarchive/archive_entry_stat.c projects/calloutng/contrib/libarchive/libarchive/archive_entry_time.3 projects/calloutng/contrib/libarchive/libarchive/archive_ppmd7.c projects/calloutng/contrib/libarchive/libarchive/archive_private.h projects/calloutng/contrib/libarchive/libarchive/archive_read.3 projects/calloutng/contrib/libarchive/libarchive/archive_read.c projects/calloutng/contrib/libarchive/libarchive/archive_read_data.3 projects/calloutng/contrib/libarchive/libarchive/archive_read_disk.3 projects/calloutng/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c projects/calloutng/contrib/libarchive/libarchive/archive_read_disk_posix.c projects/calloutng/contrib/libarchive/libarchive/archive_read_disk_private.h projects/calloutng/contrib/libarchive/libarchive/archive_read_extract.3 projects/calloutng/contrib/libarchive/libarchive/archive_read_filter.3 projects/calloutng/contrib/libarchive/libarchive/archive_read_format.3 projects/calloutng/contrib/libarchive/libarchive/archive_read_free.3 projects/calloutng/contrib/libarchive/libarchive/archive_read_header.3 projects/calloutng/contrib/libarchive/libarchive/archive_read_new.3 projects/calloutng/contrib/libarchive/libarchive/archive_read_open.3 projects/calloutng/contrib/libarchive/libarchive/archive_read_open_fd.c projects/calloutng/contrib/libarchive/libarchive/archive_read_open_filename.c projects/calloutng/contrib/libarchive/libarchive/archive_read_private.h projects/calloutng/contrib/libarchive/libarchive/archive_read_set_options.3 projects/calloutng/contrib/libarchive/libarchive/archive_read_support_filter_rpm.c projects/calloutng/contrib/libarchive/libarchive/archive_read_support_format_7zip.c projects/calloutng/contrib/libarchive/libarchive/archive_read_support_format_cab.c projects/calloutng/contrib/libarchive/libarchive/archive_read_support_format_cpio.c projects/calloutng/contrib/libarchive/libarchive/archive_read_support_format_iso9660.c projects/calloutng/contrib/libarchive/libarchive/archive_read_support_format_lha.c projects/calloutng/contrib/libarchive/libarchive/archive_read_support_format_mtree.c projects/calloutng/contrib/libarchive/libarchive/archive_read_support_format_rar.c projects/calloutng/contrib/libarchive/libarchive/archive_read_support_format_tar.c projects/calloutng/contrib/libarchive/libarchive/archive_read_support_format_xar.c projects/calloutng/contrib/libarchive/libarchive/archive_read_support_format_zip.c projects/calloutng/contrib/libarchive/libarchive/archive_string.c projects/calloutng/contrib/libarchive/libarchive/archive_string.h projects/calloutng/contrib/libarchive/libarchive/archive_string_composition.h projects/calloutng/contrib/libarchive/libarchive/archive_string_sprintf.c projects/calloutng/contrib/libarchive/libarchive/archive_util.3 projects/calloutng/contrib/libarchive/libarchive/archive_util.c projects/calloutng/contrib/libarchive/libarchive/archive_write.3 projects/calloutng/contrib/libarchive/libarchive/archive_write.c projects/calloutng/contrib/libarchive/libarchive/archive_write_add_filter_bzip2.c projects/calloutng/contrib/libarchive/libarchive/archive_write_add_filter_compress.c projects/calloutng/contrib/libarchive/libarchive/archive_write_add_filter_gzip.c projects/calloutng/contrib/libarchive/libarchive/archive_write_add_filter_program.c projects/calloutng/contrib/libarchive/libarchive/archive_write_add_filter_xz.c projects/calloutng/contrib/libarchive/libarchive/archive_write_blocksize.3 projects/calloutng/contrib/libarchive/libarchive/archive_write_data.3 projects/calloutng/contrib/libarchive/libarchive/archive_write_disk.3 projects/calloutng/contrib/libarchive/libarchive/archive_write_disk_posix.c projects/calloutng/contrib/libarchive/libarchive/archive_write_disk_private.h projects/calloutng/contrib/libarchive/libarchive/archive_write_disk_set_standard_lookup.c projects/calloutng/contrib/libarchive/libarchive/archive_write_filter.3 projects/calloutng/contrib/libarchive/libarchive/archive_write_finish_entry.3 projects/calloutng/contrib/libarchive/libarchive/archive_write_format.3 projects/calloutng/contrib/libarchive/libarchive/archive_write_free.3 projects/calloutng/contrib/libarchive/libarchive/archive_write_header.3 projects/calloutng/contrib/libarchive/libarchive/archive_write_new.3 projects/calloutng/contrib/libarchive/libarchive/archive_write_open.3 projects/calloutng/contrib/libarchive/libarchive/archive_write_open_filename.c projects/calloutng/contrib/libarchive/libarchive/archive_write_private.h projects/calloutng/contrib/libarchive/libarchive/archive_write_set_format_7zip.c projects/calloutng/contrib/libarchive/libarchive/archive_write_set_format_ar.c projects/calloutng/contrib/libarchive/libarchive/archive_write_set_format_cpio.c projects/calloutng/contrib/libarchive/libarchive/archive_write_set_format_cpio_newc.c projects/calloutng/contrib/libarchive/libarchive/archive_write_set_format_gnutar.c projects/calloutng/contrib/libarchive/libarchive/archive_write_set_format_iso9660.c projects/calloutng/contrib/libarchive/libarchive/archive_write_set_format_mtree.c projects/calloutng/contrib/libarchive/libarchive/archive_write_set_format_pax.c projects/calloutng/contrib/libarchive/libarchive/archive_write_set_format_ustar.c projects/calloutng/contrib/libarchive/libarchive/archive_write_set_format_xar.c projects/calloutng/contrib/libarchive/libarchive/archive_write_set_format_zip.c projects/calloutng/contrib/libarchive/libarchive/archive_write_set_options.3 projects/calloutng/contrib/libarchive/libarchive/cpio.5 projects/calloutng/contrib/libarchive/libarchive/libarchive-formats.5 projects/calloutng/contrib/libarchive/libarchive/libarchive.3 projects/calloutng/contrib/libarchive/libarchive/libarchive_changes.3 projects/calloutng/contrib/libarchive/libarchive/libarchive_internals.3 projects/calloutng/contrib/libarchive/libarchive/tar.5 projects/calloutng/contrib/libarchive/libarchive/test/main.c projects/calloutng/contrib/libarchive/libarchive/test/read_open_memory.c projects/calloutng/contrib/libarchive/libarchive/test/test.h projects/calloutng/contrib/libarchive/libarchive/test/test_archive_string_conversion.c projects/calloutng/contrib/libarchive/libarchive/test/test_compat_zip.c projects/calloutng/contrib/libarchive/libarchive/test/test_read_disk_directory_traversals.c projects/calloutng/contrib/libarchive/libarchive/test/test_read_format_7zip.c projects/calloutng/contrib/libarchive/libarchive/test/test_read_format_cab.c projects/calloutng/contrib/libarchive/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c projects/calloutng/contrib/libarchive/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c projects/calloutng/contrib/libarchive/libarchive/test/test_read_format_rar.c projects/calloutng/contrib/libarchive/libarchive/test/test_read_format_rar_unicode.rar.uu projects/calloutng/contrib/libarchive/libarchive/test/test_read_format_tar_filename.c projects/calloutng/contrib/libarchive/libarchive/test/test_read_pax_truncated.c projects/calloutng/contrib/libarchive/libarchive/test/test_read_position.c projects/calloutng/contrib/libarchive/libarchive/test/test_sparse_basic.c projects/calloutng/contrib/libarchive/libarchive/test/test_write_format_zip.c projects/calloutng/contrib/libarchive/libarchive_fe/err.c projects/calloutng/contrib/libarchive/libarchive_fe/err.h projects/calloutng/contrib/libarchive/tar/bsdtar.1 projects/calloutng/contrib/libarchive/tar/bsdtar.c projects/calloutng/contrib/libarchive/tar/bsdtar.h projects/calloutng/contrib/libarchive/tar/read.c projects/calloutng/contrib/libarchive/tar/test/main.c projects/calloutng/contrib/libarchive/tar/test/test.h projects/calloutng/contrib/libarchive/tar/test/test_basic.c projects/calloutng/contrib/libarchive/tar/write.c projects/calloutng/contrib/llvm/tools/clang/lib/Driver/Tools.cpp projects/calloutng/etc/mtree/BSD.usr.dist projects/calloutng/etc/rc.d/bgfsck projects/calloutng/etc/rc.d/ip6addrctl projects/calloutng/etc/rc.d/jail projects/calloutng/games/fortune/datfiles/fortunes projects/calloutng/gnu/usr.bin/groff/tmac/Makefile projects/calloutng/gnu/usr.bin/groff/tmac/mdoc.local projects/calloutng/lib/libarchive/Makefile projects/calloutng/lib/libarchive/config_freebsd.h projects/calloutng/lib/libarchive/test/Makefile projects/calloutng/lib/libc/gen/fts.c projects/calloutng/lib/libc/locale/Makefile.inc projects/calloutng/lib/libc/locale/isgraph.3 projects/calloutng/lib/libc/locale/islower.3 projects/calloutng/lib/libc/locale/ispunct.3 projects/calloutng/lib/libc/locale/isspace.3 projects/calloutng/lib/libc/locale/nl_langinfo.3 projects/calloutng/lib/libc/net/getaddrinfo.c projects/calloutng/lib/libc/stdlib/at_quick_exit.3 projects/calloutng/lib/libc/stdlib/quick_exit.3 projects/calloutng/lib/libc/string/strerror.3 projects/calloutng/lib/libc/sys/fcntl.2 projects/calloutng/lib/libc/sys/fcntl.c projects/calloutng/lib/libedit/el.c projects/calloutng/lib/libedit/histedit.h projects/calloutng/lib/libedit/makelist projects/calloutng/lib/libedit/term.c projects/calloutng/lib/libedit/tokenizer.c projects/calloutng/lib/libelf/Makefile projects/calloutng/lib/libthr/thread/thr_getschedparam.c projects/calloutng/lib/libthr/thread/thr_info.c projects/calloutng/lib/libthr/thread/thr_setprio.c projects/calloutng/lib/libthr/thread/thr_setschedparam.c projects/calloutng/lib/msun/Makefile projects/calloutng/lib/msun/Symbol.map projects/calloutng/lib/msun/man/exp.3 projects/calloutng/lib/msun/src/e_exp.c projects/calloutng/lib/msun/src/math.h projects/calloutng/lib/msun/src/math_private.h projects/calloutng/lib/msun/src/s_cbrtl.c projects/calloutng/rescue/rescue/Makefile projects/calloutng/sbin/fsck_ffs/suj.c projects/calloutng/sbin/geom/class/multipath/geom_multipath.c projects/calloutng/sbin/geom/class/multipath/gmultipath.8 projects/calloutng/sbin/geom/class/sched/gsched.8 projects/calloutng/sbin/hastd/hast.conf.5 projects/calloutng/sbin/ipfw/dummynet.c projects/calloutng/sbin/ipfw/ipfw.8 projects/calloutng/sbin/ipfw/ipfw2.c projects/calloutng/sbin/ipfw/nat.c projects/calloutng/sbin/md5/Makefile projects/calloutng/sbin/md5/md5.1 projects/calloutng/sbin/md5/md5.c projects/calloutng/sbin/shutdown/shutdown.c projects/calloutng/share/dtrace/Makefile projects/calloutng/share/examples/Makefile projects/calloutng/share/man/man4/Makefile projects/calloutng/share/man/man4/ahci.4 projects/calloutng/share/man/man4/gpib.4 projects/calloutng/share/man/man4/netmap.4 projects/calloutng/share/man/man4/ugen.4 projects/calloutng/share/man/man4/uplcom.4 projects/calloutng/share/man/man4/uslcom.4 projects/calloutng/share/man/man5/moduli.5 projects/calloutng/share/man/man5/rc.conf.5 projects/calloutng/share/man/man9/ieee80211_node.9 projects/calloutng/share/man/man9/kernel_mount.9 projects/calloutng/share/man/man9/malloc.9 projects/calloutng/share/misc/bsd-family-tree projects/calloutng/share/misc/committers-ports.dot projects/calloutng/sys/amd64/amd64/fpu.c projects/calloutng/sys/amd64/amd64/machdep.c projects/calloutng/sys/amd64/amd64/pmap.c projects/calloutng/sys/amd64/amd64/ptrace_machdep.c projects/calloutng/sys/amd64/amd64/trap.c projects/calloutng/sys/amd64/amd64/vm_machdep.c projects/calloutng/sys/amd64/include/cpufunc.h projects/calloutng/sys/amd64/include/fpu.h projects/calloutng/sys/amd64/include/pcpu.h projects/calloutng/sys/arm/arm/nexus.c projects/calloutng/sys/arm/at91/at91.c projects/calloutng/sys/arm/at91/at91_machdep.c projects/calloutng/sys/arm/at91/at91_pmc.c projects/calloutng/sys/arm/at91/at91_pmcreg.h projects/calloutng/sys/arm/at91/at91_spi.c projects/calloutng/sys/arm/at91/board_sam9260ek.c projects/calloutng/sys/arm/at91/files.at91 projects/calloutng/sys/arm/at91/if_ate.c projects/calloutng/sys/arm/at91/std.atmel projects/calloutng/sys/arm/at91/std.sam9x25ek projects/calloutng/sys/arm/at91/uart_bus_at91usart.c projects/calloutng/sys/arm/conf/ATMEL projects/calloutng/sys/arm/conf/ETHERNUT5 projects/calloutng/sys/arm/conf/ETHERNUT5.hints projects/calloutng/sys/arm/conf/HL201 projects/calloutng/sys/arm/conf/KB920X projects/calloutng/sys/arm/conf/QILA9G20 projects/calloutng/sys/arm/conf/SAM9260EK projects/calloutng/sys/arm/conf/SAM9260EK.hints projects/calloutng/sys/arm/conf/SAM9G20EK projects/calloutng/sys/arm/conf/SAM9X25EK projects/calloutng/sys/arm/econa/econa.c projects/calloutng/sys/arm/mv/common.c projects/calloutng/sys/arm/mv/gpio.c projects/calloutng/sys/arm/mv/ic.c projects/calloutng/sys/arm/mv/kirkwood/kirkwood.c projects/calloutng/sys/arm/mv/mv_sata.c projects/calloutng/sys/arm/mv/mvreg.h projects/calloutng/sys/arm/s3c2xx0/s3c24x0.c projects/calloutng/sys/arm/xscale/i8134x/i81342.c projects/calloutng/sys/arm/xscale/pxa/pxa_obio.c projects/calloutng/sys/boot/ficl/Makefile projects/calloutng/sys/boot/sparc64/loader/main.c projects/calloutng/sys/boot/zfs/Makefile projects/calloutng/sys/cam/ata/ata_all.h projects/calloutng/sys/cam/ata/ata_xpt.c projects/calloutng/sys/cam/cam_ccb.h projects/calloutng/sys/cam/cam_periph.c projects/calloutng/sys/cam/cam_xpt.c projects/calloutng/sys/cam/ctl/scsi_ctl.c projects/calloutng/sys/cam/scsi/scsi_all.c projects/calloutng/sys/cam/scsi/scsi_cd.c projects/calloutng/sys/cam/scsi/scsi_da.c projects/calloutng/sys/cam/scsi/scsi_enc.c projects/calloutng/sys/cam/scsi/scsi_enc_safte.c projects/calloutng/sys/cam/scsi/scsi_enc_ses.c projects/calloutng/sys/cam/scsi/scsi_ses.h projects/calloutng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c projects/calloutng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfeature.h projects/calloutng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfeature.c projects/calloutng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c projects/calloutng/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h projects/calloutng/sys/cddl/dev/dtrace/amd64/dtrace_subr.c projects/calloutng/sys/cddl/dev/dtrace/i386/dtrace_subr.c projects/calloutng/sys/compat/ia32/ia32_sysvec.c projects/calloutng/sys/compat/ia32/ia32_util.h projects/calloutng/sys/conf/NOTES projects/calloutng/sys/conf/files projects/calloutng/sys/contrib/libfdt/fdt.c projects/calloutng/sys/contrib/libfdt/fdt_ro.c projects/calloutng/sys/contrib/libfdt/fdt_rw.c projects/calloutng/sys/contrib/libfdt/libfdt.h projects/calloutng/sys/contrib/libfdt/libfdt_env.h projects/calloutng/sys/contrib/libfdt/libfdt_internal.h projects/calloutng/sys/contrib/pf/net/pf_if.c projects/calloutng/sys/dev/aac/aac_disk.c projects/calloutng/sys/dev/acpica/acpi_cpu.c projects/calloutng/sys/dev/ahci/ahci.c projects/calloutng/sys/dev/ahci/ahci.h projects/calloutng/sys/dev/ata/ata-all.c projects/calloutng/sys/dev/ata/ata-lowlevel.c projects/calloutng/sys/dev/ath/ath_hal/ah.c projects/calloutng/sys/dev/ath/ath_hal/ah.h projects/calloutng/sys/dev/ath/ath_hal/ah_desc.h projects/calloutng/sys/dev/ath/ath_hal/ah_internal.h projects/calloutng/sys/dev/ath/ath_hal/ar5210/ar5210.h projects/calloutng/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c projects/calloutng/sys/dev/ath/ath_hal/ar5210/ar5210_xmit.c projects/calloutng/sys/dev/ath/ath_hal/ar5211/ar5211.h projects/calloutng/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c projects/calloutng/sys/dev/ath/ath_hal/ar5211/ar5211_xmit.c projects/calloutng/sys/dev/ath/ath_hal/ar5212/ar5212.h projects/calloutng/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c projects/calloutng/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c projects/calloutng/sys/dev/ath/ath_hal/ar5416/ar5416.h projects/calloutng/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c projects/calloutng/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c projects/calloutng/sys/dev/ath/ath_rate/amrr/amrr.c projects/calloutng/sys/dev/ath/ath_rate/onoe/onoe.c projects/calloutng/sys/dev/ath/ath_rate/sample/sample.c projects/calloutng/sys/dev/ath/ath_rate/sample/sample.h projects/calloutng/sys/dev/ath/if_ath.c projects/calloutng/sys/dev/ath/if_ath_ahb.c projects/calloutng/sys/dev/ath/if_ath_beacon.c projects/calloutng/sys/dev/ath/if_ath_misc.h projects/calloutng/sys/dev/ath/if_ath_pci.c projects/calloutng/sys/dev/ath/if_ath_rx.c projects/calloutng/sys/dev/ath/if_ath_rx_edma.c projects/calloutng/sys/dev/ath/if_ath_sysctl.c projects/calloutng/sys/dev/ath/if_ath_tx.c projects/calloutng/sys/dev/ath/if_ath_tx.h projects/calloutng/sys/dev/ath/if_ath_tx_ht.c projects/calloutng/sys/dev/ath/if_athioctl.h projects/calloutng/sys/dev/ath/if_athrate.h projects/calloutng/sys/dev/ath/if_athvar.h projects/calloutng/sys/dev/cesa/cesa.c projects/calloutng/sys/dev/e1000/if_igb.c projects/calloutng/sys/dev/e1000/if_lem.c projects/calloutng/sys/dev/isp/isp.c projects/calloutng/sys/dev/isp/isp_freebsd.c projects/calloutng/sys/dev/isp/isp_freebsd.h projects/calloutng/sys/dev/isp/isp_library.c projects/calloutng/sys/dev/isp/isp_library.h projects/calloutng/sys/dev/isp/isp_pci.c projects/calloutng/sys/dev/isp/isp_sbus.c projects/calloutng/sys/dev/isp/isp_stds.h projects/calloutng/sys/dev/isp/isp_target.c projects/calloutng/sys/dev/isp/isp_target.h projects/calloutng/sys/dev/isp/ispmbox.h projects/calloutng/sys/dev/isp/ispvar.h projects/calloutng/sys/dev/ispfw/asm_2300.h projects/calloutng/sys/dev/md/md.c projects/calloutng/sys/dev/mge/if_mge.c projects/calloutng/sys/dev/mii/e1000phy.c projects/calloutng/sys/dev/mlx/mlxvar.h projects/calloutng/sys/dev/mps/mps.c projects/calloutng/sys/dev/mps/mps_sas.c projects/calloutng/sys/dev/mps/mps_sas_lsi.c projects/calloutng/sys/dev/mps/mps_table.c projects/calloutng/sys/dev/mps/mps_user.c projects/calloutng/sys/dev/mps/mpsvar.h projects/calloutng/sys/dev/mvs/mvs_soc.c projects/calloutng/sys/dev/netmap/if_em_netmap.h projects/calloutng/sys/dev/netmap/if_igb_netmap.h projects/calloutng/sys/dev/netmap/ixgbe_netmap.h projects/calloutng/sys/dev/netmap/netmap.c projects/calloutng/sys/dev/netmap/netmap_kern.h projects/calloutng/sys/dev/netmap/netmap_mem2.c projects/calloutng/sys/dev/pccbb/pccbb_pci.c projects/calloutng/sys/dev/puc/puc_cfg.h projects/calloutng/sys/dev/puc/pucdata.c projects/calloutng/sys/dev/sdhci/sdhci.c projects/calloutng/sys/dev/spibus/spi.h projects/calloutng/sys/dev/spibus/spibus.c projects/calloutng/sys/dev/sym/sym_hipd.c projects/calloutng/sys/dev/usb/controller/at91dci_atmelarm.c projects/calloutng/sys/dev/usb/controller/ohci_atmelarm.c projects/calloutng/sys/dev/usb/controller/xhci_pci.c projects/calloutng/sys/dev/usb/controller/xhcireg.h projects/calloutng/sys/dev/usb/quirk/usb_quirk.c projects/calloutng/sys/dev/usb/serial/u3g.c projects/calloutng/sys/dev/usb/serial/uplcom.c projects/calloutng/sys/dev/usb/serial/uslcom.c projects/calloutng/sys/dev/usb/usbdevs projects/calloutng/sys/dev/wtap/if_wtap.c projects/calloutng/sys/fs/cd9660/cd9660_vfsops.c projects/calloutng/sys/fs/ext2fs/ext2_vfsops.c projects/calloutng/sys/fs/fifofs/fifo_vnops.c projects/calloutng/sys/fs/msdosfs/msdosfs_lookup.c projects/calloutng/sys/fs/portalfs/portal_vnops.c projects/calloutng/sys/fs/smbfs/smbfs_node.c projects/calloutng/sys/fs/udf/udf_vfsops.c projects/calloutng/sys/geom/gate/g_gate.c projects/calloutng/sys/geom/geom.h projects/calloutng/sys/geom/geom_dev.c projects/calloutng/sys/geom/geom_disk.c projects/calloutng/sys/geom/geom_disk.h projects/calloutng/sys/geom/geom_event.c projects/calloutng/sys/geom/geom_io.c projects/calloutng/sys/geom/geom_slice.c projects/calloutng/sys/geom/geom_subr.c projects/calloutng/sys/geom/multipath/g_multipath.c projects/calloutng/sys/geom/part/g_part.c projects/calloutng/sys/gnu/fs/reiserfs/reiserfs_vfsops.c projects/calloutng/sys/i386/i386/machdep.c projects/calloutng/sys/i386/i386/pmap.c projects/calloutng/sys/i386/i386/ptrace_machdep.c projects/calloutng/sys/i386/i386/trap.c projects/calloutng/sys/i386/i386/vm86.c projects/calloutng/sys/i386/i386/vm_machdep.c projects/calloutng/sys/i386/include/cpufunc.h projects/calloutng/sys/i386/include/npx.h projects/calloutng/sys/i386/include/pcpu.h projects/calloutng/sys/i386/isa/npx.c projects/calloutng/sys/i386/linux/linux_proto.h projects/calloutng/sys/i386/linux/linux_syscall.h projects/calloutng/sys/i386/linux/linux_syscalls.c projects/calloutng/sys/i386/linux/linux_sysent.c projects/calloutng/sys/i386/linux/linux_systrace_args.c projects/calloutng/sys/i386/linux/syscalls.master projects/calloutng/sys/kern/imgact_aout.c projects/calloutng/sys/kern/imgact_elf.c projects/calloutng/sys/kern/kern_clocksource.c projects/calloutng/sys/kern/kern_descrip.c projects/calloutng/sys/kern/kern_ktr.c projects/calloutng/sys/kern/kern_malloc.c projects/calloutng/sys/kern/kern_proc.c projects/calloutng/sys/kern/kern_tc.c projects/calloutng/sys/kern/sys_pipe.c projects/calloutng/sys/kern/vfs_syscalls.c projects/calloutng/sys/kern/vfs_vnops.c projects/calloutng/sys/mips/mips/pmap.c projects/calloutng/sys/modules/ahci/Makefile projects/calloutng/sys/modules/ath/Makefile projects/calloutng/sys/modules/cam/Makefile projects/calloutng/sys/net/flowtable.c projects/calloutng/sys/net/if_llatbl.c projects/calloutng/sys/net/if_llatbl.h projects/calloutng/sys/net/if_loop.c projects/calloutng/sys/net/if_var.h projects/calloutng/sys/net80211/ieee80211_hwmp.c projects/calloutng/sys/netgraph/ng_ether.c projects/calloutng/sys/netgraph/ng_pptpgre.c projects/calloutng/sys/netinet/if_ether.c projects/calloutng/sys/netinet/in.c projects/calloutng/sys/netinet/in_cksum.c projects/calloutng/sys/netinet/in_var.h projects/calloutng/sys/netinet/ip_carp.c projects/calloutng/sys/netinet/ip_output.c projects/calloutng/sys/netinet/ipfw/ip_dummynet.c projects/calloutng/sys/netinet/ipfw/ip_fw2.c projects/calloutng/sys/netinet/ipfw/ip_fw_dynamic.c projects/calloutng/sys/netinet/ipfw/ip_fw_log.c projects/calloutng/sys/netinet/sctp_asconf.c projects/calloutng/sys/netinet/sctp_output.c projects/calloutng/sys/netinet/sctp_pcb.c projects/calloutng/sys/netinet/sctp_uio.h projects/calloutng/sys/netinet/sctp_usrreq.c projects/calloutng/sys/netinet/sctputil.c projects/calloutng/sys/netinet/tcp_input.c projects/calloutng/sys/netinet/tcp_output.c projects/calloutng/sys/netinet6/in6.c projects/calloutng/sys/netinet6/ip6_ipsec.c projects/calloutng/sys/netinet6/ip6_output.c projects/calloutng/sys/netinet6/sctp6_usrreq.c projects/calloutng/sys/netipsec/ipsec_output.c projects/calloutng/sys/powerpc/powerpc/busdma_machdep.c projects/calloutng/sys/sys/fcntl.h projects/calloutng/sys/sys/pipe.h projects/calloutng/sys/sys/refcount.h projects/calloutng/sys/sys/stat.h projects/calloutng/sys/sys/user.h projects/calloutng/sys/ufs/ffs/ffs_snapshot.c projects/calloutng/sys/ufs/ffs/ffs_vfsops.c projects/calloutng/sys/vm/memguard.c projects/calloutng/sys/vm/memguard.h projects/calloutng/sys/vm/vm_kern.c projects/calloutng/sys/vm/vm_map.h projects/calloutng/sys/vm/vm_page.c projects/calloutng/sys/vm/vm_page.h projects/calloutng/sys/vm/vm_pageout.c projects/calloutng/sys/vm/vm_pageout.h projects/calloutng/sys/vm/vm_reserv.c projects/calloutng/sys/x86/x86/busdma_machdep.c projects/calloutng/sys/x86/x86/local_apic.c projects/calloutng/sys/x86/x86/tsc.c projects/calloutng/tools/build/mk/OptionalObsoleteFiles.inc projects/calloutng/tools/tools/ath/Makefile projects/calloutng/tools/tools/ath/common/diag.h projects/calloutng/tools/tools/sysbuild/sysbuild.sh projects/calloutng/usr.bin/Makefile projects/calloutng/usr.bin/calendar/calendars/calendar.freebsd projects/calloutng/usr.bin/cpio/Makefile projects/calloutng/usr.bin/cpio/test/Makefile projects/calloutng/usr.bin/du/du.1 projects/calloutng/usr.bin/du/du.c projects/calloutng/usr.bin/find/extern.h projects/calloutng/usr.bin/find/find.1 projects/calloutng/usr.bin/find/find.c projects/calloutng/usr.bin/find/function.c projects/calloutng/usr.bin/find/main.c projects/calloutng/usr.bin/find/option.c projects/calloutng/usr.bin/netstat/Makefile projects/calloutng/usr.bin/netstat/sctp.c projects/calloutng/usr.bin/nfsstat/nfsstat.c projects/calloutng/usr.bin/procstat/procstat.1 projects/calloutng/usr.bin/procstat/procstat_vm.c projects/calloutng/usr.bin/script/script.1 projects/calloutng/usr.bin/script/script.c projects/calloutng/usr.bin/tar/Makefile projects/calloutng/usr.bin/tar/test/Makefile projects/calloutng/usr.sbin/ipfwpcap/ipfwpcap.8 projects/calloutng/usr.sbin/lpr/common_source/common.c projects/calloutng/usr.sbin/wpa/hostapd/hostapd.8 Directory Properties: projects/calloutng/ (props changed) projects/calloutng/cddl/contrib/opensolaris/ (props changed) projects/calloutng/cddl/contrib/opensolaris/lib/libzfs/ (props changed) projects/calloutng/contrib/bind9/ (props changed) projects/calloutng/contrib/dtc/ (props changed) projects/calloutng/contrib/groff/ (props changed) projects/calloutng/contrib/less/ (props changed) projects/calloutng/contrib/libarchive/ (props changed) projects/calloutng/contrib/libarchive/cpio/ (props changed) projects/calloutng/contrib/libarchive/libarchive/ (props changed) projects/calloutng/contrib/libarchive/libarchive_fe/ (props changed) projects/calloutng/contrib/libarchive/tar/ (props changed) projects/calloutng/contrib/llvm/ (props changed) projects/calloutng/contrib/llvm/tools/clang/ (props changed) projects/calloutng/lib/libc/ (props changed) projects/calloutng/sbin/ (props changed) projects/calloutng/sbin/ipfw/ (props changed) projects/calloutng/share/man/man4/ (props changed) projects/calloutng/sys/ (props changed) projects/calloutng/sys/boot/ (props changed) projects/calloutng/sys/cddl/contrib/opensolaris/ (props changed) projects/calloutng/sys/conf/ (props changed) projects/calloutng/sys/contrib/libfdt/ (props changed) projects/calloutng/sys/contrib/pf/ (props changed) projects/calloutng/usr.bin/calendar/ (props changed) projects/calloutng/usr.bin/procstat/ (props changed) Modified: projects/calloutng/Makefile.inc1 ============================================================================== --- projects/calloutng/Makefile.inc1 Fri Aug 3 16:04:35 2012 (r239017) +++ projects/calloutng/Makefile.inc1 Fri Aug 3 16:18:20 2012 (r239018) @@ -1260,7 +1260,7 @@ _prebuild_libs= ${_kerberos5_lib_libasn1 lib/ncurses/ncurses lib/ncurses/ncursesw \ lib/libopie lib/libpam ${_lib_libthr} \ lib/libradius lib/libsbuf lib/libtacplus \ - ${_cddl_lib_libumem} \ + ${_cddl_lib_libumem} ${_cddl_lib_libnvpair} \ lib/libutil ${_lib_libypclnt} lib/libz lib/msun \ ${_secure_lib_libcrypto} ${_secure_lib_libssh} \ ${_secure_lib_libssl} @@ -1284,6 +1284,7 @@ lib/libopie__L lib/libtacplus__L: lib/li .if ${MK_CDDL} != "no" _cddl_lib_libumem= cddl/lib/libumem +_cddl_lib_libnvpair= cddl/lib/libnvpair _cddl_lib= cddl/lib .endif Modified: projects/calloutng/ObsoleteFiles.inc ============================================================================== --- projects/calloutng/ObsoleteFiles.inc Fri Aug 3 16:04:35 2012 (r239017) +++ projects/calloutng/ObsoleteFiles.inc Fri Aug 3 16:18:20 2012 (r239018) @@ -1358,6 +1358,11 @@ OLD_FILES+=usr/share/man/man2/kse_thr_in OLD_FILES+=usr/share/man/man2/kse_wakeup.2.gz OLD_FILES+=usr/lib32/libkse.so OLD_LIBS+=usr/lib32/libkse.so.3 +# 20080225: bsdar/bsdranlib rename to ar/ranlib +OLD_FILES+=usr/bin/bsdar +OLD_FILES+=usr/bin/bsdranlib +OLD_FILES+=usr/share/man/man1/bsdar.1.gz +OLD_FILES+=usr/share/man/man1/bsdranlib.1.gz # 20080220: geom_lvm rename to geom_linux_lvm OLD_FILES+=usr/share/man/man4/geom_lvm.4.gz # 20080126: oldcard.4 removal Modified: projects/calloutng/UPDATING ============================================================================== --- projects/calloutng/UPDATING Fri Aug 3 16:04:35 2012 (r239017) +++ projects/calloutng/UPDATING Fri Aug 3 16:18:20 2012 (r239018) @@ -24,6 +24,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20120727: + The sparc64 ZFS loader has been changed to no longer try to auto- + detect ZFS providers based on diskN aliases but now requires these + to be explicitly listed in the OFW boot-device environment variable. + 20120712: The OpenSSL has been upgraded to 1.0.1c. Any binaries requiring libcrypto.so.6 or libssl.so.6 must be recompiled. Also, there are Modified: projects/calloutng/bin/cat/cat.c ============================================================================== --- projects/calloutng/bin/cat/cat.c Fri Aug 3 16:04:35 2012 (r239017) +++ projects/calloutng/bin/cat/cat.c Fri Aug 3 16:18:20 2012 (r239018) @@ -58,11 +58,11 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include #include -#include static int bflag, eflag, nflag, sflag, tflag, vflag; static int rval; @@ -77,16 +77,20 @@ static void raw_cat(int); static int udom_open(const char *path, int flags); #endif -/* Memory strategy threshold, in pages: if physmem is larger then this, use a - * large buffer */ -#define PHYSPAGES_THRESHOLD (32*1024) - -/* Maximum buffer size in bytes - do not allow it to grow larger than this */ -#define BUFSIZE_MAX (2*1024*1024) - -/* Small (default) buffer size in bytes. It's inefficient for this to be - * smaller than MAXPHYS */ -#define BUFSIZE_SMALL (MAXPHYS) +/* + * Memory strategy threshold, in pages: if physmem is larger than this, + * use a large buffer. + */ +#define PHYSPAGES_THRESHOLD (32 * 1024) + +/* Maximum buffer size in bytes - do not allow it to grow larger than this. */ +#define BUFSIZE_MAX (2 * 1024 * 1024) + +/* + * Small (default) buffer size in bytes. It's inefficient for this to be + * smaller than MAXPHYS. + */ +#define BUFSIZE_SMALL (MAXPHYS) int main(int argc, char *argv[]) @@ -144,13 +148,12 @@ usage(void) static void scanfiles(char *argv[], int cooked) { - int i = 0; + int fd, i; char *path; FILE *fp; + i = 0; while ((path = argv[i]) != NULL || i == 0) { - int fd; - if (path == NULL || strcmp(path, "-") == 0) { filename = "stdin"; fd = STDIN_FILENO; @@ -257,16 +260,16 @@ raw_cat(int rfd) wfd = fileno(stdout); if (buf == NULL) { if (fstat(wfd, &sbuf)) - err(1, "%s", filename); + err(1, "stdout"); if (S_ISREG(sbuf.st_mode)) { /* If there's plenty of RAM, use a large copy buffer */ if (sysconf(_SC_PHYS_PAGES) > PHYSPAGES_THRESHOLD) - bsize = MIN(BUFSIZE_MAX, MAXPHYS*8); + bsize = MIN(BUFSIZE_MAX, MAXPHYS * 8); else bsize = BUFSIZE_SMALL; } else - bsize = MAX(sbuf.st_blksize, - (blksize_t)sysconf(_SC_PAGESIZE)); + bsize = MAX(sbuf.st_blksize, + (blksize_t)sysconf(_SC_PAGESIZE)); if ((buf = malloc(bsize)) == NULL) err(1, "malloc() failure of IO buffer"); } @@ -327,7 +330,7 @@ udom_open(const char *path, int flags) break; } } - return(fd); + return (fd); } #endif Modified: projects/calloutng/bin/sh/jobs.c ============================================================================== --- projects/calloutng/bin/sh/jobs.c Fri Aug 3 16:04:35 2012 (r239017) +++ projects/calloutng/bin/sh/jobs.c Fri Aug 3 16:18:20 2012 (r239018) @@ -87,6 +87,10 @@ int in_waitcmd = 0; /* are we in waitcm volatile sig_atomic_t breakwaitcmd = 0; /* should wait be terminated? */ static int ttyfd = -1; +/* mode flags for dowait */ +#define DOWAIT_BLOCK 0x1 /* wait until a child exits */ +#define DOWAIT_SIG 0x2 /* if DOWAIT_BLOCK, abort on signals */ + #if JOBS static void restartjob(struct job *); #endif @@ -94,7 +98,6 @@ static void freejob(struct job *); static struct job *getjob(char *); pid_t getjobpgrp(char *); static pid_t dowait(int, struct job *); -static pid_t waitproc(int, int *); static void checkzombies(void); static void cmdtxt(union node *); static void cmdputs(const char *); @@ -519,7 +522,7 @@ waitcmd(int argc, char **argv) break; } } - } while (dowait(1, (struct job *)NULL) != -1); + } while (dowait(DOWAIT_BLOCK | DOWAIT_SIG, (struct job *)NULL) != -1); in_waitcmd--; return 0; @@ -966,7 +969,7 @@ waitforjob(struct job *jp, int *origstat INTOFF; TRACE(("waitforjob(%%%td) called\n", jp - jobtab + 1)); while (jp->state == 0) - if (dowait(1, jp) == -1) + if (dowait(DOWAIT_BLOCK | (Tflag ? DOWAIT_SIG : 0), jp) == -1) dotrap(); #if JOBS if (jp->jobctl) { @@ -1004,14 +1007,20 @@ waitforjob(struct job *jp, int *origstat } +static void +dummy_handler(int sig) +{ +} /* * Wait for a process to terminate. */ static pid_t -dowait(int block, struct job *job) +dowait(int mode, struct job *job) { + struct sigaction sa, osa; + sigset_t mask, omask; pid_t pid; int status; struct procstat *sp; @@ -1021,15 +1030,49 @@ dowait(int block, struct job *job) int stopped; int sig; int coredump; + int wflags; + int restore_sigchld; TRACE(("dowait(%d) called\n", block)); + restore_sigchld = 0; + if ((mode & DOWAIT_SIG) != 0) { + sigfillset(&mask); + sigprocmask(SIG_BLOCK, &mask, &omask); + INTOFF; + if (!issigchldtrapped()) { + restore_sigchld = 1; + sa.sa_handler = dummy_handler; + sa.sa_flags = 0; + sigemptyset(&sa.sa_mask); + sigaction(SIGCHLD, &sa, &osa); + } + } do { - pid = waitproc(block, &status); +#if JOBS + if (iflag) + wflags = WUNTRACED | WCONTINUED; + else +#endif + wflags = 0; + if ((mode & (DOWAIT_BLOCK | DOWAIT_SIG)) != DOWAIT_BLOCK) + wflags |= WNOHANG; + pid = wait3(&status, wflags, (struct rusage *)NULL); TRACE(("wait returns %d, status=%d\n", (int)pid, status)); - } while ((pid == -1 && errno == EINTR && breakwaitcmd == 0) || - (pid > 0 && WIFSTOPPED(status) && !iflag)); + if (pid == 0 && (mode & DOWAIT_SIG) != 0) { + sigsuspend(&omask); + pid = -1; + if (int_pending()) + break; + } + } while (pid == -1 && errno == EINTR && breakwaitcmd == 0); if (pid == -1 && errno == ECHILD && job != NULL) job->state = JOBDONE; + if ((mode & DOWAIT_SIG) != 0) { + if (restore_sigchld) + sigaction(SIGCHLD, &osa, NULL); + sigprocmask(SIG_SETMASK, &omask, NULL); + INTON; + } if (breakwaitcmd != 0) { breakwaitcmd = 0; if (pid <= 0) @@ -1050,7 +1093,11 @@ dowait(int block, struct job *job) TRACE(("Changing status of proc %d from 0x%x to 0x%x\n", (int)pid, sp->status, status)); - sp->status = status; + if (WIFCONTINUED(status)) { + sp->status = -1; + jp->state = 0; + } else + sp->status = status; thisjob = jp; } if (sp->status == -1) @@ -1108,26 +1155,6 @@ dowait(int block, struct job *job) /* - * Do a wait system call. If job control is compiled in, we accept - * stopped processes. If block is zero, we return a value of zero - * rather than blocking. - */ -static pid_t -waitproc(int block, int *status) -{ - int flags; - -#if JOBS - flags = WUNTRACED; -#else - flags = 0; -#endif - if (block == 0) - flags |= WNOHANG; - return wait3(status, flags, (struct rusage *)NULL); -} - -/* * return 1 if there are stopped jobs, otherwise 0 */ int job_warning = 0; Modified: projects/calloutng/bin/sh/trap.c ============================================================================== --- projects/calloutng/bin/sh/trap.c Fri Aug 3 16:04:35 2012 (r239017) +++ projects/calloutng/bin/sh/trap.c Fri Aug 3 16:18:20 2012 (r239018) @@ -368,6 +368,14 @@ ignoresig(int signo) } +int +issigchldtrapped(void) +{ + + return (trap[SIGCHLD] != NULL && *trap[SIGCHLD] != '\0'); +} + + /* * Signal handler. */ Modified: projects/calloutng/bin/sh/trap.h ============================================================================== --- projects/calloutng/bin/sh/trap.h Fri Aug 3 16:04:35 2012 (r239017) +++ projects/calloutng/bin/sh/trap.h Fri Aug 3 16:18:20 2012 (r239018) @@ -41,6 +41,7 @@ void clear_traps(void); int have_traps(void); void setsignal(int); void ignoresig(int); +int issigchldtrapped(void); void onsig(int); void dotrap(void); void setinteractive(int); Modified: projects/calloutng/bin/stty/extern.h ============================================================================== --- projects/calloutng/bin/stty/extern.h Fri Aug 3 16:04:35 2012 (r239017) +++ projects/calloutng/bin/stty/extern.h Fri Aug 3 16:18:20 2012 (r239018) @@ -40,6 +40,6 @@ int ksearch(char ***, struct info *); int msearch(char ***, struct info *); void optlist(void); void print(struct termios *, struct winsize *, int, enum FMT); -void usage(void); +void usage(void) __dead2; extern struct cchar cchars1[], cchars2[]; Copied: projects/calloutng/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh (from r239017, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/calloutng/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh Fri Aug 3 16:18:20 2012 (r239018, copy of r239017, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh) @@ -0,0 +1,76 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# + +# +# Copyright (c) 2011, Joyent Inc. All rights reserved. +# Use is subject to license terms. +# + +# +# Test to catch that we properly look for libraries dependencies in +# our full library parth +# + +if [ $# != 1 ]; then + echo expected one argument: '<'dtrace-path'>' + exit 2 +fi + +libdira=${TMPDIR:-/tmp}/libdepa.$$ +libdirb=${TMPDIR:-/tmp}/libdepb.$$ +libdirc=${TMPDIR:-/tmp}/libdepc.$$ +dtrace=$1 + +setup_libs() +{ + mkdir $libdira + mkdir $libdirb + mkdir $libdirc + cat > $libdira/liba.$$.d < $libdirb/libb.$$.d < $libdirb/libc.$$.d < $libdirb/libd.$$.d < $libdirc/libe.$$.d < $libdirc/libf.$$.d <vs_state == VDEV_STATE_HEALTHY) { - if (reason == ZPOOL_STATUS_VERSION_OLDER) + if (reason == ZPOOL_STATUS_VERSION_OLDER || + reason == ZPOOL_STATUS_FEAT_DISABLED) { (void) printf(gettext(" action: The pool can be " "imported using its name or numeric identifier, " "though\n\tsome features will not be available " "without an explicit 'zpool upgrade'.\n")); - else if (reason == ZPOOL_STATUS_HOSTID_MISMATCH) + } else if (reason == ZPOOL_STATUS_HOSTID_MISMATCH) { (void) printf(gettext(" action: The pool can be " "imported using its name or numeric " "identifier and\n\tthe '-f' flag.\n")); - else + } else { (void) printf(gettext(" action: The pool can be " "imported using its name or numeric " "identifier.\n")); + } } else if (vs->vs_state == VDEV_STATE_DEGRADED) { (void) printf(gettext(" action: The pool can be imported " "despite missing or damaged devices. The\n\tfault " @@ -4108,12 +4145,13 @@ status_callback(zpool_handle_t *zhp, voi break; case ZPOOL_STATUS_VERSION_OLDER: - (void) printf(gettext("status: The pool is formatted using an " - "older on-disk format. The pool can\n\tstill be used, but " - "some features are unavailable.\n")); + (void) printf(gettext("status: The pool is formatted using a " + "legacy on-disk format. The pool can\n\tstill be used, " + "but some features are unavailable.\n")); (void) printf(gettext("action: Upgrade the pool using 'zpool " "upgrade'. Once this is done, the\n\tpool will no longer " - "be accessible on older software versions.\n")); + "be accessible on software that does not support feature\n" + "\tflags.\n")); break; case ZPOOL_STATUS_VERSION_NEWER: @@ -4125,6 +4163,16 @@ status_callback(zpool_handle_t *zhp, voi "backup.\n")); break; + case ZPOOL_STATUS_FEAT_DISABLED: + (void) printf(gettext("status: Some supported features are not " + "enabled on the pool. The pool can\n\tstill be used, but " + "some features are unavailable.\n")); + (void) printf(gettext("action: Enable all features using " + "'zpool upgrade'. Once this is done,\n\tthe pool may no " + "longer be accessible by software that does not support\n\t" + "the features. See zpool-features(5) for details.\n")); + break; + case ZPOOL_STATUS_UNSUP_FEAT_READ: (void) printf(gettext("status: The pool cannot be accessed on " "this system because it uses the\n\tfollowing feature(s) " @@ -4354,15 +4402,14 @@ zpool_do_status(int argc, char **argv) } typedef struct upgrade_cbdata { - int cb_all; int cb_first; - int cb_newer; char cb_poolname[ZPOOL_MAXNAMELEN]; int cb_argc; uint64_t cb_version; char **cb_argv; } upgrade_cbdata_t; +#ifdef __FreeBSD__ static int is_root_pool(zpool_handle_t *zhp) { @@ -4388,56 +4435,161 @@ is_root_pool(zpool_handle_t *zhp) return (poolname != NULL && strcmp(poolname, zpool_get_name(zhp)) == 0); } +static void +root_pool_upgrade_check(zpool_handle_t *zhp, char *poolname, int size) { + + if (poolname[0] == '\0' && is_root_pool(zhp)) + (void) strlcpy(poolname, zpool_get_name(zhp), size); +} +#endif /* FreeBSD */ + +static int +upgrade_version(zpool_handle_t *zhp, uint64_t version) +{ + int ret; + nvlist_t *config; + uint64_t oldversion; + + config = zpool_get_config(zhp, NULL); + verify(nvlist_lookup_uint64(config, ZPOOL_CONFIG_VERSION, + &oldversion) == 0); + + assert(SPA_VERSION_IS_SUPPORTED(oldversion)); + assert(oldversion < version); + + ret = zpool_upgrade(zhp, version); + if (ret != 0) + return (ret); + + if (version >= SPA_VERSION_FEATURES) { + (void) printf(gettext("Successfully upgraded " + "'%s' from version %llu to feature flags.\n"), + zpool_get_name(zhp), oldversion); + } else { + (void) printf(gettext("Successfully upgraded " + "'%s' from version %llu to version %llu.\n"), + zpool_get_name(zhp), oldversion, version); + } + + return (0); +} + +static int +upgrade_enable_all(zpool_handle_t *zhp, int *countp) +{ + int i, ret, count; + boolean_t firstff = B_TRUE; + nvlist_t *enabled = zpool_get_features(zhp); + + count = 0; + for (i = 0; i < SPA_FEATURES; i++) { + const char *fname = spa_feature_table[i].fi_uname; + const char *fguid = spa_feature_table[i].fi_guid; + if (!nvlist_exists(enabled, fguid)) { + char *propname; + verify(-1 != asprintf(&propname, "feature@%s", fname)); + ret = zpool_set_prop(zhp, propname, + ZFS_FEATURE_ENABLED); + if (ret != 0) { + free(propname); + return (ret); + } + count++; + + if (firstff) { + (void) printf(gettext("Enabled the " + "following features on '%s':\n"), + zpool_get_name(zhp)); + firstff = B_FALSE; + } + (void) printf(gettext(" %s\n"), fname); + free(propname); + } + } + + if (countp != NULL) + *countp = count; + return (0); +} + static int upgrade_cb(zpool_handle_t *zhp, void *arg) { upgrade_cbdata_t *cbp = arg; nvlist_t *config; uint64_t version; - int ret = 0; + boolean_t printnl = B_FALSE; + int ret; config = zpool_get_config(zhp, NULL); verify(nvlist_lookup_uint64(config, ZPOOL_CONFIG_VERSION, &version) == 0); - if (!cbp->cb_newer && SPA_VERSION_IS_SUPPORTED(version) && - version != SPA_VERSION) { - if (!cbp->cb_all) { - if (cbp->cb_first) { - (void) printf(gettext("The following pools are " - "out of date, and can be upgraded. After " - "being\nupgraded, these pools will no " - "longer be accessible by older software " - "versions.\n\n")); - (void) printf(gettext("VER POOL\n")); - (void) printf(gettext("--- ------------\n")); - cbp->cb_first = B_FALSE; - } + assert(SPA_VERSION_IS_SUPPORTED(version)); - (void) printf("%2llu %s\n", (u_longlong_t)version, - zpool_get_name(zhp)); - } else { + if (version < cbp->cb_version) { + cbp->cb_first = B_FALSE; + ret = upgrade_version(zhp, cbp->cb_version); + if (ret != 0) + return (ret); +#ifdef __FreeBSD__ + root_pool_upgrade_check(zhp, cbp->cb_poolname, + sizeof(cbp->cb_poolname)); +#endif /* ___FreeBSD__ */ + printnl = B_TRUE; + +#ifdef illumos + /* + * If they did "zpool upgrade -a", then we could + * be doing ioctls to different pools. We need + * to log this history once to each pool, and bypass + * the normal history logging that happens in main(). + */ + (void) zpool_log_history(g_zfs, history_str); + log_history = B_FALSE; +#endif + } + + if (cbp->cb_version >= SPA_VERSION_FEATURES) { + int count; + ret = upgrade_enable_all(zhp, &count); + if (ret != 0) + return (ret); + + if (count > 0) { cbp->cb_first = B_FALSE; - ret = zpool_upgrade(zhp, cbp->cb_version); - if (!ret) { - (void) printf(gettext("Successfully upgraded " - "'%s'\n\n"), zpool_get_name(zhp)); - if (cbp->cb_poolname[0] == '\0' && - is_root_pool(zhp)) { - (void) strlcpy(cbp->cb_poolname, - zpool_get_name(zhp), - sizeof(cbp->cb_poolname)); - } - } + printnl = B_TRUE; } - } else if (cbp->cb_newer && !SPA_VERSION_IS_SUPPORTED(version)) { - assert(!cbp->cb_all); + } + + if (printnl) { + (void) printf(gettext("\n")); + } + + return (0); +} + +static int +upgrade_list_older_cb(zpool_handle_t *zhp, void *arg) +{ + upgrade_cbdata_t *cbp = arg; + nvlist_t *config; + uint64_t version; + + config = zpool_get_config(zhp, NULL); + verify(nvlist_lookup_uint64(config, ZPOOL_CONFIG_VERSION, + &version) == 0); + + assert(SPA_VERSION_IS_SUPPORTED(version)); + if (version < SPA_VERSION_FEATURES) { if (cbp->cb_first) { (void) printf(gettext("The following pools are " - "formatted using an unsupported software version " - "and\ncannot be accessed on the current " - "system.\n\n")); + "formatted with legacy version numbers and can\n" + "be upgraded to use feature flags. After " + "being upgraded, these pools\nwill no " + "longer be accessible by software that does not " + "support feature\nflags.\n\n")); (void) printf(gettext("VER POOL\n")); (void) printf(gettext("--- ------------\n")); cbp->cb_first = B_FALSE; @@ -4447,14 +4599,65 @@ upgrade_cb(zpool_handle_t *zhp, void *ar zpool_get_name(zhp)); } - zpool_close(zhp); - return (ret); + return (0); +} + +static int +upgrade_list_disabled_cb(zpool_handle_t *zhp, void *arg) +{ + upgrade_cbdata_t *cbp = arg; + nvlist_t *config; + uint64_t version; + + config = zpool_get_config(zhp, NULL); + verify(nvlist_lookup_uint64(config, ZPOOL_CONFIG_VERSION, + &version) == 0); + + if (version >= SPA_VERSION_FEATURES) { + int i; + boolean_t poolfirst = B_TRUE; + nvlist_t *enabled = zpool_get_features(zhp); + + for (i = 0; i < SPA_FEATURES; i++) { + const char *fguid = spa_feature_table[i].fi_guid; + const char *fname = spa_feature_table[i].fi_uname; + if (!nvlist_exists(enabled, fguid)) { + if (cbp->cb_first) { + (void) printf(gettext("\nSome " + "supported features are not " + "enabled on the following pools. " + "Once a\nfeature is enabled the " + "pool may become incompatible with " + "software\nthat does not support " + "the feature. See " + "zpool-features(5) for " + "details.\n\n")); + (void) printf(gettext("POOL " + "FEATURE\n")); + (void) printf(gettext("------" + "---------\n")); + cbp->cb_first = B_FALSE; + } + + if (poolfirst) { + (void) printf(gettext("%s\n"), + zpool_get_name(zhp)); + poolfirst = B_FALSE; + } + + (void) printf(gettext(" %s\n"), fname); + } + } + } + + return (0); } /* ARGSUSED */ static int upgrade_one(zpool_handle_t *zhp, void *data) { + boolean_t printnl = B_FALSE; upgrade_cbdata_t *cbp = data; uint64_t cur_version; int ret; @@ -4469,30 +4672,53 @@ upgrade_one(zpool_handle_t *zhp, void *d cur_version = zpool_get_prop_int(zhp, ZPOOL_PROP_VERSION, NULL); if (cur_version > cbp->cb_version) { (void) printf(gettext("Pool '%s' is already formatted " - "using more current version '%llu'.\n"), + "using more current version '%llu'.\n\n"), zpool_get_name(zhp), cur_version); return (0); } - if (cur_version == cbp->cb_version) { + + if (cbp->cb_version != SPA_VERSION && cur_version == cbp->cb_version) { (void) printf(gettext("Pool '%s' is already formatted " - "using the current version.\n"), zpool_get_name(zhp)); + "using version %llu.\n\n"), zpool_get_name(zhp), + cbp->cb_version); return (0); } - ret = zpool_upgrade(zhp, cbp->cb_version); + if (cur_version != cbp->cb_version) { + printnl = B_TRUE; + ret = upgrade_version(zhp, cbp->cb_version); + if (ret != 0) + return (ret); +#ifdef __FreeBSD__ + root_pool_upgrade_check(zhp, cbp->cb_poolname, + sizeof(cbp->cb_poolname)); +#endif /* ___FreeBSD__ */ + } + + if (cbp->cb_version >= SPA_VERSION_FEATURES) { + int count = 0; + ret = upgrade_enable_all(zhp, &count); + if (ret != 0) + return (ret); - if (!ret) { - (void) printf(gettext("Successfully upgraded '%s' " - "from version %llu to version %llu\n\n"), - zpool_get_name(zhp), (u_longlong_t)cur_version, - (u_longlong_t)cbp->cb_version); - if (cbp->cb_poolname[0] == '\0' && is_root_pool(zhp)) { - (void) strlcpy(cbp->cb_poolname, zpool_get_name(zhp), + if (count != 0) { + printnl = B_TRUE; +#ifdef __FreeBSD__ + root_pool_upgrade_check(zhp, cbp->cb_poolname, sizeof(cbp->cb_poolname)); +#endif /* __FreeBSD __*/ + } else if (cur_version == SPA_VERSION) { + (void) printf(gettext("Pool '%s' already has all " + "supported features enabled.\n"), + zpool_get_name(zhp)); } } - return (ret != 0); + if (printnl) { + (void) printf(gettext("\n")); + } + + return (0); } /* @@ -4511,6 +4737,7 @@ zpool_do_upgrade(int argc, char **argv) upgrade_cbdata_t cb = { 0 }; int ret = 0; boolean_t showversions = B_FALSE; + boolean_t upgradeall = B_FALSE; char *end; @@ -4518,7 +4745,7 @@ zpool_do_upgrade(int argc, char **argv) while ((c = getopt(argc, argv, ":avV:")) != -1) { switch (c) { case 'a': - cb.cb_all = B_TRUE; + upgradeall = B_TRUE; break; case 'v': showversions = B_TRUE; @@ -4551,19 +4778,19 @@ zpool_do_upgrade(int argc, char **argv) if (cb.cb_version == 0) { cb.cb_version = SPA_VERSION; - } else if (!cb.cb_all && argc == 0) { + } else if (!upgradeall && argc == 0) { (void) fprintf(stderr, gettext("-V option is " "incompatible with other arguments\n")); usage(B_FALSE); } if (showversions) { - if (cb.cb_all || argc != 0) { + if (upgradeall || argc != 0) { (void) fprintf(stderr, gettext("-v option is " "incompatible with other arguments\n")); usage(B_FALSE); } - } else if (cb.cb_all) { + } else if (upgradeall) { if (argc != 0) { (void) fprintf(stderr, gettext("-a option should not " "be used along with a pool name\n")); @@ -4573,9 +4800,25 @@ zpool_do_upgrade(int argc, char **argv) (void) printf(gettext("This system supports ZFS pool feature " *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Fri Aug 3 17:42:23 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx2.freebsd.org (mx2.freebsd.org [69.147.83.53]) by hub.freebsd.org (Postfix) with ESMTP id 82B661065670; Fri, 3 Aug 2012 17:42:23 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from opti.dougb.net (hub.freebsd.org [IPv6:2001:4f8:fff6::36]) by mx2.freebsd.org (Postfix) with ESMTP id 2AA9D14D8C6; Fri, 3 Aug 2012 17:42:23 +0000 (UTC) Message-ID: <501C0D7E.9070700@FreeBSD.org> Date: Fri, 03 Aug 2012 10:42:22 -0700 From: Doug Barton Organization: http://SupersetSolutions.com/ User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:14.0) Gecko/20120728 Thunderbird/14.0 MIME-Version: 1.0 To: attilio@FreeBSD.org References: <201207301350.q6UDobCI099069@svn.freebsd.org> <201207301732.33474.jhb@freebsd.org> <201208021707.22356.jhb@freebsd.org> <20120803174624.K1152@besplex.bde.org> In-Reply-To: X-Enigmail-Version: 1.4.2 OpenPGP: id=1A1ABC84 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: Davide Italiano , src-committers@freebsd.org, John Baldwin , svn-src-projects@freebsd.org, Bruce Evans , Konstantin Belousov Subject: Re: svn commit: r238907 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Aug 2012 17:42:23 -0000 On 08/03/2012 02:18, Attilio Rao wrote: > I tought quickly while I was having shower today Too much information. :) -- I am only one, but I am one. I cannot do everything, but I can do something. And I will not let what I cannot do interfere with what I can do. -- Edward Everett Hale, (1822 - 1909) From owner-svn-src-projects@FreeBSD.ORG Sat Aug 4 02:06:55 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id DB6F9106566C; Sat, 4 Aug 2012 02:06:55 +0000 (UTC) (envelope-from neel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C60A38FC0A; Sat, 4 Aug 2012 02:06:55 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q7426tnJ095756; Sat, 4 Aug 2012 02:06:55 GMT (envelope-from neel@svn.freebsd.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q7426twT095754; Sat, 4 Aug 2012 02:06:55 GMT (envelope-from neel@svn.freebsd.org) Message-Id: <201208040206.q7426twT095754@svn.freebsd.org> From: Neel Natu Date: Sat, 4 Aug 2012 02:06:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r239024 - projects/bhyve/sys/amd64/vmm/intel X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 Aug 2012 02:06:56 -0000 Author: neel Date: Sat Aug 4 02:06:55 2012 New Revision: 239024 URL: http://svn.freebsd.org/changeset/base/239024 Log: Force certain bits in %cr4 to be hard-wired to '1' or '0' from a guest's perspective. If we don't do this some guest OSes (e.g. Linux) will reset the CR4_VMXE bit in %cr4 with disastrous consequences. Reported by: grehan Modified: projects/bhyve/sys/amd64/vmm/intel/vmx.c Modified: projects/bhyve/sys/amd64/vmm/intel/vmx.c ============================================================================== --- projects/bhyve/sys/amd64/vmm/intel/vmx.c Sat Aug 4 00:00:30 2012 (r239023) +++ projects/bhyve/sys/amd64/vmm/intel/vmx.c Sat Aug 4 02:06:55 2012 (r239024) @@ -627,23 +627,38 @@ vmx_vpid(void) } static int -vmx_setup_cr0_shadow(struct vmcs *vmcs) +vmx_setup_cr_shadow(int which, struct vmcs *vmcs) { - int error; - uint64_t mask, shadow; + int error, mask_ident, shadow_ident; + uint64_t mask_value, shadow_value; + + if (which != 0 && which != 4) + panic("vmx_setup_cr_shadow: unknown cr%d", which); + + if (which == 0) { + mask_ident = VMCS_CR0_MASK; + mask_value = cr0_ones_mask | cr0_zeros_mask; + shadow_ident = VMCS_CR0_SHADOW; + shadow_value = cr0_ones_mask; + } else { + mask_ident = VMCS_CR4_MASK; + mask_value = cr4_ones_mask | cr4_zeros_mask; + shadow_ident = VMCS_CR4_SHADOW; + shadow_value = cr4_ones_mask; + } - mask = cr0_ones_mask | cr0_zeros_mask; - error = vmcs_setreg(vmcs, VMCS_IDENT(VMCS_CR0_MASK), mask); + error = vmcs_setreg(vmcs, VMCS_IDENT(mask_ident), mask_value); if (error) return (error); - shadow = cr0_ones_mask; - error = vmcs_setreg(vmcs, VMCS_IDENT(VMCS_CR0_SHADOW), shadow); + error = vmcs_setreg(vmcs, VMCS_IDENT(shadow_ident), shadow_value); if (error) return (error); return (0); } +#define vmx_setup_cr0_shadow(vmcs) vmx_setup_cr_shadow(0, (vmcs)) +#define vmx_setup_cr4_shadow(vmcs) vmx_setup_cr_shadow(4, (vmcs)) static void * vmx_vminit(struct vm *vm) @@ -744,6 +759,12 @@ vmx_vminit(struct vm *vm) panic("vmcs_set_msr_save error %d", error); error = vmx_setup_cr0_shadow(&vmx->vmcs[i]); + if (error != 0) + panic("vmx_setup_cr0_shadow %d", error); + + error = vmx_setup_cr4_shadow(&vmx->vmcs[i]); + if (error != 0) + panic("vmx_setup_cr4_shadow %d", error); } return (vmx); @@ -1031,12 +1052,16 @@ cantinject: static int vmx_emulate_cr_access(struct vmx *vmx, int vcpu, uint64_t exitqual) { - int error; - uint64_t regval; + int error, cr, vmcs_guest_cr; + uint64_t regval, ones_mask, zeros_mask; const struct vmxctx *vmxctx; - /* We only handle mov to %cr0 at this time */ - if ((exitqual & 0xff) != 0x00) + /* We only handle mov to %cr0 or %cr4 at this time */ + if ((exitqual & 0xf0) != 0x00) + return (UNHANDLED); + + cr = exitqual & 0xf; + if (cr != 0 && cr != 4) return (UNHANDLED); vmxctx = &vmx->ctx[vcpu]; @@ -1100,11 +1125,22 @@ vmx_emulate_cr_access(struct vmx *vmx, i break; } - regval |= cr0_ones_mask; - regval &= ~cr0_zeros_mask; - error = vmwrite(VMCS_GUEST_CR0, regval); - if (error) - panic("vmx_emulate_cr_access: error %d writing cr0", error); + if (cr == 0) { + ones_mask = cr0_ones_mask; + zeros_mask = cr0_zeros_mask; + vmcs_guest_cr = VMCS_GUEST_CR0; + } else { + ones_mask = cr4_ones_mask; + zeros_mask = cr4_zeros_mask; + vmcs_guest_cr = VMCS_GUEST_CR4; + } + regval |= ones_mask; + regval &= ~zeros_mask; + error = vmwrite(vmcs_guest_cr, regval); + if (error) { + panic("vmx_emulate_cr_access: error %d writing cr%d", + error, cr); + } return (HANDLED); } From owner-svn-src-projects@FreeBSD.ORG Sat Aug 4 02:14:28 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 1A0B3106566B; Sat, 4 Aug 2012 02:14:28 +0000 (UTC) (envelope-from neel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E12658FC08; Sat, 4 Aug 2012 02:14:27 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q742ER5Z096401; Sat, 4 Aug 2012 02:14:27 GMT (envelope-from neel@svn.freebsd.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q742ERwX096398; Sat, 4 Aug 2012 02:14:27 GMT (envelope-from neel@svn.freebsd.org) Message-Id: <201208040214.q742ERwX096398@svn.freebsd.org> From: Neel Natu Date: Sat, 4 Aug 2012 02:14:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r239025 - projects/bhyve/lib/libvmmapi X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 Aug 2012 02:14:28 -0000 Author: neel Date: Sat Aug 4 02:14:27 2012 New Revision: 239025 URL: http://svn.freebsd.org/changeset/base/239025 Log: There is no need to explicitly specify the CR4_VMXE bit when writing to guest CR4. This bit is specific to the Intel VTX and removing it makes the library more portable to AMD/SVM. In the Intel VTX implementation, the hypervisor will ensure that this bit is always set. See vmx_fix_cr4() for details. Suggested by: grehan Modified: projects/bhyve/lib/libvmmapi/vmmapi.c projects/bhyve/lib/libvmmapi/vmmapi_freebsd.c Modified: projects/bhyve/lib/libvmmapi/vmmapi.c ============================================================================== --- projects/bhyve/lib/libvmmapi/vmmapi.c Sat Aug 4 02:06:55 2012 (r239024) +++ projects/bhyve/lib/libvmmapi/vmmapi.c Sat Aug 4 02:14:27 2012 (r239025) @@ -49,10 +49,6 @@ __FBSDID("$FreeBSD$"); #include "vmmapi.h" #include "mptable.h" -#ifndef CR4_VMXE -#define CR4_VMXE (1UL << 13) -#endif - #define BIOS_ROM_BASE (0xf0000) #define BIOS_ROM_SIZE (0x10000) @@ -536,7 +532,7 @@ vcpu_reset(struct vmctx *vmctx, int vcpu if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_CR3, zero)) != 0) goto done; - cr4 = CR4_VMXE; + cr4 = 0; if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_CR4, cr4)) != 0) goto done; Modified: projects/bhyve/lib/libvmmapi/vmmapi_freebsd.c ============================================================================== --- projects/bhyve/lib/libvmmapi/vmmapi_freebsd.c Sat Aug 4 02:06:55 2012 (r239024) +++ projects/bhyve/lib/libvmmapi/vmmapi_freebsd.c Sat Aug 4 02:14:27 2012 (r239025) @@ -37,10 +37,6 @@ __FBSDID("$FreeBSD$"); #include "vmmapi.h" -#ifndef CR4_VMXE -#define CR4_VMXE (1UL << 13) -#endif - #define DESC_UNUSABLE 0x00010000 #define GUEST_NULL_SEL 0 @@ -74,7 +70,7 @@ vm_setup_freebsd_registers(struct vmctx if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_CR0, cr0)) != 0) goto done; - cr4 = CR4_PAE | CR4_VMXE; + cr4 = CR4_PAE; if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_CR4, cr4)) != 0) goto done; From owner-svn-src-projects@FreeBSD.ORG Sat Aug 4 02:38:05 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C2FE6106566C; Sat, 4 Aug 2012 02:38:05 +0000 (UTC) (envelope-from neel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id AE1C28FC0A; Sat, 4 Aug 2012 02:38:05 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q742c5bt098365; Sat, 4 Aug 2012 02:38:05 GMT (envelope-from neel@svn.freebsd.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q742c5Gu098362; Sat, 4 Aug 2012 02:38:05 GMT (envelope-from neel@svn.freebsd.org) Message-Id: <201208040238.q742c5Gu098362@svn.freebsd.org> From: Neel Natu Date: Sat, 4 Aug 2012 02:38:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r239026 - projects/bhyve/lib/libvmmapi X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 Aug 2012 02:38:05 -0000 Author: neel Date: Sat Aug 4 02:38:05 2012 New Revision: 239026 URL: http://svn.freebsd.org/changeset/base/239026 Log: API to map an apic id to the vcpu. At the moment this is a simple mapping because the numerical values are identical. Modified: projects/bhyve/lib/libvmmapi/vmmapi.c projects/bhyve/lib/libvmmapi/vmmapi.h Modified: projects/bhyve/lib/libvmmapi/vmmapi.c ============================================================================== --- projects/bhyve/lib/libvmmapi/vmmapi.c Sat Aug 4 02:14:27 2012 (r239025) +++ projects/bhyve/lib/libvmmapi/vmmapi.c Sat Aug 4 02:38:05 2012 (r239026) @@ -314,6 +314,16 @@ vm_build_tables(struct vmctx *ctxt, int } int +vm_apicid2vcpu(struct vmctx *ctx, int apicid) +{ + /* + * The apic id associated with the 'vcpu' has the same numerical value + * as the 'vcpu' itself. + */ + return (apicid); +} + +int vm_lapic_irq(struct vmctx *ctx, int vcpu, int vector) { struct vm_lapic_irq vmirq; Modified: projects/bhyve/lib/libvmmapi/vmmapi.h ============================================================================== --- projects/bhyve/lib/libvmmapi/vmmapi.h Sat Aug 4 02:14:27 2012 (r239025) +++ projects/bhyve/lib/libvmmapi/vmmapi.h Sat Aug 4 02:38:05 2012 (r239026) @@ -60,6 +60,7 @@ int vm_run(struct vmctx *ctx, int vcpu, struct vm_exit *ret_vmexit); int vm_build_tables(struct vmctx *ctxt, int ncpus, void *oemtbl, int oemtblsz); +int vm_apicid2vcpu(struct vmctx *ctx, int apicid); int vm_inject_event(struct vmctx *ctx, int vcpu, enum vm_event_type type, int vector); int vm_inject_event2(struct vmctx *ctx, int vcpu, enum vm_event_type type, From owner-svn-src-projects@FreeBSD.ORG Sat Aug 4 04:24:42 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id CB095106564A; Sat, 4 Aug 2012 04:24:42 +0000 (UTC) (envelope-from neel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B66738FC08; Sat, 4 Aug 2012 04:24:42 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q744OgUb008292; Sat, 4 Aug 2012 04:24:42 GMT (envelope-from neel@svn.freebsd.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q744OgHr008289; Sat, 4 Aug 2012 04:24:42 GMT (envelope-from neel@svn.freebsd.org) Message-Id: <201208040424.q744OgHr008289@svn.freebsd.org> From: Neel Natu Date: Sat, 4 Aug 2012 04:24:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r239028 - projects/bhyve/usr.sbin/bhyve X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 Aug 2012 04:24:42 -0000 Author: neel Date: Sat Aug 4 04:24:41 2012 New Revision: 239028 URL: http://svn.freebsd.org/changeset/base/239028 Log: Check that 'opts' is actually not NULL before dereferencing it. It is expected that 'opts' will be NULL for the second serial port (-S ,uart) Modified: projects/bhyve/usr.sbin/bhyve/pci_uart.c Modified: projects/bhyve/usr.sbin/bhyve/pci_uart.c ============================================================================== --- projects/bhyve/usr.sbin/bhyve/pci_uart.c Sat Aug 4 03:05:01 2012 (r239027) +++ projects/bhyve/usr.sbin/bhyve/pci_uart.c Sat Aug 4 04:24:41 2012 (r239028) @@ -580,7 +580,7 @@ pci_uart_init(struct vmctx *ctx, struct pci_emul_alloc_bar(pi, 0, bar, PCIBAR_IO, 8); pci_lintr_request(pi, ivec); - if (!strcmp("stdio", opts) && !pci_uart_stdio) { + if (opts != NULL && !strcmp("stdio", opts) && !pci_uart_stdio) { pci_uart_stdio = 1; sc->stdio = 1; } From owner-svn-src-projects@FreeBSD.ORG Sat Aug 4 04:26:18 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 114E9106564A; Sat, 4 Aug 2012 04:26:17 +0000 (UTC) (envelope-from neel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B56D38FC12; Sat, 4 Aug 2012 04:26:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q744QHwU008497; Sat, 4 Aug 2012 04:26:17 GMT (envelope-from neel@svn.freebsd.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q744QHDd008494; Sat, 4 Aug 2012 04:26:17 GMT (envelope-from neel@svn.freebsd.org) Message-Id: <201208040426.q744QHDd008494@svn.freebsd.org> From: Neel Natu Date: Sat, 4 Aug 2012 04:26:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r239029 - projects/bhyve/usr.sbin/bhyve X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 Aug 2012 04:26:18 -0000 Author: neel Date: Sat Aug 4 04:26:17 2012 New Revision: 239029 URL: http://svn.freebsd.org/changeset/base/239029 Log: Use the correct variable to index into the 'lirq[]' array to check the legacy IRQ ownership. Modified: projects/bhyve/usr.sbin/bhyve/pci_emul.c Modified: projects/bhyve/usr.sbin/bhyve/pci_emul.c ============================================================================== --- projects/bhyve/usr.sbin/bhyve/pci_emul.c Sat Aug 4 04:24:41 2012 (r239028) +++ projects/bhyve/usr.sbin/bhyve/pci_emul.c Sat Aug 4 04:26:17 2012 (r239029) @@ -808,7 +808,7 @@ pci_lintr_alloc(struct pci_devinst *pi, } } } else { - if (lirq[i].li_owner != NULL) { + if (lirq[vec].li_owner != NULL) { vec = -1; } } From owner-svn-src-projects@FreeBSD.ORG Sat Aug 4 04:30:27 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 47FE7106566C; Sat, 4 Aug 2012 04:30:27 +0000 (UTC) (envelope-from neel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3330C8FC08; Sat, 4 Aug 2012 04:30:27 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q744URiM008863; Sat, 4 Aug 2012 04:30:27 GMT (envelope-from neel@svn.freebsd.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q744UQVL008861; Sat, 4 Aug 2012 04:30:27 GMT (envelope-from neel@svn.freebsd.org) Message-Id: <201208040430.q744UQVL008861@svn.freebsd.org> From: Neel Natu Date: Sat, 4 Aug 2012 04:30:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r239030 - projects/bhyve/sys/amd64/conf X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 Aug 2012 04:30:27 -0000 Author: neel Date: Sat Aug 4 04:30:26 2012 New Revision: 239030 URL: http://svn.freebsd.org/changeset/base/239030 Log: Include 'device uart' in the guest kernel. Modified: projects/bhyve/sys/amd64/conf/BHYVE Modified: projects/bhyve/sys/amd64/conf/BHYVE ============================================================================== --- projects/bhyve/sys/amd64/conf/BHYVE Sat Aug 4 04:26:17 2012 (r239029) +++ projects/bhyve/sys/amd64/conf/BHYVE Sat Aug 4 04:30:26 2012 (r239030) @@ -176,7 +176,7 @@ device pci #device cardbus # CardBus (32-bit) bus # Serial (COM) ports -#device uart # Generic UART driver +device uart # Generic UART driver # Parallel port #device ppc From owner-svn-src-projects@FreeBSD.ORG Sat Aug 4 22:46:30 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9D812106566C; Sat, 4 Aug 2012 22:46:30 +0000 (UTC) (envelope-from neel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 87F178FC08; Sat, 4 Aug 2012 22:46:30 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q74MkUUe005031; Sat, 4 Aug 2012 22:46:30 GMT (envelope-from neel@svn.freebsd.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q74MkUZP005026; Sat, 4 Aug 2012 22:46:30 GMT (envelope-from neel@svn.freebsd.org) Message-Id: <201208042246.q74MkUZP005026@svn.freebsd.org> From: Neel Natu Date: Sat, 4 Aug 2012 22:46:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r239042 - projects/bhyve/lib/libvmmapi X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 Aug 2012 22:46:30 -0000 Author: neel Date: Sat Aug 4 22:46:29 2012 New Revision: 239042 URL: http://svn.freebsd.org/changeset/base/239042 Log: Allow the 'bhyve' process to control whether or not the virtual machine sees an ioapic. Obtained from: NetApp Modified: projects/bhyve/lib/libvmmapi/mptable.c projects/bhyve/lib/libvmmapi/mptable.h projects/bhyve/lib/libvmmapi/vmmapi.c projects/bhyve/lib/libvmmapi/vmmapi.h Modified: projects/bhyve/lib/libvmmapi/mptable.c ============================================================================== --- projects/bhyve/lib/libvmmapi/mptable.c Sat Aug 4 20:40:36 2012 (r239041) +++ projects/bhyve/lib/libvmmapi/mptable.c Sat Aug 4 22:46:29 2012 (r239042) @@ -118,20 +118,20 @@ mp_build_bus_entries(struct mpe_bus *mpe } -#ifdef notyet static void -mp_build_ioapic_entries(struct mpe_ioapic *mpei) +mp_build_ioapic_entries(struct mpe_ioapic *mpei, int id) { memset(mpei, 0, sizeof(*mpei)); mpei->entry_type = MP_ENTRY_IOAPIC; - mpei->ioapic_id = MPE_IOAPIC_ID; + mpei->ioapic_id = id; mpei->ioapic_version = IOAPIC_VERSION; mpei->ioapic_flags = MPE_IOAPIC_FLAG_EN; mpei->ioapic_paddr = IOAPIC_PADDR; } +#ifdef notyet static void -mp_build_ioint_entries(struct mpe_ioint *mpeii, int num_pins) +mp_build_ioint_entries(struct mpe_ioint *mpeii, int num_pins, int id) { int pin; @@ -147,7 +147,7 @@ mp_build_ioint_entries(struct mpe_ioint memset(mpeii, 0, sizeof(*mpeii)); mpeii->entry_type = MP_ENTRY_IOINT; mpeii->src_bus_id = MPE_BUSID_ISA; - mpeii->dst_apic_id = MPE_IOAPIC_ID; + mpeii->dst_apic_id = id; /* * All default configs route IRQs from bus 0 to the first 16 pins @@ -285,7 +285,7 @@ mptable_dump(struct mp_floating_pointer int vm_build_mptable(struct vmctx *ctx, vm_paddr_t gpa, int len, int ncpu, - void *oemp, int oemsz) + int ioapic, void *oemp, int oemsz) { struct mp_config_hdr *mpch; char *mapaddr; @@ -313,12 +313,16 @@ vm_build_mptable(struct vmctx *ctx, vm_p mp_build_bus_entries((struct mpe_bus*)mapaddr); mapaddr += (sizeof(struct mpe_bus)*MPE_NUM_BUSES); mpch->nr_entries += MPE_NUM_BUSES; -#if 0 - mp_build_ioapic_entries((struct mpe_ioapic*)mapaddr); - mapaddr += sizeof(struct mpe_ioapic); - mpch->nr_entries++; - mp_build_ioint_entries((struct mpe_ioint*)mapaddr, MPEII_MAX_IRQ); + if (ioapic) { + mp_build_ioapic_entries((struct mpe_ioapic*)mapaddr, ncpu + 1); + mapaddr += sizeof(struct mpe_ioapic); + mpch->nr_entries++; + } + +#ifdef notyet + mp_build_ioint_entries((struct mpe_ioint*)mapaddr, MPEII_MAX_IRQ, + ncpu + 1); mapaddr += sizeof(struct mpe_ioint)*MPEII_MAX_IRQ; mpch->nr_entries += MPEII_MAX_IRQ; Modified: projects/bhyve/lib/libvmmapi/mptable.h ============================================================================== --- projects/bhyve/lib/libvmmapi/mptable.h Sat Aug 4 20:40:36 2012 (r239041) +++ projects/bhyve/lib/libvmmapi/mptable.h Sat Aug 4 22:46:29 2012 (r239042) @@ -128,7 +128,6 @@ struct mpe_bus { /* * MP IO APIC Entry */ -#define MPE_IOAPIC_ID (2) #define MPE_IOAPIC_FLAG_EN (1) struct mpe_ioapic { uint8_t entry_type; @@ -167,5 +166,5 @@ struct mpe_lint { }; int vm_build_mptable(struct vmctx *ctxt, vm_paddr_t gpa, int len, - int ncpu, void *oemp, int oemsz); + int ncpu, int ioapic, void *oemp, int oemsz); #endif /* _MPTABLE_h_ */ Modified: projects/bhyve/lib/libvmmapi/vmmapi.c ============================================================================== --- projects/bhyve/lib/libvmmapi/vmmapi.c Sat Aug 4 20:40:36 2012 (r239041) +++ projects/bhyve/lib/libvmmapi/vmmapi.c Sat Aug 4 22:46:29 2012 (r239042) @@ -306,11 +306,12 @@ vm_inject_event2(struct vmctx *ctx, int } int -vm_build_tables(struct vmctx *ctxt, int ncpu, void *oemtbl, int oemtblsz) +vm_build_tables(struct vmctx *ctxt, int ncpu, int ioapic, + void *oemtbl, int oemtblsz) { return (vm_build_mptable(ctxt, BIOS_ROM_BASE, BIOS_ROM_SIZE, ncpu, - oemtbl, oemtblsz)); + ioapic, oemtbl, oemtblsz)); } int Modified: projects/bhyve/lib/libvmmapi/vmmapi.h ============================================================================== --- projects/bhyve/lib/libvmmapi/vmmapi.h Sat Aug 4 20:40:36 2012 (r239041) +++ projects/bhyve/lib/libvmmapi/vmmapi.h Sat Aug 4 22:46:29 2012 (r239042) @@ -58,8 +58,8 @@ int vm_get_pinning(struct vmctx *ctx, in int vm_set_pinning(struct vmctx *ctx, int vcpu, int host_cpuid); int vm_run(struct vmctx *ctx, int vcpu, uint64_t rip, struct vm_exit *ret_vmexit); -int vm_build_tables(struct vmctx *ctxt, int ncpus, void *oemtbl, - int oemtblsz); +int vm_build_tables(struct vmctx *ctxt, int ncpus, int ioapic, + void *oemtbl, int oemtblsz); int vm_apicid2vcpu(struct vmctx *ctx, int apicid); int vm_inject_event(struct vmctx *ctx, int vcpu, enum vm_event_type type, int vector); From owner-svn-src-projects@FreeBSD.ORG Sat Aug 4 22:48:05 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7D5F8106566B; Sat, 4 Aug 2012 22:48:05 +0000 (UTC) (envelope-from neel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4B4ED8FC19; Sat, 4 Aug 2012 22:48:05 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q74Mm5h8005197; Sat, 4 Aug 2012 22:48:05 GMT (envelope-from neel@svn.freebsd.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q74Mm5CW005195; Sat, 4 Aug 2012 22:48:05 GMT (envelope-from neel@svn.freebsd.org) Message-Id: <201208042248.q74Mm5CW005195@svn.freebsd.org> From: Neel Natu Date: Sat, 4 Aug 2012 22:48:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r239043 - projects/bhyve/usr.sbin/bhyve X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 Aug 2012 22:48:05 -0000 Author: neel Date: Sat Aug 4 22:48:04 2012 New Revision: 239043 URL: http://svn.freebsd.org/changeset/base/239043 Log: Add the "-I" option to control whether or not an ioapic is visible to the guest. Obtained from: NetApp Modified: projects/bhyve/usr.sbin/bhyve/fbsdrun.c Modified: projects/bhyve/usr.sbin/bhyve/fbsdrun.c ============================================================================== --- projects/bhyve/usr.sbin/bhyve/fbsdrun.c Sat Aug 4 22:46:29 2012 (r239042) +++ projects/bhyve/usr.sbin/bhyve/fbsdrun.c Sat Aug 4 22:48:04 2012 (r239043) @@ -126,13 +126,14 @@ usage(int code) { fprintf(stderr, - "Usage: %s [-ehBHP][-g ][-z ][-s ][-p pincpu]" - "[-n ][-m lowmem][-M highmem] \n" + "Usage: %s [-ehBHIP][-g ][-z ][-s ]" + "[-S ][-p pincpu][-n ][-m lowmem][-M highmem] \n" " -g: gdb port (default is %d and 0 means don't open)\n" " -c: # cpus (default 1)\n" " -p: pin vcpu 'n' to host cpu 'pincpu + n'\n" " -B: inject breakpoint exception on vm entry\n" " -H: vmexit from the guest on hlt\n" + " -I: present an ioapic to the guest\n" " -P: vmexit from the guest on pause\n" " -e: exit on unhandled i/o access\n" " -h: help\n" @@ -522,7 +523,7 @@ vm_loop(struct vmctx *ctx, int vcpu, uin int main(int argc, char *argv[]) { - int c, error, gdb_port, inject_bkpt, tmp, err; + int c, error, gdb_port, inject_bkpt, tmp, err, ioapic; struct vmctx *ctx; uint64_t rip; @@ -530,8 +531,9 @@ main(int argc, char *argv[]) progname = basename(argv[0]); gdb_port = DEFAULT_GDB_PORT; guest_ncpus = 1; + ioapic = 0; - while ((c = getopt(argc, argv, "ehBHPxp:g:c:z:s:S:n:m:M:")) != -1) { + while ((c = getopt(argc, argv, "ehBHIPxp:g:c:z:s:S:n:m:M:")) != -1) { switch (c) { case 'B': inject_bkpt = 1; @@ -572,6 +574,9 @@ main(int argc, char *argv[]) case 'H': guest_vmexit_on_hlt = 1; break; + case 'I': + ioapic = 1; + break; case 'P': guest_vmexit_on_pause = 1; break; @@ -661,7 +666,7 @@ main(int argc, char *argv[]) /* * build the guest tables, MP etc. */ - vm_build_tables(ctx, guest_ncpus, oem_tbl_start, oem_tbl_size); + vm_build_tables(ctx, guest_ncpus, ioapic, oem_tbl_start, oem_tbl_size); /* * Add CPU 0 From owner-svn-src-projects@FreeBSD.ORG Sat Aug 4 23:51:21 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DE3DA106564A; Sat, 4 Aug 2012 23:51:21 +0000 (UTC) (envelope-from neel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CA3658FC0C; Sat, 4 Aug 2012 23:51:21 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q74NpLMj011940; Sat, 4 Aug 2012 23:51:21 GMT (envelope-from neel@svn.freebsd.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q74NpLRh011938; Sat, 4 Aug 2012 23:51:21 GMT (envelope-from neel@svn.freebsd.org) Message-Id: <201208042351.q74NpLRh011938@svn.freebsd.org> From: Neel Natu Date: Sat, 4 Aug 2012 23:51:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r239044 - projects/bhyve/usr.sbin/bhyve X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 Aug 2012 23:51:22 -0000 Author: neel Date: Sat Aug 4 23:51:21 2012 New Revision: 239044 URL: http://svn.freebsd.org/changeset/base/239044 Log: The displacement field in the decoded instruction should be treated as a 8-bit or 32-bit signed integer. Simplify the handling of indirect addressing with displacement by unconditionally adding the 'instruction->disp' to the target address. This is alright since 'instruction->disp' is non-zero only for the addressing modes that specify a displacement. Obtained from: NetApp Modified: projects/bhyve/usr.sbin/bhyve/instruction_emul.c Modified: projects/bhyve/usr.sbin/bhyve/instruction_emul.c ============================================================================== --- projects/bhyve/usr.sbin/bhyve/instruction_emul.c Sat Aug 4 22:48:04 2012 (r239043) +++ projects/bhyve/usr.sbin/bhyve/instruction_emul.c Sat Aug 4 23:51:21 2012 (r239044) @@ -135,7 +135,7 @@ struct decoded_instruction uint8_t *opcode; uint8_t *modrm; uint8_t *sib; - uint8_t *displacement; + uint8_t *displacement; uint8_t *immediate; uint8_t opcode_flags; @@ -337,9 +337,9 @@ decode_extension_operands(struct decoded if (decoded->displacement) { if (decoded->addressing_mode == MOD_INDIRECT_DISP8) { - decoded->disp = (int32_t)*decoded->displacement; + decoded->disp = *((int8_t *)decoded->displacement); } else if (decoded->addressing_mode == MOD_INDIRECT_DISP32) { - decoded->disp = *((int32_t*)decoded->displacement); + decoded->disp = *((int32_t *)decoded->displacement); } } @@ -432,14 +432,6 @@ get_operand(struct vmctx *vm, int vcpu, *operand = reg; return (0); case MOD_INDIRECT: - target = gla2gpa(reg, guest_cr3); - emulated_memory = find_region(target); - if (emulated_memory) { - return emulated_memory->memread(vm, vcpu, target, - 4, operand, - emulated_memory->arg); - } - return (-1); case MOD_INDIRECT_DISP8: case MOD_INDIRECT_DISP32: target = gla2gpa(reg, guest_cr3); @@ -450,7 +442,7 @@ get_operand(struct vmctx *vm, int vcpu, 4, operand, emulated_memory->arg); } - return (-1); + return (-1); default: return (-1); } @@ -473,19 +465,22 @@ perform_write(struct vmctx *vm, int vcpu } else if (instruction->opcode_flags & TO_REG) { reg = instruction->reg; addressing_mode = MOD_DIRECT; - } else + } else return (-1); regname = get_vm_reg_name(reg); error = vm_get_register(vm, vcpu, regname, ®); - if (error) + if (error) return (error); switch(addressing_mode) { case MOD_DIRECT: return vm_set_register(vm, vcpu, regname, operand); case MOD_INDIRECT: + case MOD_INDIRECT_DISP8: + case MOD_INDIRECT_DISP32: target = gla2gpa(reg, guest_cr3); + target += instruction->disp; emulated_memory = find_region(target); if (emulated_memory) { return emulated_memory->memwrite(vm, vcpu, target, @@ -506,7 +501,7 @@ emulate_decoded_instruction(struct vmctx int error; error = get_operand(vm, vcpu, cr3, instruction, &operand); - if (error) + if (error) return (error); return perform_write(vm, vcpu, cr3, instruction, operand); @@ -519,17 +514,17 @@ emulate_instruction(struct vmctx *vm, in int error; void *instruction = gla2hla(rip, cr3); - if ((error = decode_instruction(instruction, &instr)) != 0) + if ((error = decode_instruction(instruction, &instr)) != 0) return (error); - + return emulate_decoded_instruction(vm, vcpu, cr3, &instr); } struct memory_region * -register_emulated_memory(uintptr_t start, size_t len, emulated_read_func_t memread, +register_emulated_memory(uintptr_t start, size_t len, emulated_read_func_t memread, emulated_write_func_t memwrite, void *arg) { - if (registered_regions > MAX_EMULATED_REGIONS) + if (registered_regions >= MAX_EMULATED_REGIONS) return (NULL); struct memory_region *region = &emulated_regions[registered_regions]; @@ -552,4 +547,3 @@ move_memory_region(struct memory_region region->start = start; region->end = start + len; } -