From owner-p4-projects@FreeBSD.ORG Mon Dec 27 10:01:19 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D96231065693; Mon, 27 Dec 2010 10:01:18 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 908641065679 for ; Mon, 27 Dec 2010 10:01:18 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 7D0918FC15 for ; Mon, 27 Dec 2010 10:01:18 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oBRA1IZ9094481 for ; Mon, 27 Dec 2010 10:01:18 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oBRA1Iqm094474 for perforce@freebsd.org; Mon, 27 Dec 2010 10:01:18 GMT (envelope-from trasz@freebsd.org) Date: Mon, 27 Dec 2010 10:01:18 GMT Message-Id: <201012271001.oBRA1Iqm094474@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 187209 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Dec 2010 10:01:19 -0000 http://p4web.freebsd.org/@@187209?ac=10 Change 187209 by trasz@trasz_victim on 2010/12/27 10:01:12 Christmas fixes. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_container.c#45 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/proc.h#28 edit .. //depot/projects/soc2009/trasz_limits/sys/vm/vm_pageout.c#20 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_container.c#45 (text+ko) ==== @@ -34,7 +34,9 @@ #include "opt_kdtrace.h" +#include #include +#include #include #include #include @@ -619,35 +621,37 @@ #endif } -/* - * Stuff below runs from a "containerd" kernel process. - */ static void -rusage_throttle(struct thread *td, int throttle) +rusage_throttle(struct proc *p, int throttle) { + struct thread *td; u_char oldpri; u_char newpri; int type; if (throttle) { - td->td_flags |= TDF_THROTTLED; + p->p_flag |= P_THROTTLED; newpri = PRI_MIN_IDLE; type = RTP_PRIO_IDLE; - } else if (td->td_flags & TDF_THROTTLED) { - td->td_flags &= ~TDF_THROTTLED; + } else if (p->p_flag & P_THROTTLED) { + p->p_flag &= ~P_THROTTLED; newpri = PRI_MIN_TIMESHARE; type = RTP_PRIO_NORMAL; } else return; - /* Mostly copied from rtp_to_pri(). */ - sched_class(td, type); /* XXX fix */ - oldpri = td->td_user_pri; - sched_user_prio(td, newpri); - if (TD_IS_RUNNING(td) || TD_CAN_RUN(td)) - sched_prio(td, td->td_user_pri); /* XXX dubious */ - if (TD_ON_UPILOCK(td) && oldpri != newpri) - umtx_pi_adjust(td, oldpri); + FOREACH_THREAD_IN_PROC(p, td) { + thread_lock(td); + /* Mostly copied from rtp_to_pri(). */ + sched_class(td, type); /* XXX fix */ + oldpri = td->td_user_pri; + sched_user_prio(td, newpri); + if (TD_IS_RUNNING(td) || TD_CAN_RUN(td)) + sched_prio(td, td->td_user_pri); /* XXX dubious */ + if (TD_ON_UPILOCK(td) && oldpri != newpri) + umtx_pi_adjust(td, oldpri); + thread_unlock(td); + } } static void @@ -663,29 +667,24 @@ sx_slock(&allproc_lock); FOREACH_PROC_IN_SYSTEM(p) { pctcpu_limit = rusage_get_limit(p, RUSAGE_PCTCPU); + pctcpu = 0; PROC_SLOCK(p); - pctcpu = 0; FOREACH_THREAD_IN_PROC(p, td) { ruxagg(p, td); thread_lock(td); pctcpu += sched_pctcpu(td); - /* - * We are making this decision based on data from - * the previous run. The assumption is that this runs - * so often it doesn't matter. - */ - if (pctcpu > pctcpu_limit) - rusage_throttle(td, 1); - else - rusage_throttle(td, 0); thread_unlock(td); } + pctcpu = ((pctcpu * 10000 + FSCALE / 2) >> FSHIFT) / 100; + if (pctcpu > pctcpu_limit) + rusage_throttle(p, 1); + else + rusage_throttle(p, 0); PROC_SUNLOCK(p); rusage_set(p, RUSAGE_CPU, cputick2usec(p->p_rux.rux_runtime)); microuptime(&wallclock); timevalsub(&wallclock, &p->p_stats->p_start); rusage_set(p, RUSAGE_WALLCLOCK, wallclock.tv_sec * 1000000 + wallclock.tv_usec); - pctcpu = ((pctcpu * 10000 + FSCALE / 2) >> FSHIFT) / 100; rusage_set(p, RUSAGE_PCTCPU, pctcpu); } sx_sunlock(&allproc_lock); @@ -700,6 +699,30 @@ }; SYSINIT(containerd, SI_SUB_RUN_SCHEDULER, SI_ORDER_FIRST, kproc_start, &containerd_kp); +static void +container_proc_fork_sched(void *arg __unused, struct proc *p1, + struct proc *newproc, int flags) +{ + uint64_t pctcpu_limit; + + /* + * Newly created process may already be over the %CPU limit. Throttle + * it immediately after fork instead of waiting for containerd. + */ + pctcpu_limit = rusage_get_limit(newproc, RUSAGE_PCTCPU); + if (pctcpu_limit <= 0) + rusage_throttle(newproc, 1); +} + +static void +container_init(void) +{ + + EVENTHANDLER_REGISTER(process_fork, container_proc_fork_sched, NULL, + EVENTHANDLER_PRI_ANY); +} +SYSINIT(container, SI_SUB_RUN_SCHEDULER, SI_ORDER_FIRST, container_init, NULL); + #else /* !CONTAINERS */ int ==== //depot/projects/soc2009/trasz_limits/sys/sys/proc.h#28 (text+ko) ==== @@ -355,7 +355,7 @@ #define TDF_NEEDRESCHED 0x00010000 /* Thread needs to yield. */ #define TDF_NEEDSIGCHK 0x00020000 /* Thread may need signal delivery. */ #define TDF_NOLOAD 0x00040000 /* Ignore during load avg calculations. */ -#define TDF_THROTTLED 0x00080000 /* Throttled due to %cpu usage */ +#define TDF_UNUSED19 0x00080000 /* --available-- */ #define TDF_THRWAKEUP 0x00100000 /* Libthr thread must not suspend itself. */ #define TDF_UNUSED21 0x00200000 /* --available-- */ #define TDF_SWAPINREQ 0x00400000 /* Swapin request due to wakeup. */ @@ -603,6 +603,7 @@ #define P_INMEM 0x10000000 /* Loaded into memory. */ #define P_SWAPPINGOUT 0x20000000 /* Process is being swapped out. */ #define P_SWAPPINGIN 0x40000000 /* Process is being swapped in. */ +#define P_THROTTLED 0x80000000 /* Throttled due to %cpu usage */ #define P_STOPPED (P_STOPPED_SIG|P_STOPPED_SINGLE|P_STOPPED_TRACE) #define P_SHOULDSTOP(p) ((p)->p_flag & P_STOPPED) ==== //depot/projects/soc2009/trasz_limits/sys/vm/vm_pageout.c#20 (text+ko) ==== @@ -1711,6 +1711,17 @@ rusage_set(p, RUSAGE_RSS, IDX_TO_OFF(size)); maxsize = OFF_TO_IDX(rusage_get_limit(p, RUSAGE_RSS)); if (size > maxsize) { + /* + * Don't be overly aggressive; this might be + * an innocent process, and the limit could've + * been exceeded by some memory hog. Don't + * try to deactivate more than half of process' + * resident set size. + * + * XXX: Reconsider. + */ + if (maxsize < size / 2) + maxsize = size / 2; vm_pageout_map_deactivate_pages( &vm->vm_map, maxsize); /* Update RSS usage after paging out. */ From owner-p4-projects@FreeBSD.ORG Mon Dec 27 17:50:14 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 311EC1065695; Mon, 27 Dec 2010 17:50:14 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E782F106566C for ; Mon, 27 Dec 2010 17:50:13 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id D4B068FC21 for ; Mon, 27 Dec 2010 17:50:13 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oBRHoDoT092106 for ; Mon, 27 Dec 2010 17:50:13 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oBRHoDo5092103 for perforce@freebsd.org; Mon, 27 Dec 2010 17:50:13 GMT (envelope-from trasz@freebsd.org) Date: Mon, 27 Dec 2010 17:50:13 GMT Message-Id: <201012271750.oBRHoDo5092103@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 187224 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Dec 2010 17:50:14 -0000 http://p4web.freebsd.org/@@187224?ac=10 Change 187224 by trasz@trasz_victim on 2010/12/27 17:49:15 Add userstat(1) and jailstat(1). Affected files ... .. //depot/projects/soc2009/trasz_limits/usr.bin/Makefile#14 edit .. //depot/projects/soc2009/trasz_limits/usr.bin/userstat/Makefile#1 add .. //depot/projects/soc2009/trasz_limits/usr.bin/userstat/userstat.sh#1 add Differences ... ==== //depot/projects/soc2009/trasz_limits/usr.bin/Makefile#14 (text+ko) ==== @@ -169,6 +169,7 @@ users \ uudecode \ uuencode \ + userstat \ vi \ vis \ vmstat \ From owner-p4-projects@FreeBSD.ORG Mon Dec 27 18:04:28 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5F0911065675; Mon, 27 Dec 2010 18:04:28 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 20256106566B for ; Mon, 27 Dec 2010 18:04:28 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id E72BE8FC08 for ; Mon, 27 Dec 2010 18:04:27 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oBRI4Rf1095917 for ; Mon, 27 Dec 2010 18:04:27 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oBRI4Rm6095914 for perforce@freebsd.org; Mon, 27 Dec 2010 18:04:27 GMT (envelope-from trasz@freebsd.org) Date: Mon, 27 Dec 2010 18:04:27 GMT Message-Id: <201012271804.oBRI4Rm6095914@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 187225 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Dec 2010 18:04:28 -0000 http://p4web.freebsd.org/@@187225?ac=10 Change 187225 by trasz@trasz_victim on 2010/12/27 18:03:47 Update. Affected files ... .. //depot/projects/soc2009/trasz_limits/TODO#37 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/TODO#37 (text+ko) ==== @@ -43,8 +43,6 @@ allow the HRL code to send a signal to the offending thread instead of the offending process. - - Add a tool a'la zonestat(1M). - Issues: - In the long term, the goal is to get rid of lim_get(9), chgproccnt(9) etc, From owner-p4-projects@FreeBSD.ORG Mon Dec 27 19:34:15 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 586951065672; Mon, 27 Dec 2010 19:34:15 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 199FE106564A for ; Mon, 27 Dec 2010 19:34:15 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 06AC88FC15 for ; Mon, 27 Dec 2010 19:34:15 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oBRJYETB015192 for ; Mon, 27 Dec 2010 19:34:14 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oBRJYEsK015189 for perforce@freebsd.org; Mon, 27 Dec 2010 19:34:14 GMT (envelope-from trasz@freebsd.org) Date: Mon, 27 Dec 2010 19:34:14 GMT Message-Id: <201012271934.oBRJYEsK015189@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 187226 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Dec 2010 19:34:15 -0000 http://p4web.freebsd.org/@@187226?ac=10 Change 187226 by trasz@trasz_victim on 2010/12/27 19:33:48 Make it possible to use 'j' as a shorthand for 'jail'. Affected files ... .. //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/hrl.c#28 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/hrl.c#28 (text+ko) ==== @@ -114,6 +114,8 @@ strcasecmp(subject, "c") == 0 || strcasecmp(subject, "class") == 0) subject = "loginclass"; + else if (strcasecmp(subject, "j") == 0) + subject = "jail"; if (strcasecmp(subject, "user") == 0 && strlen(textid) > 0) { id = parse_user(textid); From owner-p4-projects@FreeBSD.ORG Tue Dec 28 09:09:17 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0C3C4106566C; Tue, 28 Dec 2010 09:09:17 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B40E9106566B for ; Tue, 28 Dec 2010 09:09:16 +0000 (UTC) (envelope-from lz@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id A22A08FC18 for ; Tue, 28 Dec 2010 09:09:16 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oBS99GGg082456 for ; Tue, 28 Dec 2010 09:09:16 GMT (envelope-from lz@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oBS99G8E082453 for perforce@freebsd.org; Tue, 28 Dec 2010 09:09:16 GMT (envelope-from lz@FreeBSD.org) Date: Tue, 28 Dec 2010 09:09:16 GMT Message-Id: <201012280909.oBS99G8E082453@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to lz@FreeBSD.org using -f From: Zheng Liu To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 187240 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Dec 2010 09:09:17 -0000 http://p4web.freebsd.org/@@187240?ac=10 Change 187240 by lz@gnehzuil-freebsd on 2010/12/28 09:08:34 Fix a typo in comment. Affected files ... .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext4fs/ext4_lookup.c#3 edit Differences ... ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext4fs/ext4_lookup.c#3 (text+ko) ==== @@ -351,7 +351,7 @@ bmask = VFSTOEXT2(vdp->v_mount)->um_mountp->mnt_stat.f_iosize - 1; - /* Usr hash directory index to search a large direcotries. */ + /* Use hash directory index to search a large direcotries. */ numdirpasses = 2; prevoff = 0; if (ext4_is_dirindex(dp)) { From owner-p4-projects@FreeBSD.ORG Tue Dec 28 11:42:43 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2B9371065674; Tue, 28 Dec 2010 11:42:43 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E20EE1065672 for ; Tue, 28 Dec 2010 11:42:42 +0000 (UTC) (envelope-from lz@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id CFA8D8FC16 for ; Tue, 28 Dec 2010 11:42:42 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oBSBggik019113 for ; Tue, 28 Dec 2010 11:42:42 GMT (envelope-from lz@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oBSBggLb019110 for perforce@freebsd.org; Tue, 28 Dec 2010 11:42:42 GMT (envelope-from lz@FreeBSD.org) Date: Tue, 28 Dec 2010 11:42:42 GMT Message-Id: <201012281142.oBSBggLb019110@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to lz@FreeBSD.org using -f From: Zheng Liu To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 187242 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Dec 2010 11:42:43 -0000 http://p4web.freebsd.org/@@187242?ac=10 Change 187242 by lz@gnehzuil-freebsd on 2010/12/28 11:41:50 Replace two functions. * Replace str2hashbuf_unsigned and str2hashbuf_signed functions becuase of license. Now I re-implement them according to Haiku's implemention. Haiku's implementation is MIT license. Affected files ... .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext4fs/ext4_htree.c#3 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext4fs/ext4_lookup.c#4 edit Differences ... ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext4fs/ext4_htree.c#3 (text+ko) ==== @@ -148,77 +148,88 @@ } /* - * XXX: maybe this function need to be re-implemented because it is very - * similar to str2hashbuf_signed() function in Linux. However, I don't - * have a good implementation. + * It does not implement signed version of str2hashbuf function in Haiku. + * But in Linux, the difference between signed's and unsigned's just + * is variable type. */ static void str2hashbuf_signed(const char *msg, int len, u_int32_t *buf, int num) { - u_int32_t pad, val; - int cnt = 0; - int max_len = num << 2; - const signed char *p = (const signed char *) msg; + u_int32_t pad, val; + int i, cnt, max_len, remain; + const signed char *scp = (const signed char *)msg; + + pad = (u_int32_t)len; + pad = (pad << 8) | pad; + pad = (pad << 16) | pad; + + max_len = num * 4; + if (len > max_len) + len = max_len; + + cnt = len / 4; + + for (i = 0; i < cnt; i++) { + val = (pad << 8) | *(scp++); + val = (val << 8) | *(scp++); + val = (val << 8) | *(scp++); + val = (val << 8) | *(scp++); + buf[i] = val; + } + + if (cnt < num) { + remain = len % 4; + val = pad; + for (i = 0; i < remain; i++) + val = (val << 8) + *(scp++); - pad = (u_int32_t)len | ((u_int32_t)len << 8); - pad |= pad << 16; + buf[cnt] = val; - val = pad; - if (len > max_len) - len = max_len; - while (len > 0) { - if ((cnt % 4) == 0) - val = pad; - val = ((int)(*p++)) + (val << 8); - if ((cnt % 4) == 3) { - *buf++ = val; - val = pad; - num--; - } - cnt++; - len--; + for (i = cnt + 1; i < num; i++) + buf[i] = pad; } - if (--num >= 0) - *buf++ = val; - while (--num >= 0) - *buf++ = pad; } /* - * XXX: maybe this function need to be re-implemented because it is very - * similar to str2hashbuf_unsigned() function in Linux. However, I don't - * have a good implementation. + * Refer Haiku's implementation. This implemention is MIT license. + * So the kernel can not be contaminated. */ static void str2hashbuf_unsigned(const char *msg, int len, u_int32_t *buf, int num) { - u_int32_t pad, val; - int cnt = 0; - int max_len = num << 2; - const unsigned char *p = (const signed char *) msg; + u_int32_t pad, val; + int i, cnt, max_len, remain; + const unsigned char *ucp = (const unsigned char *)msg; + + pad = (u_int32_t)len; + pad = (pad << 8) | pad; + pad = (pad << 16) | pad; + + max_len = num * 4; + if (len > max_len) + len = max_len; + + cnt = len / 4; + + for (i = 0; i < cnt; i++) { + val = (pad << 8) | *(ucp++); + val = (val << 8) | *(ucp++); + val = (val << 8) | *(ucp++); + val = (val << 8) | *(ucp++); + buf[i] = val; + } + + if (cnt < num) { + remain = len % 4; + val = pad; + for (i = 0; i < remain; i++) + val = (val << 8) + *(ucp++); - pad = (u_int32_t)len | ((u_int32_t)len << 8); - pad |= pad << 16; + buf[cnt] = val; - val = pad; - if (len > max_len) - len = max_len; - while (len > 0) { - if ((cnt % 4) == 0) - val = pad; - val = ((int)(*p++)) + (val << 8); - if ((cnt % 4) == 3) { - *buf++ = val; - val = pad; - num--; - } - cnt++; - len--; + for (i = cnt + 1; i < num; i++) + buf[i] = pad; } - if (--num >= 0) - *buf++ = val; - while (--num >= 0) - *buf++ = pad; } int @@ -269,7 +280,7 @@ char *p; int i; u_int32_t in[8], buf[4]; - u_int32_t hash, minhash = 0; + u_int32_t hash = 0, minhash = 0; /* initialize default hash value */ buf[0] = 0x67452301; @@ -285,18 +296,42 @@ memcpy(buf, hp->di_seed, sizeof(buf)); } - p = name; - while (namelen > 0) { - if (hp->di_hashversion == DIRINDEX_HASH_HALF_MD4) + switch (hp->di_hashversion) { + case DIRINDEX_HASH_HALF_MD4: + p = name; + while (namelen > 0) { str2hashbuf_signed(p, namelen, in, 8); - else + half_md4_transform(buf, in); + namelen -= 32; + p += 32; + } + minhash = buf[2]; + hash = buf[1]; + break; + case DIRINDEX_HASH_HALF_MD4_UNSIGNED: + p = name; + while (namelen > 0) { str2hashbuf_unsigned(p, namelen, in, 8); - half_md4_transform(buf, in); - namelen -= 32; - p += 32; + half_md4_transform(buf, in); + namelen -= 32; + p += 32; + } + minhash = buf[2]; + hash = buf[1]; + break; + case DIRINDEX_HASH_LEGACY: + break; + case DIRINDEX_HASH_LEGACY_UNSIGNED: + break; + case DIRINDEX_HASH_TEA: + break; + case DIRINDEX_HASH_TEA_UNSIGNED: + break; + default: + hp->di_hash = 0; + return (-1); } - minhash = buf[2]; - hash = buf[1]; + hash = hash & ~1; if (hash == (0x7fffffff << 1)) hash = (0x7fffffff - 1) << 1; ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext4fs/ext4_lookup.c#4 (text+ko) ==== @@ -351,7 +351,7 @@ bmask = VFSTOEXT2(vdp->v_mount)->um_mountp->mnt_stat.f_iosize - 1; - /* Use hash directory index to search a large direcotries. */ + /* Use hash directory index to search a large directories. */ numdirpasses = 2; prevoff = 0; if (ext4_is_dirindex(dp)) { From owner-p4-projects@FreeBSD.ORG Tue Dec 28 17:54:42 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 91BDD1065695; Tue, 28 Dec 2010 17:54:42 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 546FC106567A for ; Tue, 28 Dec 2010 17:54:42 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 4189F8FC14 for ; Tue, 28 Dec 2010 17:54:42 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oBSHsgHw096648 for ; Tue, 28 Dec 2010 17:54:42 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oBSHsgxB096645 for perforce@freebsd.org; Tue, 28 Dec 2010 17:54:42 GMT (envelope-from trasz@freebsd.org) Date: Tue, 28 Dec 2010 17:54:42 GMT Message-Id: <201012281754.oBSHsgxB096645@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 187257 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Dec 2010 17:54:42 -0000 http://p4web.freebsd.org/@@187257?ac=10 Change 187257 by trasz@trasz_victim on 2010/12/28 17:54:17 Jail-related fixes. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#100 edit .. //depot/projects/soc2009/trasz_limits/usr.bin/userstat/userstat.sh#2 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#100 (text+ko) ==== @@ -590,7 +590,6 @@ case HRL_SUBJECT_TYPE_JAIL: if (rule->hr_subject.hs_prison != NULL) { prison_free(rule->hr_subject.hs_prison); - sx_xunlock(&allprison_lock); } break; default: @@ -766,13 +765,17 @@ rule->hr_subject.hs_loginclass = loginclass_find(subject_idstr); break; case HRL_SUBJECT_TYPE_JAIL: - sx_xlock(&allprison_lock); + sx_slock(&allprison_lock); rule->hr_subject.hs_prison = prison_find(id); if (rule->hr_subject.hs_prison == NULL) { - sx_xunlock(&allprison_lock); + sx_sunlock(&allprison_lock); error = ESRCH; goto out; } + prison_hold_locked(rule->hr_subject.hs_prison); + /* prison_find() returns with mutex held. */ + mtx_unlock(&rule->hr_subject.hs_prison->pr_mtx); + sx_sunlock(&allprison_lock); break; default: panic("hrl_rule_from_string: unknown subject type %d", ==== //depot/projects/soc2009/trasz_limits/usr.bin/userstat/userstat.sh#2 (text+ko) ==== @@ -56,10 +56,10 @@ n=0 while :; do if [ "`basename $0`" = "jailstat" ]; then - jails="`ps ax -o jid= | sort -u`" + jails="`ps ax -o jid= | sort -u | sed 1d`" printf "JID\t%%CPU\tRSS\tVSIZE\tSWAP\n" for jail in $jails; do - printf "$jid\t" + printf "$jail\t" hrl $hflag -u j:$jail | format_stats done From owner-p4-projects@FreeBSD.ORG Tue Dec 28 18:29:48 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0DD1F1065787; Tue, 28 Dec 2010 18:29:48 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C39A3106577E for ; Tue, 28 Dec 2010 18:29:47 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id AFC808FC16 for ; Tue, 28 Dec 2010 18:29:47 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oBSITl5U005603 for ; Tue, 28 Dec 2010 18:29:47 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oBSITlPS005600 for perforce@freebsd.org; Tue, 28 Dec 2010 18:29:47 GMT (envelope-from trasz@freebsd.org) Date: Tue, 28 Dec 2010 18:29:47 GMT Message-Id: <201012281829.oBSITlPS005600@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 187258 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Dec 2010 18:29:48 -0000 http://p4web.freebsd.org/@@187258?ac=10 Change 187258 by trasz@trasz_victim on 2010/12/28 18:29:43 Fix per-jail rules storage. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#101 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_jail.c#27 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/jail.h#16 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#101 (text+ko) ==== @@ -949,6 +949,9 @@ error = ui_container_foreach(hrl_rule_remove_callback, filter, (void *)&found); KASSERT(error == 0, ("ui_container_foreach failed")); + error = prison_container_foreach(hrl_rule_remove_callback, filter, + (void *)&found); + KASSERT(error == 0, ("prison_container_foreach failed")); sx_assert(&allproc_lock, SA_LOCKED); FOREACH_PROC_IN_SYSTEM(p) { @@ -1210,6 +1213,7 @@ mtx_lock(&hrl_lock); loginclass_container_foreach(hrl_get_rules_callback, filter, sb); ui_container_foreach(hrl_get_rules_callback, filter, sb); + prison_container_foreach(hrl_get_rules_callback, filter, sb); mtx_unlock(&hrl_lock); if (sbuf_error(sb) == ENOMEM) { sbuf_delete(sb); ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_jail.c#27 (text+ko) ==== @@ -4252,6 +4252,28 @@ SYSCTL_JAIL_PARAM(_allow, socket_af, CTLTYPE_INT | CTLFLAG_RW, "B", "Jail may create sockets other than just UNIX/IPv4/IPv6/route"); +#ifdef HRL +int +prison_container_foreach(int (*callback)(struct container *container, + const struct hrl_rule *filter, void *arg3), + const struct hrl_rule *filter, void *arg3) +{ + int error; + struct prison *pr; + + sx_slock(&allprison_lock); + TAILQ_FOREACH(pr, &allprison, pr_list) { + error = (callback)(&pr->pr_container, filter, arg3); + if (error != 0) { + sx_sunlock(&allprison_lock); + return (error); + } + } + sx_sunlock(&allprison_lock); + + return (0); +} +#endif #ifdef DDB ==== //depot/projects/soc2009/trasz_limits/sys/sys/jail.h#16 (text+ko) ==== @@ -341,6 +341,8 @@ struct mount; struct sockaddr; struct statfs; +struct container; +struct hrl_rule; int jailed(struct ucred *cred); int jailed_without_vnet(struct ucred *); void getcredhostname(struct ucred *, char *, size_t); @@ -383,6 +385,9 @@ char *prison_name(struct prison *, struct prison *); int prison_priv_check(struct ucred *cred, int priv); int sysctl_jail_param(struct sysctl_oid *, void *, int , struct sysctl_req *); +int prison_container_foreach(int (*callback)(struct container *container, + const struct hrl_rule *filter, void *arg3), + const struct hrl_rule *filter, void *arg3); #endif /* _KERNEL */ #endif /* !_SYS_JAIL_H_ */ From owner-p4-projects@FreeBSD.ORG Wed Dec 29 07:18:44 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E71A0106566C; Wed, 29 Dec 2010 07:18:43 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9C7701065679 for ; Wed, 29 Dec 2010 07:18:43 +0000 (UTC) (envelope-from lz@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 88B918FC12 for ; Wed, 29 Dec 2010 07:18:43 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oBT7IhCK069462 for ; Wed, 29 Dec 2010 07:18:43 GMT (envelope-from lz@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oBT7Ihch069459 for perforce@freebsd.org; Wed, 29 Dec 2010 07:18:43 GMT (envelope-from lz@FreeBSD.org) Date: Wed, 29 Dec 2010 07:18:43 GMT Message-Id: <201012290718.oBT7Ihch069459@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to lz@FreeBSD.org using -f From: Zheng Liu To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 187277 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Dec 2010 07:18:44 -0000 http://p4web.freebsd.org/@@187277?ac=10 Change 187277 by lz@gnehzuil-freebsd on 2010/12/29 07:17:36 Make ext4fs can support 3 types of hash function: MD4, Legacy and TEA. * Create two new files (ext4_hash.[ch]) to save hash functions. * Add 2 new hash functions: TEA and Legacy. * Make all hash functions under MIT liencse. I have sent an email to author for asking to relicense their license into BSD license. Affected files ... .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext4fs/ext4_hash.c#1 add .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext4fs/ext4_hash.h#1 add .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext4fs/ext4_htree.c#4 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext4fs/ext4_htree.h#3 edit .. //depot/projects/soc2010/ext4fs/src/sys/modules/ext4fs/Makefile#3 edit Differences ... ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext4fs/ext4_htree.c#4 (text+ko) ==== @@ -42,6 +42,7 @@ #include #include #include +#include static int ext4_get_limit(struct dirindex_entry *); static int ext4_root_limit(struct inode *, int); @@ -52,186 +53,6 @@ static int ext4_get_next_block(struct vnode *, u_int32_t, struct dirindex_frame *, struct dirindex_frame *, u_int32_t *); -static u_int32_t half_md4_transform(u_int32_t [], u_int32_t []); -static void str2hashbuf_signed(const char *, int, u_int32_t *, int); -static void str2hashbuf_unsigned(const char *, int, u_int32_t *, int); - -/* - * Constants for MD4Transform routine. - */ -#define S11 3 -#define S12 7 -#define S13 11 -#define S14 19 -#define S21 3 -#define S22 5 -#define S23 9 -#define S24 13 -#define S31 3 -#define S32 9 -#define S33 11 -#define S34 15 - -/* F, G and H are basic MD4 functions. - */ -#define F(x, y, z) (((x) & (y)) | ((~x) & (z))) -#define G(x, y, z) (((x) & (y)) | ((x) & (z)) | ((y) & (z))) -#define H(x, y, z) ((x) ^ (y) ^ (z)) - -/* ROTATE_LEFT rotates x left n bits. - */ -#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n)))) - -/* FF, GG and HH are transformations for rounds 1, 2 and 3 */ -/* Rotation is separate from addition to prevent recomputation */ -#define FF(a, b, c, d, x, s) { \ - (a) += F ((b), (c), (d)) + (x); \ - (a) = ROTATE_LEFT ((a), (s)); \ - } -#define GG(a, b, c, d, x, s) { \ - (a) += G ((b), (c), (d)) + (x) + (u_int32_t)0x5a827999; \ - (a) = ROTATE_LEFT ((a), (s)); \ - } -#define HH(a, b, c, d, x, s) { \ - (a) += H ((b), (c), (d)) + (x) + (u_int32_t)0x6ed9eba1; \ - (a) = ROTATE_LEFT ((a), (s)); \ - } - -/* - * MD4 basic transformation. Transforms state based on block. - * - * XXX: we just implement a half md4 algorithm because Linux uses - * this algoirhtm. This function copies from kern/md4c.c file and - * is modified according to Linux's implementation. - */ -static u_int32_t -half_md4_transform(u_int32_t buf[4], u_int32_t in[8]) -{ - u_int32_t a = buf[0], b = buf[1], c = buf[2], d = buf[3]; - - /* Round 1 */ - FF (a, b, c, d, in[ 0], S11); /* 1 */ - FF (d, a, b, c, in[ 1], S12); /* 2 */ - FF (c, d, a, b, in[ 2], S13); /* 3 */ - FF (b, c, d, a, in[ 3], S14); /* 4 */ - FF (a, b, c, d, in[ 4], S11); /* 5 */ - FF (d, a, b, c, in[ 5], S12); /* 6 */ - FF (c, d, a, b, in[ 6], S13); /* 7 */ - FF (b, c, d, a, in[ 7], S14); /* 8 */ - - /* Round 2 */ - GG (a, b, c, d, in[ 1], S21); /* 17 */ - GG (d, a, b, c, in[ 3], S22); /* 18 */ - GG (c, d, a, b, in[ 5], S23); /* 19 */ - GG (b, c, d, a, in[ 7], S24); /* 20 */ - GG (a, b, c, d, in[ 0], S21); /* 21 */ - GG (d, a, b, c, in[ 2], S22); /* 22 */ - GG (c, d, a, b, in[ 4], S23); /* 23 */ - GG (b, c, d, a, in[ 6], S24); /* 24 */ - - /* Round 3 */ - HH (a, b, c, d, in[ 3], S31); /* 33 */ - HH (d, a, b, c, in[ 7], S32); /* 34 */ - HH (c, d, a, b, in[ 2], S33); /* 35 */ - HH (b, c, d, a, in[ 6], S34); /* 36 */ - HH (a, b, c, d, in[ 1], S31); /* 37 */ - HH (d, a, b, c, in[ 5], S32); /* 38 */ - HH (c, d, a, b, in[ 0], S33); /* 39 */ - HH (b, c, d, a, in[ 4], S34); /* 40 */ - - buf[0] += a; - buf[1] += b; - buf[2] += c; - buf[3] += d; - - return buf[1]; /* "most hashed" word */ -} - -/* - * It does not implement signed version of str2hashbuf function in Haiku. - * But in Linux, the difference between signed's and unsigned's just - * is variable type. - */ -static void -str2hashbuf_signed(const char *msg, int len, u_int32_t *buf, int num) -{ - u_int32_t pad, val; - int i, cnt, max_len, remain; - const signed char *scp = (const signed char *)msg; - - pad = (u_int32_t)len; - pad = (pad << 8) | pad; - pad = (pad << 16) | pad; - - max_len = num * 4; - if (len > max_len) - len = max_len; - - cnt = len / 4; - - for (i = 0; i < cnt; i++) { - val = (pad << 8) | *(scp++); - val = (val << 8) | *(scp++); - val = (val << 8) | *(scp++); - val = (val << 8) | *(scp++); - buf[i] = val; - } - - if (cnt < num) { - remain = len % 4; - val = pad; - for (i = 0; i < remain; i++) - val = (val << 8) + *(scp++); - - buf[cnt] = val; - - for (i = cnt + 1; i < num; i++) - buf[i] = pad; - } -} - -/* - * Refer Haiku's implementation. This implemention is MIT license. - * So the kernel can not be contaminated. - */ -static void -str2hashbuf_unsigned(const char *msg, int len, u_int32_t *buf, int num) -{ - u_int32_t pad, val; - int i, cnt, max_len, remain; - const unsigned char *ucp = (const unsigned char *)msg; - - pad = (u_int32_t)len; - pad = (pad << 8) | pad; - pad = (pad << 16) | pad; - - max_len = num * 4; - if (len > max_len) - len = max_len; - - cnt = len / 4; - - for (i = 0; i < cnt; i++) { - val = (pad << 8) | *(ucp++); - val = (val << 8) | *(ucp++); - val = (val << 8) | *(ucp++); - val = (val << 8) | *(ucp++); - buf[i] = val; - } - - if (cnt < num) { - remain = len % 4; - val = pad; - for (i = 0; i < remain; i++) - val = (val << 8) + *(ucp++); - - buf[cnt] = val; - - for (i = cnt + 1; i < num; i++) - buf[i] = pad; - } -} - int ext4_is_dirindex(struct inode *ip) { @@ -320,12 +141,32 @@ hash = buf[1]; break; case DIRINDEX_HASH_LEGACY: + hash = legacy_hash_signed(name, namelen); break; case DIRINDEX_HASH_LEGACY_UNSIGNED: + hash = legacy_hash_unsigned(name, namelen); break; case DIRINDEX_HASH_TEA: + p = name; + while (namelen > 0) { + str2hashbuf_signed(p, namelen, in, 4); + TEA_transform(buf, in); + name -= 16; + p += 16; + } + minhash = buf[1]; + hash = buf[0]; break; case DIRINDEX_HASH_TEA_UNSIGNED: + p = name; + while (namelen > 0) { + str2hashbuf_unsigned(p, namelen, in, 4); + TEA_transform(buf, in); + name -= 16; + p += 16; + } + minhash = buf[1]; + hash = buf[0]; break; default: hp->di_hash = 0; ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext4fs/ext4_htree.h#3 (text+ko) ==== @@ -94,7 +94,7 @@ u_int32_t *di_seed; }; -/* ext2_htree.c */ +/* ext4_htree.c */ int ext4_is_dirindex(struct inode *); int ext4_dirindex_lookup(struct vnode *, char *, int, doff_t *, struct buf **, doff_t *prevoffp); ==== //depot/projects/soc2010/ext4fs/src/sys/modules/ext4fs/Makefile#3 (text+ko) ==== @@ -5,6 +5,6 @@ SRCS= opt_ddb.h opt_quota.h opt_suiddir.h vnode_if.h \ ext4_alloc.c ext4_balloc.c ext4_bmap.c ext4_extents.c \ ext4_inode.c ext4_inode_cnv.c ext4_lookup.c ext4_subr.c \ - ext4_vfsops.c ext4_vnops.c ext4_htree.c + ext4_vfsops.c ext4_vnops.c ext4_htree.c ext4_hash.c .include From owner-p4-projects@FreeBSD.ORG Thu Dec 30 00:09:51 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B44321065679; Thu, 30 Dec 2010 00:09:51 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 74FEC106566C for ; Thu, 30 Dec 2010 00:09:51 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 61BDA8FC12 for ; Thu, 30 Dec 2010 00:09:51 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oBU09pSs078842 for ; Thu, 30 Dec 2010 00:09:51 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oBU09pIf078839 for perforce@freebsd.org; Thu, 30 Dec 2010 00:09:51 GMT (envelope-from trasz@freebsd.org) Date: Thu, 30 Dec 2010 00:09:51 GMT Message-Id: <201012300009.oBU09pIf078839@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 187309 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Dec 2010 00:09:52 -0000 http://p4web.freebsd.org/@@187309?ac=10 Change 187309 by trasz@trasz_victim on 2010/12/30 00:09:28 Fix LORs in limit enforcement code. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_container.c#46 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#102 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_jail.c#28 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_loginclass.c#23 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#55 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_container.c#46 (text+ko) ==== ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#102 (text+ko) ==== @@ -531,7 +531,8 @@ int removed = 0; struct hrl_rule_link *link, *linktmp; - mtx_lock(&hrl_lock); + mtx_assert(&hrl_lock, MA_OWNED); + LIST_FOREACH_SAFE(link, &container->c_rule_links, hrl_next, linktmp) { if (!hrl_rule_matches(link->hrl_rule, filter)) continue; @@ -541,7 +542,6 @@ uma_zfree(hrl_rule_link_zone, link); removed++; } - mtx_unlock(&hrl_lock); return (removed); } @@ -588,9 +588,8 @@ loginclass_release(rule->hr_subject.hs_loginclass); break; case HRL_SUBJECT_TYPE_JAIL: - if (rule->hr_subject.hs_prison != NULL) { + if (rule->hr_subject.hs_prison != NULL) prison_free(rule->hr_subject.hs_prison); - } break; default: panic("hrl_rule_release_subject: unknown subject type %d", @@ -598,7 +597,6 @@ } } - struct hrl_rule * hrl_rule_alloc(int flags) { @@ -919,10 +917,15 @@ static int hrl_rule_remove_callback(struct container *container, const struct hrl_rule *filter, void *arg3) { - int *found = (int *)arg3; + int found = 0; + + mtx_lock(&hrl_lock); + found += hrl_container_remove_rules(container, filter); + mtx_unlock(&hrl_lock); + + *((int *)arg3) += found; - *found += hrl_container_remove_rules(container, filter); - return (0); + return (found); } /* @@ -937,7 +940,9 @@ if (filter->hr_subject_type == HRL_SUBJECT_TYPE_PROCESS && filter->hr_subject.hs_proc != NULL) { p = filter->hr_subject.hs_proc; + mtx_lock(&hrl_lock); found = hrl_container_remove_rules(&p->p_container, filter); + mtx_unlock(&hrl_lock); if (found) return (0); return (ESRCH); @@ -954,11 +959,11 @@ KASSERT(error == 0, ("prison_container_foreach failed")); sx_assert(&allproc_lock, SA_LOCKED); + mtx_lock(&hrl_lock); FOREACH_PROC_IN_SYSTEM(p) { found += hrl_container_remove_rules(&p->p_container, filter); - if (error == 0) - found = 1; } + mtx_unlock(&hrl_lock); if (found) return (0); @@ -1152,14 +1157,14 @@ struct hrl_rule_link *link; struct sbuf *sb = (struct sbuf *)arg3; - mtx_assert(&hrl_lock, MA_OWNED); - + mtx_lock(&hrl_lock); LIST_FOREACH(link, &container->c_rule_links, hrl_next) { if (!hrl_rule_matches(link->hrl_rule, filter)) continue; hrl_rule_to_sbuf(sb, link->hrl_rule); sbuf_printf(sb, ","); } + mtx_unlock(&hrl_lock); return (0); } @@ -1210,11 +1215,9 @@ mtx_unlock(&hrl_lock); } - mtx_lock(&hrl_lock); loginclass_container_foreach(hrl_get_rules_callback, filter, sb); ui_container_foreach(hrl_get_rules_callback, filter, sb); prison_container_foreach(hrl_get_rules_callback, filter, sb); - mtx_unlock(&hrl_lock); if (sbuf_error(sb) == ENOMEM) { sbuf_delete(sb); free(buf, M_HRL); ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_jail.c#28 (text+ko) ==== @@ -4258,15 +4258,16 @@ const struct hrl_rule *filter, void *arg3), const struct hrl_rule *filter, void *arg3) { - int error; + int again; struct prison *pr; +again: sx_slock(&allprison_lock); TAILQ_FOREACH(pr, &allprison, pr_list) { - error = (callback)(&pr->pr_container, filter, arg3); - if (error != 0) { + again = (callback)(&pr->pr_container, filter, arg3); + if (again != 0) { sx_sunlock(&allprison_lock); - return (error); + goto again; } } sx_sunlock(&allprison_lock); ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_loginclass.c#23 (text+ko) ==== @@ -82,6 +82,11 @@ void loginclass_release(struct loginclass *lc) { + int old; + + old = lc->lc_refcount; + if (old > 1 && atomic_cmpset_int(&lc->lc_refcount, old, old - 1)) + return; mtx_lock(&loginclasses_lock); if (refcount_release(&lc->lc_refcount)) { @@ -212,14 +217,27 @@ const struct hrl_rule *filter, void *arg3), const struct hrl_rule *filter, void *arg3) { - int error; - struct loginclass *lc, *lctmp; + int again; + struct loginclass *lc; - LIST_FOREACH_SAFE(lc, &loginclasses, lc_next, lctmp) { - error = (callback)(&lc->lc_container, filter, arg3); - if (error != 0) - return (error); +again: + mtx_lock(&loginclasses_lock); + LIST_FOREACH(lc, &loginclasses, lc_next) { + /* + * Callback might free the rule, which in turn could + * result in freeing loginclass, which would cause + * recursion on loginclasses_lock. + */ + loginclass_acquire(lc); + again = (callback)(&lc->lc_container, filter, arg3); + if (again != 0) { + mtx_unlock(&loginclasses_lock); + loginclass_release(lc); + goto again; + } + loginclass_release(lc); } + mtx_unlock(&loginclasses_lock); return (0); } ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#55 (text+ko) ==== @@ -1299,19 +1299,27 @@ const struct hrl_rule *filter, void *arg3), const struct hrl_rule *filter, void *arg3) { - int error; - struct uidinfo *uip, *nextuip; + int again; + struct uidinfo *uip; struct uihashhead *uih; +again: rw_rlock(&uihashtbl_lock); for (uih = &uihashtbl[uihash]; uih >= uihashtbl; uih--) { - for (uip = LIST_FIRST(uih); uip; uip = nextuip) { - nextuip = LIST_NEXT(uip, ui_hash); - error = (callback)(&uip->ui_container, filter, arg3); - if (error != 0) { + LIST_FOREACH(uip, uih, ui_hash) { + /* + * Callback might free the rule, which in turn could + * result in freeing uidinfo, which would cause recursion + * on uihashtbl_lock. + */ + uihold(uip); + again = (callback)(&uip->ui_container, filter, arg3); + if (again != 0) { rw_runlock(&uihashtbl_lock); - return (error); + uifree(uip); + goto again; } + uifree(uip); } } rw_runlock(&uihashtbl_lock); From owner-p4-projects@FreeBSD.ORG Thu Dec 30 00:23:01 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 261B01065672; Thu, 30 Dec 2010 00:23:01 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DBB5A106566B for ; Thu, 30 Dec 2010 00:23:00 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id C74558FC0A for ; Thu, 30 Dec 2010 00:23:00 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oBU0N0O5083455 for ; Thu, 30 Dec 2010 00:23:00 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oBU0Mx9e083452 for perforce@freebsd.org; Thu, 30 Dec 2010 00:22:59 GMT (envelope-from trasz@freebsd.org) Date: Thu, 30 Dec 2010 00:22:59 GMT Message-Id: <201012300022.oBU0Mx9e083452@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 187310 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Dec 2010 00:23:01 -0000 http://p4web.freebsd.org/@@187310?ac=10 Change 187310 by trasz@trasz_victim on 2010/12/30 00:22:02 IFC. Affected files ... .. //depot/projects/soc2009/trasz_limits/Makefile#7 integrate .. //depot/projects/soc2009/trasz_limits/ObsoleteFiles.inc#32 integrate .. //depot/projects/soc2009/trasz_limits/UPDATING#30 integrate .. //depot/projects/soc2009/trasz_limits/bin/kill/kill.1#2 integrate .. //depot/projects/soc2009/trasz_limits/bin/kill/kill.c#4 integrate .. //depot/projects/soc2009/trasz_limits/bin/sh/Makefile#4 integrate .. //depot/projects/soc2009/trasz_limits/bin/sh/alias.c#5 integrate .. //depot/projects/soc2009/trasz_limits/bin/sh/arith_lex.l#5 integrate .. //depot/projects/soc2009/trasz_limits/bin/sh/bltin/bltin.h#3 integrate .. //depot/projects/soc2009/trasz_limits/bin/sh/builtins.def#3 integrate .. //depot/projects/soc2009/trasz_limits/bin/sh/cd.c#8 integrate .. //depot/projects/soc2009/trasz_limits/bin/sh/error.c#7 integrate .. //depot/projects/soc2009/trasz_limits/bin/sh/error.h#4 integrate .. //depot/projects/soc2009/trasz_limits/bin/sh/eval.c#17 integrate .. //depot/projects/soc2009/trasz_limits/bin/sh/exec.c#10 integrate .. //depot/projects/soc2009/trasz_limits/bin/sh/expand.c#16 integrate .. //depot/projects/soc2009/trasz_limits/bin/sh/expand.h#4 integrate .. //depot/projects/soc2009/trasz_limits/bin/sh/histedit.c#12 integrate .. //depot/projects/soc2009/trasz_limits/bin/sh/jobs.c#9 integrate .. //depot/projects/soc2009/trasz_limits/bin/sh/memalloc.c#6 integrate .. //depot/projects/soc2009/trasz_limits/bin/sh/memalloc.h#6 integrate .. //depot/projects/soc2009/trasz_limits/bin/sh/output.c#7 integrate .. //depot/projects/soc2009/trasz_limits/bin/sh/parser.c#18 integrate .. //depot/projects/soc2009/trasz_limits/bin/sh/sh.1#19 integrate .. //depot/projects/soc2009/trasz_limits/bin/sh/trap.c#6 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bsnmp/lib/bsnmplib.3#5 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bsnmp/lib/snmp.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bsnmp/lib/snmp.h#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bsnmp/lib/snmpagent.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bsnmp/lib/snmpclient.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bsnmp/lib/snmpcrypto.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bsnmp/lib/snmppriv.h#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bsnmp/lib/tc.def#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/bsnmp/snmp_target/snmp_target.3#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/bsnmp/snmp_target/target_snmp.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/bsnmp/snmp_target/target_tree.def#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/bsnmp/snmp_usm/snmp_usm.3#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bsnmp/snmp_usm/usm_tree.def#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bsnmp/snmp_vacm/vacm_tree.def#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bsnmp/snmpd/main.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bsnmp/snmpd/snmpmod.3#6 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bsnmp/snmpd/snmpmod.h#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bsnmp/snmpd/trap.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bsnmp/snmpd/tree.def#3 integrate .. //depot/projects/soc2009/trasz_limits/etc/rc.d/devd#3 integrate .. //depot/projects/soc2009/trasz_limits/etc/rc.d/pf#5 integrate .. //depot/projects/soc2009/trasz_limits/etc/snmpd.config#4 integrate .. //depot/projects/soc2009/trasz_limits/games/factor/factor.c#3 integrate .. //depot/projects/soc2009/trasz_limits/gnu/lib/libgcc/Makefile#10 integrate .. //depot/projects/soc2009/trasz_limits/include/unistd.h#9 integrate .. //depot/projects/soc2009/trasz_limits/lib/libbsnmp/libbsnmp/Makefile#4 integrate .. //depot/projects/soc2009/trasz_limits/lib/libc/locale/mbrtowc.3#3 integrate .. //depot/projects/soc2009/trasz_limits/lib/libc/posix1e/acl_is_trivial_np.3#2 integrate .. //depot/projects/soc2009/trasz_limits/lib/libc/powerpc64/sys/cerror.S#2 integrate .. //depot/projects/soc2009/trasz_limits/lib/libc/powerpc64/sys/ptrace.S#2 integrate .. //depot/projects/soc2009/trasz_limits/lib/libc/rpc/publickey.3#3 integrate .. //depot/projects/soc2009/trasz_limits/lib/libc/sys/shmat.2#2 integrate .. //depot/projects/soc2009/trasz_limits/lib/libc/sys/shmctl.2#3 integrate .. //depot/projects/soc2009/trasz_limits/lib/libc/sys/shmget.2#2 integrate .. //depot/projects/soc2009/trasz_limits/lib/libcompiler_rt/Makefile#2 integrate .. //depot/projects/soc2009/trasz_limits/lib/libkvm/kvm_getloadavg.3#3 integrate .. //depot/projects/soc2009/trasz_limits/lib/libproc/proc_create.c#3 integrate .. //depot/projects/soc2009/trasz_limits/lib/libthr/thread/Makefile.inc#3 integrate .. //depot/projects/soc2009/trasz_limits/lib/libthr/thread/thr_cond.c#5 integrate .. //depot/projects/soc2009/trasz_limits/lib/libthr/thread/thr_init.c#5 integrate .. //depot/projects/soc2009/trasz_limits/lib/libthr/thread/thr_kern.c#3 integrate .. //depot/projects/soc2009/trasz_limits/lib/libthr/thread/thr_list.c#3 integrate .. //depot/projects/soc2009/trasz_limits/lib/libthr/thread/thr_mutex.c#5 integrate .. //depot/projects/soc2009/trasz_limits/lib/libthr/thread/thr_private.h#8 integrate .. //depot/projects/soc2009/trasz_limits/lib/libthr/thread/thr_sleepq.c#1 branch .. //depot/projects/soc2009/trasz_limits/lib/libthr/thread/thr_umtx.c#4 integrate .. //depot/projects/soc2009/trasz_limits/lib/libthr/thread/thr_umtx.h#4 integrate .. //depot/projects/soc2009/trasz_limits/lib/libusb/libusb20_compat01.c#7 integrate .. //depot/projects/soc2009/trasz_limits/libexec/getty/chat.c#2 integrate .. //depot/projects/soc2009/trasz_limits/libexec/getty/main.c#3 integrate .. //depot/projects/soc2009/trasz_limits/libexec/rbootd/rbootd.c#2 integrate .. //depot/projects/soc2009/trasz_limits/libexec/rlogind/rlogind.c#4 integrate .. //depot/projects/soc2009/trasz_limits/libexec/rpc.rwalld/rwalld.c#2 integrate .. //depot/projects/soc2009/trasz_limits/libexec/rtld-elf/Makefile#9 integrate .. //depot/projects/soc2009/trasz_limits/libexec/rtld-elf/amd64/reloc.c#3 integrate .. //depot/projects/soc2009/trasz_limits/libexec/rtld-elf/arm/reloc.c#3 integrate .. //depot/projects/soc2009/trasz_limits/libexec/rtld-elf/i386/reloc.c#3 integrate .. //depot/projects/soc2009/trasz_limits/libexec/rtld-elf/ia64/reloc.c#3 integrate .. //depot/projects/soc2009/trasz_limits/libexec/rtld-elf/mips/reloc.c#5 integrate .. //depot/projects/soc2009/trasz_limits/libexec/rtld-elf/powerpc/reloc.c#5 integrate .. //depot/projects/soc2009/trasz_limits/libexec/rtld-elf/powerpc64/reloc.c#3 integrate .. //depot/projects/soc2009/trasz_limits/libexec/rtld-elf/powerpc64/rtld_start.S#2 integrate .. //depot/projects/soc2009/trasz_limits/libexec/rtld-elf/rtld.1#3 integrate .. //depot/projects/soc2009/trasz_limits/libexec/rtld-elf/rtld.c#14 integrate .. //depot/projects/soc2009/trasz_limits/libexec/rtld-elf/rtld.h#7 integrate .. //depot/projects/soc2009/trasz_limits/libexec/rtld-elf/rtld_lock.c#2 integrate .. //depot/projects/soc2009/trasz_limits/libexec/rtld-elf/rtld_lock.h#2 integrate .. //depot/projects/soc2009/trasz_limits/libexec/rtld-elf/sparc64/reloc.c#3 integrate .. //depot/projects/soc2009/trasz_limits/release/powerpc/mkisoimages.sh#3 integrate .. //depot/projects/soc2009/trasz_limits/sbin/dumpfs/dumpfs.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sbin/geom/Makefile.inc#3 integrate .. //depot/projects/soc2009/trasz_limits/sbin/geom/class/Makefile.inc#2 integrate .. //depot/projects/soc2009/trasz_limits/sbin/geom/class/cache/Makefile#3 integrate .. //depot/projects/soc2009/trasz_limits/sbin/geom/class/concat/Makefile#2 integrate .. //depot/projects/soc2009/trasz_limits/sbin/geom/class/eli/Makefile#2 integrate .. //depot/projects/soc2009/trasz_limits/sbin/geom/class/journal/Makefile#2 integrate .. //depot/projects/soc2009/trasz_limits/sbin/geom/class/label/Makefile#2 integrate .. //depot/projects/soc2009/trasz_limits/sbin/geom/class/mirror/Makefile#2 integrate .. //depot/projects/soc2009/trasz_limits/sbin/geom/class/mountver/Makefile#2 integrate .. //depot/projects/soc2009/trasz_limits/sbin/geom/class/multipath/Makefile#2 integrate .. //depot/projects/soc2009/trasz_limits/sbin/geom/class/nop/Makefile#2 integrate .. //depot/projects/soc2009/trasz_limits/sbin/geom/class/part/Makefile#4 integrate .. //depot/projects/soc2009/trasz_limits/sbin/geom/class/part/geom_part.c#11 integrate .. //depot/projects/soc2009/trasz_limits/sbin/geom/class/raid3/Makefile#2 integrate .. //depot/projects/soc2009/trasz_limits/sbin/geom/class/sched/Makefile#2 integrate .. //depot/projects/soc2009/trasz_limits/sbin/geom/class/shsec/Makefile#2 integrate .. //depot/projects/soc2009/trasz_limits/sbin/geom/class/stripe/Makefile#2 integrate .. //depot/projects/soc2009/trasz_limits/sbin/geom/class/virstor/Makefile#2 integrate .. //depot/projects/soc2009/trasz_limits/sbin/geom/core/Makefile#2 integrate .. //depot/projects/soc2009/trasz_limits/sbin/geom/core/geom.c#8 integrate .. //depot/projects/soc2009/trasz_limits/sbin/hastd/hastd.c#9 integrate .. //depot/projects/soc2009/trasz_limits/sbin/hastd/parse.y#6 integrate .. //depot/projects/soc2009/trasz_limits/sbin/hastd/primary.c#11 integrate .. //depot/projects/soc2009/trasz_limits/sbin/ifconfig/ifmedia.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sbin/mount/mount_fs.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sbin/mount_nfs/mount_nfs.c#11 integrate .. //depot/projects/soc2009/trasz_limits/sbin/newfs/mkfs.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sbin/newfs/newfs.8#4 integrate .. //depot/projects/soc2009/trasz_limits/sbin/newfs/newfs.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sbin/newfs/newfs.h#4 integrate .. //depot/projects/soc2009/trasz_limits/sbin/ping6/ping6.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sbin/savecore/savecore.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sbin/tunefs/tunefs.8#5 integrate .. //depot/projects/soc2009/trasz_limits/sbin/tunefs/tunefs.c#6 integrate .. //depot/projects/soc2009/trasz_limits/share/man/man1/builtin.1#5 integrate .. //depot/projects/soc2009/trasz_limits/share/man/man4/Makefile#27 integrate .. //depot/projects/soc2009/trasz_limits/share/man/man4/altq.4#7 integrate .. //depot/projects/soc2009/trasz_limits/share/man/man4/ixgb.4#2 integrate .. //depot/projects/soc2009/trasz_limits/share/man/man4/ixgbe.4#2 integrate .. //depot/projects/soc2009/trasz_limits/share/man/man4/jme.4#2 integrate .. //depot/projects/soc2009/trasz_limits/share/man/man4/miibus.4#4 integrate .. //depot/projects/soc2009/trasz_limits/share/man/man4/vlan.4#4 integrate .. //depot/projects/soc2009/trasz_limits/share/man/man4/xen.4#1 branch .. //depot/projects/soc2009/trasz_limits/share/man/man5/core.5#3 integrate .. //depot/projects/soc2009/trasz_limits/share/man/man9/VOP_READDIR.9#4 integrate .. //depot/projects/soc2009/trasz_limits/share/misc/committers-ports.dot#16 integrate .. //depot/projects/soc2009/trasz_limits/share/mk/bsd.own.mk#9 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/amd64/cpu_switch.S#9 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/amd64/exception.S#9 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/amd64/fpu.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/amd64/genassym.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/amd64/legacy.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/amd64/machdep.c#23 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/amd64/sys_machdep.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/amd64/vm_machdep.c#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/conf/XENHVM#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/ia32/ia32_reg.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/ia32/ia32_signal.c#11 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/include/atomic.h#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/include/bus.h#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/include/pcb.h#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/linux32/linux32_machdep.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/linux32/linux32_sysvec.c#12 integrate .. //depot/projects/soc2009/trasz_limits/sys/arm/xscale/ixp425/avila_gpio.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/cddl/dev/cyclic/i386/cyclic_machdep.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32.h#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/compat/ndis/hal_var.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/conf/Makefile.mips#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/conf/NOTES#28 integrate .. //depot/projects/soc2009/trasz_limits/sys/conf/files#40 integrate .. //depot/projects/soc2009/trasz_limits/sys/conf/kern.pre.mk#9 integrate .. //depot/projects/soc2009/trasz_limits/sys/conf/makeLINT.mk#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/acpica/changes.txt#11 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/acpica/common/dmtable.c#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/acpica/common/dmtbinfo.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/acpica/compiler/aslanalyze.c#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/acpica/compiler/aslerror.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/acpica/compiler/aslmessages.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/acpica/compiler/dtutils.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/acpica/debugger/dbcmds.c#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/acpica/debugger/dbdisply.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/acpica/debugger/dbexec.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/acpica/dispatcher/dswexec.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/acpica/events/evevent.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/acpica/events/evgpe.c#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/acpica/events/evgpeblk.c#9 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/acpica/events/evgpeinit.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/acpica/events/evgpeutil.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/acpica/events/evxface.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/acpica/events/evxfevnt.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/acpica/events/evxfgpe.c#1 branch .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/acpica/executer/exconfig.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/acpica/include/acdebug.h#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/acpica/include/acdisasm.h#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/acpica/include/acevents.h#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/acpica/include/acglobal.h#11 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/acpica/include/aclocal.h#10 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/acpica/include/acpixf.h#11 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/acpica/include/actypes.h#9 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/acpica/tools/acpiexec/aecommon.h#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/acpica/utilities/utglobal.c#10 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/acpica/utilities/utxface.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/wpi/LICENSE#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/wpi/iwlwifi-3945-15.32.2.9.fw.uu#1 branch .. //depot/projects/soc2009/trasz_limits/sys/contrib/dev/wpi/iwlwifi-3945-2.14.4.fw.uu#2 delete .. //depot/projects/soc2009/trasz_limits/sys/contrib/octeon-sdk/cvmx-app-init.h#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/octeon-sdk/cvmx-helper-board.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/octeon-sdk/cvmx-helper-rgmii.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/octeon-sdk/cvmx-pcie.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/acpica/acpi.c#19 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/acpica/acpi_battery.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/acpica/acpi_button.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/acpica/acpi_cmbat.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/acpica/acpi_cpu.c#13 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/acpica/acpi_ec.c#10 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/acpica/acpi_hpet.c#12 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/acpica/acpi_smbat.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/acpica/acpiio.h#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/acpica/acpivar.h#11 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/ale/if_ale.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/atkbdc/atkbd_atkbdc.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/atkbdc/atkbdc.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/atkbdc/atkbdc_isa.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/atkbdc/atkbdcreg.h#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/atkbdc/psm.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/cxgb/ulp/tom/cxgb_ddp.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/cxgb/ulp/tom/cxgb_vm.c#4 delete .. //depot/projects/soc2009/trasz_limits/sys/dev/cxgb/ulp/tom/cxgb_vm.h#2 delete .. //depot/projects/soc2009/trasz_limits/sys/dev/drm/via_dmablit.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/hifn/hifn7751.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/if_ndis/if_ndis_pccard.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/if_ndis/if_ndis_pci.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/jme/if_jme.c#10 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/jme/if_jmereg.h#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/jme/if_jmevar.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/le/if_le_pci.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/lmc/if_lmc.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/malo/if_malo_pci.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/md/md.c#12 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/mii/jmphy.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/mii/jmphyreg.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/mii/nsgphy.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/mpt/mpt_pci.c#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/pci/vga_pci.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/puc/pucdata.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/sis/if_sis.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/sound/pci/atiixp.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/sound/pci/csa.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/sound/pci/hda/hdac.c#16 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/sound/pci/ich.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/uart/uart_cpu_amd64.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/uart/uart_cpu_i386.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/uart/uart_cpu_pc98.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/wpi/if_wpi.c#10 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/xen/console/console.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/fs/devfs/devfs_devs.c#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/fs/devfs/devfs_rule.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/fs/devfs/devfs_vnops.c#10 integrate .. //depot/projects/soc2009/trasz_limits/sys/fs/nfs/nfs.h#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/fs/nfs/nfs_commonsubs.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/fs/nfs/nfs_var.h#13 integrate .. //depot/projects/soc2009/trasz_limits/sys/fs/nfsserver/nfs_nfsdport.c#15 integrate .. //depot/projects/soc2009/trasz_limits/sys/fs/nfsserver/nfs_nfsdserv.c#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/fs/nfsserver/nfs_nfsdsocket.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/fs/nfsserver/nfs_nfsdstate.c#15 integrate .. //depot/projects/soc2009/trasz_limits/sys/geom/geom_disk.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/geom/part/g_part_ebr.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/conf/NOTES#19 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/conf/XBOX#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/conf/XEN#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/i386/legacy.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/i386/machdep.c#22 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/i386/pmap.c#25 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/include/atomic.h#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/include/bus.h#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/isa/npx.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/xen/clock.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/xen/pmap.c#16 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_fail.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hhook.c#1 branch .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_khelp.c#1 branch .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#56 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_timeout.c#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_umtx.c#12 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/sched_4bsd.c#10 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/sched_ule.c#15 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/subr_acl_nfs4.c#10 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/sys_pipe.c#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/sys_process.c#13 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/uipc_cow.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/uipc_syscalls.c#16 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/vfs_bio.c#18 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/vfs_subr.c#21 integrate .. //depot/projects/soc2009/trasz_limits/sys/mips/cavium/octe/ethernet-common.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/mips/cavium/octeon_machdep.c#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/mips/conf/SENTRY5#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/mips/conf/SWARM#9 integrate .. //depot/projects/soc2009/trasz_limits/sys/mips/conf/SWARM64#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/mips/conf/SWARM64_SMP#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/mips/conf/SWARM_SMP#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/mips/conf/XLR#9 integrate .. //depot/projects/soc2009/trasz_limits/sys/mips/mips/elf_trampoline.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/mips/mips/inckern.S#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/mips/rmi/board.c#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/mips/rmi/board.h#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/mips/rmi/dev/iic/at24co2n.c#1 branch .. //depot/projects/soc2009/trasz_limits/sys/mips/rmi/dev/iic/ds1374u.c#1 branch .. //depot/projects/soc2009/trasz_limits/sys/mips/rmi/dev/iic/max6657.c#1 branch .. //depot/projects/soc2009/trasz_limits/sys/mips/rmi/dev/xlr/rge.c#9 integrate .. //depot/projects/soc2009/trasz_limits/sys/mips/rmi/files.xlr#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/mips/rmi/iodi.c#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/mips/rmi/xlr_i2c.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/modules/acpi/acpi/Makefile#15 integrate .. //depot/projects/soc2009/trasz_limits/sys/modules/wpifw/Makefile#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/net/bpf_zerocopy.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/if_atm.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/in_pcb.c#18 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_cc_functions.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_indata.c#16 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_input.c#16 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_output.c#20 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_sysctl.h#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_timer.c#10 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_usrreq.c#12 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/sctputil.c#19 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/tcp_input.c#15 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/tcp_output.c#11 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/tcp_sack.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/tcp_subr.c#14 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/tcp_timer.c#10 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/tcp_var.h#14 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet6/in6_ifattach.c#13 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet6/sctp6_usrreq.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/nfsserver/nfs.h#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/nfsserver/nfs_serv.c#10 integrate .. //depot/projects/soc2009/trasz_limits/sys/nfsserver/nfs_srvsubs.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/pc98/include/bus.h#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/powerpc/aim/mmu_oea.c#15 integrate .. //depot/projects/soc2009/trasz_limits/sys/powerpc/aim/mmu_oea64.c#17 integrate .. //depot/projects/soc2009/trasz_limits/sys/powerpc/aim/moea64_native.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/powerpc/include/vmparam.h#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/sparc64/include/asmacros.h#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/sparc64/include/cpufunc.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/sparc64/include/pmap.h#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/sparc64/include/tsb.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/sparc64/include/vmparam.h#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/sparc64/sparc64/exception.S#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/sparc64/sparc64/genassym.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/sparc64/sparc64/mp_machdep.c#10 integrate .. //depot/projects/soc2009/trasz_limits/sys/sparc64/sparc64/pmap.c#13 integrate .. //depot/projects/soc2009/trasz_limits/sys/sparc64/sparc64/support.S#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/sparc64/sparc64/tick.c#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/sparc64/sparc64/tsb.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/sys/_umtx.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/sys/fail.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/sys/hhook.h#1 branch .. //depot/projects/soc2009/trasz_limits/sys/sys/khelp.h#1 branch .. //depot/projects/soc2009/trasz_limits/sys/sys/module_khelp.h#1 branch .. //depot/projects/soc2009/trasz_limits/sys/sys/mount.h#13 integrate .. //depot/projects/soc2009/trasz_limits/sys/sys/osd.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/sys/param.h#29 integrate .. //depot/projects/soc2009/trasz_limits/sys/sys/sched.h#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/sys/sleepqueue.h#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/sys/turnstile.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/sys/umtx.h#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/ufs/ffs/ffs_alloc.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/ufs/ffs/ffs_softdep.c#13 integrate .. //depot/projects/soc2009/trasz_limits/sys/ufs/ffs/ffs_vfsops.c#14 integrate .. //depot/projects/soc2009/trasz_limits/sys/ufs/ffs/fs.h#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/ufs/ffs/softdep.h#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/ufs/ufs/ufs_inode.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/ufs/ufs/ufsmount.h#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/vm/memguard.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/vm/vm_contig.c#11 integrate .. //depot/projects/soc2009/trasz_limits/sys/vm/vm_extern.h#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/vm/vm_fault.c#11 integrate .. //depot/projects/soc2009/trasz_limits/sys/vm/vm_map.h#10 integrate .. //depot/projects/soc2009/trasz_limits/sys/vm/vm_object.c#14 integrate .. //depot/projects/soc2009/trasz_limits/sys/vm/vm_object.h#9 integrate .. //depot/projects/soc2009/trasz_limits/sys/vm/vm_page.c#22 integrate .. //depot/projects/soc2009/trasz_limits/sys/vm/vm_page.h#13 integrate .. //depot/projects/soc2009/trasz_limits/sys/x86/include/bus.h#1 branch .. //depot/projects/soc2009/trasz_limits/sys/x86/isa/atrtc.c#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/x86/x86/io_apic.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/x86/x86/nexus.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/xen/xenstore/xenstore.c#2 integrate .. //depot/projects/soc2009/trasz_limits/tools/regression/acltools/02.t#2 integrate .. //depot/projects/soc2009/trasz_limits/tools/regression/acltools/tools-nfs4-psarc.test#1 branch .. //depot/projects/soc2009/trasz_limits/tools/regression/bin/sh/builtins/printf3.0#1 branch .. //depot/projects/soc2009/trasz_limits/tools/regression/bin/sh/builtins/printf4.0#1 branch .. //depot/projects/soc2009/trasz_limits/tools/regression/bin/sh/errors/bad-keyword1.0#2 integrate .. //depot/projects/soc2009/trasz_limits/tools/regression/bin/sh/execution/func3.0#2 integrate .. //depot/projects/soc2009/trasz_limits/tools/regression/bin/sh/expansion/arith7.0#1 branch .. //depot/projects/soc2009/trasz_limits/tools/regression/bin/sh/expansion/arith8.0#1 branch .. //depot/projects/soc2009/trasz_limits/tools/regression/bin/sh/expansion/cmdsubst3.0#1 branch .. //depot/projects/soc2009/trasz_limits/tools/regression/bin/sh/expansion/cmdsubst4.0#1 branch .. //depot/projects/soc2009/trasz_limits/tools/regression/bin/sh/expansion/cmdsubst5.0#1 branch .. //depot/projects/soc2009/trasz_limits/tools/regression/bin/sh/expansion/cmdsubst6.0#1 branch .. //depot/projects/soc2009/trasz_limits/tools/regression/bin/sh/expansion/cmdsubst7.0#1 branch .. //depot/projects/soc2009/trasz_limits/tools/regression/bin/sh/expansion/plus-minus1.0#2 integrate .. //depot/projects/soc2009/trasz_limits/tools/regression/bin/sh/expansion/plus-minus7.0#1 branch .. //depot/projects/soc2009/trasz_limits/tools/regression/sockets/sendfile/sendfile.c#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/ar/ar.1#7 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/c89/c89.1#4 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/c99/c99.1#5 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/calendar/calendar.1#5 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/calendar/calendar.h#4 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/calendar/calendars/calendar.freebsd#15 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/calendar/parsedata.c#5 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/csup/rcsfile.c#2 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/csup/rcsfile.h#2 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/gcore/gcore.1#5 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/lock/lock.c#5 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/mail/cmd1.c#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/mail/cmd2.c#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/mail/cmd3.c#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/mail/collect.c#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/mail/edit.c#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/mail/fio.c#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/mail/getname.c#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/mail/head.c#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/mail/lex.c#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/mail/list.c#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/mail/mail.1#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/mail/main.c#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/mail/names.c#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/mail/popen.c#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/mail/quit.c#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/mail/send.c#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/mail/strings.c#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/mail/temp.c#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/mail/tty.c#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/mail/util.c#5 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/mail/v7.local.c#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/mail/vars.c#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/man/man.sh#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/printf/printf.c#4 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/rsh/rsh.c#2 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/stat/stat.c#5 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/tar/bsdtar.1#6 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/acpi/acpidb/Makefile#9 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/ancontrol/ancontrol.8#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/bsnmpd/bsnmpd/Makefile#4 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/bsnmpd/modules/Makefile#4 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_tree.def#2 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/bsnmpd/modules/snmp_target/Makefile#1 branch .. //depot/projects/soc2009/trasz_limits/usr.sbin/bsnmpd/modules/snmp_wlan/wlan_tree.def#2 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/lmcconfig/Makefile#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/lmcconfig/lmcconfig.c#2 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/mld6query/mld6.c#2 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/mountd/mountd.c#6 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/ngctl/main.c#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/ngctl/msg.c#2 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/pkg_install/add/main.c#7 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/portsnap/portsnap/portsnap.sh#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/rpc.lockd/Makefile#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/rpc.lockd/lockd.c#2 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/rpc.lockd/lockd_lock.c#2 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/rtadvd/Makefile#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/rtadvd/rtadvd.8#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/rtadvd/rtadvd.c#2 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/sysinstall/media.c#6 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/sysinstall/menus.c#11 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/wpa/hostapd/driver_freebsd.c#4 integrate Differences ... ==== //depot/projects/soc2009/trasz_limits/Makefile#7 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/Makefile,v 1.368 2010/11/13 22:38:33 imp Exp $ +# $FreeBSD: src/Makefile,v 1.371 2010/12/24 04:55:56 imp Exp $ # # The user-driven targets are: # @@ -271,7 +271,7 @@ tinderbox: cd ${.CURDIR} && \ - DOING_TINDERBOX=YES ${MAKE} ${JFLAG} universe + DOING_TINDERBOX=YES ${MAKE} JFLAG=${JFLAG} universe # # universe @@ -281,7 +281,15 @@ # existing system is. # .if make(universe) || make(universe_kernels) || make(tinderbox) -TARGETS?=amd64 i386 ia64 pc98 powerpc sparc64 sun4v mips +TARGETS?=amd64 arm i386 ia64 mips pc98 powerpc sparc64 sun4v +TARGET_ARCHES_arm?= arm armeb +TARGET_ARCHES_mips?= mipsel mipseb +TARGET_ARCHES_powerpc?= powerpc powerpc64 +TARGET_ARCHES_pc98?= i386 +TARGET_ARCHES_sun4v?= sparc64 +.for target in ${TARGETS} +TARGET_ARCHES_${target}?= ${target} +.endfor .if defined(DOING_TINDERBOX) FAILFILE=tinderbox.failed @@ -301,16 +309,24 @@ .for target in ${TARGETS} universe: universe_${target} .ORDER: universe_prologue universe_${target} universe_epilogue -universe_${target}: +universe_${target}: universe_${target}_prologue +universe_${target}_prologue: + @echo ">> ${target} started on `LC_ALL=C date`" .if !defined(MAKE_JUST_KERNELS) - @echo ">> ${target} started on `LC_ALL=C date`" +.for target_arch in ${TARGET_ARCHES_${target}} +universe_${target}: universe_${target}_${target_arch} +universe_${target}_${target_arch}: universe_${target}_prologue + @echo ">> ${target}.${target_arch} buildworld started on `LC_ALL=C date`" @(cd ${.CURDIR} && env __MAKE_CONF=/dev/null \ ${MAKE} ${JFLAG} buildworld \ TARGET=${target} \ - > _.${target}.buildworld 2>&1 || \ - (echo "${target} world failed," \ - "check _.${target}.buildworld for details" | ${MAKEFAIL})) - @echo ">> ${target} buildworld completed on `LC_ALL=C date`" + TARGET_ARCH=${target_arch} \ + > _.${target}.${target_arch}.buildworld 2>&1 || \ + (echo "${target}.${target_arch} world failed," \ + "check _.${target}.${target_arch}.buildworld for details" | \ + ${MAKEFAIL})) + @echo ">> ${target}.${target_arch} buildworld completed on `LC_ALL=C date`" +.endfor .endif .if !defined(MAKE_JUST_WORLDS) .if exists(${.CURDIR}/sys/${target}/conf/NOTES) @@ -333,9 +349,15 @@ ! -name DEFAULTS ! -name NOTES universe_kernconfs: .for kernel in ${KERNCONFS} +TARGET_ARCH_${kernel}!= cd ${.CURDIR}/sys/${TARGET}/conf && \ + config -m ${.CURDIR}/sys/${TARGET}/conf/${kernel} 2> /dev/null | \ + cut -f 2 +universe_kernconfs: universe_kernconf_${TARGET}_${kernel} +universe_kernconf_${TARGET}_${kernel}: @(cd ${.CURDIR} && env __MAKE_CONF=/dev/null \ ${MAKE} ${JFLAG} buildkernel \ TARGET=${TARGET} \ + TARGET_ARCH=${TARGET_ARCH_${kernel}} \ KERNCONF=${kernel} \ > _.${TARGET}.${kernel} 2>&1 || \ (echo "${TARGET} ${kernel} kernel failed," \ ==== //depot/projects/soc2009/trasz_limits/ObsoleteFiles.inc#32 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.257 2010/12/04 18:52:05 dougb Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.258 2010/12/16 11:58:50 syrinx Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -284,6 +284,8 @@ OLD_FILES+=usr/share/man/man9/ieee80211_wep_crypt.9.gz # 20090801: vimage.h removed in favour of vnet.h OLD_FILES+=usr/include/sys/vimage.h +# 20101208: libbsnmp was moved to usr/lib +OLD_LIBS+=lib/libbsnmp.so.5 # 20090719: library version bump for 8.0 OLD_LIBS+=lib/libalias.so.6 OLD_LIBS+=lib/libavl.so.1 ==== //depot/projects/soc2009/trasz_limits/UPDATING#30 (text+ko) ==== @@ -22,6 +22,13 @@ machines to maximize performance. (To disable malloc debugging, run ln -s aj /etc/malloc.conf.) +20101228: + The TCP stack has been modified to allow Khelp modules to interact with + it via helper hook points and store per-connection data in the TCP + control block. Bump __FreeBSD_version to 900029. User space tools that + rely on the size of struct tcpcb in tcp_var.h (e.g. sockstat) need to + be recompiled. + 20101114: Generic IEEE 802.3 annex 31B full duplex flow control support has been added to mii(4) and bge(4), bce(4), msk(4), nfe(4) and stge(4) along @@ -1136,8 +1143,8 @@ [3] mergemaster -p [5] make installworld - make delete-old mergemaster -i [4] + make delete-old [6] @@ -1174,8 +1181,8 @@ [3] mergemaster -p [5] make installworld - make delete-old mergemaster -i [4] + make delete-old [6] Make sure that you've read the UPDATING file to understand the @@ -1218,6 +1225,10 @@ install) after the buildworld before this step if you last updated from current before 20020224 or from -stable before 20020408. + [6] This only deletes old files and directories. Old libraries + can be deleted by "make delete-old-libs", but you have to make + sure that no program is using those libraries anymore. + [8] In order to have a kernel that can run the 4.x binaries needed to do an installworld, you must include the COMPAT_FREEBSD4 option in your kernel. Failure to do so may leave you with a system that is @@ -1268,4 +1279,4 @@ Contact Warner Losh if you have any questions about your use of this document. -$FreeBSD: src/UPDATING,v 1.671 2010/11/14 13:26:10 marius Exp $ +$FreeBSD: src/UPDATING,v 1.673 2010/12/28 12:13:30 lstewart Exp $ ==== //depot/projects/soc2009/trasz_limits/bin/kill/kill.1#2 (text+ko) ==== @@ -30,7 +30,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)kill.1 8.2 (Berkeley) 4/28/95 -.\" $FreeBSD: src/bin/kill/kill.1,v 1.21 2007/03/04 09:15:12 ru Exp $ +.\" $FreeBSD: src/bin/kill/kill.1,v 1.22 2010/12/21 22:47:34 jilles Exp $ .\" .Dd April 28, 1995 .Dt KILL 1 @@ -134,6 +134,7 @@ .Xr csh 1 , .Xr killall 1 , .Xr ps 1 , +.Xr sh 1 , .Xr kill 2 , .Xr sigaction 2 .Sh STANDARDS ==== //depot/projects/soc2009/trasz_limits/bin/kill/kill.c#4 (text+ko) ==== @@ -39,7 +39,7 @@ #endif /* not lint */ #endif #include -__FBSDID("$FreeBSD: src/bin/kill/kill.c,v 1.22 2010/07/29 16:40:45 jilles Exp $"); +__FBSDID("$FreeBSD: src/bin/kill/kill.c,v 1.23 2010/12/21 22:47:34 jilles Exp $"); #include #include @@ -49,6 +49,12 @@ #include #include +#ifdef SHELL +#define main killcmd +#include "bltin/bltin.h" +#include "error.h" +#endif + static void nosig(const char *); static void printsignals(FILE *); static int signame_to_signum(const char *); @@ -75,16 +81,16 @@ usage(); numsig = strtol(*argv, &ep, 10); if (!**argv || *ep) - errx(1, "illegal signal number: %s", *argv); + errx(2, "illegal signal number: %s", *argv); if (numsig >= 128) numsig -= 128; if (numsig <= 0 || numsig >= sys_nsig) nosig(*argv); printf("%s\n", sys_signame[numsig]); - exit(0); + return (0); } printsignals(stdout); - exit(0); + return (0); } if (!strcmp(*argv, "-s")) { @@ -107,7 +113,7 @@ } else if (isdigit(**argv)) { numsig = strtol(*argv, &ep, 10); if (!**argv || *ep) - errx(1, "illegal signal number: %s", *argv); + errx(2, "illegal signal number: %s", *argv); if (numsig < 0) nosig(*argv); } else @@ -122,16 +128,23 @@ usage(); for (errors = 0; argc; argc--, argv++) { - pid = strtol(*argv, &ep, 10); - if (!**argv || *ep) - errx(1, "illegal process id: %s", *argv); - else if (kill(pid, numsig) == -1) { +#ifdef SHELL + if (**argv == '%') + pid = getjobpgrp(*argv); + else +#endif + { + pid = strtol(*argv, &ep, 10); + if (!**argv || *ep) + errx(2, "illegal process id: %s", *argv); + } + if (kill(pid, numsig) == -1) { warn("%s", *argv); errors = 1; } } - exit(errors); + return (errors); } static int @@ -154,7 +167,11 @@ warnx("unknown signal %s; valid signals:", name); printsignals(stderr); - exit(1); +#ifdef SHELL + error(NULL); +#else + exit(2); +#endif } static void @@ -180,5 +197,9 @@ " kill -l [exit_status]", " kill -signal_name pid ...", " kill -signal_number pid ..."); - exit(1); +#ifdef SHELL + error(NULL); +#else + exit(2); +#endif } ==== //depot/projects/soc2009/trasz_limits/bin/sh/Makefile#4 (text+ko) ==== @@ -1,10 +1,10 @@ # @(#)Makefile 8.4 (Berkeley) 5/5/95 -# $FreeBSD: src/bin/sh/Makefile,v 1.54 2010/11/19 12:56:13 jilles Exp $ +# $FreeBSD: src/bin/sh/Makefile,v 1.55 2010/12/21 22:47:34 jilles Exp $ PROG= sh INSTALLFLAGS= -S SHSRCS= alias.c arith.y arith_lex.l cd.c echo.c error.c eval.c exec.c expand.c \ - histedit.c input.c jobs.c mail.c main.c memalloc.c miscbltin.c \ + histedit.c input.c jobs.c kill.c mail.c main.c memalloc.c miscbltin.c \ mystring.c options.c output.c parser.c printf.c redir.c show.c \ test.c trap.c var.c GENSRCS= builtins.c init.c nodes.c syntax.c @@ -26,6 +26,7 @@ WFORMAT=0 .PATH: ${.CURDIR}/bltin \ + ${.CURDIR}/../kill \ ${.CURDIR}/../test \ ${.CURDIR}/../../usr.bin/printf ==== //depot/projects/soc2009/trasz_limits/bin/sh/alias.c#5 (text+ko) ==== @@ -36,7 +36,7 @@ #endif #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/bin/sh/alias.c,v 1.28 2010/10/13 22:18:03 obrien Exp $"); +__FBSDID("$FreeBSD: src/bin/sh/alias.c,v 1.29 2010/12/21 20:47:06 jilles Exp $"); #include #include "shell.h" @@ -246,7 +246,7 @@ while ((n = *++argv) != NULL) { if ((v = strchr(n+1, '=')) == NULL) /* n+1: funny ksh stuff */ if ((ap = lookupalias(n, 0)) == NULL) { - outfmt(out2, "alias: %s not found\n", n); + warning("%s not found", n); ret = 1; } else printalias(ap); ==== //depot/projects/soc2009/trasz_limits/bin/sh/arith_lex.l#5 (text+ko) ==== @@ -38,7 +38,7 @@ #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/bin/sh/arith_lex.l,v 1.28 2010/11/23 20:46:06 jilles Exp $"); +__FBSDID("$FreeBSD: src/bin/sh/arith_lex.l,v 1.29 2010/12/18 23:03:51 jilles Exp $"); #include @@ -74,12 +74,12 @@ return ARITH_NUM; } -0[0-7]+ { +0[0-7]* { yylval.l_value = strtoarith_t(yytext, NULL, 8); return ARITH_NUM; } -[0-9]+ { +[1-9][0-9]* { yylval.l_value = strtoarith_t(yytext, NULL, 10); return ARITH_NUM; } ==== //depot/projects/soc2009/trasz_limits/bin/sh/bltin/bltin.h#3 (text+ko) ==== @@ -30,7 +30,7 @@ * SUCH DAMAGE. * * @(#)bltin.h 8.2 (Berkeley) 5/4/95 - * $FreeBSD: src/bin/sh/bltin/bltin.h,v 1.15 2010/11/14 15:31:59 jilles Exp $ + * $FreeBSD: src/bin/sh/bltin/bltin.h,v 1.18 2010/12/21 22:47:34 jilles Exp $ */ /* @@ -43,6 +43,7 @@ #include "../mystring.h" #ifdef SHELL #include "../output.h" +#define FILE struct output #undef stdout #define stdout out1 #undef stderr @@ -57,21 +58,9 @@ #define fwrite(ptr, size, nmemb, file) outbin(ptr, (size) * (nmemb), file) #define fflush flushout #define INITARGS(argv) -#define warnx1(a, b, c) { \ - char buf[64]; \ - (void)snprintf(buf, sizeof(buf), a); \ - error("%s", buf); \ -} -#define warnx2(a, b, c) { \ - char buf[64]; \ - (void)snprintf(buf, sizeof(buf), a, b); \ - error("%s", buf); \ -} -#define warnx3(a, b, c) { \ - char buf[64]; \ - (void)snprintf(buf, sizeof(buf), a, b, c); \ - error("%s", buf); \ -} +#define warnx warning +#define warn(fmt, ...) warning(fmt ": %s", __VA_ARGS__, strerror(errno)) +#define errx(exitstatus, ...) error(__VA_ARGS__) #else #undef NULL @@ -80,8 +69,11 @@ #define INITARGS(argv) if ((commandname = argv[0]) == NULL) {fputs("Argc is zero\n", stderr); exit(2);} else #endif +#include + pointer stalloc(int); void error(const char *, ...) __printf0like(1, 2); +pid_t getjobpgrp(char *); int echocmd(int, char **); int testcmd(int, char **); ==== //depot/projects/soc2009/trasz_limits/bin/sh/builtins.def#3 (text+ko) ==== @@ -32,7 +32,7 @@ # SUCH DAMAGE. # # @(#)builtins.def 8.4 (Berkeley) 5/4/95 -# $FreeBSD: src/bin/sh/builtins.def,v 1.20 2010/11/19 12:56:13 jilles Exp $ +# $FreeBSD: src/bin/sh/builtins.def,v 1.21 2010/12/21 22:47:34 jilles Exp $ # # This file lists all the builtin commands. The first column is the name @@ -70,6 +70,7 @@ histcmd -h fc jobidcmd jobid jobscmd jobs +killcmd kill localcmd local printfcmd printf pwdcmd pwd ==== //depot/projects/soc2009/trasz_limits/bin/sh/cd.c#8 (text+ko) ==== @@ -36,7 +36,7 @@ #endif #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/bin/sh/cd.c,v 1.44 2010/11/23 22:17:39 jilles Exp $"); +__FBSDID("$FreeBSD: src/bin/sh/cd.c,v 1.45 2010/12/21 20:47:06 jilles Exp $"); #include #include @@ -224,7 +224,7 @@ } p = findcwd(NULL); if (p == NULL) - out2fmt_flush("cd: warning: failed to get name of current directory\n"); + warning("warning: failed to get name of current directory"); updatepwd(p); INTON; return (0); ==== //depot/projects/soc2009/trasz_limits/bin/sh/error.c#7 (text+ko) ==== @@ -36,7 +36,7 @@ #endif #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/bin/sh/error.c,v 1.32 2010/10/13 22:18:03 obrien Exp $"); +__FBSDID("$FreeBSD: src/bin/sh/error.c,v 1.33 2010/12/21 20:47:06 jilles Exp $"); /* * Errors and exceptions. @@ -134,6 +134,26 @@ } +static void +vwarning(const char *msg, va_list ap) +{ + if (commandname) + outfmt(out2, "%s: ", commandname); + doformat(out2, msg, ap); + out2fmt_flush("\n"); +} + + +void +warning(const char *msg, ...) +{ + va_list ap; + va_start(ap, msg); + vwarning(msg, ap); + va_end(ap); +} + + /* * Exverror is called to raise the error exception. If the first argument * is not NULL then error prints an error message using printf style @@ -158,12 +178,8 @@ else TRACE(("exverror(%d, NULL) pid=%d\n", cond, getpid())); #endif - if (msg) { - if (commandname) - outfmt(out2, "%s: ", commandname); - doformat(out2, msg, ap); - out2c('\n'); - } + if (msg) + vwarning(msg, ap); flushall(); exraise(cond); } ==== //depot/projects/soc2009/trasz_limits/bin/sh/error.h#4 (text+ko) ==== @@ -30,7 +30,7 @@ * SUCH DAMAGE. * * @(#)error.h 8.2 (Berkeley) 5/4/95 - * $FreeBSD: src/bin/sh/error.h,v 1.19 2009/12/24 20:55:14 jilles Exp $ + * $FreeBSD: src/bin/sh/error.h,v 1.20 2010/12/21 20:47:06 jilles Exp $ */ /* @@ -80,6 +80,7 @@ void exraise(int) __dead2; void onint(void); +void warning(const char *, ...) __printflike(1, 2); void error(const char *, ...) __printf0like(1, 2) __dead2; void exerror(int, const char *, ...) __printf0like(2, 3) __dead2; ==== //depot/projects/soc2009/trasz_limits/bin/sh/eval.c#17 (text+ko) ==== @@ -36,7 +36,7 @@ #endif >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Dec 31 20:02:37 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B3AB21065673; Fri, 31 Dec 2010 20:02:37 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 762CA106566B for ; Fri, 31 Dec 2010 20:02:37 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 62CAB8FC16 for ; Fri, 31 Dec 2010 20:02:37 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oBVK2bhc023991 for ; Fri, 31 Dec 2010 20:02:37 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oBVK2b7P023988 for perforce@freebsd.org; Fri, 31 Dec 2010 20:02:37 GMT (envelope-from trasz@freebsd.org) Date: Fri, 31 Dec 2010 20:02:37 GMT Message-Id: <201012312002.oBVK2b7P023988@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 187358 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Dec 2010 20:02:37 -0000 http://p4web.freebsd.org/@@187358?ac=10 Change 187358 by trasz@trasz_victim on 2010/12/31 20:01:46 Fixes for hierarchical jails. Affected files ... .. //depot/projects/soc2009/trasz_limits/TODO#38 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_container.c#47 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#103 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/TODO#38 (text+ko) ==== @@ -27,10 +27,6 @@ - Fix %CPU limits for shortly living processes. - - Make sure we enforce limits whenever it's needed. - - - Add support for hierarchical jails. - - Get rid of container_lock. Atomic instructions would be nice, but we really need 64 bits (per-process counters could be 32 bit, I guess, but the higher level containers could overflow), and atomic(9) doesn't support 64 bit values @@ -45,6 +41,10 @@ Issues: + - We enforce limits when a process allocates a resource, and when it forks. + We don't enforce limits when process changes its credentials, though. This + might be either a bug or feature, depending on point of view. + - In the long term, the goal is to get rid of lim_get(9), chgproccnt(9) etc, turning this: ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_container.c#47 (text+ko) ==== @@ -307,6 +307,7 @@ void rusage_add_cred(struct ucred *cred, int resource, uint64_t amount) { + struct prison *pr; SDT_PROBE(container, kernel, rusage, add_cred, cred, resource, amount, 0, 0); @@ -315,7 +316,8 @@ mtx_lock(&container_lock); container_alloc_resource(&cred->cr_ruidinfo->ui_container, resource, amount); - container_alloc_resource(&cred->cr_prison->pr_container, resource, amount); + for (pr = cred->cr_prison; pr != NULL; pr = pr->pr_parent) + container_alloc_resource(&pr->pr_container, resource, amount); container_alloc_resource(&cred->cr_loginclass->lc_container, resource, amount); mtx_unlock(&container_lock); } @@ -476,6 +478,7 @@ void rusage_sub_cred(struct ucred *cred, int resource, uint64_t amount) { + struct prison *pr; SDT_PROBE(container, kernel, rusage, sub_cred, cred, resource, amount, 0, 0); @@ -488,7 +491,8 @@ mtx_lock(&container_lock); container_alloc_resource(&cred->cr_ruidinfo->ui_container, resource, -amount); - container_alloc_resource(&cred->cr_prison->pr_container, resource, -amount); + for (pr = cred->cr_prison; pr != NULL; pr = pr->pr_parent) + container_alloc_resource(&pr->pr_container, resource, -amount); container_alloc_resource(&cred->cr_loginclass->lc_container, resource, -amount); mtx_unlock(&container_lock); } @@ -590,7 +594,7 @@ { struct uidinfo *olduip, *newuip; struct loginclass *oldlc, *newlc; - struct prison *oldpr, *newpr; + struct prison *oldpr, *newpr, *pr; PROC_LOCK_ASSERT(p, MA_OWNED); @@ -611,8 +615,10 @@ container_add(&newlc->lc_container, &p->p_container); } if (newpr != oldpr) { - container_sub(&oldpr->pr_container, &p->p_container); - container_add(&newpr->pr_container, &p->p_container); + for (pr = oldpr; pr != NULL; pr = pr->pr_parent) + container_sub(&pr->pr_container, &p->p_container); + for (pr = newpr; pr != NULL; pr = pr->pr_parent) + container_add(&pr->pr_container, &p->p_container); } mtx_unlock(&container_lock); ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#103 (text+ko) ==== @@ -834,6 +834,7 @@ struct uidinfo *uip; struct prison *pr; struct loginclass *lc; + int match; KASSERT(hrl_rule_fully_specified(rule), ("rule not fully specified")); @@ -899,9 +900,15 @@ break; continue; case HRL_SUBJECT_TYPE_JAIL: - for (pr = cred->cr_prison; pr != NULL; pr = pr->pr_parent) - if (pr->pr_id == rule->hr_subject.hs_prison->pr_id) + match = 0; + for (pr = cred->cr_prison; pr != NULL; pr = pr->pr_parent) { + if (pr == rule->hr_subject.hs_prison) { + match = 1; break; + } + } + if (match) + break; continue; default: panic("hrl_rule_add: unknown subject type %d", From owner-p4-projects@FreeBSD.ORG Fri Dec 31 21:14:00 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3954D1065674; Fri, 31 Dec 2010 21:14:00 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EF7B5106564A for ; Fri, 31 Dec 2010 21:13:59 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id DB5328FC14 for ; Fri, 31 Dec 2010 21:13:59 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oBVLDx0S039370 for ; Fri, 31 Dec 2010 21:13:59 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oBVLDxoI039367 for perforce@freebsd.org; Fri, 31 Dec 2010 21:13:59 GMT (envelope-from rene@FreeBSD.org) Date: Fri, 31 Dec 2010 21:13:59 GMT Message-Id: <201012312113.oBVLDxoI039367@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 187360 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Dec 2010 21:14:00 -0000 http://p4web.freebsd.org/@@187360?ac=10 Change 187360 by rene@rene_acer on 2010/12/31 21:13:25 IFC Affected files ... .. //depot/projects/docproj_nl/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml#82 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.sgml#25 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/desktop/chapter.sgml#16 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/disks/chapter.sgml#17 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/preface/preface.sgml#8 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/porters-handbook/book.sgml#97 integrate .. //depot/projects/docproj_nl/share/pgpkeys/ache.key#2 integrate .. //depot/projects/docproj_nl/www/en/cgi/cgi-style.pl#6 integrate .. //depot/projects/docproj_nl/www/en/cgi/man.cgi#20 integrate .. //depot/projects/docproj_nl/www/en/cgi/ports.cgi#5 integrate .. //depot/projects/docproj_nl/www/en/internal/machines.sgml#7 integrate .. //depot/projects/docproj_nl/www/en/projects/newbies.sgml#3 integrate .. //depot/projects/docproj_nl/www/en/releases/7.4R/schedule.sgml#2 integrate .. //depot/projects/docproj_nl/www/en/releases/8.2R/schedule.sgml#2 integrate .. //depot/projects/docproj_nl/www/en/releng/index.sgml#39 integrate .. //depot/projects/docproj_nl/www/en/where.sgml#9 integrate .. //depot/projects/docproj_nl/www/nl/where.sgml#21 integrate .. //depot/projects/docproj_nl/www/share/sgml/commercial.consult.xml#27 integrate .. //depot/projects/docproj_nl/www/share/sgml/events.xml#36 integrate .. //depot/projects/docproj_nl/www/share/sgml/header.ent#7 integrate .. //depot/projects/docproj_nl/www/share/sgml/news.xml#97 integrate .. //depot/projects/docproj_nl/www/share/sgml/release.ent#30 integrate Differences ... ==== //depot/projects/docproj_nl/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml#82 (text+ko) ==== @@ -1,4 +1,4 @@ - + @@ -3037,31 +3037,33 @@ As a part of the &os; development lifecycle, it happens from time to time that files and their contents become obsolete. This may be - because their functionality is implemented elsewhere or is removed from - the system entirely. This includes old files, libraries and - directories, which should be removed when updating the system. The - benefit for the user is that the system is not cluttered with old files - which take up unnecessary space on the storage (and backup) medium. The - files, directories, and libraries that are considered obsolete are listed - in /usr/src/ObsoleteFiles.inc. The following + because their functionality is implemented elsewhere, the version number + of the library has changed or it was removed from the system entirely. + This includes old files, libraries and directories, which should + be removed when updating the system. The benefit for the user is that + the system is not cluttered with old files which take up unnecessary + space on the storage (and backup) medium. Additionally, if the old + library had a security or stability issue, you should update to the + newer library to keep your system safe and prevent crashes caused by + the old library implementation. The files, directories, and libraries + that are considered obsolete are listed in + /usr/src/ObsoleteFiles.inc. The following instructions will help you removing these obsolete files during the system upgrade process. We assume you are following the steps outlined in . After the make - installworld command completed - successfully, you should check for obsolete files and libraries as - follows: + installworld and the subsequent + mergemaster commands have finished successfully, you + should check for obsolete files and libraries as follows: &prompt.root; cd /usr/src -&prompt.root; make check-old -&prompt.root; make check-old-libs +&prompt.root; make check-old If any obsolete files are found, they can be deleted using the following commands: - &prompt.root; make delete-old -&prompt.root; make delete-old-libs + &prompt.root; make delete-old See /usr/src/Makefile @@ -3070,23 +3072,29 @@ A prompt is displayed before deleting each obsolete file. You can skip the prompt and let the system remove these files automatically by - setting the BATCH_DELETE_OLD_FILES environment - variable to yes. You can also achieve the same goal - by piping these commands through yes like this: + using the BATCH_DELETE_OLD_FILES make-variable as + follows: + + &prompt.root; make -DBATCH_DELETE_OLD_FILES delete-old + + You can also achieve the same goal by piping these commands through + yes like this: - &prompt.root; yes|make delete-old -&prompt.root; yes|make delete-old-libs + &prompt.root; yes|make delete-old Warning Deleting obsolete files will break applications that still - depend on those obsolete files. + depend on those obsolete files. This is especially true for old + libraries. In most cases, you need to recompile the programs, ports, + or libraries that used the old library before make + delete-old-libs is executed. Utilities for checking shared library dependencies are available from - the Ports Collection - in sysutils/libchk - or sysutils/bsdadminscripts. + the Ports Collection in sysutils/libchk or sysutils/bsdadminscripts. Obsolete shared libraries can conflict with newer libraries, causing messages like these: @@ -3103,8 +3111,13 @@ /usr/local/lib/libXext.so was installed by package libXext-1.1.1,1 Then deinstall, rebuild and reinstall the port. The ports-mgmt/portmaster utility can be used to - automate this process. + role="package">ports-mgmt/portmaster and ports-mgmt/portupgrade utilities can be used to + automate this process. After you've made sure that all ports are rebuilt + and do not use the old libraries anymore, you can delete them using the + following command: + + &prompt.root; make delete-old-libs ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/desktop/chapter.sgml#16 (text+ko) ==== @@ -1,6 +1,6 @@ @@ -202,7 +202,7 @@ Firefox and &java; Plugin - In this section and in the next one, we assume you have + In this section and in the next two sections, we assume you have already installed Firefox. Currently, the &java; plugin does not work with ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/disks/chapter.sgml#17 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -427,7 +427,7 @@ identifying the correct jumper. Next, consider how to attach them as part of the file - system. You should research both &man.vinum.8; () and &man.ccd.4;. In this particular configuration, &man.ccd.4; was chosen. @@ -585,11 +585,11 @@ from the block device interface and maps data in ways which result in an increase in flexibility, performance and reliability compared to the traditional slice view of disk - storage. &man.vinum.8; implements the RAID-0, RAID-1 and + storage. &man.vinum.4; implements the RAID-0, RAID-1 and RAID-5 models, both individually and in combination. See for more - information about &man.vinum.8;. + information about &man.vinum.4;. ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/preface/preface.sgml#8 (text+ko) ==== @@ -1,5 +1,5 @@ @@ -8,8 +8,8 @@ Intended Audience - The FreeBSD newcomer will find that the first section of this - book guides the user through the FreeBSD installation process and + The &os; newcomer will find that the first section of this + book guides the user through the &os; installation process and gently introduces the concepts and conventions that underpin &unix;. Working through this section requires little more than the desire to explore, and the ability to take on board new concepts as they @@ -17,7 +17,7 @@ Once you have traveled this far, the second, far larger, section of the Handbook is a comprehensive reference to all manner - of topics of interest to FreeBSD system administrators. Some of + of topics of interest to &os; system administrators. Some of these chapters may recommend that you do some prior reading, and this is noted in the synopsis at the beginning of each chapter. @@ -63,7 +63,7 @@ Second Edition (2004) The third edition was the culmination of over two years of - work by the dedicated members of the FreeBSD Documentation + work by the dedicated members of the &os; Documentation Project. The printed edition grew to such a size that it was necessary to publish as two separate volumes. The following are the major changes in this new edition: @@ -86,7 +86,7 @@ , Mandatory Access Control (MAC), is a new chapter with this edition. It explains what MAC is - and how this mechanism can be used to secure a FreeBSD + and how this mechanism can be used to secure a &os; system. @@ -129,7 +129,7 @@ , Advanced Networking, has been expanded with new information about - using &bluetooth; devices with FreeBSD, setting up wireless + using &bluetooth; devices with &os;, setting up wireless networks, and Asynchronous Transfer Mode (ATM) networking. @@ -150,7 +150,7 @@ First Edition (2001) The second edition was the culmination of over two years of - work by the dedicated members of the FreeBSD Documentation + work by the dedicated members of the &os; Documentation Project. The following were the major changes in this edition: @@ -174,7 +174,7 @@ Appendices. - (Installing FreeBSD) was completely + (Installing &os;) was completely rewritten with many screenshots to make it much easier for new users to grasp the text. @@ -194,7 +194,7 @@ technologies such as KDE and GNOME on &xfree86; 4.X. - (The FreeBSD Booting Process) has been + (The &os; Booting Process) has been expanded. @@ -206,7 +206,7 @@ (Serial Communications) has been completely - reorganized and updated for FreeBSD 4.X/5.X. + reorganized and updated for &os; 4.X/5.X. (PPP and SLIP) has been substantially @@ -246,11 +246,11 @@ This book is split into five logically distinct sections. The first section, Getting Started, covers - the installation and basic usage of FreeBSD. It is expected that + the installation and basic usage of &os;. It is expected that the reader will follow these chapters in sequence, possibly skipping chapters covering familiar topics. The second section, Common Tasks, covers some frequently used - features of FreeBSD. This section, and all subsequent sections, + features of &os;. This section, and all subsequent sections, can be read out of order. Each chapter begins with a succinct synopsis that describes what the chapter covers and what the reader is expected @@ -269,8 +269,8 @@ , Introduction - Introduces FreeBSD to a new user. It describes the - history of the FreeBSD Project, its goals and development model. + Introduces &os; to a new user. It describes the + history of the &os; Project, its goals and development model. @@ -285,7 +285,7 @@ , &unix; Basics Covers the basic commands and functionality of the - FreeBSD operating system. If you are familiar with &linux; or + &os; operating system. If you are familiar with &linux; or another flavor of &unix; then you can probably skip this chapter. @@ -294,7 +294,7 @@ , Installing Applications Covers the installation of third-party software with - both FreeBSD's innovative Ports Collection and standard + both &os;'s innovative Ports Collection and standard binary packages. @@ -302,7 +302,7 @@ , The X Window System Describes the X Window System in general and using - X11 on FreeBSD in particular. Also describes common + X11 on &os; in particular. Also describes common desktop environments such as KDE and GNOME. @@ -314,7 +314,7 @@ Lists some common desktop applications, such as web browsers and productivity suites, and describes how to install them on - FreeBSD. + &os;. @@ -325,7 +325,7 @@ - , Configuring the FreeBSD + , Configuring the &os; Kernel Explains why you might need to configure a new kernel @@ -336,7 +336,7 @@ , Printing - Describes managing printers on FreeBSD, including + Describes managing printers on &os;, including information about banner pages, printer accounting, and initial setup. @@ -344,9 +344,9 @@ , &linux; Binary Compatibility - Describes the &linux; compatibility features of FreeBSD. + Describes the &linux; compatibility features of &os;. Also provides detailed installation instructions for many - popular &linux; applications such as &oracle;, &sap.r3;, and + popular &linux; applications such as &oracle; and &mathematica;. @@ -357,15 +357,15 @@ , Configuration and Tuning Describes the parameters available for system - administrators to tune a FreeBSD system for optimum + administrators to tune a &os; system for optimum performance. Also describes the various configuration files - used in FreeBSD and where to find them. + used in &os; and where to find them. , Booting Process - Describes the FreeBSD boot process and explains + Describes the &os; boot process and explains how to control this process with configuration options. @@ -382,7 +382,7 @@ , Security Describes many different tools available to help keep your - FreeBSD system secure, including Kerberos, IPsec and OpenSSH. + &os; system secure, including Kerberos, IPsec and OpenSSH. @@ -396,7 +396,7 @@ , Mandatory Access Control Explains what Mandatory Access Control (MAC) is and how this - mechanism can be used to secure a FreeBSD system. + mechanism can be used to secure a &os; system. @@ -411,7 +411,7 @@ , Storage Describes how to manage storage media and filesystems - with FreeBSD. This includes physical disks, RAID arrays, + with &os;. This includes physical disks, RAID arrays, optical and tape media, memory-backed disks, and network filesystems. @@ -419,7 +419,7 @@ , GEOM - Describes what the GEOM framework in FreeBSD is and how + Describes what the GEOM framework in &os; is and how to configure various supported RAID levels. @@ -448,7 +448,7 @@ , Localization - Describes how to use FreeBSD in languages other than + Describes how to use &os; in languages other than English. Covers both system and application level localization. @@ -456,8 +456,8 @@ , Updating and Upgrading &os; - Explains the differences between FreeBSD-STABLE, - FreeBSD-CURRENT, and FreeBSD releases. Describes which users + Explains the differences between &os;-STABLE, + &os;-CURRENT, and &os; releases. Describes which users would benefit from tracking a development system and outlines that process. Covers the methods users may take to update their system to the latest security release. @@ -478,14 +478,14 @@ , Serial Communications Explains how to connect terminals and modems to your - FreeBSD system for both dial in and dial out connections. + &os; system for both dial in and dial out connections. , PPP and SLIP Describes how to use PPP, SLIP, or PPP over Ethernet to - connect to remote systems with FreeBSD. + connect to remote systems with &os;. @@ -501,7 +501,7 @@ , Network Servers Provides detailed instructions and example configuration - files to set up your FreeBSD machine as a network filesystem + files to set up your &os; machine as a network filesystem server, domain name server, network information system server, or time synchronization server. @@ -511,7 +511,7 @@ Explains the philosophy behind software-based firewalls and provides detailed information about the configuration of the - different firewalls available for FreeBSD. + different firewalls available for &os;. @@ -527,11 +527,11 @@ - , Obtaining FreeBSD + , Obtaining &os; - Lists different sources for obtaining FreeBSD media on CDROM + Lists different sources for obtaining &os; media on CDROM or DVD as well as different sites on the Internet that allow - you to download and install FreeBSD. + you to download and install &os;. @@ -546,15 +546,15 @@ , Resources on the Internet - Describes the many forums available for FreeBSD users to + Describes the many forums available for &os; users to post questions and engage in technical conversations about - FreeBSD. + &os;. , PGP Keys - Lists the PGP fingerprints of several FreeBSD Developers. + Lists the PGP fingerprints of several &os; Developers. @@ -646,7 +646,7 @@ E:\> tools\fdimage floppies\kern.flp A: Examples starting with &prompt.root; indicate a command that - must be invoked as the superuser in FreeBSD. You can login as + must be invoked as the superuser in &os;. You can login as root to type the command, or login as your normal account and use &man.su.1; to gain superuser privileges. @@ -672,7 +672,7 @@ document by paying authors to work on it full-time, paying for publication, etc. In particular, BSDi (subsequently acquired by Wind River Systems) - paid members of the FreeBSD Documentation Project to work on + paid members of the &os; Documentation Project to work on improving this book full time leading up to the publication of the first printed edition in March 2000 (ISBN 1-57176-241-8). Wind River Systems then paid several additional authors to make a @@ -680,7 +680,7 @@ additional chapters to the text. This work culminated in the publication of the second printed edition in November 2001 (ISBN 1-57176-303-1). In 2003-2004, FreeBSD Mall, Inc, paid + url="http://www.freebsdmall.com">&os; Mall, Inc, paid several contributors to improve the Handbook in preparation for the third printed edition. ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/porters-handbook/book.sgml#97 (text+ko) ==== @@ -1,7 +1,7 @@ :set tabstop=4 once the file has been loaded. + + + Looking for something easy to start with? Take a look at the + list of + requested ports and see if you can work on one (or more). + @@ -3292,9 +3298,9 @@ The COMMENT variable should immediately follow the MAINTAINER variable in the Makefile. - Please try to keep the COMMENT line less than 70 - characters, as it is displayed to users as a one-line - summary of the port. + Please try to keep the COMMENT line less than 60 + characters, as this line will be used by the &man.pkg.info.1; + utility to display a one-line summary of the port. @@ -4163,22 +4169,15 @@ - <makevar>CONFLICTS</makevar> + Conflict handling - If your package cannot coexist with other packages - (because of file conflicts, runtime incompatibility, etc.), - list the other package names in the CONFLICTS - variable. You can use shell globs like * and - ? here. Packages names should be - enumerated the same way they appear in - /var/db/pkg. Please make sure that - CONFLICTS does not match this port's - package itself, or else forcing its installation with - FORCE_PKG_REGISTER will no longer work. - + There are tree different variables to register a conflict + between packages and ports: CONFLICTS, + CONFLICTS_INSTALL and + CONFLICTS_BUILD. - CONFLICTS automatically sets + The conflict variables automatically set the variable IGNORE, which is more fully documented in . @@ -4187,6 +4186,53 @@ retain the CONFLICTS entries in those other ports for a few months to cater for users who only update once in a while. + + + <makevar>CONFLICTS_INSTALL</makevar> + + If your package cannot coexist with other packages + (because of file conflicts, runtime incompatibilities, etc.), + list the other package names in the + CONFLICTS_INSTALL variable. You can use shell + globs like * and ? here. + Packages names should be enumerated the same way they appear in + /var/db/pkg. Please make sure that + CONFLICTS_INSTALL does not match this port's + package itself. Otherwise enforcing its installation with + FORCE_PKG_REGISTER will no longer work. + The CONFLICTS_INSTALL check is done after the build stage and + prior to the install stage. + + + + <makevar>CONFLICTS_BUILD</makevar> + + If your port cannot be built if a certain port is already + installed, list the other port names in the + CONFLICTS_BUILD variable. You can use shell + globs like * and ? here. + Packages names should be enumerated the same way they appear in + /var/db/pkg. The CONFLICTS_BUILD check is + done prior to the build stage. Build conflicts are not recorded + in the resulting package. + + + + <makevar>CONFLICTS</makevar> + + If your port cannot be built if a certain port is already + installed and the resulting package cannot coexist with the + other package, list the other package name in the + CONFLICTS variable. You can use shell + globs like * and ? here. + Packages names should be enumerated the same way they appear in + /var/db/pkg. Please make sure that + CONFLICTS_INSTALL does not match this port's + package itself. Otherwise enforcing its installation with + FORCE_PKG_REGISTER will no longer work. + The CONFLICTS check is done prior to the build stage and prior to + the install stage. + @@ -12948,6 +12994,18 @@ + 704000 + December 22, 2010 + 7.4-RELEASE + + + + 704100 + December 22, 2010 + 7.4-STABLE after 7.4-RELEASE. + + + 800000 October 11, 2007 8.0-CURRENT. Separating wide and single byte @@ -13730,6 +13788,16 @@ pl_siginfo for ptrace(PT_LWPINFO) . + 802000 + December 22, 2010 + 8.2-RELEASE + + + 802500 + December 22, 2010 + 8.2-STABLE after 8.2-RELEASE. + + 900000 August 22, 2009 9.0-CURRENT. ==== //depot/projects/docproj_nl/share/pgpkeys/ache.key#2 (text+ko) ==== @@ -1,4 +1,4 @@ - + @@ -11,7 +11,7 @@ ]]> >> TRUNCATED FOR MAIL (1000 lines) <<<