From owner-p4-projects@FreeBSD.ORG Sun Mar 12 02:54:58 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C668416A428; Sun, 12 Mar 2006 02:54:58 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8D09B16A417 for ; Sun, 12 Mar 2006 02:54:58 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E722143DF3 for ; Sat, 11 Mar 2006 22:55:38 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2BMtcwB042612 for ; Sat, 11 Mar 2006 22:55:38 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2BMtcB5042609 for perforce@freebsd.org; Sat, 11 Mar 2006 22:55:38 GMT (envelope-from kmacy@freebsd.org) Date: Sat, 11 Mar 2006 22:55:38 GMT Message-Id: <200603112255.k2BMtcB5042609@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 93175 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Mar 2006 02:54:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=93175 Change 93175 by kmacy@kmacy_storage:sun4v_work on 2006/03/11 22:55:12 pmap_enter_quick was not setting the TTE flags correctly Affected files ... .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/pmap.c#22 edit Differences ... ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/pmap.c#22 (text+ko) ==== @@ -702,8 +702,9 @@ vm_page_t om; int invlva; #if 0 - printf("ctx=%d va=%lx prot=%x wired=%x\n", pmap->pm_context, - va, prot, wired); + if (pmap->pm_context) + printf("ctx=%d va=%lx prot=%x wired=%x\n", (int)pmap->pm_context, + va, prot, wired); #endif om = NULL; @@ -779,6 +780,7 @@ tte_data |= VTD_X; if (wired) tte_data |= VTD_WIRED; + if (pmap == kernel_pmap) tte_data |= TTE_KERNEL_MINFLAGS; else @@ -804,7 +806,6 @@ if (invlva) pmap_invalidate_page(pmap, va); } else { - tsb_set_tte(&pmap->pm_tsb, va, tte_data, pmap->pm_context); tte_hash_insert(pmap->pm_hash, va, tte_data); } } @@ -821,11 +822,13 @@ pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, vm_page_t mpte) { - uint64_t pa; + + uint64_t tte_data; mtx_assert(&vm_page_queue_mtx, MA_OWNED); VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED); PMAP_LOCK(pmap); + /* * Enter on the PV list if part of our managed memory. Note that we * raise IPL while manipulating pv_table since pmap_enter can be @@ -836,12 +839,22 @@ pmap->pm_stats.resident_count++; - pa = VM_PAGE_TO_PHYS(m); + tte_data = VM_PAGE_TO_PHYS(m); + + if ((prot & VM_PROT_WRITE) != 0) + tte_data |= VTD_SW_W; + if ((prot & VM_PROT_EXECUTE) != 0) + tte_data |= VTD_X; + + if (pmap == kernel_pmap) + tte_data |= TTE_KERNEL_MINFLAGS; + else + tte_data |= TTE_MINFLAGS; - if (m->flags & (PG_FICTITIOUS|PG_UNMANAGED)) - pa |= VTD_MANAGED; + if (!(m->flags & (PG_FICTITIOUS|PG_UNMANAGED))) + tte_data |= VTD_MANAGED; - tte_hash_insert(pmap->pm_hash, va, pa | TTE_MINFLAGS); + tte_hash_insert(pmap->pm_hash, va, tte_data | TTE_MINFLAGS); PMAP_UNLOCK(pmap); @@ -1014,6 +1027,8 @@ void pmap_kenter(vm_offset_t va, vm_paddr_t pa) { + tsb_set_tte(&kernel_pmap->pm_tsb, va, pa | TTE_KERNEL | VTD_8K, + kernel_pmap->pm_context); tte_hash_insert(kernel_pmap->pm_hash, va, pa | TTE_KERNEL | VTD_8K); } From owner-p4-projects@FreeBSD.ORG Sun Mar 12 09:21:35 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A4EEC16AAFB; Sun, 12 Mar 2006 09:21:34 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 621F616AAEC for ; Sun, 12 Mar 2006 09:21:34 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A43EF45BF4 for ; Sun, 12 Mar 2006 07:30:45 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2C7Ujvv075497 for ; Sun, 12 Mar 2006 07:30:45 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2C7UjEt075494 for perforce@freebsd.org; Sun, 12 Mar 2006 07:30:45 GMT (envelope-from marcel@freebsd.org) Date: Sun, 12 Mar 2006 07:30:45 GMT Message-Id: <200603120730.k2C7UjEt075494@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 93185 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Mar 2006 09:21:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=93185 Change 93185 by marcel@marcel_nfs on 2006/03/12 07:30:28 IFC @93181 Affected files ... .. //depot/projects/uart/alpha/alpha/clock.c#8 integrate .. //depot/projects/uart/alpha/include/pcpu.h#3 integrate .. //depot/projects/uart/amd64/amd64/mp_machdep.c#11 integrate .. //depot/projects/uart/amd64/linux32/linux32_machdep.c#6 integrate .. //depot/projects/uart/arm/arm/in_cksum.c#6 integrate .. //depot/projects/uart/arm/include/in_cksum.h#4 integrate .. //depot/projects/uart/boot/i386/libi386/Makefile#6 integrate .. //depot/projects/uart/boot/i386/libi386/libi386.h#7 integrate .. //depot/projects/uart/boot/i386/libi386/smbios.c#3 integrate .. //depot/projects/uart/compat/freebsd32/freebsd32_misc.c#13 integrate .. //depot/projects/uart/conf/files#51 integrate .. //depot/projects/uart/contrib/pf/net/if_pflog.h#5 integrate .. //depot/projects/uart/ddb/db_command.c#9 integrate .. //depot/projects/uart/ddb/ddb.h#8 integrate .. //depot/projects/uart/dev/aic7xxx/aic79xx_osm.c#7 integrate .. //depot/projects/uart/dev/ata/ata-all.c#19 integrate .. //depot/projects/uart/dev/ata/ata-all.h#13 integrate .. //depot/projects/uart/dev/ata/ata-disk.c#13 integrate .. //depot/projects/uart/dev/ata/ata-queue.c#16 integrate .. //depot/projects/uart/dev/ata/ata-raid.c#11 integrate .. //depot/projects/uart/dev/ata/ata-usb.c#1 branch .. //depot/projects/uart/dev/ata/atapi-cd.c#17 integrate .. //depot/projects/uart/dev/ata/atapi-fd.c#9 integrate .. //depot/projects/uart/dev/ath/ath_rate/sample/sample.c#7 integrate .. //depot/projects/uart/dev/cs/if_cs.c#8 integrate .. //depot/projects/uart/dev/exca/exca.c#11 integrate .. //depot/projects/uart/dev/hwpmc/hwpmc_logging.c#3 integrate .. //depot/projects/uart/dev/hwpmc/hwpmc_mod.c#5 integrate .. //depot/projects/uart/dev/ieee488/upd7210.c#4 integrate .. //depot/projects/uart/dev/iwi/if_iwi.c#6 integrate .. //depot/projects/uart/dev/iwi/if_iwireg.h#5 integrate .. //depot/projects/uart/dev/iwi/if_iwivar.h#4 integrate .. //depot/projects/uart/dev/mpt/mpt.c#10 integrate .. //depot/projects/uart/dev/mpt/mpt.h#7 integrate .. //depot/projects/uart/dev/mpt/mpt_cam.c#7 integrate .. //depot/projects/uart/dev/ral/rt2661.c#2 integrate .. //depot/projects/uart/dev/sound/pci/ich.c#18 integrate .. //depot/projects/uart/fs/nullfs/null_vnops.c#10 integrate .. //depot/projects/uart/geom/mirror/g_mirror.c#11 integrate .. //depot/projects/uart/geom/mirror/g_mirror_ctl.c#6 integrate .. //depot/projects/uart/geom/raid3/g_raid3_ctl.c#6 integrate .. //depot/projects/uart/gnu/fs/xfs/FreeBSD/support/kdb.c#2 integrate .. //depot/projects/uart/i386/i386/mp_machdep.c#20 integrate .. //depot/projects/uart/i386/i386/vm_machdep.c#14 integrate .. //depot/projects/uart/kern/kern_environment.c#8 integrate .. //depot/projects/uart/kern/kern_exec.c#16 integrate .. //depot/projects/uart/kern/kern_mbuf.c#9 integrate .. //depot/projects/uart/kern/kern_resource.c#10 integrate .. //depot/projects/uart/kern/kern_sig.c#26 integrate .. //depot/projects/uart/kern/kern_tc.c#13 integrate .. //depot/projects/uart/kern/subr_prf.c#9 integrate .. //depot/projects/uart/kern/uipc_mbuf.c#11 integrate .. //depot/projects/uart/kern/vfs_mount.c#19 integrate .. //depot/projects/uart/kern/vfs_subr.c#23 integrate .. //depot/projects/uart/kern/vfs_vnops.c#14 integrate .. //depot/projects/uart/modules/ata/atausb/Makefile#1 branch .. //depot/projects/uart/modules/pf/Makefile#6 integrate .. //depot/projects/uart/modules/pflog/Makefile#2 integrate .. //depot/projects/uart/net/if_vlan.c#14 integrate .. //depot/projects/uart/net80211/ieee80211_input.c#16 integrate .. //depot/projects/uart/net80211/ieee80211_proto.c#12 integrate .. //depot/projects/uart/netinet/if_ether.c#12 integrate .. //depot/projects/uart/nfsclient/nfs_vnops.c#14 integrate .. //depot/projects/uart/nfsserver/nfs_serv.c#10 integrate .. //depot/projects/uart/nfsserver/nfs_srvsock.c#8 integrate .. //depot/projects/uart/sys/disk.h#3 integrate .. //depot/projects/uart/sys/mount.h#15 integrate .. //depot/projects/uart/sys/proc.h#21 integrate .. //depot/projects/uart/sys/vnode.h#17 integrate .. //depot/projects/uart/ufs/ffs/ffs_extern.h#9 integrate .. //depot/projects/uart/ufs/ffs/ffs_snapshot.c#12 integrate .. //depot/projects/uart/ufs/ffs/ffs_softdep.c#16 integrate .. //depot/projects/uart/ufs/ffs/ffs_vfsops.c#17 integrate .. //depot/projects/uart/ufs/ufs/ufs_inode.c#9 integrate .. //depot/projects/uart/ufs/ufs/ufs_lookup.c#7 integrate .. //depot/projects/uart/ufs/ufs/ufs_quota.c#10 integrate .. //depot/projects/uart/ufs/ufs/ufsmount.h#7 integrate .. //depot/projects/uart/vm/swap_pager.c#21 integrate .. //depot/projects/uart/vm/vm_contig.c#16 integrate .. //depot/projects/uart/vm/vm_fault.c#14 integrate .. //depot/projects/uart/vm/vm_map.c#19 integrate .. //depot/projects/uart/vm/vm_page.c#19 integrate .. //depot/projects/uart/vm/vm_pageq.c#7 integrate Differences ... ==== //depot/projects/uart/alpha/alpha/clock.c#8 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/clock.c,v 1.42 2005/12/22 22:16:04 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/clock.c,v 1.44 2006/03/07 22:12:09 jhb Exp $"); #include "opt_clock.h" @@ -49,6 +49,7 @@ #include #include #include +#include #include #include #include @@ -89,8 +90,6 @@ device_t clockdev; int clockinitted; -int tickfix; -int tickfixinterval; int adjkerntz; /* local offset from GMT in seconds */ int disable_rtc_set; /* disable resettodr() if != 0 */ int wall_cmos_clock; /* wall CMOS clock assumed if != 0 */ @@ -103,15 +102,8 @@ #define TIMER_FREQ 1193182 #endif u_int32_t timer_freq = TIMER_FREQ; -int timer0_max_count; - -static u_int32_t i8254_lastcount; -static u_int32_t i8254_offset; -static int i8254_ticked; -static int clkintr_pending = 0; extern int cycles_per_sec; -extern int ncpus; static timecounter_get_t i8254_get_timecount; static timecounter_get_t alpha_get_timecount; @@ -128,7 +120,7 @@ static struct timecounter i8254_timecounter = { i8254_get_timecount, /* get_timecount */ 0, /* no poll_pps */ - ~0u, /* counter_mask */ + 0xffff, /* counter_mask */ 0, /* frequency */ "i8254" /* name */ }; @@ -142,25 +134,10 @@ /* static u_char timer0_state; */ static u_char timer2_state; -/* - * Algorithm for missed clock ticks from Linux/alpha. - */ - -/* - * Shift amount by which scaled_ticks_per_cycle is scaled. Shifting - * by 48 gives us 16 bits for HZ while keeping the accuracy good even - * for large CPU clock rates. - */ -#define FIX_SHIFT 48 - -static u_int64_t scaled_ticks_per_cycle; -static u_int32_t max_cycles_per_tick; -static u_int32_t last_time; - -static void handleclock(int usermode, uintfptr_t pc); static void calibrate_clocks(u_int32_t firmware_freq, u_int32_t *pcc, u_int32_t *timer); static void set_timer_freq(u_int freq, int intr_freq); +static uint64_t read_cycle_count(void); void clockattach(device_t dev) @@ -176,6 +153,7 @@ calibrate_clocks(cycles_per_sec, &pcc, &freq); cycles_per_sec = pcc; + set_cputicker(read_cycle_count, cycles_per_sec, 0); /* * XXX: TurboLaser doesn't have an i8254 counter. @@ -206,7 +184,6 @@ freq, timer_freq); } set_timer_freq(timer_freq, hz); - i8254_timecounter.tc_frequency = timer_freq; out: #ifdef EVCNT_COUNTERS @@ -235,21 +212,12 @@ void cpu_initclocks() { - u_int32_t freq; if (clockdev == NULL) panic("cpu_initclocks: no clock attached"); tick = 1000000 / hz; /* number of microseconds between interrupts */ - tickfix = 1000000 - (hz * tick); - if (tickfix) { - int ftp; - ftp = min(ffs(tickfix), ffs(hz)); - tickfix >>= (ftp - 1); - tickfixinterval = hz >> (ftp - 1); - } - /* * Establish the clock interrupt; it's a special case. * @@ -262,24 +230,18 @@ * hardclock, which would then fall over because p->p_stats * isn't set at that time. */ - freq = cycles_per_sec; - last_time = alpha_rpcc(); - scaled_ticks_per_cycle = ((u_int64_t)hz << FIX_SHIFT) / freq; - max_cycles_per_tick = 2*freq / hz; /* * XXX: TurboLaser doesn't have an i8254 counter. * XXX: A replacement is needed, and another method * XXX: of determining this would be nice. */ - if (hwrpb->rpb_type != ST_DEC_21000) { + if (hwrpb->rpb_type != ST_DEC_21000) tc_init(&i8254_timecounter); - platform.clockintr = handleclock; - } else - platform.clockintr = hardclock; + platform.clockintr = hardclock; - if (ncpus == 1) { - alpha_timecounter.tc_frequency = freq; + if (mp_ncpus == 1) { + alpha_timecounter.tc_frequency = cycles_per_sec; tc_init(&alpha_timecounter); } @@ -375,7 +337,7 @@ if (count == 0) goto fail; if (count > prev_count) - tot_count += prev_count - (count - timer0_max_count); + tot_count += prev_count - (count - 0xffff); else tot_count += prev_count - count; prev_count = count; @@ -410,40 +372,16 @@ static void set_timer_freq(u_int freq, int intr_freq) { - int new_timer0_max_count; mtx_lock_spin(&clock_lock); timer_freq = freq; - new_timer0_max_count = TIMER_DIV(intr_freq); - if (new_timer0_max_count != timer0_max_count) { - timer0_max_count = new_timer0_max_count; - outb(TIMER_MODE, TIMER_SEL0 | TIMER_RATEGEN | TIMER_16BIT); - outb(TIMER_CNTR0, timer0_max_count & 0xff); - outb(TIMER_CNTR0, timer0_max_count >> 8); - } + i8254_timecounter.tc_frequency = timer_freq; + outb(TIMER_MODE, TIMER_SEL0 | TIMER_RATEGEN | TIMER_16BIT); + outb(TIMER_CNTR0, 0); + outb(TIMER_CNTR0, 0); mtx_unlock_spin(&clock_lock); } -static void -handleclock(int usermode, uintfptr_t pc) -{ - - KASSERT(hwrpb->rpb_type != ST_DEC_21000, - ("custom clock handler called on TurboLaser")); - if (timecounter->tc_get_timecount == i8254_get_timecount) { - mtx_lock_spin(&clock_lock); - if (i8254_ticked) - i8254_ticked = 0; - else { - i8254_offset += timer0_max_count; - i8254_lastcount = 0; - } - clkintr_pending = 0; - mtx_unlock_spin(&clock_lock); - } - hardclock(usermode, pc); -} - void cpu_startprofclock(void) { @@ -609,29 +547,8 @@ static unsigned i8254_get_timecount(struct timecounter *tc) { - u_int count; - u_int high, low; - mtx_lock_spin(&clock_lock); - - /* Select timer0 and latch counter value. */ - outb(TIMER_MODE, TIMER_SEL0 | TIMER_LATCH); - - low = inb(TIMER_CNTR0); - high = inb(TIMER_CNTR0); - count = timer0_max_count - ((high << 8) | low); - if (count < i8254_lastcount || - (!i8254_ticked && (clkintr_pending || - ((count < 20) && (inb(IO_ICU1) & 1))) - )) { - i8254_ticked = 1; - i8254_offset += timer0_max_count; - } - i8254_lastcount = count; - count += i8254_offset; - - mtx_unlock_spin(&clock_lock); - return (count); + return (0xffff - get_8254_ctr()); } static unsigned @@ -640,6 +557,30 @@ return alpha_rpcc(); } +/* + * The RPCC register actually consists of two halves. The lower half + * is a raw 32-bit counter that wraps. The upper half is defined in + * the Digital UNIX PAL as being a raw per-process cycle count mod 2^32 + * that is updated on each call to swpctx. In order to produce a 64-bit + * counter, we just use the lower half and simulate the upper 32-bits. + * The architecture guarantees that there will always be at least one + * clock interrupt in between overlaps in the lower half, so as long as + * we call this function every clock interrupt we should not miss any + * overlaps. + */ +uint64_t +read_cycle_count(void) +{ + unsigned pcc_cnt; + + /* Assert a critical section? */ + pcc_cnt = alpha_rpcc() & 0xffffffff; + if (pcc_cnt < PCPU_GET(last_pcc_cnt)) + PCPU_SET(pcc_base, PCPU_GET(pcc_base) + 1); + PCPU_SET(last_pcc_cnt, pcc_cnt); + return (pcc_cnt | ((uint64_t)PCPU_GET(pcc_base) << 32)); +} + int acquire_timer2(int mode) { ==== //depot/projects/uart/alpha/include/pcpu.h#3 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/alpha/include/pcpu.h,v 1.15 2004/11/05 19:16:44 jhb Exp $ + * $FreeBSD: src/sys/alpha/include/pcpu.h,v 1.16 2006/03/07 22:12:09 jhb Exp $ */ #ifndef _MACHINE_PCPU_H_ @@ -38,7 +38,9 @@ u_int64_t pc_idlepcbphys; /* pa of pc_idlepcb */ \ u_int64_t pc_pending_ipis; /* pending IPI's */ \ u_int32_t pc_next_asn; /* next ASN to alloc */ \ - u_int32_t pc_current_asngen /* ASN rollover check */ + u_int32_t pc_current_asngen; /* ASN rollover check */ \ + u_int32_t pc_last_pcc_cnt; /* Previous PCC_CNT value */ \ + u_int32_t pc_pcc_base /* Hi word of cycle count. */ struct pcpu; ==== //depot/projects/uart/amd64/amd64/mp_machdep.c#11 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.269 2006/02/28 22:24:54 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.270 2006/03/09 16:38:52 jhb Exp $"); #include "opt_cpu.h" #include "opt_kstack_pages.h" @@ -612,12 +612,12 @@ continue; if (cpu_info[apic_id].cpu_bsp) continue; -#if 0 + /* Don't let hyperthreads service interrupts. */ if (hyperthreading_cpus > 1 && apic_id % hyperthreading_cpus != 0) continue; -#endif + intr_add_cpu(apic_id); } } ==== //depot/projects/uart/amd64/linux32/linux32_machdep.c#6 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.11 2006/02/06 22:06:53 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.12 2006/03/08 20:21:53 ups Exp $"); #include #include @@ -130,7 +130,7 @@ copystr(fname, args->fname, PATH_MAX, &length) : copyinstr(fname, args->fname, PATH_MAX, &length); if (error != 0) - return (error); + goto err_exit; /* * extract arguments first @@ -139,16 +139,16 @@ for (;;) { error = copyin(p32++, &arg, sizeof(arg)); if (error) - return (error); + goto err_exit; if (arg == 0) break; argp = PTRIN(arg); error = copyinstr(argp, args->endp, args->stringspace, &length); if (error) { if (error == ENAMETOOLONG) - return (E2BIG); - else - return (error); + error = E2BIG; + + goto err_exit; } args->stringspace -= length; args->endp += length; @@ -165,7 +165,7 @@ for (;;) { error = copyin(p32++, &arg, sizeof(arg)); if (error) - return (error); + goto err_exit; if (arg == 0) break; envp = PTRIN(arg); @@ -173,9 +173,8 @@ &length); if (error) { if (error == ENAMETOOLONG) - return (E2BIG); - else - return (error); + error = E2BIG; + goto err_exit; } args->stringspace -= length; args->endp += length; @@ -184,6 +183,12 @@ } return (0); + +err_exit: + kmem_free_wakeup(exec_map, (vm_offset_t)args->buf, + PATH_MAX + ARG_MAX + MAXSHELLCMDLEN); + args->buf = NULL; + return (error); } int ==== //depot/projects/uart/arm/arm/in_cksum.c#6 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include /* RCS ID & Copyright macro defns */ -__FBSDID("$FreeBSD: src/sys/arm/arm/in_cksum.c,v 1.5 2005/10/03 14:06:44 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/in_cksum.c,v 1.6 2006/03/09 23:33:59 cognet Exp $"); #include #include @@ -130,3 +130,12 @@ REDUCE16; return (~sum & 0xffff); } + +u_int in_cksum_hdr(const struct ip *ip) +{ + u_int64_t sum = do_cksum(ip, sizeof(struct ip)); + union q_util q_util; + union l_util l_util; + REDUCE16; + return (~sum & 0xffff); +} ==== //depot/projects/uart/arm/include/in_cksum.h#4 (text+ko) ==== @@ -33,7 +33,7 @@ * from tahoe: in_cksum.c 1.2 86/01/05 * from: @(#)in_cksum.c 1.3 (Berkeley) 1/19/91 * from: Id: in_cksum.c,v 1.8 1995/12/03 18:35:19 bde Exp - * $FreeBSD: src/sys/arm/include/in_cksum.h,v 1.3 2005/10/03 14:06:44 cognet Exp $ + * $FreeBSD: src/sys/arm/include/in_cksum.h,v 1.4 2006/03/09 23:33:59 cognet Exp $ */ #ifndef _MACHINE_IN_CKSUM_H_ @@ -46,80 +46,7 @@ u_short in_addword(u_short sum, u_short b); u_short in_cksum_skip(struct mbuf *m, int len, int skip); u_int do_cksum(const void *, int); -static __inline u_int -in_cksum_hdr(const struct ip *ip) -{ - u_int sum = 0; - u_int tmp1, tmp2, tmp3, tmp4; - - if (((vm_offset_t)ip & 0x03) == 0) - __asm __volatile ( - "adds %0, %0, %1\n" - "adcs %0, %0, %2\n" - "adcs %0, %0, %3\n" - "adcs %0, %0, %4\n" - "adcs %0, %0, %5\n" - "adc %0, %0, #0\n" - : "+r" (sum) - : "r" (((const u_int32_t *)ip)[0]), - "r" (((const u_int32_t *)ip)[1]), - "r" (((const u_int32_t *)ip)[2]), - "r" (((const u_int32_t *)ip)[3]), - "r" (((const u_int32_t *)ip)[4]) - ); - else - __asm __volatile ( - "and %1, %5, #3\n" - "cmp %1, #0x02\n" - "ldrb %2, [%5], #0x01\n" - "ldrgeb %3, [%5], #0x01\n" - "movlt %3, #0\n" - "ldrgtb %4, [%5], #0x01\n" - "movle %4, #0x00\n" -#ifdef __ARMEB__ - "orreq %0, %3, %2, lsl #8\n" - "orreq %0, %0, %4, lsl #24\n" - "orrne %0, %0, %3, lsl #8\n" - "orrne %0, %0, %4, lsl #16\n" -#else - "orreq %0, %2, %3, lsl #8\n" - "orreq %0, %0, %4, lsl #16\n" - "orrne %0, %3, %2, lsl #8\n" - "orrne %0, %0, %4, lsl #24\n" -#endif - "ldmia %5, {%2, %3, %4}\n" - "adcs %0, %0, %2\n" - "adcs %0, %0, %3\n" - "adcs %0, %0, %4\n" - "ldrb %2, [%5]\n" - "cmp %1, #0x02\n" - "ldrgeb %3, [%5, #0x01]\n" - "movlt %3, #0x00\n" - "ldrgtb %4, [%5, #0x02]\n" - "movle %4, #0x00\n" - "tst %5, #0x01\n" -#ifdef __ARMEB__ - "orreq %2, %3, %2, lsl #8\n" - "orreq %2, %2, %4, lsl #24\n" - "orrne %2, %2, %3, lsl #8\n" - "orrne %2, %2, %4, lsl #16\n" -#else - "orreq %2, %2, %3, lsl #8\n" - "orreq %2, %2, %4, lsl #16\n" - "orrne %2, %3, %2, lsl #8\n" - "orrne %2, %2, %4, lsl #24\n" -#endif - "adds %0, %0, %2\n" - "adc %0, %0, #0\n" - : "+r" (sum), "=r" (tmp1), "=r" (tmp2), "=r" (tmp3), - "=r" (tmp4) - : "r" (ip)); - - sum = (sum & 0xffff) + (sum >> 16); - if (sum > 0xffff) - sum -= 0xffff; - return (~sum & 0xffff); -} +u_int in_cksum_hdr(const struct ip *); static __inline u_short in_pseudo(u_int sum, u_int b, u_int c) ==== //depot/projects/uart/boot/i386/libi386/Makefile#6 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/boot/i386/libi386/Makefile,v 1.39 2005/12/19 09:00:11 sobomax Exp $ +# $FreeBSD: src/sys/boot/i386/libi386/Makefile,v 1.40 2006/03/09 22:49:44 jkim Exp $ # LIB= i386 INTERNALLIB= @@ -21,6 +21,11 @@ CFLAGS+= -DDISK_DEBUG .endif +.ifdef(BOOT_SENSITIVE_INFO) +# Show serial numbers, UUID, and asset tag from loader +CFLAGS+= -DSHOW_SENSITIVE_INFO +.endif + # Include simple terminal emulation (cons25-compatible) CFLAGS+= -DTERM_EMU ==== //depot/projects/uart/boot/i386/libi386/libi386.h#7 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/boot/i386/libi386/libi386.h,v 1.23 2005/12/21 02:17:58 sobomax Exp $ + * $FreeBSD: src/sys/boot/i386/libi386/libi386.h,v 1.24 2006/03/09 22:49:44 jkim Exp $ */ @@ -100,9 +100,9 @@ int biospci_write_config(uint32_t locator, int offset, int width, int val); int biospci_read_config(uint32_t locator, int offset, int width, uint32_t *val); -void biosacpi_detect(); +void biosacpi_detect(void); -void smbios_detect(); +void smbios_detect(void); void gateA20(void); ==== //depot/projects/uart/boot/i386/libi386/smbios.c#3 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2005 Jung-uk Kim + * Copyright (c) 2005, 2006 Jung-uk Kim * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -25,12 +25,13 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/smbios.c,v 1.3 2005/10/18 20:03:31 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/smbios.c,v 1.5 2006/03/10 23:33:27 jkim Exp $"); #include #include #include "btxv86.h" +#include "libi386.h" /* * Detect SMBIOS and export information about the SMBIOS into the @@ -54,21 +55,26 @@ #define SMBIOS_SIG "_SM_" #define SMBIOS_DMI_SIG "_DMI_" -static u_int8_t smbios_enabled_sockets = 0; -static u_int8_t smbios_populated_sockets = 0; +static uint8_t smbios_enabled_sockets = 0; +static uint8_t smbios_populated_sockets = 0; + +static uint8_t *smbios_parse_table(const uint8_t *dmi); +static void smbios_setenv(const char *name, const uint8_t *dmi, + const int offset); +static uint8_t smbios_checksum(const caddr_t addr, const uint8_t len); +static uint8_t *smbios_sigsearch(const caddr_t addr, const uint32_t len); -static u_int8_t *smbios_parse_table(const u_int8_t *dmi); -static void smbios_setenv(const char *env, const u_int8_t *dmi, +#ifdef SHOW_SENSITIVE_INFO +static void smbios_setuuid(const char *name, const uint8_t *dmi, const int offset); -static u_int8_t smbios_checksum(const u_int8_t *addr, const u_int8_t len); -static u_int8_t *smbios_sigsearch(const caddr_t addr, const u_int32_t len); +#endif void smbios_detect(void) { - u_int8_t *smbios, *dmi, *addr; - u_int16_t i, length, count; - u_int32_t paddr; + uint8_t *smbios, *dmi, *addr; + uint16_t i, length, count; + uint32_t paddr; char buf[4]; /* locate and validate the SMBIOS */ @@ -76,9 +82,9 @@ if (smbios == NULL) return; - length = *(u_int16_t *)(smbios + 0x16); /* Structure Table Length */ - paddr = *(u_int32_t *)(smbios + 0x18); /* Structure Table Address */ - count = *(u_int16_t *)(smbios + 0x1c); /* No of SMBIOS Structures */ + length = *(uint16_t *)(smbios + 0x16); /* Structure Table Length */ + paddr = *(uint32_t *)(smbios + 0x18); /* Structure Table Address */ + count = *(uint16_t *)(smbios + 0x1c); /* No of SMBIOS Structures */ for (dmi = addr = PTOV(paddr), i = 0; dmi - addr < length && i < count; i++) @@ -89,10 +95,10 @@ setenv("smbios.socket.populated", buf, 1); } -static u_int8_t * -smbios_parse_table(const u_int8_t *dmi) +static uint8_t * +smbios_parse_table(const uint8_t *dmi) { - u_int8_t *dp; + uint8_t *dp; switch(dmi[0]) { case 0: /* Type 0: BIOS */ @@ -105,17 +111,28 @@ smbios_setenv("smbios.system.maker", dmi, 0x04); smbios_setenv("smbios.system.product", dmi, 0x05); smbios_setenv("smbios.system.version", dmi, 0x06); +#ifdef SHOW_SENSITIVE_INFO + smbios_setenv("smbios.system.serial", dmi, 0x07); + smbios_setuuid("smbios.system.uuid", dmi, 0x08); +#endif break; case 2: /* Type 2: Base Board (or Module) */ smbios_setenv("smbios.planar.maker", dmi, 0x04); smbios_setenv("smbios.planar.product", dmi, 0x05); smbios_setenv("smbios.planar.version", dmi, 0x06); +#ifdef SHOW_SENSITIVE_INFO + smbios_setenv("smbios.planar.serial", dmi, 0x07); +#endif break; case 3: /* Type 3: System Enclosure or Chassis */ smbios_setenv("smbios.chassis.maker", dmi, 0x04); smbios_setenv("smbios.chassis.version", dmi, 0x06); +#ifdef SHOW_SENSITIVE_INFO + smbios_setenv("smbios.chassis.serial", dmi, 0x07); + smbios_setenv("smbios.chassis.tag", dmi, 0x08); +#endif break; case 4: /* Type 4: Processor Information */ @@ -147,7 +164,7 @@ } /* find structure terminator */ - dp = (u_int8_t *)(dmi + dmi[1]); + dp = __DECONST(uint8_t *, dmi + dmi[1]); while (dp[0] != 0 || dp[1] != 0) dp++; @@ -155,42 +172,43 @@ } static void -smbios_setenv(const char *str, const u_int8_t *dmi, const int offset) +smbios_setenv(const char *name, const uint8_t *dmi, const int offset) { - char *cp; + char *cp = __DECONST(char *, dmi + dmi[1]); int i; /* skip undefined string */ if (dmi[offset] == 0) return; - for (cp = (char *)(dmi + dmi[1]), i = 0; i < dmi[offset] - 1; i++) + for (i = 0; i < dmi[offset] - 1; i++) cp += strlen(cp) + 1; - setenv(str, cp, 1); + setenv(name, cp, 1); } -static u_int8_t -smbios_checksum(const u_int8_t *addr, const u_int8_t len) +static uint8_t +smbios_checksum(const caddr_t addr, const uint8_t len) { - u_int8_t sum; + const uint8_t *cp = addr; + uint8_t sum; int i; for (sum = 0, i = 0; i < len; i++) - sum += addr[i]; + sum += cp[i]; return(sum); } -static u_int8_t * -smbios_sigsearch(const caddr_t addr, const u_int32_t len) +static uint8_t * +smbios_sigsearch(const caddr_t addr, const uint32_t len) { caddr_t cp; /* search on 16-byte boundaries */ - for (cp = addr; cp - addr < len; cp += SMBIOS_STEP) { + for (cp = addr; cp < addr + len; cp += SMBIOS_STEP) { /* compare signature, validate checksum */ if (!strncmp(cp, SMBIOS_SIG, 4)) { - if (smbios_checksum(cp, *(cp + 0x05))) + if (smbios_checksum(cp, *(uint8_t *)(cp + 0x05))) continue; if (strncmp(cp + 0x10, SMBIOS_DMI_SIG, 5)) continue; @@ -203,3 +221,31 @@ return(NULL); } + +#ifdef SHOW_SENSITIVE_INFO +static void +smbios_setuuid(const char *name, const uint8_t *dmi, const int offset) +{ + const uint8_t *idp = dmi + offset; + int i, f = 0, z = 0; + char uuid[37]; + + for (i = 0; i < 16; i++) { + if (idp[i] == 0xff) + f++; + else if (idp[i] == 0x00) + z++; + else + break; + } + if (f != 16 && z != 16) { + sprintf(uuid, "%02X%02X%02X%02X-" + "%02X%02X-%02X%02X-%02X%02X-" + "%02X%02X%02X%02X%02X%02X", + idp[0], idp[1], idp[2], idp[3], + idp[4], idp[5], idp[6], idp[7], idp[8], idp[9], + idp[10], idp[11], idp[12], idp[13], idp[14], idp[15]); + setenv(name, uuid, 1); + } +} +#endif ==== //depot/projects/uart/compat/freebsd32/freebsd32_misc.c#13 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.52 2006/03/04 00:09:09 ps Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.53 2006/03/08 20:21:53 ups Exp $"); #include "opt_compat.h" @@ -260,7 +260,7 @@ copystr(fname, args->fname, PATH_MAX, &length) : copyinstr(fname, args->fname, PATH_MAX, &length); if (error != 0) - return (error); + goto err_exit; /* * extract arguments first @@ -269,16 +269,15 @@ for (;;) { error = copyin(p32++, &arg, sizeof(arg)); if (error) - return (error); + goto err_exit; if (arg == 0) break; argp = PTRIN(arg); error = copyinstr(argp, args->endp, args->stringspace, &length); if (error) { if (error == ENAMETOOLONG) - return (E2BIG); - else - return (error); + error = E2BIG; + goto err_exit; } args->stringspace -= length; args->endp += length; @@ -295,7 +294,7 @@ for (;;) { error = copyin(p32++, &arg, sizeof(arg)); if (error) - return (error); + goto err_exit; if (arg == 0) break; envp = PTRIN(arg); @@ -303,9 +302,8 @@ &length); if (error) { if (error == ENAMETOOLONG) - return (E2BIG); - else - return (error); + error = E2BIG; + goto err_exit; } args->stringspace -= length; args->endp += length; @@ -314,6 +312,12 @@ } return (0); + +err_exit: + kmem_free_wakeup(exec_map, (vm_offset_t)args->buf, + PATH_MAX + ARG_MAX + MAXSHELLCMDLEN); + args->buf = NULL; + return (error); } int ==== //depot/projects/uart/conf/files#51 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1100 2006/03/05 22:52:16 yar Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1101 2006/03/10 19:10:05 sos Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -458,6 +458,7 @@ dev/ata/ata-pci.c optional ata pci dev/ata/ata-queue.c optional ata dev/ata/ata-raid.c optional ataraid +dev/ata/ata-usb.c optional atausb dev/ata/atapi-cam.c optional atapicam dev/ata/atapi-cd.c optional atapicd dev/ata/atapi-fd.c optional atapifd ==== //depot/projects/uart/contrib/pf/net/if_pflog.h#5 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/contrib/pf/net/if_pflog.h,v 1.7 2006/02/05 17:17:32 mlaier Exp $ */ +/* $FreeBSD: src/sys/contrib/pf/net/if_pflog.h,v 1.8 2006/03/09 15:54:01 yar Exp $ */ /* $OpenBSD: if_pflog.h,v 1.11 2004/05/19 17:50:51 dhartmei Exp $ */ /* @@ -71,8 +71,9 @@ #ifdef _KERNEL #ifdef __FreeBSD__ -/* XXX */ -#include +struct pf_rule; +struct pf_ruleset; +struct pfi_kif; typedef int pflog_packet_t(struct pfi_kif *, struct mbuf *, sa_family_t, u_int8_t, u_int8_t, struct pf_rule *, struct pf_rule *, ==== //depot/projects/uart/ddb/db_command.c#9 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/ddb/db_command.c,v 1.64 2005/10/24 15:21:36 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/ddb/db_command.c,v 1.65 2006/03/07 22:17:05 jhb Exp $"); #include #include @@ -83,15 +83,25 @@ { (char *)0 } }; +static struct command_table db_show_all_table = { + db_show_all_cmds +}; + static struct command db_show_cmds[] = { - { "all", 0, 0, db_show_all_cmds }, + { "all", 0, 0, &db_show_all_table }, { "registers", db_show_regs, 0, 0 }, { "breaks", db_listbreak_cmd, 0, 0 }, { "threads", db_show_threads, 0, 0 }, { (char *)0, } }; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Mar 12 13:00:15 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 734B516A403; Sun, 12 Mar 2006 13:00:15 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 347B116A400 for ; Sun, 12 Mar 2006 13:00:15 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D6F8343D45 for ; Sun, 12 Mar 2006 13:00:14 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2CD0Es2002133 for ; Sun, 12 Mar 2006 13:00:14 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2CD0DXF002130 for perforce@freebsd.org; Sun, 12 Mar 2006 13:00:13 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 12 Mar 2006 13:00:13 GMT Message-Id: <200603121300.k2CD0DXF002130@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 93190 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Mar 2006 13:00:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=93190 Change 93190 by rwatson@rwatson_zoo on 2006/03/12 13:00:05 Integrate trustedbsd_audit3 branch from trustedbsd_base, bringing in updates from @92749: - OpenBSM 1.0 alpha 5 loop back. - dwmalone's structural improvements to mac_bsdextended. Affected files ... .. //depot/projects/trustedbsd/audit3/contrib/openbsm/HISTORY#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/Makefile.am#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/Makefile.in#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/aclocal.m4#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/autogen.sh#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/Makefile.am#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/Makefile.in#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/audit/Makefile.am#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/audit/Makefile.in#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/auditd/Makefile.am#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/auditd/Makefile.in#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/auditreduce/Makefile.am#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/auditreduce/Makefile.in#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/praudit/Makefile.am#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/praudit/Makefile.in#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/bsm/Makefile.am#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/bsm/Makefile.in#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/compat/queue.h#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/config/config.guess#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/config/config.h#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/config/config.h.in#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/config/config.sub#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/config/depcomp#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/config/install-sh#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/config/ltmain.sh#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/config/missing#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/configure#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/configure.ac#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/libbsm/Makefile.am#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/libbsm/Makefile.in#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/man/Makefile.am#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/man/Makefile.in#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/tools/Makefile.am#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/tools/Makefile.in#2 integrate .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_syscalls.c#8 edit Differences ... ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/HISTORY#2 (text+ko) ==== @@ -124,4 +124,4 @@ to support reloading of kernel event table. - Allow comments in /etc/security configuration files. -$P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/HISTORY#1 $ +$P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/HISTORY#2 $ ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/Makefile.am#2 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/Makefile.am#1 $ +# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/Makefile.am#2 $ # SUBDIRS = \ ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/Makefile.in#2 (text+ko) ==== @@ -15,7 +15,7 @@ @SET_MAKE@ # -# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/Makefile.in#1 $ +# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/Makefile.in#2 $ # srcdir = @srcdir@ top_srcdir = @top_srcdir@ ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/aclocal.m4#2 (text+ko) ==== ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/autogen.sh#2 (text+ko) ==== @@ -1,6 +1,6 @@ #!/bin/sh # -# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/autogen.sh#1 $ +# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/autogen.sh#2 $ # libtoolize --copy --force ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/Makefile.am#2 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/Makefile.am#1 $ +# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/Makefile.am#2 $ # SUBDIRS = \ ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/Makefile.in#2 (text+ko) ==== @@ -15,7 +15,7 @@ @SET_MAKE@ # -# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/Makefile.in#1 $ +# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/Makefile.in#2 $ # srcdir = @srcdir@ top_srcdir = @top_srcdir@ ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/audit/Makefile.am#2 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/audit/Makefile.am#1 $ +# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/audit/Makefile.am#2 $ # INCLUDES = -I$(top_srcdir) ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/audit/Makefile.in#2 (text+ko) ==== @@ -15,7 +15,7 @@ @SET_MAKE@ # -# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/audit/Makefile.in#1 $ +# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/audit/Makefile.in#2 $ # srcdir = @srcdir@ ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/auditd/Makefile.am#2 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/auditd/Makefile.am#1 $ +# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/auditd/Makefile.am#2 $ # INCLUDES = -I$(top_srcdir) ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/auditd/Makefile.in#2 (text+ko) ==== @@ -15,7 +15,7 @@ @SET_MAKE@ # -# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/auditd/Makefile.in#1 $ +# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/auditd/Makefile.in#2 $ # srcdir = @srcdir@ ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/auditreduce/Makefile.am#2 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/auditreduce/Makefile.am#1 $ +# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/auditreduce/Makefile.am#2 $ # INCLUDES = -I$(top_srcdir) ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/auditreduce/Makefile.in#2 (text+ko) ==== @@ -15,7 +15,7 @@ @SET_MAKE@ # -# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/auditreduce/Makefile.in#1 $ +# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/auditreduce/Makefile.in#2 $ # srcdir = @srcdir@ ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/praudit/Makefile.am#2 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/praudit/Makefile.am#1 $ +# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/praudit/Makefile.am#2 $ # INCLUDES = -I$(top_srcdir) ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/praudit/Makefile.in#2 (text+ko) ==== @@ -15,7 +15,7 @@ @SET_MAKE@ # -# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/praudit/Makefile.in#1 $ +# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/bin/praudit/Makefile.in#2 $ # srcdir = @srcdir@ ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/bsm/Makefile.am#2 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/bsm/Makefile.am#1 $ +# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/bsm/Makefile.am#2 $ # openbsmdir = $(includedir)/bsm ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/bsm/Makefile.in#2 (text+ko) ==== @@ -15,7 +15,7 @@ @SET_MAKE@ # -# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/bsm/Makefile.in#1 $ +# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/bsm/Makefile.in#2 $ # srcdir = @srcdir@ ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/compat/queue.h#2 (text+ko) ==== @@ -29,7 +29,7 @@ * @(#)queue.h 8.5 (Berkeley) 8/20/94 * * Derived from FreeBSD src/sys/sys/queue.h:1.63. - * $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/compat/queue.h#1 $ + * $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/compat/queue.h#2 $ */ #ifndef _COMPAT_QUEUE_H_ ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/config/config.guess#2 (text+ko) ==== ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/config/config.h#2 (text+ko) ==== ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/config/config.h.in#2 (text+ko) ==== ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/config/config.sub#2 (text+ko) ==== ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/config/depcomp#2 (text+ko) ==== ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/config/install-sh#2 (text+ko) ==== ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/config/ltmain.sh#2 (text+ko) ==== ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/config/missing#2 (text+ko) ==== ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/configure#2 (xtext) ==== ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/configure.ac#2 (text+ko) ==== @@ -3,7 +3,7 @@ AC_PREREQ(2.59) AC_INIT([OpenBSM], [1.0a5], [trustedbsd-audit@TrustesdBSD.org],[openbsm]) -AC_REVISION([$P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/configure.ac#1 $]) +AC_REVISION([$P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/configure.ac#2 $]) AC_CONFIG_SRCDIR([bin/auditreduce/auditreduce.c]) AC_CONFIG_AUX_DIR(config) AC_CONFIG_HEADER([config/config.h]) ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/libbsm/Makefile.am#2 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/libbsm/Makefile.am#1 $ +# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/libbsm/Makefile.am#2 $ # INCLUDES = -I$(top_srcdir) ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/libbsm/Makefile.in#2 (text+ko) ==== @@ -15,7 +15,7 @@ @SET_MAKE@ # -# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/libbsm/Makefile.in#1 $ +# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/libbsm/Makefile.in#2 $ # srcdir = @srcdir@ ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/man/Makefile.am#2 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/man/Makefile.am#1 $ +# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/man/Makefile.am#2 $ # man2_MANS = \ ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/man/Makefile.in#2 (text+ko) ==== @@ -15,7 +15,7 @@ @SET_MAKE@ # -# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/man/Makefile.in#1 $ +# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/man/Makefile.in#2 $ # srcdir = @srcdir@ top_srcdir = @top_srcdir@ ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/tools/Makefile.am#2 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/tools/Makefile.am#1 $ +# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/tools/Makefile.am#2 $ # INCLUDES = -I$(top_srcdir) ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/tools/Makefile.in#2 (text+ko) ==== @@ -15,7 +15,7 @@ @SET_MAKE@ # -# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/tools/Makefile.in#1 $ +# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/tools/Makefile.in#2 $ # srcdir = @srcdir@ ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_syscalls.c#8 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Sun Mar 12 15:25:12 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9C87116A404; Sun, 12 Mar 2006 15:25:11 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0E2C916A401 for ; Sun, 12 Mar 2006 15:25:11 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B24ED43D48 for ; Sun, 12 Mar 2006 15:25:10 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2CFPAnN007438 for ; Sun, 12 Mar 2006 15:25:10 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2CFPAmm007435 for perforce@freebsd.org; Sun, 12 Mar 2006 15:25:10 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 12 Mar 2006 15:25:10 GMT Message-Id: <200603121525.k2CFPAmm007435@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 93194 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Mar 2006 15:25:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=93194 Change 93194 by rwatson@rwatson_zoo on 2006/03/12 15:24:27 Add a top-level security.audit sysctl node, which will be present regardless of audit compiled in. User space applications will be able to test for the node to decide whether or not to invoke audit system calls, which may improve the behavior of applications like login when running on older kernels (unsupported, but often used configuration). Affected files ... .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_syscalls.c#9 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_syscalls.c#9 (text+ko) ==== @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -39,6 +40,10 @@ #include #include +SYSCTL_DECL(_security); +SYSCTL_NODE(_security, OID_AUTO, audit, CTLFLAG_RW, 0, + "TrustedBSD audit controls"); + #ifdef AUDIT /* From owner-p4-projects@FreeBSD.ORG Sun Mar 12 15:25:17 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4D1A916A471; Sun, 12 Mar 2006 15:25:12 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 56B3A16A402 for ; Sun, 12 Mar 2006 15:25:11 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 087B343D49 for ; Sun, 12 Mar 2006 15:25:11 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2CFPAef007444 for ; Sun, 12 Mar 2006 15:25:10 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2CFPAxF007441 for perforce@freebsd.org; Sun, 12 Mar 2006 15:25:10 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 12 Mar 2006 15:25:10 GMT Message-Id: <200603121525.k2CFPAxF007441@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 93195 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Mar 2006 15:25:17 -0000 http://perforce.freebsd.org/chv.cgi?CH=93195 Change 93195 by rwatson@rwatson_zoo on 2006/03/12 15:24:39 Add $FreeBSD$. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_trigger.c#8 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_trigger.c#8 (text+ko) ==== @@ -24,6 +24,8 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. + * + * $FreeBSD$ */ #include From owner-p4-projects@FreeBSD.ORG Sun Mar 12 15:27:17 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2828416A403; Sun, 12 Mar 2006 15:27:17 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3E7B716A409 for ; Sun, 12 Mar 2006 15:27:15 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0481543D46 for ; Sun, 12 Mar 2006 15:27:14 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2CFRD9I007574 for ; Sun, 12 Mar 2006 15:27:13 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2CFRDSN007571 for perforce@freebsd.org; Sun, 12 Mar 2006 15:27:13 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 12 Mar 2006 15:27:13 GMT Message-Id: <200603121527.k2CFRDSN007571@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 93196 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Mar 2006 15:27:17 -0000 http://perforce.freebsd.org/chv.cgi?CH=93196 Change 93196 by rwatson@rwatson_zoo on 2006/03/12 15:26:44 Add $FreeBSD$. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit.h#12 edit .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_arg.c#14 edit .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_bsm_klib.c#4 edit .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_syscalls.c#10 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit.h#12 (text+ko) ==== @@ -25,6 +25,8 @@ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. + * + * $FreeBSD$ */ /* ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_arg.c#14 (text+ko) ==== @@ -25,6 +25,8 @@ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. + * + * $FreeBSD$ */ #include ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_bsm_klib.c#4 (text+ko) ==== @@ -26,6 +26,8 @@ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. + * + * $FreeBSD$ */ #include ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_syscalls.c#10 (text+ko) ==== @@ -25,6 +25,8 @@ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. + * + * $FreeBSD$ */ #include From owner-p4-projects@FreeBSD.ORG Sun Mar 12 15:37:43 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7CD3016A547; Sun, 12 Mar 2006 15:37:43 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9338416A4EA for ; Sun, 12 Mar 2006 15:37:39 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A578F43D45 for ; Sun, 12 Mar 2006 15:37:26 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2CFbQ1C008114 for ; Sun, 12 Mar 2006 15:37:26 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2CFbQxk008111 for perforce@freebsd.org; Sun, 12 Mar 2006 15:37:26 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 12 Mar 2006 15:37:26 GMT Message-Id: <200603121537.k2CFbQxk008111@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 93199 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Mar 2006 15:37:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=93199 Change 93199 by rwatson@rwatson_zoo on 2006/03/12 15:36:37 Change send_trigger() prototype to return an int, so that user space callers can tell if the message was successfully placed in the trigger queue. This isn't quite the same as it being successfully received, but is close enough that we can generate a more useful warning message in audit(8). Affected files ... .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit.c#17 edit .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_private.h#20 edit .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_syscalls.c#11 edit .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_trigger.c#9 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit.c#17 (text+ko) ==== @@ -307,7 +307,7 @@ * then kindly suggest to the audit daemon to do something. */ if (mnt_stat->f_bfree < AUDIT_HARD_LIMIT_FREE_BLOCKS) { - send_trigger(AUDIT_TRIGGER_NO_SPACE); + (void)send_trigger(AUDIT_TRIGGER_NO_SPACE); /* Hopefully userspace did something about all the previous * triggers that were sent prior to this critical condition. * If fail-stop is set, then we're done; goodnight Gracie. @@ -330,7 +330,7 @@ temp = mnt_stat->f_blocks / (100 / audit_qctrl.aq_minfree); if (mnt_stat->f_bfree < temp) - send_trigger(AUDIT_TRIGGER_LOW_SPACE); + (void)send_trigger(AUDIT_TRIGGER_LOW_SPACE); } /* Check if the current log file is full; if so, call for @@ -342,7 +342,7 @@ (audit_file_rotate_wait == 0) && (vattr.va_size >= audit_fstat.af_filesz)) { audit_file_rotate_wait = 1; - send_trigger(AUDIT_TRIGGER_OPEN_NEW); + (void)send_trigger(AUDIT_TRIGGER_OPEN_NEW); } /* ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_private.h#20 (text+ko) ==== @@ -295,7 +295,7 @@ * asynchronously. */ void audit_trigger_init(void); -void send_trigger(unsigned int trigger); +int send_trigger(unsigned int trigger); /* * General audit related functions. ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_syscalls.c#11 (text+ko) ==== @@ -340,7 +340,7 @@ if ((udata.au_trigger < AUDIT_TRIGGER_MIN) || (udata.au_trigger > AUDIT_TRIGGER_MAX)) return (EINVAL); - send_trigger(udata.au_trigger); + return (send_trigger(udata.au_trigger)); break; } /* Copy data back to userspace for the GET comands */ ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_trigger.c#9 (text+ko) ==== @@ -122,14 +122,14 @@ return (EOPNOTSUPP); } -void +int send_trigger(unsigned int trigger) { struct trigger_info *ti; /* If nobody's listening, we ain't talking. */ if (!audit_isopen) - return; + return (ENODEV); /* * XXXAUDIT: Use a condition variable instead of msleep/wakeup? @@ -140,6 +140,7 @@ TAILQ_INSERT_TAIL(&trigger_list, ti, list); wakeup(&trigger_list); mtx_unlock(&audit_trigger_mtx); + return (0); } static struct cdevsw audit_cdevsw = { From owner-p4-projects@FreeBSD.ORG Mon Mar 13 02:33:49 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8233916A41F; Mon, 13 Mar 2006 02:33:49 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 58A4016A400 for ; Mon, 13 Mar 2006 02:33:49 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2662343D46 for ; Mon, 13 Mar 2006 02:33:49 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2D2XnKp067884 for ; Mon, 13 Mar 2006 02:33:49 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2D2XmDP067881 for perforce@freebsd.org; Mon, 13 Mar 2006 02:33:48 GMT (envelope-from marcel@freebsd.org) Date: Mon, 13 Mar 2006 02:33:48 GMT Message-Id: <200603130233.k2D2XmDP067881@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 93222 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Mar 2006 02:33:49 -0000 http://perforce.freebsd.org/chv.cgi?CH=93222 Change 93222 by marcel@marcel_nfs on 2006/03/13 02:33:37 o Make the serial interrupt sources visible to the kernel only. o source-specific interrupt handlers return an int to indicate if the interrupt condition was cleared or not. Create the serdev_intr_t type for them. Affected files ... .. //depot/projects/uart/sys/serial.h#5 edit Differences ... ==== //depot/projects/uart/sys/serial.h#5 (text+ko) ==== @@ -65,6 +65,7 @@ #define SER_MASK_DELTA SER_DELTA(SER_MASK_STATE) +#ifdef _KERNEL /* * Specification of interrupt sources typical for serial ports. These are * useful when some umbrella driver like scc(4) has enough knowledge of @@ -82,4 +83,10 @@ #define SER_INT_MASK 0xff0000 #define SER_INT_SIGMASK (SER_MASK_DELTA | SER_MASK_STATE) +#ifndef LOCORE +typedef int serdev_intr_t(void*); +#endif + +#endif /* _KERNEL */ + #endif /* !_SYS_SERIAL_H_ */ From owner-p4-projects@FreeBSD.ORG Mon Mar 13 02:37:55 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EF7BB16A422; Mon, 13 Mar 2006 02:37:54 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C4C7316A400 for ; Mon, 13 Mar 2006 02:37:54 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9188143D4C for ; Mon, 13 Mar 2006 02:37:54 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2D2bsqA068101 for ; Mon, 13 Mar 2006 02:37:54 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2D2bsm3068097 for perforce@freebsd.org; Mon, 13 Mar 2006 02:37:54 GMT (envelope-from marcel@freebsd.org) Date: Mon, 13 Mar 2006 02:37:54 GMT Message-Id: <200603130237.k2D2bsm3068097@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 93223 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Mar 2006 02:37:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=93223 Change 93223 by marcel@marcel_nfs on 2006/03/13 02:37:39 The ihand() method returns serdev_intr_t instead of driver_intr_t. Affected files ... .. //depot/projects/uart/kern/serdev_if.m#2 edit Differences ... ==== //depot/projects/uart/kern/serdev_if.m#2 (text+ko) ==== @@ -27,6 +27,7 @@ # #include +#include # The serdev interface is used by umbrella drivers and children thereof to # establish a more intimate relationship, necessary for efficient handling @@ -42,7 +43,7 @@ # Default implementations of some methods. CODE { - static driver_intr_t * + static serdev_intr_t * default_ihand(device_t dev, int ipend) { return (NULL); @@ -60,7 +61,7 @@ # to interrupt handlers for each individual interrupt source. This allows # the umbralla driver to control the servicing of interrupts between the # different channels in the most flexible way. -METHOD driver_intr_t* ihand { +METHOD serdev_intr_t* ihand { device_t dev; int ipend; } DEFAULT default_ihand; From owner-p4-projects@FreeBSD.ORG Mon Mar 13 02:45:05 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 94B9216A423; Mon, 13 Mar 2006 02:45:05 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4E0E516A401 for ; Mon, 13 Mar 2006 02:45:05 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 00F4243D45 for ; Mon, 13 Mar 2006 02:45:05 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2D2j4et068452 for ; Mon, 13 Mar 2006 02:45:04 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2D2j4pS068445 for perforce@freebsd.org; Mon, 13 Mar 2006 02:45:04 GMT (envelope-from marcel@freebsd.org) Date: Mon, 13 Mar 2006 02:45:04 GMT Message-Id: <200603130245.k2D2j4pS068445@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 93224 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Mar 2006 02:45:05 -0000 http://perforce.freebsd.org/chv.cgi?CH=93224 Change 93224 by marcel@marcel_nfs on 2006/03/13 02:44:56 The source specific interrupt handlers return whether the interrupt condition is cleared or not. Affected files ... .. //depot/projects/uart/dev/uart/uart_bus.h#40 edit .. //depot/projects/uart/dev/uart/uart_core.c#46 edit Differences ... ==== //depot/projects/uart/dev/uart/uart_bus.h#40 (text+ko) ==== @@ -140,7 +140,7 @@ int uart_bus_attach(device_t dev); int uart_bus_detach(device_t dev); -driver_intr_t *uart_bus_ihand(device_t dev, int ipend); +serdev_intr_t *uart_bus_ihand(device_t dev, int ipend); int uart_bus_probe(device_t dev, int regshft, int rclk, int rid, int chan); int uart_bus_reset(device_t dev); ==== //depot/projects/uart/dev/uart/uart_core.c#46 (text+ko) ==== @@ -93,7 +93,7 @@ * the exceptional nature of the break condition, so we permit ourselves * to be sloppy. */ -static __inline void +static __inline int uart_intr_break(void *arg) { struct uart_softc *sc = arg; @@ -101,11 +101,12 @@ #if defined(KDB) && defined(BREAK_TO_DEBUGGER) if (sc->sc_sysdev != NULL && sc->sc_sysdev->type == UART_DEV_CONSOLE) { kdb_enter("Line break on console"); - return; + return (0); } #endif if (sc->sc_opened) uart_sched_softih(sc, SER_INT_BREAK); + return (0); } /* @@ -123,7 +124,7 @@ * token represents the loss of at least one, but possible more bytes in * the input stream. */ -static __inline void +static __inline int uart_intr_overrun(void *arg) { struct uart_softc *sc = arg; @@ -135,12 +136,13 @@ uart_sched_softih(sc, SER_INT_RXREADY); } UART_FLUSH(sc, UART_FLUSH_RECEIVER); + return (0); } /* * Received data ready. */ -static __inline void +static __inline int uart_intr_rxready(void *arg) { struct uart_softc *sc = arg; @@ -162,6 +164,7 @@ uart_sched_softih(sc, SER_INT_RXREADY); else sc->sc_rxput = sc->sc_rxget; /* Ignore received data. */ + return (1); } /* @@ -171,7 +174,7 @@ * bits. This is to avoid loosing state transitions due to having more * than 1 hardware interrupt between software interrupts. */ -static __inline void +static __inline int uart_intr_sigchg(void *arg) { struct uart_softc *sc = arg; @@ -202,12 +205,13 @@ if (sc->sc_opened) uart_sched_softih(sc, SER_INT_SIGCHG); + return (0); } /* * The transmitter can accept more data. */ -static __inline void +static __inline int uart_intr_txidle(void *arg) { struct uart_softc *sc = arg; @@ -216,6 +220,7 @@ sc->sc_txbusy = 0; uart_sched_softih(sc, SER_INT_TXIDLE); } + return (0); } static void @@ -238,7 +243,7 @@ } } -driver_intr_t * +serdev_intr_t * uart_bus_ihand(device_t dev, int ipend) { From owner-p4-projects@FreeBSD.ORG Mon Mar 13 04:42:29 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 41CA816A423; Mon, 13 Mar 2006 04:42:28 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C08F816A401 for ; Mon, 13 Mar 2006 04:42:27 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 549C443D67 for ; Mon, 13 Mar 2006 04:42:27 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2D4gRUH075032 for ; Mon, 13 Mar 2006 04:42:27 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2D4gRjD075029 for perforce@freebsd.org; Mon, 13 Mar 2006 04:42:27 GMT (envelope-from kmacy@freebsd.org) Date: Mon, 13 Mar 2006 04:42:27 GMT Message-Id: <200603130442.k2D4gRjD075029@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 93226 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Mar 2006 04:42:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=93226 Change 93226 by kmacy@kmacy_storage:sun4v_work on 2006/03/13 04:42:16 reduce debugging noise Affected files ... .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/tsb.c#11 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/tte_hash.c#8 edit Differences ... ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/tsb.c#11 (text+ko) ==== @@ -94,7 +94,6 @@ tsb_pages = hvtsb->hvtsb_ntte >> (PAGE_SHIFT - TTE_SHIFT); *scratchval = hvtsb->hvtsb_pa | tsb_pages; - printf("hvtsb_pa=0x%lx\n", hvtsb->hvtsb_pa); return vtophys(hvtsb); } @@ -238,12 +237,10 @@ tsb_set_scratchpad_kernel(hv_tsb_info_t *tsb) { uint64_t tsb_pages, tsb_scratch; - hv_magic_trap_on(); tsb_pages = tsb->hvtsb_ntte >> (PAGE_SHIFT - TTE_SHIFT); tsb_scratch = tsb->hvtsb_pa | tsb_pages; set_tsb_kernel_scratchpad(tsb_scratch); - hv_magic_trap_off(); return tsb_scratch; } @@ -251,11 +248,9 @@ tsb_set_scratchpad_user(hv_tsb_info_t *tsb) { uint64_t tsb_pages, tsb_scratch; - hv_magic_trap_on(); tsb_pages = tsb->hvtsb_ntte >> (PAGE_SHIFT - TTE_SHIFT); tsb_scratch = tsb->hvtsb_pa | tsb_pages; set_tsb_user_scratchpad(tsb_scratch); - hv_magic_trap_off(); return tsb_scratch; } ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/tte_hash.c#8 (text+ko) ==== @@ -253,6 +253,7 @@ hash_index = (va >> hash_shift) & HASH_MASK(th); fields = (th->th_hashtable[hash_index].the_fields); tte_tag = (((uint64_t)th->th_context << TTARGET_CTX_SHIFT)|(va >> TTARGET_VA_SHIFT)); + for (i = 0; i <= 3; i++) { if ((fields[i].tte.tag == 0) || (fields[i].tte.tag == tte_tag)) { fields[i].tte.data = tte_data; @@ -298,11 +299,8 @@ /* This will break if a hash table ever grows above 64MB * 2^(13+13) */ - hv_magic_trap_on(); - hash_scratch = ((vm_offset_t)th->th_hashtable) | ((vm_offset_t)th->th_size); set_hash_kernel_scratchpad(hash_scratch); - hv_magic_trap_off(); return hash_scratch; } @@ -315,12 +313,10 @@ /* This will break if a hash table ever grows above 64MB * 2^(13+13) */ - hv_magic_trap_on(); hash_scratch = ((vm_offset_t)th->th_hashtable) | ((vm_offset_t)th->th_size); set_hash_user_scratchpad(hash_scratch); - hv_magic_trap_off(); return hash_scratch; } From owner-p4-projects@FreeBSD.ORG Mon Mar 13 04:45:32 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3474F16A424; Mon, 13 Mar 2006 04:45:32 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0F3C216A420 for ; Mon, 13 Mar 2006 04:45:32 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9385643D72 for ; Mon, 13 Mar 2006 04:45:31 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2D4jVjf075253 for ; Mon, 13 Mar 2006 04:45:31 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2D4jVZM075250 for perforce@freebsd.org; Mon, 13 Mar 2006 04:45:31 GMT (envelope-from kmacy@freebsd.org) Date: Mon, 13 Mar 2006 04:45:31 GMT Message-Id: <200603130445.k2D4jVZM075250@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 93227 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Mar 2006 04:45:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=93227 Change 93227 by kmacy@kmacy_storage:sun4v_work on 2006/03/13 04:44:30 reduce debugging noise Affected files ... .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/swtch.S#9 edit Differences ... ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/swtch.S#9 (text+ko) ==== @@ -163,7 +163,6 @@ be,a,pn %xcc, 5f nop - MAGIC_TRAP_ON mov SCRATCH_REG_HASH_USER, %l6 mov SCRATCH_REG_TSB_USER, %l7 ldx [%i2 + PM_HASHSCRATCH], %l3 @@ -195,7 +194,6 @@ /* * Done. Return and load the new process's window from the stack. */ - MAGIC_TRAP_OFF 5: ret restore END(cpu_switch) From owner-p4-projects@FreeBSD.ORG Mon Mar 13 05:47:47 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C0DEB16A420; Mon, 13 Mar 2006 05:47:47 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9D9E216A400 for ; Mon, 13 Mar 2006 05:47:47 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3DD7C43D46 for ; Mon, 13 Mar 2006 05:47:47 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2D5llUT087104 for ; Mon, 13 Mar 2006 05:47:47 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2D5lkbd087101 for perforce@freebsd.org; Mon, 13 Mar 2006 05:47:46 GMT (envelope-from kmacy@freebsd.org) Date: Mon, 13 Mar 2006 05:47:46 GMT Message-Id: <200603130547.k2D5lkbd087101@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 93229 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Mar 2006 05:47:48 -0000 http://perforce.freebsd.org/chv.cgi?CH=93229 Change 93229 by kmacy@kmacy_storage:sun4v_work on 2006/03/13 05:47:37 disgusting pmap_qenter hack to avoid kernel TSB misses quick and dirty pmap_copy_page print warning from pmap_copy Affected files ... .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/pmap.c#23 edit Differences ... ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/pmap.c#23 (text+ko) ==== @@ -130,6 +130,13 @@ */ struct pmap kernel_pmap_store; +/* + * pmap_copy_page vas NOT mp-safe + */ +vm_offset_t pmap_copy_0, pmap_copy_1; + + + hv_tsb_info_t kernel_td[MAX_TSB_INFO]; /* @@ -165,6 +172,7 @@ */ #define UNIMPLEMENTED panic("%s not implemented", __FUNCTION__) +#define IMPLEMENTME printf("don't forget %s not implemented\n", __FUNCTION__) static void free_pv_entry(pv_entry_t pv); static pv_entry_t get_pv_entry(pmap_t locked_pmap); @@ -541,6 +549,13 @@ va = kstack0 + i * PAGE_SIZE; tsb_set_tte(&kernel_td[TSB8K_INDEX], va, pa | TTE_KERNEL | VTD_8K, 0); } + /* short-term MP-unsafe hack for pmap_copy_page + */ + pmap_copy_0 = virtual_avail; + virtual_avail += PAGE_SIZE; + pmap_copy_1 = virtual_avail; + virtual_avail += PAGE_SIZE; + /* * Calculate the last available physical address. @@ -679,13 +694,22 @@ pmap_copy(pmap_t dst_pmap, pmap_t src_pmap, vm_offset_t dst_addr, vm_size_t len, vm_offset_t src_addr) { - UNIMPLEMENTED; + IMPLEMENTME; } void pmap_copy_page(vm_page_t src, vm_page_t dst) { - UNIMPLEMENTED; + /* XXX NOT mp-safe */ + tsb_set_tte(&kernel_pmap->pm_tsb, pmap_copy_0, + VM_PAGE_TO_PHYS(src) | TTE_KERNEL | VTD_8K, 0); + tsb_set_tte(&kernel_pmap->pm_tsb, pmap_copy_1, + VM_PAGE_TO_PHYS(dst) | TTE_KERNEL | VTD_8K, 0); + + bcopy((char *)pmap_copy_0, (char *)pmap_copy_1, PAGE_SIZE); + + pmap_invalidate_page(kernel_pmap, pmap_copy_0); + pmap_invalidate_page(kernel_pmap, pmap_copy_1); } /* @@ -701,11 +725,10 @@ uint64_t tte_data, otte_data, *otte; vm_page_t om; int invlva; -#if 0 + if (pmap->pm_context) printf("ctx=%d va=%lx prot=%x wired=%x\n", (int)pmap->pm_context, va, prot, wired); -#endif om = NULL; @@ -1271,15 +1294,38 @@ pmap_qenter(vm_offset_t sva, vm_page_t *m, int count) { vm_offset_t va; + int tcount; + vm_page_t *tm; + + tm = m; + tcount = count; va = sva; - while (count-- > 0) { - pmap_kenter(va, VM_PAGE_TO_PHYS(*m)); + while (tcount-- > 0) { + pmap_kenter(va, VM_PAGE_TO_PHYS(*tm)); va += PAGE_SIZE; - m++; + tm++; } pmap_invalidate_range(kernel_pmap, sva, va); + /* disgusting hack to avoid TSB misses on kernel pages + * this will need to be fixed some time soon + */ + + tm = m; + tcount = count; + + va = sva; + while (tcount-- > 0) { + tsb_set_tte(&kernel_pmap->pm_tsb, va, + VM_PAGE_TO_PHYS(*tm) | TTE_KERNEL | VTD_8K, + kernel_pmap->pm_context); + va += PAGE_SIZE; + tm++; + } + + + } /* From owner-p4-projects@FreeBSD.ORG Mon Mar 13 09:25:15 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 512F316A44D; Mon, 13 Mar 2006 09:25:13 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1339C16A400 for ; Mon, 13 Mar 2006 09:25:13 +0000 (UTC) (envelope-from gnn@neville-neil.com) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A23A843D45 for ; Mon, 13 Mar 2006 09:25:12 +0000 (GMT) (envelope-from gnn@neville-neil.com) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2D9PCHw003009 for ; Mon, 13 Mar 2006 09:25:12 GMT (envelope-from gnn@neville-neil.com) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2D9PBZD003006 for perforce@freebsd.org; Mon, 13 Mar 2006 09:25:11 GMT (envelope-from gnn@neville-neil.com) Date: Mon, 13 Mar 2006 09:25:11 GMT Message-Id: <200603130925.k2D9PBZD003006@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gnn@neville-neil.com using -f From: "George V. Neville-Neil" To: Perforce Change Reviews Cc: Subject: PERFORCE change 93237 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Mar 2006 09:25:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=93237 Change 93237 by gnn@fast_ipsec_integ on 2006/03/13 09:24:12 Integrating from HEAD Affected files ... .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/clock.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/alpha/include/pcpu.h#2 integrate .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/mp_machdep.c#5 integrate .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/pmap.c#5 integrate .. //depot/projects/fast_ipsec/src/sys/amd64/linux32/linux32_machdep.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/arm/arm/in_cksum.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/arm/include/in_cksum.h#3 integrate .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/Makefile#3 integrate .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/libi386.h#4 integrate .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/smbios.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/compat/freebsd32/freebsd32_misc.c#7 integrate .. //depot/projects/fast_ipsec/src/sys/conf/files#8 integrate .. //depot/projects/fast_ipsec/src/sys/contrib/pf/net/if_pflog.h#3 integrate .. //depot/projects/fast_ipsec/src/sys/ddb/db_command.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/ddb/ddb.h#2 integrate .. //depot/projects/fast_ipsec/src/sys/dev/aic7xxx/aic79xx_osm.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/dev/ata/ata-all.c#6 integrate .. //depot/projects/fast_ipsec/src/sys/dev/ata/ata-all.h#6 integrate .. //depot/projects/fast_ipsec/src/sys/dev/ata/ata-disk.c#5 integrate .. //depot/projects/fast_ipsec/src/sys/dev/ata/ata-queue.c#5 integrate .. //depot/projects/fast_ipsec/src/sys/dev/ata/ata-raid.c#6 integrate .. //depot/projects/fast_ipsec/src/sys/dev/ata/ata-usb.c#1 branch .. //depot/projects/fast_ipsec/src/sys/dev/ata/atapi-cd.c#5 integrate .. //depot/projects/fast_ipsec/src/sys/dev/ata/atapi-fd.c#5 integrate .. //depot/projects/fast_ipsec/src/sys/dev/ath/ath_rate/sample/sample.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/dev/cs/if_cs.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/dev/exca/exca.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/dev/hwpmc/hwpmc_logging.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/dev/hwpmc/hwpmc_mod.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/dev/ieee488/upd7210.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/dev/ipw/if_ipw.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/dev/ipw/if_ipwreg.h#2 integrate .. //depot/projects/fast_ipsec/src/sys/dev/ipw/if_ipwvar.h#2 integrate .. //depot/projects/fast_ipsec/src/sys/dev/iwi/if_iwi.c#5 integrate .. //depot/projects/fast_ipsec/src/sys/dev/iwi/if_iwireg.h#5 integrate .. //depot/projects/fast_ipsec/src/sys/dev/iwi/if_iwivar.h#4 integrate .. //depot/projects/fast_ipsec/src/sys/dev/mpt/mpt.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/dev/mpt/mpt.h#5 integrate .. //depot/projects/fast_ipsec/src/sys/dev/mpt/mpt_cam.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/dev/ral/rt2661.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/fs/nullfs/null_vnops.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/geom/mirror/g_mirror.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/geom/mirror/g_mirror.h#3 integrate .. //depot/projects/fast_ipsec/src/sys/geom/mirror/g_mirror_ctl.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/geom/raid3/g_raid3.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/geom/raid3/g_raid3.h#3 integrate .. //depot/projects/fast_ipsec/src/sys/geom/raid3/g_raid3_ctl.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/gnu/fs/xfs/FreeBSD/support/kdb.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/i386/i386/mp_machdep.c#6 integrate .. //depot/projects/fast_ipsec/src/sys/i386/i386/vm_machdep.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/kern/kern_environment.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/kern/kern_exec.c#7 integrate .. //depot/projects/fast_ipsec/src/sys/kern/kern_mbuf.c#6 integrate .. //depot/projects/fast_ipsec/src/sys/kern/kern_resource.c#5 integrate .. //depot/projects/fast_ipsec/src/sys/kern/kern_sig.c#6 integrate .. //depot/projects/fast_ipsec/src/sys/kern/kern_tc.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/kern/subr_prf.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/kern/uipc_mbuf.c#5 integrate .. //depot/projects/fast_ipsec/src/sys/kern/vfs_mount.c#5 integrate .. //depot/projects/fast_ipsec/src/sys/kern/vfs_subr.c#7 integrate .. //depot/projects/fast_ipsec/src/sys/kern/vfs_vnops.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/modules/ata/atausb/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/modules/iwi/Makefile#4 integrate .. //depot/projects/fast_ipsec/src/sys/modules/pf/Makefile#4 integrate .. //depot/projects/fast_ipsec/src/sys/modules/pflog/Makefile#2 integrate .. //depot/projects/fast_ipsec/src/sys/net/if_vlan.c#5 integrate .. //depot/projects/fast_ipsec/src/sys/net80211/ieee80211_proto.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/netinet/if_ether.c#6 integrate .. //depot/projects/fast_ipsec/src/sys/nfsclient/nfs_vnops.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/nfsserver/nfs_serv.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/nfsserver/nfs_srvsock.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/sys/cdefs.h#4 integrate .. //depot/projects/fast_ipsec/src/sys/sys/disk.h#2 integrate .. //depot/projects/fast_ipsec/src/sys/sys/hash.h#1 branch .. //depot/projects/fast_ipsec/src/sys/sys/mount.h#5 integrate .. //depot/projects/fast_ipsec/src/sys/sys/proc.h#6 integrate .. //depot/projects/fast_ipsec/src/sys/sys/vnode.h#5 integrate .. //depot/projects/fast_ipsec/src/sys/ufs/ffs/ffs_extern.h#3 integrate .. //depot/projects/fast_ipsec/src/sys/ufs/ffs/ffs_snapshot.c#5 integrate .. //depot/projects/fast_ipsec/src/sys/ufs/ffs/ffs_softdep.c#5 integrate .. //depot/projects/fast_ipsec/src/sys/ufs/ffs/ffs_vfsops.c#6 integrate .. //depot/projects/fast_ipsec/src/sys/ufs/ufs/ufs_inode.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/ufs/ufs/ufs_lookup.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/ufs/ufs/ufs_quota.c#5 integrate .. //depot/projects/fast_ipsec/src/sys/ufs/ufs/ufsmount.h#3 integrate .. //depot/projects/fast_ipsec/src/sys/vm/swap_pager.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/vm/vm_contig.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/vm/vm_fault.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/vm/vm_map.c#5 integrate .. //depot/projects/fast_ipsec/src/sys/vm/vm_page.c#6 integrate .. //depot/projects/fast_ipsec/src/sys/vm/vm_pageq.c#4 integrate Differences ... ==== //depot/projects/fast_ipsec/src/sys/alpha/alpha/clock.c#4 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/clock.c,v 1.42 2005/12/22 22:16:04 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/clock.c,v 1.44 2006/03/07 22:12:09 jhb Exp $"); #include "opt_clock.h" @@ -49,6 +49,7 @@ #include #include #include +#include #include #include #include @@ -89,8 +90,6 @@ device_t clockdev; int clockinitted; -int tickfix; -int tickfixinterval; int adjkerntz; /* local offset from GMT in seconds */ int disable_rtc_set; /* disable resettodr() if != 0 */ int wall_cmos_clock; /* wall CMOS clock assumed if != 0 */ @@ -103,15 +102,8 @@ #define TIMER_FREQ 1193182 #endif u_int32_t timer_freq = TIMER_FREQ; -int timer0_max_count; - -static u_int32_t i8254_lastcount; -static u_int32_t i8254_offset; -static int i8254_ticked; -static int clkintr_pending = 0; extern int cycles_per_sec; -extern int ncpus; static timecounter_get_t i8254_get_timecount; static timecounter_get_t alpha_get_timecount; @@ -128,7 +120,7 @@ static struct timecounter i8254_timecounter = { i8254_get_timecount, /* get_timecount */ 0, /* no poll_pps */ - ~0u, /* counter_mask */ + 0xffff, /* counter_mask */ 0, /* frequency */ "i8254" /* name */ }; @@ -142,25 +134,10 @@ /* static u_char timer0_state; */ static u_char timer2_state; -/* - * Algorithm for missed clock ticks from Linux/alpha. - */ - -/* - * Shift amount by which scaled_ticks_per_cycle is scaled. Shifting - * by 48 gives us 16 bits for HZ while keeping the accuracy good even - * for large CPU clock rates. - */ -#define FIX_SHIFT 48 - -static u_int64_t scaled_ticks_per_cycle; -static u_int32_t max_cycles_per_tick; -static u_int32_t last_time; - -static void handleclock(int usermode, uintfptr_t pc); static void calibrate_clocks(u_int32_t firmware_freq, u_int32_t *pcc, u_int32_t *timer); static void set_timer_freq(u_int freq, int intr_freq); +static uint64_t read_cycle_count(void); void clockattach(device_t dev) @@ -176,6 +153,7 @@ calibrate_clocks(cycles_per_sec, &pcc, &freq); cycles_per_sec = pcc; + set_cputicker(read_cycle_count, cycles_per_sec, 0); /* * XXX: TurboLaser doesn't have an i8254 counter. @@ -206,7 +184,6 @@ freq, timer_freq); } set_timer_freq(timer_freq, hz); - i8254_timecounter.tc_frequency = timer_freq; out: #ifdef EVCNT_COUNTERS @@ -235,21 +212,12 @@ void cpu_initclocks() { - u_int32_t freq; if (clockdev == NULL) panic("cpu_initclocks: no clock attached"); tick = 1000000 / hz; /* number of microseconds between interrupts */ - tickfix = 1000000 - (hz * tick); - if (tickfix) { - int ftp; - ftp = min(ffs(tickfix), ffs(hz)); - tickfix >>= (ftp - 1); - tickfixinterval = hz >> (ftp - 1); - } - /* * Establish the clock interrupt; it's a special case. * @@ -262,24 +230,18 @@ * hardclock, which would then fall over because p->p_stats * isn't set at that time. */ - freq = cycles_per_sec; - last_time = alpha_rpcc(); - scaled_ticks_per_cycle = ((u_int64_t)hz << FIX_SHIFT) / freq; - max_cycles_per_tick = 2*freq / hz; /* * XXX: TurboLaser doesn't have an i8254 counter. * XXX: A replacement is needed, and another method * XXX: of determining this would be nice. */ - if (hwrpb->rpb_type != ST_DEC_21000) { + if (hwrpb->rpb_type != ST_DEC_21000) tc_init(&i8254_timecounter); - platform.clockintr = handleclock; - } else - platform.clockintr = hardclock; + platform.clockintr = hardclock; - if (ncpus == 1) { - alpha_timecounter.tc_frequency = freq; + if (mp_ncpus == 1) { + alpha_timecounter.tc_frequency = cycles_per_sec; tc_init(&alpha_timecounter); } @@ -375,7 +337,7 @@ if (count == 0) goto fail; if (count > prev_count) - tot_count += prev_count - (count - timer0_max_count); + tot_count += prev_count - (count - 0xffff); else tot_count += prev_count - count; prev_count = count; @@ -410,40 +372,16 @@ static void set_timer_freq(u_int freq, int intr_freq) { - int new_timer0_max_count; mtx_lock_spin(&clock_lock); timer_freq = freq; - new_timer0_max_count = TIMER_DIV(intr_freq); - if (new_timer0_max_count != timer0_max_count) { - timer0_max_count = new_timer0_max_count; - outb(TIMER_MODE, TIMER_SEL0 | TIMER_RATEGEN | TIMER_16BIT); - outb(TIMER_CNTR0, timer0_max_count & 0xff); - outb(TIMER_CNTR0, timer0_max_count >> 8); - } + i8254_timecounter.tc_frequency = timer_freq; + outb(TIMER_MODE, TIMER_SEL0 | TIMER_RATEGEN | TIMER_16BIT); + outb(TIMER_CNTR0, 0); + outb(TIMER_CNTR0, 0); mtx_unlock_spin(&clock_lock); } -static void -handleclock(int usermode, uintfptr_t pc) -{ - - KASSERT(hwrpb->rpb_type != ST_DEC_21000, - ("custom clock handler called on TurboLaser")); - if (timecounter->tc_get_timecount == i8254_get_timecount) { - mtx_lock_spin(&clock_lock); - if (i8254_ticked) - i8254_ticked = 0; - else { - i8254_offset += timer0_max_count; - i8254_lastcount = 0; - } - clkintr_pending = 0; - mtx_unlock_spin(&clock_lock); - } - hardclock(usermode, pc); -} - void cpu_startprofclock(void) { @@ -609,29 +547,8 @@ static unsigned i8254_get_timecount(struct timecounter *tc) { - u_int count; - u_int high, low; - mtx_lock_spin(&clock_lock); - - /* Select timer0 and latch counter value. */ - outb(TIMER_MODE, TIMER_SEL0 | TIMER_LATCH); - - low = inb(TIMER_CNTR0); - high = inb(TIMER_CNTR0); - count = timer0_max_count - ((high << 8) | low); - if (count < i8254_lastcount || - (!i8254_ticked && (clkintr_pending || - ((count < 20) && (inb(IO_ICU1) & 1))) - )) { - i8254_ticked = 1; - i8254_offset += timer0_max_count; - } - i8254_lastcount = count; - count += i8254_offset; - - mtx_unlock_spin(&clock_lock); - return (count); + return (0xffff - get_8254_ctr()); } static unsigned @@ -640,6 +557,30 @@ return alpha_rpcc(); } +/* + * The RPCC register actually consists of two halves. The lower half + * is a raw 32-bit counter that wraps. The upper half is defined in + * the Digital UNIX PAL as being a raw per-process cycle count mod 2^32 + * that is updated on each call to swpctx. In order to produce a 64-bit + * counter, we just use the lower half and simulate the upper 32-bits. + * The architecture guarantees that there will always be at least one + * clock interrupt in between overlaps in the lower half, so as long as + * we call this function every clock interrupt we should not miss any + * overlaps. + */ +uint64_t +read_cycle_count(void) +{ + unsigned pcc_cnt; + + /* Assert a critical section? */ + pcc_cnt = alpha_rpcc() & 0xffffffff; + if (pcc_cnt < PCPU_GET(last_pcc_cnt)) + PCPU_SET(pcc_base, PCPU_GET(pcc_base) + 1); + PCPU_SET(last_pcc_cnt, pcc_cnt); + return (pcc_cnt | ((uint64_t)PCPU_GET(pcc_base) << 32)); +} + int acquire_timer2(int mode) { ==== //depot/projects/fast_ipsec/src/sys/alpha/include/pcpu.h#2 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/alpha/include/pcpu.h,v 1.15 2004/11/05 19:16:44 jhb Exp $ + * $FreeBSD: src/sys/alpha/include/pcpu.h,v 1.16 2006/03/07 22:12:09 jhb Exp $ */ #ifndef _MACHINE_PCPU_H_ @@ -38,7 +38,9 @@ u_int64_t pc_idlepcbphys; /* pa of pc_idlepcb */ \ u_int64_t pc_pending_ipis; /* pending IPI's */ \ u_int32_t pc_next_asn; /* next ASN to alloc */ \ - u_int32_t pc_current_asngen /* ASN rollover check */ + u_int32_t pc_current_asngen; /* ASN rollover check */ \ + u_int32_t pc_last_pcc_cnt; /* Previous PCC_CNT value */ \ + u_int32_t pc_pcc_base /* Hi word of cycle count. */ struct pcpu; ==== //depot/projects/fast_ipsec/src/sys/amd64/amd64/mp_machdep.c#5 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.269 2006/02/28 22:24:54 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.270 2006/03/09 16:38:52 jhb Exp $"); #include "opt_cpu.h" #include "opt_kstack_pages.h" @@ -612,12 +612,12 @@ continue; if (cpu_info[apic_id].cpu_bsp) continue; -#if 0 + /* Don't let hyperthreads service interrupts. */ if (hyperthreading_cpus > 1 && apic_id % hyperthreading_cpus != 0) continue; -#endif + intr_add_cpu(apic_id); } } ==== //depot/projects/fast_ipsec/src/sys/amd64/amd64/pmap.c#5 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.536 2006/02/03 00:16:36 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.537 2006/03/13 08:13:37 ps Exp $"); /* * Manages physical address maps. @@ -1360,7 +1360,7 @@ return sysctl_handle_long(oidp, &ksize, 0, req); } SYSCTL_PROC(_vm, OID_AUTO, kvm_size, CTLTYPE_LONG|CTLFLAG_RD, - 0, 0, kvm_size, "IU", "Size of KVM"); + 0, 0, kvm_size, "LU", "Size of KVM"); static int kvm_free(SYSCTL_HANDLER_ARGS) @@ -1370,7 +1370,7 @@ return sysctl_handle_long(oidp, &kfree, 0, req); } SYSCTL_PROC(_vm, OID_AUTO, kvm_free, CTLTYPE_LONG|CTLFLAG_RD, - 0, 0, kvm_free, "IU", "Amount of KVM free"); + 0, 0, kvm_free, "LU", "Amount of KVM free"); /* * grow the number of kernel page table entries, if needed ==== //depot/projects/fast_ipsec/src/sys/amd64/linux32/linux32_machdep.c#3 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.11 2006/02/06 22:06:53 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.12 2006/03/08 20:21:53 ups Exp $"); #include #include @@ -130,7 +130,7 @@ copystr(fname, args->fname, PATH_MAX, &length) : copyinstr(fname, args->fname, PATH_MAX, &length); if (error != 0) - return (error); + goto err_exit; /* * extract arguments first @@ -139,16 +139,16 @@ for (;;) { error = copyin(p32++, &arg, sizeof(arg)); if (error) - return (error); + goto err_exit; if (arg == 0) break; argp = PTRIN(arg); error = copyinstr(argp, args->endp, args->stringspace, &length); if (error) { if (error == ENAMETOOLONG) - return (E2BIG); - else - return (error); + error = E2BIG; + + goto err_exit; } args->stringspace -= length; args->endp += length; @@ -165,7 +165,7 @@ for (;;) { error = copyin(p32++, &arg, sizeof(arg)); if (error) - return (error); + goto err_exit; if (arg == 0) break; envp = PTRIN(arg); @@ -173,9 +173,8 @@ &length); if (error) { if (error == ENAMETOOLONG) - return (E2BIG); - else - return (error); + error = E2BIG; + goto err_exit; } args->stringspace -= length; args->endp += length; @@ -184,6 +183,12 @@ } return (0); + +err_exit: + kmem_free_wakeup(exec_map, (vm_offset_t)args->buf, + PATH_MAX + ARG_MAX + MAXSHELLCMDLEN); + args->buf = NULL; + return (error); } int ==== //depot/projects/fast_ipsec/src/sys/arm/arm/in_cksum.c#3 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include /* RCS ID & Copyright macro defns */ -__FBSDID("$FreeBSD: src/sys/arm/arm/in_cksum.c,v 1.5 2005/10/03 14:06:44 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/in_cksum.c,v 1.6 2006/03/09 23:33:59 cognet Exp $"); #include #include @@ -130,3 +130,12 @@ REDUCE16; return (~sum & 0xffff); } + +u_int in_cksum_hdr(const struct ip *ip) +{ + u_int64_t sum = do_cksum(ip, sizeof(struct ip)); + union q_util q_util; + union l_util l_util; + REDUCE16; + return (~sum & 0xffff); +} ==== //depot/projects/fast_ipsec/src/sys/arm/include/in_cksum.h#3 (text+ko) ==== @@ -33,7 +33,7 @@ * from tahoe: in_cksum.c 1.2 86/01/05 * from: @(#)in_cksum.c 1.3 (Berkeley) 1/19/91 * from: Id: in_cksum.c,v 1.8 1995/12/03 18:35:19 bde Exp - * $FreeBSD: src/sys/arm/include/in_cksum.h,v 1.3 2005/10/03 14:06:44 cognet Exp $ + * $FreeBSD: src/sys/arm/include/in_cksum.h,v 1.4 2006/03/09 23:33:59 cognet Exp $ */ #ifndef _MACHINE_IN_CKSUM_H_ @@ -46,80 +46,7 @@ u_short in_addword(u_short sum, u_short b); u_short in_cksum_skip(struct mbuf *m, int len, int skip); u_int do_cksum(const void *, int); -static __inline u_int -in_cksum_hdr(const struct ip *ip) -{ - u_int sum = 0; - u_int tmp1, tmp2, tmp3, tmp4; - - if (((vm_offset_t)ip & 0x03) == 0) - __asm __volatile ( - "adds %0, %0, %1\n" - "adcs %0, %0, %2\n" - "adcs %0, %0, %3\n" - "adcs %0, %0, %4\n" - "adcs %0, %0, %5\n" - "adc %0, %0, #0\n" - : "+r" (sum) - : "r" (((const u_int32_t *)ip)[0]), - "r" (((const u_int32_t *)ip)[1]), - "r" (((const u_int32_t *)ip)[2]), - "r" (((const u_int32_t *)ip)[3]), - "r" (((const u_int32_t *)ip)[4]) - ); - else - __asm __volatile ( - "and %1, %5, #3\n" - "cmp %1, #0x02\n" - "ldrb %2, [%5], #0x01\n" - "ldrgeb %3, [%5], #0x01\n" - "movlt %3, #0\n" - "ldrgtb %4, [%5], #0x01\n" - "movle %4, #0x00\n" -#ifdef __ARMEB__ - "orreq %0, %3, %2, lsl #8\n" - "orreq %0, %0, %4, lsl #24\n" - "orrne %0, %0, %3, lsl #8\n" - "orrne %0, %0, %4, lsl #16\n" -#else - "orreq %0, %2, %3, lsl #8\n" - "orreq %0, %0, %4, lsl #16\n" - "orrne %0, %3, %2, lsl #8\n" - "orrne %0, %0, %4, lsl #24\n" -#endif - "ldmia %5, {%2, %3, %4}\n" - "adcs %0, %0, %2\n" - "adcs %0, %0, %3\n" - "adcs %0, %0, %4\n" - "ldrb %2, [%5]\n" - "cmp %1, #0x02\n" - "ldrgeb %3, [%5, #0x01]\n" - "movlt %3, #0x00\n" - "ldrgtb %4, [%5, #0x02]\n" - "movle %4, #0x00\n" - "tst %5, #0x01\n" -#ifdef __ARMEB__ - "orreq %2, %3, %2, lsl #8\n" - "orreq %2, %2, %4, lsl #24\n" - "orrne %2, %2, %3, lsl #8\n" - "orrne %2, %2, %4, lsl #16\n" -#else - "orreq %2, %2, %3, lsl #8\n" - "orreq %2, %2, %4, lsl #16\n" - "orrne %2, %3, %2, lsl #8\n" - "orrne %2, %2, %4, lsl #24\n" -#endif - "adds %0, %0, %2\n" - "adc %0, %0, #0\n" - : "+r" (sum), "=r" (tmp1), "=r" (tmp2), "=r" (tmp3), - "=r" (tmp4) - : "r" (ip)); - - sum = (sum & 0xffff) + (sum >> 16); - if (sum > 0xffff) - sum -= 0xffff; - return (~sum & 0xffff); -} +u_int in_cksum_hdr(const struct ip *); static __inline u_short in_pseudo(u_int sum, u_int b, u_int c) ==== //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/Makefile#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/boot/i386/libi386/Makefile,v 1.39 2005/12/19 09:00:11 sobomax Exp $ +# $FreeBSD: src/sys/boot/i386/libi386/Makefile,v 1.40 2006/03/09 22:49:44 jkim Exp $ # LIB= i386 INTERNALLIB= @@ -21,6 +21,11 @@ CFLAGS+= -DDISK_DEBUG .endif +.ifdef(BOOT_SENSITIVE_INFO) +# Show serial numbers, UUID, and asset tag from loader +CFLAGS+= -DSHOW_SENSITIVE_INFO +.endif + # Include simple terminal emulation (cons25-compatible) CFLAGS+= -DTERM_EMU ==== //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/libi386.h#4 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/boot/i386/libi386/libi386.h,v 1.23 2005/12/21 02:17:58 sobomax Exp $ + * $FreeBSD: src/sys/boot/i386/libi386/libi386.h,v 1.24 2006/03/09 22:49:44 jkim Exp $ */ @@ -100,9 +100,9 @@ int biospci_write_config(uint32_t locator, int offset, int width, int val); int biospci_read_config(uint32_t locator, int offset, int width, uint32_t *val); -void biosacpi_detect(); +void biosacpi_detect(void); -void smbios_detect(); +void smbios_detect(void); void gateA20(void); ==== //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/smbios.c#3 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2005 Jung-uk Kim + * Copyright (c) 2005, 2006 Jung-uk Kim * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -25,12 +25,13 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/smbios.c,v 1.3 2005/10/18 20:03:31 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/smbios.c,v 1.5 2006/03/10 23:33:27 jkim Exp $"); #include #include #include "btxv86.h" +#include "libi386.h" /* * Detect SMBIOS and export information about the SMBIOS into the @@ -54,21 +55,26 @@ #define SMBIOS_SIG "_SM_" #define SMBIOS_DMI_SIG "_DMI_" -static u_int8_t smbios_enabled_sockets = 0; -static u_int8_t smbios_populated_sockets = 0; +static uint8_t smbios_enabled_sockets = 0; +static uint8_t smbios_populated_sockets = 0; + +static uint8_t *smbios_parse_table(const uint8_t *dmi); +static void smbios_setenv(const char *name, const uint8_t *dmi, + const int offset); +static uint8_t smbios_checksum(const caddr_t addr, const uint8_t len); +static uint8_t *smbios_sigsearch(const caddr_t addr, const uint32_t len); -static u_int8_t *smbios_parse_table(const u_int8_t *dmi); -static void smbios_setenv(const char *env, const u_int8_t *dmi, +#ifdef SHOW_SENSITIVE_INFO +static void smbios_setuuid(const char *name, const uint8_t *dmi, const int offset); -static u_int8_t smbios_checksum(const u_int8_t *addr, const u_int8_t len); -static u_int8_t *smbios_sigsearch(const caddr_t addr, const u_int32_t len); +#endif void smbios_detect(void) { - u_int8_t *smbios, *dmi, *addr; - u_int16_t i, length, count; - u_int32_t paddr; + uint8_t *smbios, *dmi, *addr; + uint16_t i, length, count; + uint32_t paddr; char buf[4]; /* locate and validate the SMBIOS */ @@ -76,9 +82,9 @@ if (smbios == NULL) return; - length = *(u_int16_t *)(smbios + 0x16); /* Structure Table Length */ - paddr = *(u_int32_t *)(smbios + 0x18); /* Structure Table Address */ - count = *(u_int16_t *)(smbios + 0x1c); /* No of SMBIOS Structures */ + length = *(uint16_t *)(smbios + 0x16); /* Structure Table Length */ + paddr = *(uint32_t *)(smbios + 0x18); /* Structure Table Address */ + count = *(uint16_t *)(smbios + 0x1c); /* No of SMBIOS Structures */ for (dmi = addr = PTOV(paddr), i = 0; dmi - addr < length && i < count; i++) @@ -89,10 +95,10 @@ setenv("smbios.socket.populated", buf, 1); } -static u_int8_t * -smbios_parse_table(const u_int8_t *dmi) +static uint8_t * +smbios_parse_table(const uint8_t *dmi) { - u_int8_t *dp; + uint8_t *dp; switch(dmi[0]) { case 0: /* Type 0: BIOS */ @@ -105,17 +111,28 @@ smbios_setenv("smbios.system.maker", dmi, 0x04); smbios_setenv("smbios.system.product", dmi, 0x05); smbios_setenv("smbios.system.version", dmi, 0x06); +#ifdef SHOW_SENSITIVE_INFO + smbios_setenv("smbios.system.serial", dmi, 0x07); + smbios_setuuid("smbios.system.uuid", dmi, 0x08); +#endif break; case 2: /* Type 2: Base Board (or Module) */ smbios_setenv("smbios.planar.maker", dmi, 0x04); smbios_setenv("smbios.planar.product", dmi, 0x05); smbios_setenv("smbios.planar.version", dmi, 0x06); +#ifdef SHOW_SENSITIVE_INFO + smbios_setenv("smbios.planar.serial", dmi, 0x07); +#endif break; case 3: /* Type 3: System Enclosure or Chassis */ smbios_setenv("smbios.chassis.maker", dmi, 0x04); smbios_setenv("smbios.chassis.version", dmi, 0x06); +#ifdef SHOW_SENSITIVE_INFO + smbios_setenv("smbios.chassis.serial", dmi, 0x07); + smbios_setenv("smbios.chassis.tag", dmi, 0x08); +#endif break; case 4: /* Type 4: Processor Information */ @@ -147,7 +164,7 @@ } /* find structure terminator */ - dp = (u_int8_t *)(dmi + dmi[1]); + dp = __DECONST(uint8_t *, dmi + dmi[1]); while (dp[0] != 0 || dp[1] != 0) dp++; @@ -155,42 +172,43 @@ } static void -smbios_setenv(const char *str, const u_int8_t *dmi, const int offset) +smbios_setenv(const char *name, const uint8_t *dmi, const int offset) { - char *cp; + char *cp = __DECONST(char *, dmi + dmi[1]); int i; /* skip undefined string */ if (dmi[offset] == 0) return; - for (cp = (char *)(dmi + dmi[1]), i = 0; i < dmi[offset] - 1; i++) + for (i = 0; i < dmi[offset] - 1; i++) cp += strlen(cp) + 1; - setenv(str, cp, 1); + setenv(name, cp, 1); } -static u_int8_t -smbios_checksum(const u_int8_t *addr, const u_int8_t len) +static uint8_t +smbios_checksum(const caddr_t addr, const uint8_t len) { - u_int8_t sum; + const uint8_t *cp = addr; + uint8_t sum; int i; for (sum = 0, i = 0; i < len; i++) - sum += addr[i]; + sum += cp[i]; return(sum); } -static u_int8_t * -smbios_sigsearch(const caddr_t addr, const u_int32_t len) +static uint8_t * +smbios_sigsearch(const caddr_t addr, const uint32_t len) { caddr_t cp; /* search on 16-byte boundaries */ - for (cp = addr; cp - addr < len; cp += SMBIOS_STEP) { + for (cp = addr; cp < addr + len; cp += SMBIOS_STEP) { /* compare signature, validate checksum */ if (!strncmp(cp, SMBIOS_SIG, 4)) { - if (smbios_checksum(cp, *(cp + 0x05))) + if (smbios_checksum(cp, *(uint8_t *)(cp + 0x05))) continue; if (strncmp(cp + 0x10, SMBIOS_DMI_SIG, 5)) continue; @@ -203,3 +221,31 @@ return(NULL); } + +#ifdef SHOW_SENSITIVE_INFO +static void +smbios_setuuid(const char *name, const uint8_t *dmi, const int offset) +{ + const uint8_t *idp = dmi + offset; + int i, f = 0, z = 0; + char uuid[37]; + + for (i = 0; i < 16; i++) { + if (idp[i] == 0xff) + f++; + else if (idp[i] == 0x00) + z++; + else + break; + } + if (f != 16 && z != 16) { + sprintf(uuid, "%02X%02X%02X%02X-" + "%02X%02X-%02X%02X-%02X%02X-" + "%02X%02X%02X%02X%02X%02X", + idp[0], idp[1], idp[2], idp[3], + idp[4], idp[5], idp[6], idp[7], idp[8], idp[9], + idp[10], idp[11], idp[12], idp[13], idp[14], idp[15]); + setenv(name, uuid, 1); + } +} +#endif ==== //depot/projects/fast_ipsec/src/sys/compat/freebsd32/freebsd32_misc.c#7 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.52 2006/03/04 00:09:09 ps Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.53 2006/03/08 20:21:53 ups Exp $"); #include "opt_compat.h" @@ -260,7 +260,7 @@ copystr(fname, args->fname, PATH_MAX, &length) : copyinstr(fname, args->fname, PATH_MAX, &length); if (error != 0) - return (error); + goto err_exit; /* * extract arguments first @@ -269,16 +269,15 @@ for (;;) { error = copyin(p32++, &arg, sizeof(arg)); if (error) - return (error); + goto err_exit; if (arg == 0) break; argp = PTRIN(arg); error = copyinstr(argp, args->endp, args->stringspace, &length); if (error) { if (error == ENAMETOOLONG) - return (E2BIG); - else - return (error); + error = E2BIG; + goto err_exit; } args->stringspace -= length; args->endp += length; @@ -295,7 +294,7 @@ for (;;) { error = copyin(p32++, &arg, sizeof(arg)); if (error) - return (error); + goto err_exit; if (arg == 0) break; envp = PTRIN(arg); @@ -303,9 +302,8 @@ &length); if (error) { if (error == ENAMETOOLONG) - return (E2BIG); - else - return (error); + error = E2BIG; + goto err_exit; } args->stringspace -= length; args->endp += length; @@ -314,6 +312,12 @@ } return (0); + +err_exit: + kmem_free_wakeup(exec_map, (vm_offset_t)args->buf, + PATH_MAX + ARG_MAX + MAXSHELLCMDLEN); + args->buf = NULL; + return (error); } int ==== //depot/projects/fast_ipsec/src/sys/conf/files#8 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1100 2006/03/05 22:52:16 yar Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1102 2006/03/13 06:38:22 ru Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -11,7 +11,7 @@ clean "acpi_quirks.h" aicasm optional ahc | ahd \ dependency "$S/dev/aic7xxx/aicasm/*.[chyl]" \ - compile-with "CC=${CC} ${MAKE} -f $S/dev/aic7xxx/aicasm/Makefile MAKESRCPATH=$S/dev/aic7xxx/aicasm" \ + compile-with "CC='${CC}' ${MAKE} -f $S/dev/aic7xxx/aicasm/Makefile MAKESRCPATH=$S/dev/aic7xxx/aicasm" \ no-obj no-implicit-rule \ clean "aicasm* y.tab.h" aic7xxx_seq.h optional ahc \ @@ -52,7 +52,7 @@ no-implicit-rule local emu10k1-alsa%diked.h optional snd_emu10k1 pci \ dependency "$S/tools/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/emu10k1-alsa.h" \ - compile-with "CC=${CC} AWK=${AWK} sh $S/tools/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/emu10k1-alsa.h emu10k1-alsa%diked.h" \ + compile-with "CC='${CC}' AWK=${AWK} sh $S/tools/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/emu10k1-alsa.h emu10k1-alsa%diked.h" \ no-obj no-implicit-rule before-depend \ clean "emu10k1-alsa%diked.h" miidevs.h optional miibus | mii \ @@ -458,6 +458,7 @@ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Mar 13 12:47:49 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 31F0416A41F; Mon, 13 Mar 2006 12:47:49 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 08BCB16A422 for ; Mon, 13 Mar 2006 12:47:48 +0000 (UTC) (envelope-from soc-bushman@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id C475E43D48 for ; Mon, 13 Mar 2006 12:47:47 +0000 (GMT) (envelope-from soc-bushman@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2DCllvj020486 for ; Mon, 13 Mar 2006 12:47:47 GMT (envelope-from soc-bushman@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2DCllG6020483 for perforce@freebsd.org; Mon, 13 Mar 2006 12:47:47 GMT (envelope-from soc-bushman@freebsd.org) Date: Mon, 13 Mar 2006 12:47:47 GMT Message-Id: <200603131247.k2DCllG6020483@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-bushman@freebsd.org using -f From: soc-bushman To: Perforce Change Reviews Cc: Subject: PERFORCE change 93245 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Mar 2006 12:47:49 -0000 http://perforce.freebsd.org/chv.cgi?CH=93245 Change 93245 by soc-bushman@soc-bushman_stinger on 2006/03/13 12:47:38 agents error fixed - without (buffer == NULL) check cached crashed while performing actual lookups Affected files ... .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/agents/group.c#5 edit .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/agents/services.c#5 edit Differences ... ==== //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/agents/group.c#5 (text+ko) ==== @@ -66,7 +66,7 @@ desired_size += ALIGNBYTES + (mem_size + 1) * sizeof(char *); } - if (desired_size > *buffer_size) { + if ((desired_size > *buffer_size) || (buffer == NULL)) { *buffer_size = desired_size; TRACE_OUT(group_marshal_func); return (NS_RETURN); ==== //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/agents/services.c#5 (text+ko) ==== @@ -69,7 +69,7 @@ (aliases_size + 1); } - if (*buffer_size < desired_size) { + if ((*buffer_size < desired_size) || (buffer == NULL)) { *buffer_size = desired_size; TRACE_OUT(services_marshal_func); return (NS_RETURN); From owner-p4-projects@FreeBSD.ORG Mon Mar 13 12:56:00 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7DB4416A420; Mon, 13 Mar 2006 12:55:59 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7882B16A41F for ; Mon, 13 Mar 2006 12:55:58 +0000 (UTC) (envelope-from soc-bushman@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 41D7343D45 for ; Mon, 13 Mar 2006 12:55:58 +0000 (GMT) (envelope-from soc-bushman@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2DCtwdb020820 for ; Mon, 13 Mar 2006 12:55:58 GMT (envelope-from soc-bushman@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2DCtv6f020817 for perforce@freebsd.org; Mon, 13 Mar 2006 12:55:57 GMT (envelope-from soc-bushman@freebsd.org) Date: Mon, 13 Mar 2006 12:55:57 GMT Message-Id: <200603131255.k2DCtv6f020817@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-bushman@freebsd.org using -f From: soc-bushman To: Perforce Change Reviews Cc: Subject: PERFORCE change 93246 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Mar 2006 12:56:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=93246 Change 93246 by soc-bushman@soc-bushman_stinger on 2006/03/13 12:55:15 fixed an issue, that resulted in compile error when compiling with NO_NIS=yes Affected files ... .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getservent.c#19 edit Differences ... ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getservent.c#19 (text+ko) ==== @@ -96,6 +96,7 @@ static int files_servent(void *, void *, va_list); static int files_setservent(void *, void *, va_list); +#ifdef YP /* nis backend declarations */ static int nis_servent(void *, void *, va_list); static int nis_setservent(void *, void *, va_list); @@ -112,6 +113,7 @@ static int nis_servent(void *, void *, va_list); static int nis_setservent(void *, void *, va_list); +#endif /* compat backend declarations */ static int compat_setservent(void *, void *, va_list); From owner-p4-projects@FreeBSD.ORG Mon Mar 13 16:15:44 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A2B0D16A443; Mon, 13 Mar 2006 16:15:18 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9C3D116A422 for ; Mon, 13 Mar 2006 16:15:09 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8950B43D58 for ; Mon, 13 Mar 2006 16:15:05 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2DGF5al029082 for ; Mon, 13 Mar 2006 16:15:05 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2DGF5Pu029078 for perforce@freebsd.org; Mon, 13 Mar 2006 16:15:05 GMT (envelope-from jhb@freebsd.org) Date: Mon, 13 Mar 2006 16:15:05 GMT Message-Id: <200603131615.k2DGF5Pu029078@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 93252 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Mar 2006 16:15:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=93252 Change 93252 by jhb@jhb_slimer on 2006/03/13 16:14:33 Drop these local diffs now that phk has committed something similar to HEAD. Affected files ... .. //depot/projects/smpng/sys/kern/kern_resource.c#60 edit Differences ... ==== //depot/projects/smpng/sys/kern/kern_resource.c#60 (text+ko) ==== @@ -761,19 +761,14 @@ ut = ruxp->rux_uticks; st = ruxp->rux_sticks; it = ruxp->rux_iticks; + tu = ruxp->rux_runtime; + tu = cputick2usec(tu); tt = ut + st + it; if (tt == 0) { st = 1; tt = 1; } - tu = cputick2usec(ruxp->rux_runtime); ptu = ruxp->rux_uu + ruxp->rux_su + ruxp->rux_iu; - if (tu < ptu) { - printf( -"calcru: runtime went backwards from %ju usec to %ju usec for pid %d (%s)\n", - (uintmax_t)ptu, (uintmax_t)tu, p->p_pid, p->p_comm); - tu = ptu; - } if ((int64_t)tu < 0) { printf("calcru: negative runtime of %jd usec for pid %d (%s)\n", (intmax_t)tu, p->p_pid, p->p_comm); @@ -784,6 +779,16 @@ uu = (tu * ut) / tt; su = (tu * st) / tt; iu = tu - uu - su; + if (tu < ptu) { + printf( +"calcru: runtime went backwards from %ju usec to %ju usec for pid %d (%s)\n", + (uintmax_t)ptu, (uintmax_t)tu, p->p_pid, p->p_comm); + printf("u %ju:%ju/%ju s %ju:%ju/%ju i %ju:%ju/%ju\n", + (uintmax_t)ut, (uintmax_t)ruxp->rux_uu, uu, + (uintmax_t)st, (uintmax_t)ruxp->rux_su, su, + (uintmax_t)it, (uintmax_t)ruxp->rux_iu, iu); + tu = ptu; + } #if 0 /* Enforce monotonicity. */ if (uu < ruxp->rux_uu || su < ruxp->rux_su || iu < ruxp->rux_iu) { From owner-p4-projects@FreeBSD.ORG Mon Mar 13 20:10:55 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1660E16A42D; Mon, 13 Mar 2006 20:10:55 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CDD0316A41F for ; Mon, 13 Mar 2006 20:10:51 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 36D9743D46 for ; Mon, 13 Mar 2006 20:10:51 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2DKApjM057237 for ; Mon, 13 Mar 2006 20:10:51 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2DKAoZU057234 for perforce@freebsd.org; Mon, 13 Mar 2006 20:10:50 GMT (envelope-from kmacy@freebsd.org) Date: Mon, 13 Mar 2006 20:10:50 GMT Message-Id: <200603132010.k2DKAoZU057234@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 93257 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Mar 2006 20:10:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=93257 Change 93257 by kmacy@kmacy_storage:sun4v_work on 2006/03/13 20:10:25 switch trap over to not taking all data out of the trapframe Affected files ... .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/trap.c#7 edit Differences ... ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/trap.c#7 (text+ko) ==== @@ -92,12 +92,12 @@ #include #include -void trap(struct trapframe *tf); +void trap(struct trapframe *tf, int64_t type, uint64_t data); void syscall(struct trapframe *tf); vm_paddr_t mmu_fault_status_area; -static int trap_pfault(struct thread *td, struct trapframe *tf); +static int trap_pfault(struct thread *td, struct trapframe *tf, int64_t type, uint64_t data); extern char copy_fault[]; extern char copy_nofault_begin[]; @@ -246,7 +246,7 @@ } void -trap(struct trapframe *tf) +trap(struct trapframe *tf, int64_t type, uint64_t data) { struct thread *td; struct proc *p; @@ -257,7 +257,7 @@ td = PCPU_GET(curthread); CTR4(KTR_TRAP, "trap: %p type=%s (%s) pil=%#lx", td, - trap_msg[tf->tf_type & ~T_KERNEL], + trap_msg[type & ~T_KERNEL], (TRAPF_USERMODE(tf) ? "user" : "kernel"), rdpr(pil)); PCPU_LAZY_INC(cnt.v_trap); @@ -272,11 +272,11 @@ if (td->td_ucred != p->p_ucred) cred_update_thread(td); - switch (tf->tf_type) { + switch (type) { case T_DATA_MISS: case T_DATA_PROTECTION: case T_INSTRUCTION_MISS: - sig = trap_pfault(td, tf); + sig = trap_pfault(td, tf, type, data); break; case T_FILL: sig = rwindow_load(td, tf, 2); @@ -288,10 +288,10 @@ sig = rwindow_save(td); break; default: - if (tf->tf_type < 0 || tf->tf_type >= T_MAX || - trap_sig[tf->tf_type] == -1) + if (type < 0 || type >= T_MAX || + trap_sig[type] == -1) panic("trap: bad trap type"); - sig = trap_sig[tf->tf_type]; + sig = trap_sig[type]; break; } @@ -299,23 +299,23 @@ /* Translate fault for emulators. */ if (p->p_sysent->sv_transtrap != NULL) { sig = p->p_sysent->sv_transtrap(sig, - tf->tf_type); + type); } if (debugger_on_signal && (sig == 4 || sig == 10 || sig == 11)) kdb_enter("trapsig"); ksiginfo_init_trap(&ksi); ksi.ksi_signo = sig; - ksi.ksi_code = (int)tf->tf_type; /* XXX not POSIX */ + ksi.ksi_code = (int)type; /* XXX not POSIX */ /* ksi.ksi_addr = ? */ - ksi.ksi_trapno = (int)tf->tf_type; + ksi.ksi_trapno = (int)type; trapsignal(td, &ksi); } userret(td, tf); mtx_assert(&Giant, MA_NOTOWNED); } else { - KASSERT((tf->tf_type & T_KERNEL) != 0, + KASSERT((type & T_KERNEL) != 0, ("trap: kernel trap isn't")); #ifdef KDB @@ -325,18 +325,18 @@ } #endif - switch (tf->tf_type & ~T_KERNEL) { + switch (type & ~T_KERNEL) { #ifdef KDB case T_BREAKPOINT: case T_KSTACK_FAULT: - error = (kdb_trap(tf->tf_type, 0, tf) == 0); + error = (kdb_trap(type, 0, tf) == 0); TF_DONE(tf); break; #endif case T_DATA_MISS: case T_DATA_PROTECTION: case T_INSTRUCTION_MISS: - error = trap_pfault(td, tf); + error = trap_pfault(td, tf, type, data); break; case T_DATA_EXCEPTION: case T_MEM_ADDRESS_NOT_ALIGNED: @@ -371,13 +371,13 @@ } if (error != 0) - panic("trap: %s", trap_msg[tf->tf_type & ~T_KERNEL]); + panic("trap: %s", trap_msg[type & ~T_KERNEL]); } CTR1(KTR_TRAP, "trap: td=%p return", td); } static int -trap_pfault(struct thread *td, struct trapframe *tf) +trap_pfault(struct thread *td, struct trapframe *tf, int64_t type, uint64_t data) { struct vmspace *vm; struct pcb *pcb; @@ -386,7 +386,6 @@ vm_prot_t prot; u_long ctx; int flags; - int type; int rv; if (td == NULL) @@ -398,10 +397,10 @@ p = td->td_proc; rv = KERN_SUCCESS; - ctx = TLB_TAR_CTX(tf->tf_tar); + ctx = TLB_TAR_CTX(data); pcb = td->td_pcb; - type = tf->tf_type & ~T_KERNEL; - va = TLB_TAR_VA(tf->tf_tar); + type = type & ~T_KERNEL; + va = TLB_TAR_VA(data); CTR4(KTR_TRAP, "trap_pfault: td=%p pm_ctx=%#lx va=%#lx ctx=%#lx", td, p->p_vmspace->vm_pmap.pm_context[PCPU_GET(cpuid)], va, ctx); From owner-p4-projects@FreeBSD.ORG Mon Mar 13 20:17:11 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C3A9E16A41F; Mon, 13 Mar 2006 20:17:11 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6787316A400 for ; Mon, 13 Mar 2006 20:17:06 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D37CB43D5D for ; Mon, 13 Mar 2006 20:16:59 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2DKGx1T057557 for ; Mon, 13 Mar 2006 20:16:59 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2DKGxrX057554 for perforce@freebsd.org; Mon, 13 Mar 2006 20:16:59 GMT (envelope-from kmacy@freebsd.org) Date: Mon, 13 Mar 2006 20:16:59 GMT Message-Id: <200603132016.k2DKGxrX057554@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 93258 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Mar 2006 20:17:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=93258 Change 93258 by kmacy@kmacy_storage:sun4v_work on 2006/03/13 20:16:03 substantially thin down the trapframe fix stack pointer manipulation when returning to user-mode disable clock interrupts for the moment to guarantee deterministic behaviour on bringup fix syscall trap handling to follow new register conventions add support for data protection fault without software write bit set Affected files ... .. //depot/projects/kmacy_sun4v/src/sys/sparc64/sparc64/genassym.c#9 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/include/frame.h#2 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/exception.S#28 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/intr_machdep.c#4 edit Differences ... ==== //depot/projects/kmacy_sun4v/src/sys/sparc64/sparc64/genassym.c#9 (text+ko) ==== @@ -317,16 +317,20 @@ ASSYM(TF_FPRS, offsetof(struct trapframe, tf_fprs)); ASSYM(TF_FSR, offsetof(struct trapframe, tf_fsr)); ASSYM(TF_GSR, offsetof(struct trapframe, tf_gsr)); +ASSYM(TF_PIL, offsetof(struct trapframe, tf_pil)); +#ifndef SUN4V ASSYM(TF_LEVEL, offsetof(struct trapframe, tf_level)); -ASSYM(TF_PIL, offsetof(struct trapframe, tf_pil)); ASSYM(TF_SFAR, offsetof(struct trapframe, tf_sfar)); ASSYM(TF_SFSR, offsetof(struct trapframe, tf_sfsr)); ASSYM(TF_TAR, offsetof(struct trapframe, tf_tar)); +#endif ASSYM(TF_TNPC, offsetof(struct trapframe, tf_tnpc)); ASSYM(TF_TPC, offsetof(struct trapframe, tf_tpc)); ASSYM(TF_TSTATE, offsetof(struct trapframe, tf_tstate)); +#if 0 ASSYM(TF_TYPE, offsetof(struct trapframe, tf_type)); ASSYM(TF_Y, offsetof(struct trapframe, tf_y)); +#endif ASSYM(TF_WSTATE, offsetof(struct trapframe, tf_wstate)); ASSYM(TF_SIZEOF, sizeof(struct trapframe)); ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/include/frame.h#2 (text+ko) ==== @@ -39,21 +39,15 @@ struct trapframe { uint64_t tf_global[8]; uint64_t tf_out[8]; + uint64_t tf_pad[8]; uint64_t tf_fprs; uint64_t tf_fsr; uint64_t tf_gsr; - uint64_t tf_level; uint64_t tf_pil; - uint64_t tf_sfar; - uint64_t tf_sfsr; - uint64_t tf_tar; + uint64_t tf_tpc; uint64_t tf_tnpc; - uint64_t tf_tpc; uint64_t tf_tstate; - uint64_t tf_type; - uint64_t tf_y; uint64_t tf_wstate; - uint64_t tf_pad[2]; }; #define tf_sp tf_out[6] ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/exception.S#28 (text+ko) ==== @@ -211,6 +211,8 @@ */ .macro tl0_gen type MAGIC_TRAP_ON + MAGIC_TRAP_ON + MAGIC_EXIT tl0_setup \type .align 32 .endm @@ -226,9 +228,8 @@ tl0_gen T_RESERVED #else MAGIC_TRAP_ON;MAGIC_TRAP_ON;MAGIC_EXIT +#endif .align 32 -#endif - .endr .endm @@ -309,30 +310,31 @@ .endm .macro tl0_align - MAGIC_TRAP_ON - MAGIC_TRAP_ON - MAGIC_TRAP_ON MAGIC_TRAP_ON;MAGIC_TRAP_ON;MAGIC_EXIT .align 32 .endm .macro cpu_mondo MAGIC_TRAP_ON + MAGIC_EXIT .align 32 .endm .macro dev_mondo MAGIC_TRAP_ON + MAGIC_EXIT .align 32 .endm .macro resumable_error MAGIC_TRAP_ON + MAGIC_EXIT .align 32 .endm .macro nonresumable_error MAGIC_TRAP_ON + MAGIC_EXIT .align 32 .endm @@ -482,6 +484,7 @@ .macro spill_64bit_tt1_secondary_so1 MAGIC_TRAP_ON + MAGIC_EXIT ba,a,pt %xcc, fault_64bit_so1 nop .align 128 @@ -490,11 +493,13 @@ .macro spill_mixed MAGIC_TRAP_ON + MAGIC_EXIT .align 128 .endm .macro fill_mixed MAGIC_TRAP_ON + MAGIC_EXIT .align 128 .endm @@ -505,22 +510,21 @@ .align 32 .endm -ENTRY(tl0_sfsr_trap) - tl0_split - clr %o1 - set trap, %o2 - mov %g3, %o4 - mov %g4, %o5 - ba %xcc, tl0_utrap - mov %g2, %o0 -END(tl0_sfsr_trap) - .macro tl0_pil_entry level, mask +#if 0 set \mask, %g1 clr %g2 clr %g3 ba %xcc, tl0_intr mov \level, %g4 +#endif + mov 1, %g2 + sllx %g2, \level, %g1 + sllx %g2, 16, %g3 + or %g1, %g3, %g3 + or %g2, %g3, %g2 + wr %g2, %g0, %clear_softint + retry .align 32 .endm @@ -581,11 +585,11 @@ .endm .macro tl0_syscall - tl0_split - clr %o1 - set syscall, %o2 + clr %g3 + mov -1, %g4 + set syscall, %g1 ba %xcc, tl0_trap - mov T_SYSCALL, %o0 + mov T_SYSCALL, %g2 .align 32 .endm @@ -704,10 +708,15 @@ spill_mixed ! 0x9c tl0_spill_n_other_a0: tl0_reserved 4 ! 0xa0 +tl0_spill_n_other_a4: spill_32bit_secondary_so0 ! 0xa4 +tl0_spill_n_other_a8: spill_64bit_secondary_so0 ! 0xa8 +tl0_spill_n_other_ac: spill_32bit_secondary_so0 ! 0xac +tl0_spill_n_other_b0: spill_64bit_secondary_so0 ! 0xb0 +tl0_spill_n_other_b4: tl0_reserved 12 ! 0xb4-0xbf tl0_fill_n_normal_c0: tl0_reserved 4 ! 0xc0 @@ -921,14 +930,13 @@ b user_rtt nop common_utrap: - stx %o1, [%l7 + TF_TYPE] ! save trap type - stx %o2, [%l7 + TF_TAR] ! save mem info jmpl %l3, %o7 ! call trap handler mov %l7, %o0 + GET_PCB(%g6) + sub %g6, CCFSZ + SPOFF + TF_SIZEOF, %sp + add %sp, REGOFF + SPOFF, %l7 ENTRY(user_rtt) - GET_PCB(%g6) - add %sp, CCFSZ + SPOFF, %l7 ! pil handling needs to be re-visited wrpr %g0, PIL_TICK, %pil ldx [PCPU(CURTHREAD)], %l0 @@ -949,14 +957,13 @@ brz,a,pt %l1, 2f nop wrpr %g0, 0, %pil - mov T_SPILL, %o0 - stx %o0, [%l7 + SPOFF + CCFSZ + TF_TYPE] + mov T_SPILL, %o1 call trap mov %l7, %o0 ba,a %xcc, user_rtt nop 2: - ld [%sp + SPOFF + TF_WSTATE], %l3 + ld [%l7 + TF_WSTATE], %l3 ! ! restore user globals and outs ! @@ -985,9 +992,9 @@ ldx [%l7 + TF_TNPC], %g2 ldx [%l7 + TF_TSTATE], %l0 andn %l0, TSTATE_CWP_MASK, %g7 + wrpr %g1, %tpc wrpr %g2, %tnpc - ! ! switch "other" windows back to "normal" windows and ! restore to window we originally trapped in @@ -1067,15 +1074,16 @@ wrpr %g0, %g1, %cleanwin rdpr %cwp, %g1 wrpr %g1, %g7, %tstate +! MAGIC_TRAP_ON retry END(user_rtt) END(utl0) ENTRY(ktl0) + GET_PCPU_SCRATCH SAVE_GLOBALS(%l7) SAVE_OUTS(%l7) ! for the call bug workaround wrpr %g0, PSTATE_KERNEL, %pstate ! enable ints -! MAGIC_TRAP_OFF brnz %o1, common_ktrap nop @@ -1088,14 +1096,10 @@ b common_rtt nop common_ktrap: - stx %o1, [%l7 + TF_TYPE] ! save trap type - stx %o2, [%l7 + TF_TAR] ! save mem info jmpl %l3, %o7 ! call trap handler mov %l7, %o0 -! MAGIC_TRAP_ON ENTRY(krtt) - MAGIC_TRAP_ON common_rtt: ! ! restore globals and outs @@ -1144,7 +1148,6 @@ ! rdpr %cwp, %g1 wrpr %g1, %g7, %tstate - MAGIC_TRAP_OFF retry END(krtt) END(ktl0) @@ -1200,8 +1203,9 @@ rdpr %tstate, %g5 btst TSTATE_PRIV, %g5 and %g5, TSTATE_CWP_MASK, %g6 + wrpr %g0, %g6, %cwp bnz,pn %xcc, tl0_ktrap - wrpr %g0, %g6, %cwp + nop ENTRY(tl0_utrap) #ifdef notyet /* we need to determine from the hardware the number of register windows */ @@ -1210,7 +1214,6 @@ #else mov nwin_minus_one, %g5 #endif - MAGIC_TRAP_ON GET_PCB(%g6) wrpr %g0, %g5, %cleanwin sub %g6, SPOFF + CCFSZ + TF_SIZEOF, %g6 @@ -1279,7 +1282,7 @@ -! %g3==TTE flags +! %g3==trap type ! %g4==fault type (if data miss) ! %g5==fault addr ! internal usage: @@ -1296,7 +1299,6 @@ cmp %g6, %g0 ! kernel? be,pn %xcc, 1f srlx %g5, TTARGET_VA_SHIFT, %g1 - MAGIC_TRAP_ON GET_HASH_SCRATCH_USER(%g2) ba,pt %xcc, 2f sllx %g6, TTARGET_CTX_SHIFT, %g6 @@ -1306,18 +1308,21 @@ 2: or %g6, %g1, %g6 ! %g6 == search tag - - - ! %g4 == fault type %g5 == fault addr %g6 == tag ! XXX only handle normal miss for now (look at fault type in the future) #ifdef PMAP_DEBUG - cmp %g6, %g0 ! NULL ptr deref in kernel - bne,pt %xcc, 3f + cmp %g5, %g0 ! NULL ptr deref + bne,pt %xcc, 3f nop tsb_miss_null_deref: MAGIC_TRAP_ON;MAGIC_TRAP_ON;MAGIC_EXIT ! give up -3: +3: + cmp %g3, T_INSTRUCTION_MISS + bne,pn %xcc, 17f + nop +! MAGIC_TRAP_ON ! enable debugging for instruction misses +17: + #endif tsb_miss_compute_hash_addr: sethi %hi(PAGE_SIZE), %g7 @@ -1337,7 +1342,7 @@ ! %g2==entry base add %g2, %g4, %g2 ! base + offset == entry base - mov %g5, %g7 + mov %g5, %g7 ! save fault addr ! entry 0 ! %g1 == abs index %g2 == THE pointer %g3 == flags ! %g4 <- tag %g5 <- data @@ -1399,6 +1404,10 @@ #endif 16: #endif + srlx %g7, 13, %g7 ! slow painful way of masking off + sllx %g7, 13, %g7 ! bottom bits without using a reg + ! XXX FIXME + mov %g3, %g2 ! save fault type srlx %g6, TTARGET_CTX_SHIFT, %g4 ! recover context sethi %hi(trap), %g1 @@ -1411,8 +1420,9 @@ 5: !found ! %g1 == abs index %g2 == THE pointer %g3 == flags ! %g4 == tag %g5 == data %g7 == PAGE_MASK - ! %g3 <- TSB RA %g6 <- TSB size, TTE RA + ! %g3 <- TSB RA %g6 <- TSB size, TTE RA %g7 == PAGE_MASK srlx %g6, TTARGET_CTX_SHIFT, %g6 + or %g7, %g6, %g6 ! save context and fault addr ! will break when ctxbits > 13 sethi %hi(PAGE_SIZE), %g7 @@ -1464,7 +1474,6 @@ #endif stxa %g4, [%g2]ASI_REAL ! store tag stxa %g5, [%g2 + %g7]ASI_REAL ! store data - MAGIC_TRAP_OFF ! XXX the following intstruction should be replaced with a ! retry on HVs that do auto-demap @@ -1495,8 +1504,16 @@ /* * Write to read-only page */ -ENTRY(prot_fault_trap) - MAGIC_TRAP_ON;MAGIC_TRAP_ON;MAGIC_EXIT +! %g4==tag +! %g5==TTE +! %g6==fault addr | context +ENTRY(prot_fault_trap) + sethi %hi(trap), %g1 + mov T_DATA_PROTECTION, %g2 + mov %g6, %g3 + mov -1, %g4 + ba %xcc, tl0_trap + or %g1, %lo(trap), %g1 END(prot_fault_trap) /* * Programming error @@ -1527,9 +1544,9 @@ mov %l0, %o0 mov %l1, %o1 call fork_exit - mov %l2, %o2 + mov %l2, %o2 + add %sp, CCFSZ + SPOFF, %l7 ba,a,pt %xcc, user_rtt - nop END(fork_trampoline) @@ -1568,6 +1585,7 @@ * caused by interrupts occuring after the test. If the pil is lowered, * as it is when we call ast, the check must be re-executed. */ + ta 0x71 wrpr %g0, PIL_TICK, %pil ldx [PCPU(CURTHREAD)], %l0 lduw [%l0 + TD_FLAGS], %l1 @@ -1599,7 +1617,6 @@ nop wrpr %g0, 0, %pil mov T_SPILL, %o0 - stx %o0, [%sp + SPOFF + CCFSZ + TF_TYPE] call trap add %sp, SPOFF + CCFSZ, %o0 ba,a %xcc, tl0_ret @@ -1633,7 +1650,6 @@ ldx [%sp + SPOFF + CCFSZ + TF_TNPC], %l2 ldx [%sp + SPOFF + CCFSZ + TF_TPC], %l3 ldx [%sp + SPOFF + CCFSZ + TF_TSTATE], %l4 - ldx [%sp + SPOFF + CCFSZ + TF_Y], %l5 ldx [%sp + SPOFF + CCFSZ + TF_WSTATE], %l6 /* @@ -1822,7 +1838,6 @@ * stack to copyin. */ mov T_FILL_RET, %o0 - stx %o0, [%sp + SPOFF + CCFSZ + TF_TYPE] call trap add %sp, SPOFF + CCFSZ, %o0 ba,a %xcc, tl0_ret ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/intr_machdep.c#4 (text+ko) ==== @@ -207,7 +207,7 @@ intr_stray_level(struct trapframe *tf) { - printf("stray level interrupt %ld\n", tf->tf_level); + printf("stray level interrupt\n"); } static void From owner-p4-projects@FreeBSD.ORG Mon Mar 13 20:28:14 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5B48016A448; Mon, 13 Mar 2006 20:28:14 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 385AE16A400 for ; Mon, 13 Mar 2006 20:28:14 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E11D043D45 for ; Mon, 13 Mar 2006 20:28:13 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2DKSDM9058020 for ; Mon, 13 Mar 2006 20:28:13 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2DKSDbi058017 for perforce@freebsd.org; Mon, 13 Mar 2006 20:28:13 GMT (envelope-from kmacy@freebsd.org) Date: Mon, 13 Mar 2006 20:28:13 GMT Message-Id: <200603132028.k2DKSDbi058017@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 93259 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Mar 2006 20:28:14 -0000 http://perforce.freebsd.org/chv.cgi?CH=93259 Change 93259 by kmacy@kmacy_storage:sun4v_work on 2006/03/13 20:27:21 remove last non-trivial vestige of original exception.S Affected files ... .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/exception.S#29 edit Differences ... ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/exception.S#29 (text+ko) ==== @@ -1551,12 +1551,6 @@ -/* - * The following code is all going to need to be re-written - * but is here to make the linker happy - * - */ - .comm intrnames, IV_NAMLEN .comm eintrnames, 0 @@ -1567,280 +1561,3 @@ ENTRY(tl1_trap) MAGIC_TRAP_ON;MAGIC_TRAP_ON;MAGIC_EXIT END(tl1_trap) -/* - * Initiate return to usermode. - * - * Called with a trapframe on the stack. The window that was setup in - * tl0_trap may have been used by "fast" trap handlers that pretend to be - * leaf functions, so all ins and locals may have been clobbered since - * then. - * - * This code is rather long and complicated. - */ -ENTRY(tl0_ret) - /* - * Check for pending asts atomically with returning. We must raise - * the pil before checking, and if no asts are found the pil must - * remain raised until the retry is executed, or we risk missing asts - * caused by interrupts occuring after the test. If the pil is lowered, - * as it is when we call ast, the check must be re-executed. - */ - ta 0x71 - wrpr %g0, PIL_TICK, %pil - ldx [PCPU(CURTHREAD)], %l0 - lduw [%l0 + TD_FLAGS], %l1 - set TDF_ASTPENDING | TDF_NEEDRESCHED, %l2 - and %l1, %l2, %l1 - brz,a,pt %l1, 1f - nop - - /* - * We have an ast. Re-enable interrupts and handle it, then restart - * the return sequence. - */ - wrpr %g0, 0, %pil - call ast - add %sp, CCFSZ + SPOFF, %o0 - ba,a %xcc, tl0_ret - nop - - /* - * Check for windows that were spilled to the pcb and need to be - * copied out. This must be the last thing that is done before the - * return to usermode. If there are still user windows in the cpu - * and we call a nested function after this, which causes them to be - * spilled to the pcb, they will not be copied out and the stack will - * be inconsistent. - */ -1: ldx [PCB_REG + PCB_NSAVED], %l1 - brz,a,pt %l1, 2f - nop - wrpr %g0, 0, %pil - mov T_SPILL, %o0 - call trap - add %sp, SPOFF + CCFSZ, %o0 - ba,a %xcc, tl0_ret - nop - - /* - * Restore the out and most global registers from the trapframe. - * The ins will become the outs when we restore below. - */ -2: ldx [%sp + SPOFF + CCFSZ + TF_O0], %i0 - ldx [%sp + SPOFF + CCFSZ + TF_O1], %i1 - ldx [%sp + SPOFF + CCFSZ + TF_O2], %i2 - ldx [%sp + SPOFF + CCFSZ + TF_O3], %i3 - ldx [%sp + SPOFF + CCFSZ + TF_O4], %i4 - ldx [%sp + SPOFF + CCFSZ + TF_O5], %i5 - ldx [%sp + SPOFF + CCFSZ + TF_O6], %i6 - ldx [%sp + SPOFF + CCFSZ + TF_O7], %i7 - - ldx [%sp + SPOFF + CCFSZ + TF_G1], %g1 - ldx [%sp + SPOFF + CCFSZ + TF_G2], %g2 - ldx [%sp + SPOFF + CCFSZ + TF_G3], %g3 - ldx [%sp + SPOFF + CCFSZ + TF_G4], %g4 - ldx [%sp + SPOFF + CCFSZ + TF_G5], %g5 - - /* - * Load everything we need to restore below before disabling - * interrupts. - */ - ldx [%sp + SPOFF + CCFSZ + TF_FPRS], %l0 - ldx [%sp + SPOFF + CCFSZ + TF_GSR], %l1 - ldx [%sp + SPOFF + CCFSZ + TF_TNPC], %l2 - ldx [%sp + SPOFF + CCFSZ + TF_TPC], %l3 - ldx [%sp + SPOFF + CCFSZ + TF_TSTATE], %l4 - ldx [%sp + SPOFF + CCFSZ + TF_WSTATE], %l6 - - /* - * Disable interrupts to restore the special globals. They are not - * saved and restored for all kernel traps, so an interrupt at the - * wrong time would clobber them. - */ - wrpr %g0, PSTATE_NORMAL, %pstate - - ldx [%sp + SPOFF + CCFSZ + TF_G6], %g6 - ldx [%sp + SPOFF + CCFSZ + TF_G7], %g7 - -#if 0 - /* - * Switch to alternate globals. This frees up some registers we - * can use after the restore changes our window. - */ - wrpr %g0, PSTATE_ALT, %pstate -#endif - /* - * Drop %pil to zero. It must have been zero at the time of the - * trap, since we were in usermode, but it was raised above in - * order to check for asts atomically. We have interrupts disabled - * so any interrupts will not be serviced until we complete the - * return to usermode. - */ - wrpr %g0, 0, %pil - - /* - * Save %fprs in an alternate global so it can be restored after the - * restore instruction below. If we restore it before the restore, - * and the restore traps we may run for a while with floating point - * enabled in the kernel, which we want to avoid. - */ - mov %l0, %g1 - - /* - * Restore %fsr and %gsr. These need floating point enabled in %fprs, - * so we set it temporarily and then clear it. - */ - wr %g0, FPRS_FEF, %fprs - ldx [%sp + SPOFF + CCFSZ + TF_FSR], %fsr - wr %l1, 0, %gsr - wr %g0, 0, %fprs - - /* - * Restore program counters. This could be done after the restore - * but we're out of alternate globals to store them in... - */ - wrpr %l2, 0, %tnpc - wrpr %l3, 0, %tpc - - /* - * Save %tstate in an alternate global and clear the %cwp field. %cwp - * will be affected by the restore below and we need to make sure it - * points to the current window at that time, not the window that was - * active at the time of the trap. - */ - andn %l4, TSTATE_CWP_MASK, %g2 - - /* - * Restore %y. Could also be below if we had more alternate globals. - */ - wr %l5, 0, %y - - /* - * Setup %wstate for return. We need to restore the user window state - * which we saved in wstate.other when we trapped. We also need to - * set the transition bit so the restore will be handled specially - * if it traps, use the xor feature of wrpr to do that. - */ -#if 0 - srlx %l6, WSTATE_OTHER_SHIFT, %g3 - wrpr %g3, WSTATE_TRANSITION, %wstate -#endif - /* - * Setup window management registers for return. If not all user - * windows were spilled in the kernel %otherwin will be non-zero, - * so we need to transfer it to %canrestore to correctly restore - * those windows. Otherwise everything gets set to zero and the - * restore below will fill a window directly from the user stack. - */ - rdpr %otherwin, %o0 - wrpr %o0, 0, %canrestore - wrpr %g0, 0, %otherwin - wrpr %o0, 0, %cleanwin - - /* - * Now do the restore. If this instruction causes a fill trap which - * fails to fill a window from the user stack, we will resume at - * tl0_ret_fill_end and call back into the kernel. - */ - restore -tl0_ret_fill: - - /* - * We made it. We're back in the window that was active at the time - * of the trap, and ready to return to usermode. - */ - - /* - * Restore %frps. This was saved in an alternate global above. - */ - wr %g1, 0, %fprs - - /* - * Fixup %tstate so the saved %cwp points to the current window and - * restore it. - */ - rdpr %cwp, %g4 - wrpr %g2, %g4, %tstate - - /* - * Restore the user window state. The transition bit was set above - * for special handling of the restore, this clears it. - */ - wrpr %g3, 0, %wstate - -#if KTR_COMPILE & KTR_TRAP - CATR(KTR_TRAP, "tl0_ret: td=%#lx pil=%#lx pc=%#lx npc=%#lx sp=%#lx" - , %g2, %g3, %g4, 7, 8, 9) - ldx [PCPU(CURTHREAD)], %g3 - stx %g3, [%g2 + KTR_PARM1] - rdpr %pil, %g3 - stx %g3, [%g2 + KTR_PARM2] - rdpr %tpc, %g3 - stx %g3, [%g2 + KTR_PARM3] - rdpr %tnpc, %g3 - stx %g3, [%g2 + KTR_PARM4] - stx %sp, [%g2 + KTR_PARM5] -9: -#endif - - /* - * Return to usermode. - */ - retry -tl0_ret_fill_end: - -#if KTR_COMPILE & KTR_TRAP - CATR(KTR_TRAP, "tl0_ret: fill magic ps=%#lx ws=%#lx sp=%#lx" - , %l0, %l1, %l2, 7, 8, 9) - rdpr %pstate, %l1 - stx %l1, [%l0 + KTR_PARM1] - stx %l5, [%l0 + KTR_PARM2] - stx %sp, [%l0 + KTR_PARM3] -9: -#endif - - /* - * The restore above caused a fill trap and the fill handler was - * unable to fill a window from the user stack. The special fill - * handler recognized this and punted, sending us here. We need - * to carefully undo any state that was restored before the restore - * was executed and call trap again. Trap will copyin a window - * from the user stack which will fault in the page we need so the - * restore above will succeed when we try again. If this fails - * the process has trashed its stack, so we kill it. - */ - - /* - * Restore the kernel window state. This was saved in %l6 above, and - * since the restore failed we're back in the same window. - */ - wrpr %l6, 0, %wstate - -#if 0 - /* - * Restore the normal globals which have predefined values in the - * kernel. We clobbered them above restoring the user's globals - * so this is very important. - * XXX PSTATE_ALT must already be set. - */ - wrpr %g0, PSTATE_ALT, %pstate - mov PCPU_REG, %o1 - wrpr %g0, PSTATE_NORMAL, %pstate - mov %o0, PCB_REG - mov %o1, PCPU_REG - wrpr %g0, PSTATE_KERNEL, %pstate -#endif - /* - * Simulate a fill trap and then start the whole return sequence over - * again. This is special because it only copies in 1 window, not 2 - * as we would for a normal failed fill. This may be the first time - * the process has been run, so there may not be 2 windows worth of - * stack to copyin. - */ - mov T_FILL_RET, %o0 - call trap - add %sp, SPOFF + CCFSZ, %o0 - ba,a %xcc, tl0_ret - nop -END(tl0_ret) - From owner-p4-projects@FreeBSD.ORG Mon Mar 13 20:48:52 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2723516A423; Mon, 13 Mar 2006 20:48:52 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A99F116A41F for ; Mon, 13 Mar 2006 20:48:51 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 02C6543D53 for ; Mon, 13 Mar 2006 20:48:41 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2DKmeNx066415 for ; Mon, 13 Mar 2006 20:48:40 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2DKmdtt066412 for perforce@freebsd.org; Mon, 13 Mar 2006 20:48:39 GMT (envelope-from peter@freebsd.org) Date: Mon, 13 Mar 2006 20:48:39 GMT Message-Id: <200603132048.k2DKmdtt066412@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 93261 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Mar 2006 20:48:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=93261 Change 93261 by peter@peter_daintree on 2006/03/13 20:48:02 IFC @93260 Affected files ... .. //depot/projects/hammer/Makefile.inc1#113 integrate .. //depot/projects/hammer/ObsoleteFiles.inc#15 integrate .. //depot/projects/hammer/UPDATING#92 integrate .. //depot/projects/hammer/bin/chflags/chflags.1#12 integrate .. //depot/projects/hammer/bin/getfacl/getfacl.1#6 integrate .. //depot/projects/hammer/bin/getfacl/getfacl.c#5 integrate .. //depot/projects/hammer/bin/ps/keyword.c#15 integrate .. //depot/projects/hammer/contrib/bsnmp/FREEBSD-Xlist#5 integrate .. //depot/projects/hammer/contrib/hostapd/ChangeLog#3 integrate .. //depot/projects/hammer/contrib/hostapd/FREEBSD-Xlist#2 integrate .. //depot/projects/hammer/contrib/hostapd/FREEBSD-upgrade#2 integrate .. //depot/projects/hammer/contrib/hostapd/Makefile#3 integrate .. //depot/projects/hammer/contrib/hostapd/README#2 integrate .. //depot/projects/hammer/contrib/hostapd/accounting.c#2 integrate .. //depot/projects/hammer/contrib/hostapd/aes.c#2 integrate .. //depot/projects/hammer/contrib/hostapd/aes_wrap.c#2 integrate .. //depot/projects/hammer/contrib/hostapd/aes_wrap.h#2 integrate .. //depot/projects/hammer/contrib/hostapd/common.c#2 integrate .. //depot/projects/hammer/contrib/hostapd/common.h#3 integrate .. //depot/projects/hammer/contrib/hostapd/config.c#3 integrate .. //depot/projects/hammer/contrib/hostapd/config.h#2 integrate .. //depot/projects/hammer/contrib/hostapd/config_types.h#1 branch .. //depot/projects/hammer/contrib/hostapd/crypto.c#2 integrate .. //depot/projects/hammer/contrib/hostapd/crypto.h#2 integrate .. //depot/projects/hammer/contrib/hostapd/ctrl_iface.c#3 integrate .. //depot/projects/hammer/contrib/hostapd/defconfig#2 integrate .. //depot/projects/hammer/contrib/hostapd/defs.h#2 integrate .. //depot/projects/hammer/contrib/hostapd/driver.h#2 integrate .. //depot/projects/hammer/contrib/hostapd/driver_test.c#2 integrate .. //depot/projects/hammer/contrib/hostapd/driver_wired.c#2 integrate .. //depot/projects/hammer/contrib/hostapd/eap.c#2 integrate .. //depot/projects/hammer/contrib/hostapd/eap.h#2 integrate .. //depot/projects/hammer/contrib/hostapd/eap_defs.h#2 integrate .. //depot/projects/hammer/contrib/hostapd/eap_i.h#2 integrate .. //depot/projects/hammer/contrib/hostapd/eap_identity.c#2 integrate .. //depot/projects/hammer/contrib/hostapd/eap_md5.c#2 integrate .. //depot/projects/hammer/contrib/hostapd/eap_pax.c#1 branch .. //depot/projects/hammer/contrib/hostapd/eap_pax_common.c#1 branch .. //depot/projects/hammer/contrib/hostapd/eap_pax_common.h#1 branch .. //depot/projects/hammer/contrib/hostapd/eap_peap.c#2 integrate .. //depot/projects/hammer/contrib/hostapd/eap_psk.c#1 branch .. //depot/projects/hammer/contrib/hostapd/eap_psk_common.c#1 branch .. //depot/projects/hammer/contrib/hostapd/eap_psk_common.h#1 branch .. //depot/projects/hammer/contrib/hostapd/eap_sim.c#2 integrate .. //depot/projects/hammer/contrib/hostapd/eap_sim_common.c#2 integrate .. //depot/projects/hammer/contrib/hostapd/eap_sim_common.h#2 integrate .. //depot/projects/hammer/contrib/hostapd/eap_sim_db.c#2 integrate .. //depot/projects/hammer/contrib/hostapd/eap_tls.c#2 integrate .. //depot/projects/hammer/contrib/hostapd/eap_tls_common.c#2 integrate .. //depot/projects/hammer/contrib/hostapd/eap_ttls.c#2 integrate .. //depot/projects/hammer/contrib/hostapd/eap_ttls.h#2 integrate .. //depot/projects/hammer/contrib/hostapd/eapol_sm.c#3 integrate .. //depot/projects/hammer/contrib/hostapd/eapol_sm.h#3 integrate .. //depot/projects/hammer/contrib/hostapd/eloop.c#2 integrate .. //depot/projects/hammer/contrib/hostapd/eloop.h#2 integrate .. //depot/projects/hammer/contrib/hostapd/hostap_common.h#2 integrate .. //depot/projects/hammer/contrib/hostapd/hostapd.8#1 branch .. //depot/projects/hammer/contrib/hostapd/hostapd.c#2 integrate .. //depot/projects/hammer/contrib/hostapd/hostapd.conf#2 integrate .. //depot/projects/hammer/contrib/hostapd/hostapd.eap_user#2 integrate .. //depot/projects/hammer/contrib/hostapd/hostapd.h#2 integrate .. //depot/projects/hammer/contrib/hostapd/hostapd_cli.1#1 branch .. //depot/projects/hammer/contrib/hostapd/hostapd_cli.c#2 integrate .. //depot/projects/hammer/contrib/hostapd/hostapd_ctrl.c#2 delete .. //depot/projects/hammer/contrib/hostapd/hostapd_ctrl.h#2 delete .. //depot/projects/hammer/contrib/hostapd/iapp.c#2 integrate .. //depot/projects/hammer/contrib/hostapd/ieee802_11.c#2 integrate .. //depot/projects/hammer/contrib/hostapd/ieee802_11_auth.c#2 integrate .. //depot/projects/hammer/contrib/hostapd/ieee802_1x.c#3 integrate .. //depot/projects/hammer/contrib/hostapd/ieee802_1x.h#2 integrate .. //depot/projects/hammer/contrib/hostapd/l2_packet.h#2 integrate .. //depot/projects/hammer/contrib/hostapd/logwatch/README#1 branch .. //depot/projects/hammer/contrib/hostapd/logwatch/hostapd#1 branch .. //depot/projects/hammer/contrib/hostapd/logwatch/hostapd.conf#1 branch .. //depot/projects/hammer/contrib/hostapd/madwifi.conf#2 integrate .. //depot/projects/hammer/contrib/hostapd/md5.c#2 integrate .. //depot/projects/hammer/contrib/hostapd/md5.h#2 integrate .. //depot/projects/hammer/contrib/hostapd/ms_funcs.c#3 integrate .. //depot/projects/hammer/contrib/hostapd/ms_funcs.h#2 integrate .. //depot/projects/hammer/contrib/hostapd/radius.c#2 integrate .. //depot/projects/hammer/contrib/hostapd/radius.h#2 integrate .. //depot/projects/hammer/contrib/hostapd/radius_client.c#3 integrate .. //depot/projects/hammer/contrib/hostapd/radius_client.h#2 integrate .. //depot/projects/hammer/contrib/hostapd/radius_server.c#3 integrate .. //depot/projects/hammer/contrib/hostapd/radius_server.h#2 integrate .. //depot/projects/hammer/contrib/hostapd/rc4.c#2 integrate .. //depot/projects/hammer/contrib/hostapd/rc4.h#2 integrate .. //depot/projects/hammer/contrib/hostapd/sha1.c#2 integrate .. //depot/projects/hammer/contrib/hostapd/sha1.h#2 integrate .. //depot/projects/hammer/contrib/hostapd/sta_info.c#2 integrate .. //depot/projects/hammer/contrib/hostapd/sta_info.h#2 integrate .. //depot/projects/hammer/contrib/hostapd/tls.h#2 integrate .. //depot/projects/hammer/contrib/hostapd/tls_none.c#2 integrate .. //depot/projects/hammer/contrib/hostapd/tls_openssl.c#3 integrate .. //depot/projects/hammer/contrib/hostapd/version.h#3 integrate .. //depot/projects/hammer/contrib/hostapd/wired.conf#2 integrate .. //depot/projects/hammer/contrib/hostapd/wpa.c#3 integrate .. //depot/projects/hammer/contrib/hostapd/wpa.h#2 integrate .. //depot/projects/hammer/contrib/hostapd/wpa_ctrl.c#1 branch .. //depot/projects/hammer/contrib/hostapd/wpa_ctrl.h#1 branch .. //depot/projects/hammer/contrib/netcat/nc.1#3 integrate .. //depot/projects/hammer/contrib/ngatm/man/libngatm.3#4 integrate .. //depot/projects/hammer/contrib/ngatm/man/uniaddr.3#4 integrate .. //depot/projects/hammer/contrib/ngatm/man/unifunc.3#4 integrate .. //depot/projects/hammer/contrib/ngatm/man/unimsg.3#3 integrate .. //depot/projects/hammer/contrib/ngatm/man/unisap.3#3 integrate .. //depot/projects/hammer/contrib/ngatm/man/unistruct.3#4 integrate .. //depot/projects/hammer/contrib/openbsm/FREEBSD-upgrade#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/ChangeLog#3 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/FREEBSD-Xlist#3 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/Makefile#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/README#3 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/aes.c#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/aes_wrap.c#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/aes_wrap.h#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/base64.c#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/base64.h#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/common.c#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/common.h#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/config.c#3 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/config.h#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/config_file.c#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/config_ssid.h#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/config_types.h#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/crypto.c#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/crypto.h#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/crypto_gnutls.c#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/ctrl_iface.c#3 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/ctrl_iface.h#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/defconfig#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/defs.h#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/developer.txt#2 delete .. //depot/projects/hammer/contrib/wpa_supplicant/doc/code_structure.doxygen#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/doc/ctrl_iface.doxygen#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/doc/docbook/Makefile#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/doc/docbook/wpa_background.8#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/doc/docbook/wpa_background.sgml#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/doc/docbook/wpa_cli.8#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/doc/docbook/wpa_cli.sgml#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/doc/docbook/wpa_passphrase.8#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/doc/docbook/wpa_passphrase.sgml#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.8#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.conf.5#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.conf.sgml#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.sgml#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/doc/doxygen.fast#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/doc/doxygen.full#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/doc/driver_wrapper.doxygen#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/doc/eap.doxygen#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/doc/kerneldoc2doxygen.pl#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/doc/mainpage.doxygen#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/doc/porting.doxygen#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/doc/testing_tools.doxygen#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/doc/wpa_supplicant.fig#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/driver.h#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/driver_hostap.h#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/driver_ndis.c#3 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/driver_ndis.h#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/driver_wired.c#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/drivers.c#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/eap.c#3 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/eap.h#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/eap_aka.c#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/eap_defs.h#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/eap_fast.c#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/eap_gtc.c#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/eap_i.h#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/eap_leap.c#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/eap_md5.c#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/eap_mschapv2.c#3 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/eap_otp.c#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/eap_pax.c#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/eap_pax_common.c#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/eap_pax_common.h#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/eap_peap.c#3 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/eap_psk.c#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/eap_psk_common.c#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/eap_psk_common.h#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/eap_sim.c#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/eap_sim_common.c#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/eap_sim_common.h#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/eap_testing.txt#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/eap_tls.c#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/eap_tls_common.c#3 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/eap_tls_common.h#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/eap_tlv.c#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/eap_tlv.h#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/eap_ttls.c#3 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/eap_ttls.h#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/eapol_sm.c#3 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/eapol_sm.h#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/eapol_test.c#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/eloop.c#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/eloop.h#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/events.c#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/examples/ieee8021x.conf#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/examples/plaintext.conf#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/examples/wep.conf#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/examples/wpa-psk-tkip.conf#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/examples/wpa2-eap-ccmp.conf#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/hostap_common.h#2 delete .. //depot/projects/hammer/contrib/wpa_supplicant/hostapd.h#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/l2_packet.h#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/main.c#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/md5.c#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/md5.h#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/ms_funcs.c#3 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/ms_funcs.h#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/openssl-tls-extensions.patch#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/pcsc_funcs.c#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/pcsc_funcs.h#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/preauth.c#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/preauth.h#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/preauth_test.c#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/radius.c#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/radius.h#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/radius_client.c#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/radius_client.h#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/rc4.c#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/rc4.h#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/sha1.c#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/sha1.h#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/tls.h#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/tls_gnutls.c#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/tls_none.c#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/tls_openssl.c#3 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/tls_schannel.c#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/todo.txt#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/version.h#3 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/wpa.c#3 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/wpa.h#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_cli.c#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_ctrl.c#3 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_ctrl.h#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_gui-qt4/eventhistory.ui#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_gui-qt4/eventhistory.ui.h#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_gui-qt4/main.cpp#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_gui-qt4/networkconfig.ui#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_gui-qt4/networkconfig.ui.h#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_gui-qt4/scanresults.ui#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_gui-qt4/scanresults.ui.h#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_gui-qt4/setup-mingw-cross-compiling#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_gui-qt4/userdatarequest.ui#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_gui-qt4/userdatarequest.ui.h#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_gui-qt4/wpa_gui.pro#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_gui-qt4/wpagui.ui#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_gui-qt4/wpagui.ui.h#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_gui-qt4/wpamsg.h#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_gui/eventhistory.ui#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_gui/eventhistory.ui.h#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_gui/main.cpp#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_gui/networkconfig.ui#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_gui/networkconfig.ui.h#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_gui/scanresults.ui#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_gui/scanresults.ui.h#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_gui/userdatarequest.ui#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_gui/userdatarequest.ui.h#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_gui/wpa_gui.pro#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_gui/wpagui.ui#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_gui/wpagui.ui.h#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_gui/wpamsg.h#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_i.h#1 branch .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_passphrase.c#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_supplicant.c#5 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_supplicant.conf#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_supplicant.h#2 integrate .. //depot/projects/hammer/contrib/wpa_supplicant/wpa_supplicant_i.h#3 integrate .. //depot/projects/hammer/etc/Makefile#48 integrate .. //depot/projects/hammer/etc/devd.conf#25 integrate .. //depot/projects/hammer/etc/isdn/Makefile#5 integrate .. //depot/projects/hammer/etc/periodic/daily/440.status-mailq#4 integrate .. //depot/projects/hammer/etc/periodic/security/800.loginfail#4 integrate .. //depot/projects/hammer/etc/rc.d/jail#17 integrate .. //depot/projects/hammer/etc/rc.d/syscons#8 integrate .. //depot/projects/hammer/include/Makefile#54 integrate .. //depot/projects/hammer/include/arpa/nameser.h#2 integrate .. //depot/projects/hammer/lib/Makefile#56 integrate .. //depot/projects/hammer/lib/libarchive/INSTALL#2 delete .. //depot/projects/hammer/lib/libarchive/Makefile#32 integrate .. //depot/projects/hammer/lib/libarchive/Makefile.am#4 delete .. //depot/projects/hammer/lib/libarchive/archive.h.in#10 integrate .. //depot/projects/hammer/lib/libarchive/archive_platform.h#14 integrate .. //depot/projects/hammer/lib/libarchive/archive_read_support_format_tp.c#3 delete .. //depot/projects/hammer/lib/libarchive/configure.ac.in#10 delete .. //depot/projects/hammer/lib/libc/Makefile#23 integrate .. //depot/projects/hammer/lib/libc/Versions.def#1 branch .. //depot/projects/hammer/lib/libc/alpha/Makefile.inc#4 integrate .. //depot/projects/hammer/lib/libc/alpha/Symbol.map#1 branch .. //depot/projects/hammer/lib/libc/amd64/Makefile.inc#5 integrate .. //depot/projects/hammer/lib/libc/amd64/Symbol.map#1 branch .. //depot/projects/hammer/lib/libc/arm/Makefile.inc#4 integrate .. //depot/projects/hammer/lib/libc/arm/Symbol.map#1 branch .. //depot/projects/hammer/lib/libc/compat-43/Makefile.inc#5 integrate .. //depot/projects/hammer/lib/libc/compat-43/Symbol.map#1 branch .. //depot/projects/hammer/lib/libc/db/Makefile.inc#5 integrate .. //depot/projects/hammer/lib/libc/db/Symbol.map#1 branch .. //depot/projects/hammer/lib/libc/gdtoa/Makefile.inc#9 integrate .. //depot/projects/hammer/lib/libc/gdtoa/Symbol.map#1 branch .. //depot/projects/hammer/lib/libc/gen/Makefile.inc#26 integrate .. //depot/projects/hammer/lib/libc/gen/Symbol.map#1 branch .. //depot/projects/hammer/lib/libc/gen/_pthread_stubs.c#7 integrate .. //depot/projects/hammer/lib/libc/gen/_spinlock_stub.c#3 integrate .. //depot/projects/hammer/lib/libc/gmon/Makefile.inc#7 integrate .. //depot/projects/hammer/lib/libc/gmon/Symbol.map#1 branch .. //depot/projects/hammer/lib/libc/i386/Makefile.inc#2 integrate .. //depot/projects/hammer/lib/libc/i386/Symbol.map#1 branch .. //depot/projects/hammer/lib/libc/ia64/Makefile.inc#4 integrate .. //depot/projects/hammer/lib/libc/ia64/Symbol.map#1 branch .. //depot/projects/hammer/lib/libc/include/libc_private.h#8 integrate .. //depot/projects/hammer/lib/libc/include/namespace.h#9 integrate .. //depot/projects/hammer/lib/libc/include/un-namespace.h#8 integrate .. //depot/projects/hammer/lib/libc/locale/Makefile.inc#24 integrate .. //depot/projects/hammer/lib/libc/locale/Symbol.map#1 branch .. //depot/projects/hammer/lib/libc/net/Makefile.inc#13 integrate .. //depot/projects/hammer/lib/libc/net/Symbol.map#1 branch .. //depot/projects/hammer/lib/libc/nls/Makefile.inc#6 integrate .. //depot/projects/hammer/lib/libc/nls/Symbol.map#1 branch .. //depot/projects/hammer/lib/libc/posix1e/Makefile.inc#11 integrate .. //depot/projects/hammer/lib/libc/posix1e/Symbol.map#1 branch .. //depot/projects/hammer/lib/libc/powerpc/Makefile.inc#2 integrate .. //depot/projects/hammer/lib/libc/powerpc/Symbol.map#1 branch .. //depot/projects/hammer/lib/libc/quad/Makefile.inc#5 integrate .. //depot/projects/hammer/lib/libc/quad/Symbol.map#1 branch .. //depot/projects/hammer/lib/libc/regex/Makefile.inc#5 integrate .. //depot/projects/hammer/lib/libc/regex/Symbol.map#1 branch .. //depot/projects/hammer/lib/libc/rpc/Makefile.inc#11 integrate .. //depot/projects/hammer/lib/libc/rpc/Symbol.map#1 branch .. //depot/projects/hammer/lib/libc/softfloat/Makefile.inc#3 integrate .. //depot/projects/hammer/lib/libc/softfloat/Symbol.map#1 branch .. //depot/projects/hammer/lib/libc/sparc64/Makefile.inc#4 integrate .. //depot/projects/hammer/lib/libc/sparc64/Symbol.map#1 branch .. //depot/projects/hammer/lib/libc/stdio/Makefile.inc#15 integrate .. //depot/projects/hammer/lib/libc/stdio/Symbol.map#1 branch .. //depot/projects/hammer/lib/libc/stdlib/Makefile.inc#14 integrate .. //depot/projects/hammer/lib/libc/stdlib/Symbol.map#1 branch .. //depot/projects/hammer/lib/libc/stdtime/Makefile.inc#5 integrate .. //depot/projects/hammer/lib/libc/stdtime/Symbol.map#1 branch .. //depot/projects/hammer/lib/libc/string/Makefile.inc#11 integrate .. //depot/projects/hammer/lib/libc/string/Symbol.map#1 branch .. //depot/projects/hammer/lib/libc/sys/Makefile.inc#22 integrate .. //depot/projects/hammer/lib/libc/sys/Symbol.map#1 branch .. //depot/projects/hammer/lib/libc/sys/mq.c#2 delete .. //depot/projects/hammer/lib/libc/sys/recv.2#12 integrate .. //depot/projects/hammer/lib/libc/uuid/Makefile.inc#5 integrate .. //depot/projects/hammer/lib/libc/uuid/Symbol.map#1 branch .. //depot/projects/hammer/lib/libc/xdr/Makefile.inc#6 integrate .. //depot/projects/hammer/lib/libc/xdr/Symbol.map#1 branch .. //depot/projects/hammer/lib/libc/yp/Makefile.inc#7 integrate .. //depot/projects/hammer/lib/libc/yp/Symbol.map#1 branch .. //depot/projects/hammer/lib/libpam/modules/pam_login_access/Makefile#3 integrate .. //depot/projects/hammer/lib/libpam/modules/pam_login_access/login.access.5#3 integrate .. //depot/projects/hammer/lib/libpam/modules/pam_login_access/pam_login_access.8#3 integrate .. //depot/projects/hammer/lib/libpthread/Makefile#19 integrate .. //depot/projects/hammer/lib/libpthread/pthread.map#15 integrate .. //depot/projects/hammer/lib/libpthread/sys/thr_error.c#6 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_accept.c#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_aio_suspend.c#4 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_atfork.c#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_attr_destroy.c#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_attr_get_np.c#4 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_attr_getdetachstate.c#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_attr_getguardsize.c#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_attr_getinheritsched.c#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_attr_getschedparam.c#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_attr_getschedpolicy.c#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_attr_getscope.c#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_attr_getstack.c#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_attr_getstackaddr.c#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_attr_getstacksize.c#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_attr_init.c#5 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_attr_setcreatesuspend_np.c#4 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_attr_setdetachstate.c#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_attr_setguardsize.c#4 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_attr_setinheritsched.c#3 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_attr_setschedparam.c#3 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_attr_setschedpolicy.c#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_attr_setscope.c#4 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_attr_setstack.c#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_attr_setstackaddr.c#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_attr_setstacksize.c#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_barrier.c#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_barrierattr.c#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_cancel.c#16 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_clean.c#4 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_close.c#4 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_concurrency.c#8 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_cond.c#19 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_condattr_destroy.c#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_condattr_init.c#3 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_connect.c#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_creat.c#5 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_create.c#19 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_detach.c#6 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_equal.c#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_execve.c#3 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_exit.c#11 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_fcntl.c#4 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_fork.c#7 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_fsync.c#4 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_getprio.c#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_getschedparam.c#4 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_info.c#6 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_init.c#22 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_join.c#8 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_kill.c#4 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_main_np.c#3 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_mattr_init.c#3 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_mattr_kind_np.c#3 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_msync.c#4 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_multi_np.c#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_mutex.c#18 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_mutex_prioceiling.c#4 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_mutex_protocol.c#3 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_mutexattr_destroy.c#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_nanosleep.c#10 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_once.c#5 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_open.c#4 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_pause.c#5 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_poll.c#4 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_private.h#34 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_pselect.c#5 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_pspinlock.c#4 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_raise.c#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_read.c#4 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_readv.c#4 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_resume_np.c#5 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_rwlock.c#7 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_rwlockattr.c#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_select.c#5 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_self.c#3 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_sem.c#7 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_setprio.c#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_setschedparam.c#3 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_sig.c#26 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_sigaction.c#8 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_sigaltstack.c#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_sigmask.c#9 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_sigpending.c#8 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_sigprocmask.c#6 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_sigsuspend.c#14 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_sigwait.c#12 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_single_np.c#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_sleep.c#6 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_spec.c#5 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_spinlock.c#13 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_suspend_np.c#4 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_switch_np.c#3 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_symbols.c#3 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_system.c#5 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_tcdrain.c#5 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_vfork.c#2 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_wait.c#5 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_wait4.c#5 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_waitpid.c#5 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_write.c#4 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_writev.c#4 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_yield.c#7 integrate .. //depot/projects/hammer/lib/librt/aio.c#2 integrate .. //depot/projects/hammer/lib/librt/mq.c#2 integrate .. //depot/projects/hammer/lib/librt/sigev_thread.c#2 integrate .. //depot/projects/hammer/lib/librt/sigev_thread.h#2 integrate .. //depot/projects/hammer/lib/librt/timer.c#2 integrate .. //depot/projects/hammer/lib/libstand/printf.c#6 integrate .. //depot/projects/hammer/lib/libthr/pthread.map#8 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_init.c#20 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_timer.c#3 delete .. //depot/projects/hammer/release/Makefile#83 integrate .. //depot/projects/hammer/release/amd64/boot_crunch.conf#6 integrate .. //depot/projects/hammer/release/doc/zh_CN.GB2312/errata/article.sgml#4 integrate .. //depot/projects/hammer/release/doc/zh_CN.GB2312/hardware/amd64/proc-amd64.sgml#3 integrate .. //depot/projects/hammer/release/doc/zh_CN.GB2312/hardware/common/dev.sgml#7 integrate .. //depot/projects/hammer/release/doc/zh_CN.GB2312/installation/common/artheader.sgml#3 integrate .. //depot/projects/hammer/release/doc/zh_CN.GB2312/installation/common/install.sgml#4 integrate .. //depot/projects/hammer/release/doc/zh_CN.GB2312/installation/common/trouble.sgml#4 integrate .. //depot/projects/hammer/release/doc/zh_CN.GB2312/installation/sparc64/install.sgml#2 integrate .. //depot/projects/hammer/release/doc/zh_CN.GB2312/relnotes/amd64/article.sgml#2 integrate .. //depot/projects/hammer/release/doc/zh_CN.GB2312/relnotes/common/new.sgml#8 integrate .. //depot/projects/hammer/release/doc/zh_CN.GB2312/relnotes/sparc64/article.sgml#2 integrate .. //depot/projects/hammer/release/doc/zh_CN.GB2312/share/sgml/release.dsl#2 integrate .. //depot/projects/hammer/release/i386/boot_crunch.conf#7 integrate .. //depot/projects/hammer/release/ia64/boot_crunch.conf#9 integrate .. //depot/projects/hammer/release/pc98/boot_crunch.conf#8 integrate .. //depot/projects/hammer/release/scripts/kernels-install.sh#1 branch .. //depot/projects/hammer/sbin/bsdlabel/bsdlabel.8#13 integrate .. //depot/projects/hammer/sbin/geom/class/mirror/gmirror.8#13 integrate .. //depot/projects/hammer/sbin/ggate/ggatec/ggatec.c#4 integrate .. //depot/projects/hammer/sbin/ifconfig/ifconfig.c#29 integrate .. //depot/projects/hammer/sbin/ifconfig/ifvlan.c#7 integrate .. //depot/projects/hammer/sbin/ipfw/ipfw.8#53 integrate .. //depot/projects/hammer/sbin/ipfw/ipfw2.c#49 integrate .. //depot/projects/hammer/share/examples/netgraph/ether.bridge#2 integrate .. //depot/projects/hammer/share/man/man4/cpufreq.4#10 integrate .. //depot/projects/hammer/share/man/man4/ipw.4#8 integrate .. //depot/projects/hammer/share/man/man4/iwi.4#10 integrate .. //depot/projects/hammer/share/man/man4/netgraph.4#10 integrate .. //depot/projects/hammer/share/man/man4/ng_fec.4#2 integrate .. //depot/projects/hammer/share/man/man4/ral.4#7 integrate .. //depot/projects/hammer/share/man/man4/sysmouse.4#6 integrate .. //depot/projects/hammer/share/man/man5/rc.conf.5#72 integrate .. //depot/projects/hammer/share/man/man9/firmware.9#3 integrate .. //depot/projects/hammer/share/mk/bsd.README#9 integrate .. //depot/projects/hammer/sys/alpha/alpha/clock.c#13 integrate .. //depot/projects/hammer/sys/alpha/include/pcpu.h#3 integrate .. //depot/projects/hammer/sys/amd64/amd64/mp_machdep.c#117 integrate .. //depot/projects/hammer/sys/amd64/amd64/pmap.c#133 integrate .. //depot/projects/hammer/sys/amd64/conf/NOTES#94 integrate .. //depot/projects/hammer/sys/amd64/linux32/linux32_machdep.c#10 integrate .. //depot/projects/hammer/sys/arm/arm/in_cksum.c#6 integrate .. //depot/projects/hammer/sys/arm/include/in_cksum.h#4 integrate .. //depot/projects/hammer/sys/boot/i386/libi386/Makefile#17 integrate .. //depot/projects/hammer/sys/boot/i386/libi386/libi386.h#12 integrate .. //depot/projects/hammer/sys/boot/i386/libi386/smbios.c#4 integrate .. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_misc.c#41 integrate .. //depot/projects/hammer/sys/conf/NOTES#107 integrate .. //depot/projects/hammer/sys/conf/files#138 integrate .. //depot/projects/hammer/sys/conf/files.alpha#24 integrate .. //depot/projects/hammer/sys/conf/files.amd64#85 integrate .. //depot/projects/hammer/sys/conf/files.i386#71 integrate .. //depot/projects/hammer/sys/conf/files.ia64#34 integrate .. //depot/projects/hammer/sys/conf/files.pc98#54 integrate .. //depot/projects/hammer/sys/conf/files.powerpc#16 integrate .. //depot/projects/hammer/sys/conf/files.sparc64#35 integrate .. //depot/projects/hammer/sys/conf/options#94 integrate .. //depot/projects/hammer/sys/contrib/pf/net/if_pflog.h#7 integrate .. //depot/projects/hammer/sys/ddb/db_command.c#17 integrate .. //depot/projects/hammer/sys/ddb/ddb.h#12 integrate .. //depot/projects/hammer/sys/dev/aic7xxx/aic79xx_osm.c#17 integrate .. //depot/projects/hammer/sys/dev/ata/ata-all.c#59 integrate .. //depot/projects/hammer/sys/dev/ata/ata-all.h#39 integrate .. //depot/projects/hammer/sys/dev/ata/ata-chipset.c#71 integrate .. //depot/projects/hammer/sys/dev/ata/ata-disk.c#39 integrate .. //depot/projects/hammer/sys/dev/ata/ata-pci.h#42 integrate .. //depot/projects/hammer/sys/dev/ata/ata-queue.c#31 integrate .. //depot/projects/hammer/sys/dev/ata/ata-raid.c#36 integrate .. //depot/projects/hammer/sys/dev/ata/ata-usb.c#1 branch .. //depot/projects/hammer/sys/dev/ata/atapi-cd.c#33 integrate .. //depot/projects/hammer/sys/dev/ata/atapi-fd.c#18 integrate .. //depot/projects/hammer/sys/dev/ata/atapi-fd.h#8 integrate .. //depot/projects/hammer/sys/dev/ath/ath_rate/sample/sample.c#7 integrate .. //depot/projects/hammer/sys/dev/cs/if_cs.c#19 integrate .. //depot/projects/hammer/sys/dev/exca/exca.c#13 integrate .. //depot/projects/hammer/sys/dev/hwpmc/hwpmc_logging.c#5 integrate .. //depot/projects/hammer/sys/dev/hwpmc/hwpmc_mod.c#12 integrate .. //depot/projects/hammer/sys/dev/ieee488/upd7210.c#7 integrate .. //depot/projects/hammer/sys/dev/ipw/if_ipw.c#13 integrate .. //depot/projects/hammer/sys/dev/ipw/if_ipwreg.h#2 integrate .. //depot/projects/hammer/sys/dev/ipw/if_ipwvar.h#4 integrate .. //depot/projects/hammer/sys/dev/iwi/if_iwi.c#16 integrate .. //depot/projects/hammer/sys/dev/iwi/if_iwireg.h#8 integrate .. //depot/projects/hammer/sys/dev/iwi/if_iwivar.h#8 integrate .. //depot/projects/hammer/sys/dev/mpt/mpt.c#12 integrate .. //depot/projects/hammer/sys/dev/mpt/mpt.h#9 integrate .. //depot/projects/hammer/sys/dev/mpt/mpt_cam.c#5 integrate .. //depot/projects/hammer/sys/dev/ral/if_ral.c#15 delete .. //depot/projects/hammer/sys/dev/ral/if_ral_pccard.c#5 delete .. //depot/projects/hammer/sys/dev/ral/if_ral_pci.c#3 integrate .. //depot/projects/hammer/sys/dev/ral/if_ralreg.h#4 delete .. //depot/projects/hammer/sys/dev/ral/if_ralvar.h#4 delete .. //depot/projects/hammer/sys/dev/ral/rt2560.c#1 branch .. //depot/projects/hammer/sys/dev/ral/rt2560reg.h#1 branch .. //depot/projects/hammer/sys/dev/ral/rt2560var.h#1 branch .. //depot/projects/hammer/sys/dev/ral/rt2661.c#1 branch .. //depot/projects/hammer/sys/dev/ral/rt2661_ucode.h#1 branch .. //depot/projects/hammer/sys/dev/ral/rt2661reg.h#1 branch .. //depot/projects/hammer/sys/dev/ral/rt2661var.h#1 branch .. //depot/projects/hammer/sys/dev/sound/pci/ich.c#28 integrate .. //depot/projects/hammer/sys/dev/usb/umass.c#38 integrate .. //depot/projects/hammer/sys/fs/nullfs/null_vnops.c#24 integrate .. //depot/projects/hammer/sys/geom/geom_io.c#35 integrate .. //depot/projects/hammer/sys/geom/mirror/g_mirror.c#29 integrate .. //depot/projects/hammer/sys/geom/mirror/g_mirror.h#10 integrate .. //depot/projects/hammer/sys/geom/mirror/g_mirror_ctl.c#8 integrate .. //depot/projects/hammer/sys/geom/raid3/g_raid3.c#22 integrate .. //depot/projects/hammer/sys/geom/raid3/g_raid3.h#11 integrate .. //depot/projects/hammer/sys/geom/raid3/g_raid3_ctl.c#10 integrate .. //depot/projects/hammer/sys/gnu/fs/xfs/FreeBSD/support/kdb.c#3 integrate .. //depot/projects/hammer/sys/i386/i386/geode.c#7 integrate .. //depot/projects/hammer/sys/i386/i386/mp_machdep.c#55 integrate .. //depot/projects/hammer/sys/i386/i386/vm_machdep.c#52 integrate .. //depot/projects/hammer/sys/kern/kern_environment.c#13 integrate .. //depot/projects/hammer/sys/kern/kern_exec.c#61 integrate .. //depot/projects/hammer/sys/kern/kern_mbuf.c#17 integrate .. //depot/projects/hammer/sys/kern/kern_resource.c#30 integrate .. //depot/projects/hammer/sys/kern/kern_sig.c#70 integrate .. //depot/projects/hammer/sys/kern/kern_tc.c#20 integrate .. //depot/projects/hammer/sys/kern/kern_thread.c#87 integrate .. //depot/projects/hammer/sys/kern/subr_prf.c#25 integrate .. //depot/projects/hammer/sys/kern/uipc_mbuf.c#38 integrate .. //depot/projects/hammer/sys/kern/vfs_mount.c#69 integrate .. //depot/projects/hammer/sys/kern/vfs_subr.c#101 integrate .. //depot/projects/hammer/sys/kern/vfs_vnops.c#40 integrate .. //depot/projects/hammer/sys/modules/ata/atausb/Makefile#1 branch .. //depot/projects/hammer/sys/modules/iwi/Makefile#4 integrate .. //depot/projects/hammer/sys/modules/pf/Makefile#10 integrate .. //depot/projects/hammer/sys/modules/pflog/Makefile#5 integrate .. //depot/projects/hammer/sys/modules/ral/Makefile#3 integrate .. //depot/projects/hammer/sys/modules/smbfs/Makefile#8 integrate .. //depot/projects/hammer/sys/net/bridgestp.c#9 integrate .. //depot/projects/hammer/sys/net/if_bridgevar.h#8 integrate .. //depot/projects/hammer/sys/net/if_vlan.c#37 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_input.c#30 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_node.c#32 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_node.h#19 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_proto.c#23 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_var.h#25 integrate .. //depot/projects/hammer/sys/netinet/if_ether.c#33 integrate .. //depot/projects/hammer/sys/netsmb/smb_crypt.c#6 integrate .. //depot/projects/hammer/sys/netsmb/smb_smb.c#7 integrate .. //depot/projects/hammer/sys/nfsclient/nfs_vnops.c#46 integrate .. //depot/projects/hammer/sys/nfsserver/nfs_serv.c#29 integrate .. //depot/projects/hammer/sys/nfsserver/nfs_srvsock.c#17 integrate .. //depot/projects/hammer/sys/sys/ata.h#15 integrate .. //depot/projects/hammer/sys/sys/cdefs.h#23 integrate .. //depot/projects/hammer/sys/sys/disk.h#6 integrate .. //depot/projects/hammer/sys/sys/hash.h#1 branch .. //depot/projects/hammer/sys/sys/mount.h#43 integrate .. //depot/projects/hammer/sys/sys/proc.h#96 integrate .. //depot/projects/hammer/sys/sys/vnode.h#65 integrate .. //depot/projects/hammer/sys/ufs/ffs/ffs_extern.h#13 integrate .. //depot/projects/hammer/sys/ufs/ffs/ffs_snapshot.c#41 integrate .. //depot/projects/hammer/sys/ufs/ffs/ffs_softdep.c#35 integrate .. //depot/projects/hammer/sys/ufs/ffs/ffs_vfsops.c#57 integrate .. //depot/projects/hammer/sys/ufs/ufs/ufs_inode.c#18 integrate .. //depot/projects/hammer/sys/ufs/ufs/ufs_lookup.c#15 integrate .. //depot/projects/hammer/sys/ufs/ufs/ufs_quota.c#18 integrate .. //depot/projects/hammer/sys/ufs/ufs/ufsmount.h#9 integrate .. //depot/projects/hammer/sys/vm/swap_pager.c#44 integrate .. //depot/projects/hammer/sys/vm/vm_contig.c#30 integrate .. //depot/projects/hammer/sys/vm/vm_fault.c#38 integrate .. //depot/projects/hammer/sys/vm/vm_map.c#54 integrate .. //depot/projects/hammer/sys/vm/vm_page.c#50 integrate .. //depot/projects/hammer/sys/vm/vm_pageq.c#15 integrate .. //depot/projects/hammer/tools/regression/lib/libc/resolv/Makefile#2 integrate .. //depot/projects/hammer/tools/tools/nanobsd/nanobsd.sh#9 integrate .. //depot/projects/hammer/tools/tools/ncpus/Makefile#2 integrate .. //depot/projects/hammer/tools/tools/ncpus/acpi.c#2 integrate .. //depot/projects/hammer/tools/tools/ncpus/biosmptable.c#2 integrate .. //depot/projects/hammer/tools/tools/ncpus/ncpus.c#2 integrate .. //depot/projects/hammer/tools/tools/umastat/umastat.c#3 integrate .. //depot/projects/hammer/usr.bin/login/Makefile#5 integrate .. //depot/projects/hammer/usr.bin/login/README#2 integrate .. //depot/projects/hammer/usr.bin/login/login.1#7 integrate .. //depot/projects/hammer/usr.bin/login/login.access.5#4 delete .. //depot/projects/hammer/usr.bin/login/login_access.c#2 delete .. //depot/projects/hammer/usr.bin/login/pathnames.h#2 integrate .. //depot/projects/hammer/usr.bin/rpcinfo/Makefile#2 integrate .. //depot/projects/hammer/usr.bin/tar/Makefile#15 integrate .. //depot/projects/hammer/usr.bin/tar/Makefile.am#4 delete .. //depot/projects/hammer/usr.bin/tar/bsdtar.c#26 integrate .. //depot/projects/hammer/usr.bin/tar/bsdtar_platform.h#11 integrate .. //depot/projects/hammer/usr.bin/tar/configure.ac.in#8 delete .. //depot/projects/hammer/usr.bin/tar/read.c#15 integrate .. //depot/projects/hammer/usr.bin/xinstall/install.1#9 integrate .. //depot/projects/hammer/usr.bin/xinstall/xinstall.c#10 integrate .. //depot/projects/hammer/usr.sbin/bsnmpd/bsnmpd/Makefile#9 integrate .. //depot/projects/hammer/usr.sbin/lpr/filters.ru/koi2855/Makefile#5 integrate .. //depot/projects/hammer/usr.sbin/lpr/filters.ru/koi2alt/Makefile#5 integrate .. //depot/projects/hammer/usr.sbin/lpr/filters/Makefile#5 integrate .. //depot/projects/hammer/usr.sbin/pkg_install/add/add.h#5 integrate .. //depot/projects/hammer/usr.sbin/pkg_install/add/main.c#15 integrate .. //depot/projects/hammer/usr.sbin/pkg_install/add/perform.c#8 integrate .. //depot/projects/hammer/usr.sbin/pkg_install/add/pkg_add.1#14 integrate .. //depot/projects/hammer/usr.sbin/portsnap/phttpget/phttpget.c#5 integrate .. //depot/projects/hammer/usr.sbin/portsnap/portsnap/portsnap.sh#4 integrate .. //depot/projects/hammer/usr.sbin/rpcbind/Makefile#3 integrate .. //depot/projects/hammer/usr.sbin/sysinstall/Makefile#13 integrate .. //depot/projects/hammer/usr.sbin/sysinstall/acpi.c#1 branch .. //depot/projects/hammer/usr.sbin/sysinstall/acpidump.h#1 branch .. //depot/projects/hammer/usr.sbin/sysinstall/biosmptable.c#1 branch .. //depot/projects/hammer/usr.sbin/sysinstall/dist.c#24 integrate .. //depot/projects/hammer/usr.sbin/sysinstall/dist.h#10 integrate .. //depot/projects/hammer/usr.sbin/sysinstall/install.c#27 integrate .. //depot/projects/hammer/usr.sbin/sysinstall/menus.c#39 integrate .. //depot/projects/hammer/usr.sbin/sysinstall/sysinstall.h#24 integrate .. //depot/projects/hammer/usr.sbin/syslogd/syslogd.8#13 integrate .. //depot/projects/hammer/usr.sbin/syslogd/syslogd.c#26 integrate .. //depot/projects/hammer/usr.sbin/watchdogd/watchdogd.c#10 integrate .. //depot/projects/hammer/usr.sbin/wpa/hostapd/driver_freebsd.c#3 integrate .. //depot/projects/hammer/usr.sbin/wpa/hostapd_cli/Makefile#3 integrate .. //depot/projects/hammer/usr.sbin/wpa/l2_packet.c#3 integrate .. //depot/projects/hammer/usr.sbin/wpa/ndis_events/ndis_events.8#3 integrate .. //depot/projects/hammer/usr.sbin/wpa/wpa_supplicant/Makefile#5 integrate .. //depot/projects/hammer/usr.sbin/wpa/wpa_supplicant/driver_freebsd.c#7 integrate Differences ... ==== //depot/projects/hammer/Makefile.inc1#113 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/Makefile.inc1,v 1.536 2006/02/27 09:17:39 ru Exp $ +# $FreeBSD: src/Makefile.inc1,v 1.537 2006/03/09 12:55:02 keramida Exp $ # # Make command line options: # -DNO_DYNAMICROOT do not link /bin and /sbin dynamically @@ -836,6 +836,10 @@ _pwd_mkdb= usr.sbin/pwd_mkdb .endif +.if ${BOOTSTRAPPING} < 700014 +_gensnmptree= usr.sbin/bsnmpd/gensnmptree +.endif + bootstrap-tools: .for _tool in \ ${_strfile} \ @@ -851,6 +855,7 @@ usr.bin/rpcgen \ usr.bin/xinstall \ usr.sbin/config \ + ${_gensnmptree} \ ${_crunchgen} \ ${_pwd_mkdb} ${_+_}@${ECHODIR} "===> ${_tool} (obj,depend,all,install)"; \ ==== //depot/projects/hammer/ObsoleteFiles.inc#15 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.28 2006/02/18 16:35:57 netchild Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.30 2006/03/13 09:28:46 harti Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -14,6 +14,8 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20060127: revert libdisk to static-only +OLD_FILES+=usr/lib/libdisk.so # 20051215: rescue/nextboot.sh renamed to rescue/nextboot OLD_FILES+=rescue/nextboot.sh # 20051214: usbd(8) removed @@ -270,6 +272,8 @@ OLD_FILES+=usr/lib/libkse.a OLD_FILES+=usr/lib/libkse.so .endif +# 20040119: installed as `isdntel' in newer systems +OLD_FILES+=etc/isdn/isdntel.sh # 200XYYZZ: /lib transition clitches OLD_FILES+=lib/libalias.so OLD_FILES+=lib/libatm.so @@ -2648,6 +2652,8 @@ OLD_FILES+=usr/games/worms OLD_FILES+=usr/games/wump +# 20060127: revert libdisk to static-only +OLD_LIBS+=usr/lib/libdisk.so.3 # 20050722: bump for 6.0-RELEASE OLD_LIBS+=lib/libalias.so.4 OLD_LIBS+=lib/libatm.so.2 ==== //depot/projects/hammer/UPDATING#92 (text+ko) ==== @@ -21,12 +21,21 @@ developers choose to disable these features on build machines to maximize performance. +20060305: + The NETSMBCRYPTO kernel option has been retired because its + functionality is always included in NETSMB and smbfs.ko now. + 20060303: The TDFX_LINUX kernel option was retired and replaced by the - tdfx_linux device. The latter can be loaded as a kernel module. - Loading it alone should suffice to get 3dfx support for Linux - apps because it will pull in tdfx.ko and linux.ko through its - dependencies. + tdfx_linux device. The latter can be loaded as the 3dfx_linux.ko + kernel module. Loading it alone should suffice to get 3dfx support + for Linux apps because it will pull in 3dfx.ko and linux.ko through + its dependencies. + +20060204: + The 'audit' group was added to support the new auditing functionality + in the base system. Be sure to follow the directions for updating, + including the requirement to run mergemaster -p. 20060201: The kernel ABI to file system modules was changed on i386. @@ -164,6 +173,10 @@ must now run devd. Also, DNS updating was lost so you will need to find a workaround if you use this feature. + The '_dhcp' user was added to support the OpenBSD dhclient. Be + sure to run mergemaster -p (like you are supposed to do every time + anyway). + 20050605: if_bridge was added to the tree. This has changed struct ifnet. Please recompile userland and all network related modules. @@ -517,4 +530,4 @@ Contact Warner Losh if you have any questions about your use of this document. -$FreeBSD: src/UPDATING,v 1.440 2006/03/03 21:37:38 yar Exp $ +$FreeBSD: src/UPDATING,v 1.443 2006/03/10 18:40:31 imp Exp $ ==== //depot/projects/hammer/bin/chflags/chflags.1#12 (text+ko) ==== @@ -30,7 +30,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)chflags.1 8.4 (Berkeley) 5/2/95 -.\" $FreeBSD: src/bin/chflags/chflags.1,v 1.26 2006/03/04 02:38:40 trhodes Exp $ +.\" $FreeBSD: src/bin/chflags/chflags.1,v 1.28 2006/03/10 12:37:19 trhodes Exp $ .\" .Dd March 3, 2006 .Dt CHFLAGS 1 @@ -85,24 +85,24 @@ of keywords. The following keywords are currently defined: .Pp -.Bl -tag -offset indent -width ".Ar opaque" -.It Ar arch , archived +.Bl -tag -offset indent -width ".Cm opaque" +.It Cm arch , archived set the archived flag (super-user only) -.It Ar opaque +.It Cm opaque set the opaque flag (owner or super-user only) -.It Ar nodump +.It Cm nodump set the nodump flag (owner or super-user only) -.It Ar sappnd , sappend +.It Cm sappnd , sappend set the system append-only flag (super-user only) -.It Ar schg , schange , simmutable +.It Cm schg , schange , simmutable set the system immutable flag (super-user only) -.It Ar sunlnk , sunlink +.It Cm sunlnk , sunlink set the system undeletable flag (super-user only) -.It Ar uappnd , uappend +.It Cm uappnd , uappend set the user append-only flag (owner or super-user only) -.It Ar uchg , uchange , uimmutable +.It Cm uchg , uchange , uimmutable set the user immutable flag (owner or super-user only) -.It Ar uunlnk , uunlink +.It Cm uunlnk , uunlink set the user undeletable flag (owner or super-user only) .El .Pp @@ -114,39 +114,39 @@ For example: .Pp .Bl -tag -offset indent -width "nouchg" -compact -.It Ar nouchg +.It Cm nouchg clear the user immutable flag (owner or super-user only) -.It Ar dump +.It Cm dump clear the nodump flag (owner or super-user only) .El .Pp A few of the octal values include: -.Bl -tag -offset indent -width ".Ar 10" +.Bl -tag -offset indent -width ".Li 10" .It Li 0 Clear all file flags. .It Li 1 Translates to the -.Ar nodump +.Cm nodump keyword. .It Li 2 Translates to the -.Ar uchg +.Cm uchg keyword. .It Li 3 Translates to the -.Ar uchg , nodump +.Cm uchg , nodump keywords. .It Li 4 Translates to the -.Ar uappnd +.Cm uappnd keyword. .It Li 10 Translates to the -.Ar opaque +.Cm opaque keyword. .It Li 20 translates to the -uunlnk +.Cm uunlnk keyword. .El .Pp @@ -176,7 +176,7 @@ .Pp Note that the ability to change certain flags is dependent on the current kernel -.Em securelevel +.Va securelevel setting. See .Xr security 7 ==== //depot/projects/hammer/bin/getfacl/getfacl.1#6 (text+ko) ==== @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/bin/getfacl/getfacl.1,v 1.9 2005/01/16 16:41:57 ru Exp $ +.\" $FreeBSD: src/bin/getfacl/getfacl.1,v 1.10 2006/03/13 11:45:29 rwatson Exp $ .\" .\" Developed by the TrustedBSD Project. .\" Support for POSIX.1e access control lists. @@ -38,7 +38,7 @@ .Nd get ACL information .Sh SYNOPSIS .Nm -.Op Fl dh +.Op Fl dhq .Op Ar .Sh DESCRIPTION The @@ -64,6 +64,9 @@ .It Fl h If the target of the operation is a symbolic link, return the ACL from the symbolic link itself rather than following the link. +.It Fl q +Don't write commented information about file name and ownership. This is +useful when dealing with filenames with unprintable characters. .El .Pp The following operand is available: ==== //depot/projects/hammer/bin/getfacl/getfacl.c#5 (text+ko) ==== @@ -32,7 +32,7 @@ #include -__FBSDID("$FreeBSD: src/bin/getfacl/getfacl.c,v 1.10 2005/02/09 17:37:37 ru Exp $"); +__FBSDID("$FreeBSD: src/bin/getfacl/getfacl.c,v 1.11 2006/03/13 11:45:29 rwatson Exp $"); #include #include @@ -52,7 +52,7 @@ usage(void) { - fprintf(stderr, "getfacl [-dh] [file ...]\n"); + fprintf(stderr, "getfacl [-dhq] [file ...]\n"); } /* @@ -147,7 +147,7 @@ } static int -print_acl(char *path, acl_type_t type, int hflag) +print_acl(char *path, acl_type_t type, int hflag, int qflag) { struct stat sb; acl_t acl; @@ -168,7 +168,9 @@ else more_than_one++; - printf("#file:%s\n#owner:%d\n#group:%d\n", path, sb.st_uid, sb.st_gid); + if (!qflag) + printf("#file:%s\n#owner:%d\n#group:%d\n", path, sb.st_uid, + sb.st_gid); if (hflag) acl = acl_get_link_np(path, type); @@ -204,7 +206,7 @@ } static int -print_acl_from_stdin(acl_type_t type, int hflag) +print_acl_from_stdin(acl_type_t type, int hflag, int qflag) { char *p, pathname[PATH_MAX]; int carried_error = 0; @@ -212,7 +214,7 @@ while (fgets(pathname, (int)sizeof(pathname), stdin)) { if ((p = strchr(pathname, '\n')) != NULL) *p = '\0'; - if (print_acl(pathname, type, hflag) == -1) { + if (print_acl(pathname, type, hflag, qflag) == -1) { carried_error = -1; } } @@ -226,10 +228,11 @@ acl_type_t type = ACL_TYPE_ACCESS; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Mar 13 21:51:59 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B017316A422; Mon, 13 Mar 2006 21:51:59 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 74ECF16A401 for ; Mon, 13 Mar 2006 21:51:59 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 308A743D67 for ; Mon, 13 Mar 2006 21:51:59 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2DLpx2F069323 for ; Mon, 13 Mar 2006 21:51:59 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2DLpxoh069320 for perforce@freebsd.org; Mon, 13 Mar 2006 21:51:59 GMT (envelope-from peter@freebsd.org) Date: Mon, 13 Mar 2006 21:51:59 GMT Message-Id: <200603132151.k2DLpxoh069320@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 93265 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Mar 2006 21:51:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=93265 Change 93265 by peter@peter_daintree on 2006/03/13 21:51:50 Integ -b i386_hammer Affected files ... .. //depot/projects/hammer/sys/amd64/amd64/mp_machdep.c#118 integrate .. //depot/projects/hammer/sys/amd64/amd64/vm_machdep.c#86 integrate .. //depot/projects/hammer/sys/amd64/ia32/ia32_signal.c#20 edit Differences ... ==== //depot/projects/hammer/sys/amd64/amd64/mp_machdep.c#118 (text+ko) ==== ==== //depot/projects/hammer/sys/amd64/amd64/vm_machdep.c#86 (text+ko) ==== ==== //depot/projects/hammer/sys/amd64/ia32/ia32_signal.c#20 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Tue Mar 14 00:18:11 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7BB7616A426; Tue, 14 Mar 2006 00:18:11 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3C56216A401 for ; Tue, 14 Mar 2006 00:18:11 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D443243D49 for ; Tue, 14 Mar 2006 00:18:10 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2E0IAlC079668 for ; Tue, 14 Mar 2006 00:18:10 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2E0IAsj079665 for perforce@freebsd.org; Tue, 14 Mar 2006 00:18:10 GMT (envelope-from peter@freebsd.org) Date: Tue, 14 Mar 2006 00:18:10 GMT Message-Id: <200603140018.k2E0IAsj079665@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 93273 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Mar 2006 00:18:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=93273 Change 93273 by peter@peter_daintree on 2006/03/14 00:17:30 IFC @93272 Affected files ... .. //depot/projects/hammer/share/man/man4/ipw.4#9 integrate .. //depot/projects/hammer/share/man/man4/iwi.4#11 integrate .. //depot/projects/hammer/share/man/man4/ral.4#8 integrate .. //depot/projects/hammer/sys/amd64/amd64/apic_vector.S#38 integrate .. //depot/projects/hammer/sys/amd64/amd64/db_trace.c#37 integrate .. //depot/projects/hammer/sys/amd64/amd64/io_apic.c#48 integrate .. //depot/projects/hammer/sys/amd64/amd64/machdep.c#152 integrate .. //depot/projects/hammer/sys/amd64/amd64/trap.c#90 integrate .. //depot/projects/hammer/sys/amd64/include/asmacros.h#14 integrate .. //depot/projects/hammer/sys/amd64/include/bus.h#16 integrate .. //depot/projects/hammer/sys/amd64/include/pmap.h#59 integrate .. //depot/projects/hammer/sys/amd64/include/trap.h#8 integrate .. //depot/projects/hammer/sys/amd64/pci/pci_bus.c#34 integrate .. //depot/projects/hammer/sys/cam/scsi/scsi_da.c#33 integrate .. //depot/projects/hammer/sys/isofs/cd9660/cd9660_rrip.c#8 integrate Differences ... ==== //depot/projects/hammer/share/man/man4/ipw.4#9 (text+ko) ==== @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/ipw.4,v 1.9 2006/03/13 20:36:55 damien Exp $ +.\" $FreeBSD: src/share/man/man4/ipw.4,v 1.10 2006/03/13 21:00:53 damien Exp $ .\" .Dd March 13, 2006 .Os @@ -63,7 +63,6 @@ For more information on configuring this device, see .Xr ifconfig 8 . .Pp -.Pp This driver requires firmware to be loaded before it will work. You need to install the .Pa ports/net/ipw-firmware ==== //depot/projects/hammer/share/man/man4/iwi.4#11 (text+ko) ==== @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/iwi.4,v 1.11 2006/03/13 20:36:55 damien Exp $ +.\" $FreeBSD: src/share/man/man4/iwi.4,v 1.12 2006/03/13 20:42:37 damien Exp $ .\" .Dd March 13, 2006 .Os @@ -42,7 +42,7 @@ .Ed .Pp Alternatively, to load the driver as a -module at boot time, place the following line in +module at boot time, place the following lines in .Xr loader.conf 5 : .Bd -literal -offset indent if_iwi_load="YES" ==== //depot/projects/hammer/share/man/man4/ral.4#8 (text+ko) ==== @@ -13,7 +13,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.\" $FreeBSD: src/share/man/man4/ral.4,v 1.9 2006/03/05 20:57:25 damien Exp $ +.\" $FreeBSD: src/share/man/man4/ral.4,v 1.10 2006/03/13 21:24:28 damien Exp $ .\" .Dd March 05, 2006 .Os @@ -58,7 +58,7 @@ This chipset uses the MIMO (multiple-input multiple-output) technology with multiple antennas to extend the operating range of the adapter and to achieve higher throughput. -MIMO will be the basis of the future IEEE 802.11n standard. +MIMO is the basis of the forthcoming IEEE 802.11n standard. .Pp The transmit speed is user-selectable or can be adapted automatically by the driver depending on the received signal strength and on the number of hardware @@ -68,87 +68,93 @@ .Nm driver supports the following adapters: .Pp -.Bl -column -compact ".Li Atlantis Land A02-PCM-W54" "CardBus" "RT2561S" -.It Em Card Ta Em Bus Ta Em MAC/BBP -.It Li "A-Link WL54H" Ta PCI Ta RT2560 -.It Li "A-Link WL54PC" Ta CardBus Ta RT2560 -.It Li "Amigo AWI-914W" Ta CardBus Ta RT2560 -.It Li "Amigo AWI-922W" Ta mini-PCI Ta RT2560 -.It Li "Amigo AWI-926W" Ta PCI Ta RT2560 -.It Li "AMIT WL531C" Ta CardBus Ta RT2560 -.It Li "AMIT WL531P" Ta PCI Ta RT2560 -.It Li "AOpen AOI-831" Ta PCI Ta RT2560 -.It Li "ASUS WL-107G" Ta CardBus Ta RT2560 -.It Li "ASUS WL-130g" Ta PCI Ta RT2560 -.It Li "Atlantis Land A02-PCI-W54" Ta PCI Ta RT2560 -.It Li "Atlantis Land A02-PCM-W54" Ta CardBus Ta RT2560 -.It Li "Belkin F5D7000 v3" Ta PCI Ta RT2560 -.It Li "Belkin F5D7010 v2" Ta CardBus Ta RT2560 -.It Li "Billionton MIWLGRL" Ta mini-PCI Ta RT2560 -.It Li "Canyon CN-WF511" Ta PCI Ta RT2560 -.It Li "Canyon CN-WF513" Ta CardBus Ta RT2560 -.It Li "CC&C WL-2102" Ta CardBus Ta RT2560 -.It Li "CNet CWC-854" Ta CardBus Ta RT2560 -.It Li "CNet CWP-854" Ta PCI Ta RT2560 -.It Li "Compex WL54G" Ta CardBus Ta RT2560 -.It Li "Compex WLP54G" Ta PCI Ta RT2560 -.It Li "Conceptronic C54RC" Ta CardBus Ta RT2560 -.It Li "Conceptronic C54Ri" Ta PCI Ta RT2560 -.It Li "Digitus DN-7001G-RA" Ta CardBus Ta RT2560 -.It Li "Digitus DN-7006G-RA" Ta PCI Ta RT2560 -.It Li "E-Tech WGPC02" Ta CardBus Ta RT2560 -.It Li "E-Tech WGPI02" Ta PCI Ta RT2560 -.It Li "Edimax EW-7108PCg" Ta CardBus Ta RT2560 -.It Li "Edimax EW-7128g" Ta PCI Ta RT2560 -.It Li "Eminent EM3036" Ta CardBus Ta RT2560 -.It Li "Eminent EM3037" Ta PCI Ta RT2560 -.It Li "Encore ENLWI-G-RLAM" Ta PCI Ta RT2560 -.It Li "Encore ENPWI-G-RLAM" Ta CardBus Ta RT2560 -.It Li "Fiberline WL-400P" Ta PCI Ta RT2560 -.It Li "Fibreline WL-400X" Ta CardBus Ta RT2560 -.It Li "Gigabyte GN-WIKG" Ta mini-PCI Ta RT2560 -.It Li "Gigabyte GN-WMKG" Ta CardBus Ta RT2560 -.It Li "Gigabyte GN-WPKG" Ta PCI Ta RT2560 -.It Li "Hawking HWC54GR" Ta CardBus Ta RT2560 -.It Li "Hawking HWP54GR" Ta PCI Ta RT2560 -.It Li "iNexQ CR054g-009 (R03)" Ta PCI Ta RT2560 -.It Li "JAHT WN-4054P" Ta CardBus Ta RT2560 -.It Li "JAHT WN-4054PCI" Ta PCI Ta RT2560 -.It Li "LevelOne WNC-0301 v2" Ta PCI Ta RT2560 -.It Li "LevelOne WPC-0301 v2" Ta CardBus Ta RT2560 -.It Li "Linksys WMP54G v4" Ta PCI Ta RT2560 -.It Li "Micronet SP906GK" Ta PCI Ta RT2560 -.It Li "Micronet SP908GK V3" Ta CardBus Ta RT2560 -.It Li "Minitar MN54GCB-R" Ta CardBus Ta RT2560 -.It Li "Minitar MN54GPC-R" Ta PCI Ta RT2560 -.It Li "MSI CB54G2" Ta CardBus Ta RT2560 -.It Li "MSI MP54G2" Ta mini-PCI Ta RT2560 -.It Li "MSI PC54G2" Ta PCI Ta RT2560 -.It Li "OvisLink EVO-W54PCI" Ta PCI Ta RT2560 -.It Li "PheeNet HWL-PCIG/RA" Ta PCI Ta RT2560 -.It Li "Pro-Nets CB80211G" Ta CardBus Ta RT2560 -.It Li "Pro-Nets PC80211G" Ta PCI Ta RT2560 -.It Li "Repotec RP-WB7108" Ta CardBus Ta RT2560 -.It Li "Repotec RP-WP0854" Ta PCI Ta RT2560 -.It Li "SATech SN-54C" Ta CardBus Ta RT2560 -.It Li "SATech SN-54P" Ta PCI Ta RT2560 -.It Li "Sitecom WL-112" Ta CardBus Ta RT2560 -.It Li "Sitecom WL-115" Ta PCI Ta RT2560 -.It Li "SparkLAN WL-685R" Ta CardBus Ta RT2560 -.It Li "Surecom EP-9321-g" Ta PCI Ta RT2560 -.It Li "Surecom EP-9321-g1" Ta PCI Ta RT2560 -.It Li "Surecom EP-9428-g" Ta CardBus Ta RT2560 -.It Li "Sweex LC500050" Ta CardBus Ta RT2560 -.It Li "Sweex LC700030" Ta PCI Ta RT2560 -.It Li "TekComm NE-9321-g" Ta PCI Ta RT2560 -.It Li "TekComm NE-9428-g" Ta CardBus Ta RT2560 -.It Li "Unex CR054g-R02" Ta PCI Ta RT2560 -.It Li "Unex MR054g-R02" Ta CardBus Ta RT2560 -.It Li "Zinwell ZWX-G160" Ta CardBus Ta RT2560 -.It Li "Zinwell ZWX-G360" Ta mini-PCI Ta RT2560 -.It Li "Zinwell ZWX-G361" Ta PCI Ta RT2560 -.It Li "Zonet ZEW1500" Ta CardBus Ta RT2560 -.It Li "Zonet ZEW1600" Ta PCI Ta RT2560 +.Bl -column -compact ".Li Atlantis Land A02-PCM-W54" "RT2561S" "CardBus" +.It Em Card Ta Em MAC/BBP Ta Em Bus +.It Li "A-Link WL54H" Ta RT2560 Ta PCI +.It Li "A-Link WL54PC" Ta RT2560 Ta CardBus +.It Li "AirLink101 AWLC5025" Ta RT2661 Ta CardBus +.It Li "AirLink101 AWLH5025" Ta RT2661 Ta PCI +.It Li "Amigo AWI-914W" Ta RT2560 Ta CardBus +.It Li "Amigo AWI-922W" Ta RT2560 Ta mini-PCI +.It Li "Amigo AWI-926W" Ta RT2560 Ta PCI +.It Li "AMIT WL531C" Ta RT2560 Ta CardBus +.It Li "AMIT WL531P" Ta RT2560 Ta PCI +.It Li "AOpen AOI-831" Ta RT2560 Ta PCI +.It Li "ASUS WL-107G" Ta RT2560 Ta CardBus +.It Li "ASUS WL-130g" Ta RT2560 Ta PCI +.It Li "Atlantis Land A02-PCI-W54" Ta RT2560 Ta PCI +.It Li "Atlantis Land A02-PCM-W54" Ta RT2560 Ta CardBus +.It Li "Belkin F5D7000 v3" Ta RT2560 Ta PCI +.It Li "Belkin F5D7010 v2" Ta RT2560 Ta CardBus +.It Li "Billionton MIWLGRL" Ta RT2560 Ta mini-PCI +.It Li "Canyon CN-WF511" Ta RT2560 Ta PCI +.It Li "Canyon CN-WF513" Ta RT2560 Ta CardBus +.It Li "CC&C WL-2102" Ta RT2560 Ta CardBus +.It Li "CNet CWC-854" Ta RT2560 Ta CardBus +.It Li "CNet CWP-854" Ta RT2560 Ta PCI +.It Li "Compex WL54G" Ta RT2560 Ta CardBus +.It Li "Compex WLP54G" Ta RT2560 Ta PCI +.It Li "Conceptronic C54RC" Ta RT2560 Ta CardBus +.It Li "Conceptronic C54Ri" Ta RT2560 Ta PCI +.It Li "Digitus DN-7001G-RA" Ta RT2560 Ta CardBus +.It Li "Digitus DN-7006G-RA" Ta RT2560 Ta PCI +.It Li "E-Tech WGPC02" Ta RT2560 Ta CardBus +.It Li "E-Tech WGPI02" Ta RT2560 Ta PCI +.It Li "Edimax EW-7108PCg" Ta RT2560 Ta CardBus +.It Li "Edimax EW-7128g" Ta RT2560 Ta PCI +.It Li "Eminent EM3036" Ta RT2560 Ta CardBus +.It Li "Eminent EM3037" Ta RT2560 Ta PCI +.It Li "Encore ENLWI-G-RLAM" Ta RT2560 Ta PCI +.It Li "Encore ENPWI-G-RLAM" Ta RT2560 Ta CardBus +.It Li "Fiberline WL-400P" Ta RT2560 Ta PCI +.It Li "Fibreline WL-400X" Ta RT2560 Ta CardBus +.It Li "Gigabyte GN-WI01GS" Ta RT2561S Ta mini-PCI +.It Li "Gigabyte GN-WIKG" Ta RT2560 Ta mini-PCI +.It Li "Gigabyte GN-WMKG" Ta RT2560 Ta CardBus +.It Li "Gigabyte GN-WP01GS" Ta RT2561S Ta PCI +.It Li "Gigabyte GN-WPKG" Ta RT2560 Ta PCI +.It Li "Hawking HWC54GR" Ta RT2560 Ta CardBus +.It Li "Hawking HWP54GR" Ta RT2560 Ta PCI +.It Li "iNexQ CR054g-009 (R03)" Ta RT2560 Ta PCI +.It Li "JAHT WN-4054P" Ta RT2560 Ta CardBus +.It Li "JAHT WN-4054PCI" Ta RT2560 Ta PCI +.It Li "LevelOne WNC-0301 v2" Ta RT2560 Ta PCI +.It Li "LevelOne WPC-0301 v2" Ta RT2560 Ta CardBus +.It Li "Linksys WMP54G v4" Ta RT2560 Ta PCI +.It Li "Micronet SP906GK" Ta RT2560 Ta PCI +.It Li "Micronet SP908GK V3" Ta RT2560 Ta CardBus +.It Li "Minitar MN54GCB-R" Ta RT2560 Ta CardBus +.It Li "Minitar MN54GPC-R" Ta RT2560 Ta PCI +.It Li "MSI CB54G2" Ta RT2560 Ta CardBus +.It Li "MSI MP54G2" Ta RT2560 Ta mini-PCI +.It Li "MSI PC54G2" Ta RT2560 Ta PCI +.It Li "OvisLink EVO-W54PCI" Ta RT2560 Ta PCI +.It Li "PheeNet HWL-PCIG/RA" Ta RT2560 Ta PCI +.It Li "Pro-Nets CB80211G" Ta RT2560 Ta CardBus +.It Li "Pro-Nets PC80211G" Ta RT2560 Ta PCI +.It Li "Repotec RP-WB7108" Ta RT2560 Ta CardBus +.It Li "Repotec RP-WP0854" Ta RT2560 Ta PCI +.It Li "SATech SN-54C" Ta RT2560 Ta CardBus +.It Li "SATech SN-54P" Ta RT2560 Ta PCI +.It Li "Sitecom WL-112" Ta RT2560 Ta CardBus +.It Li "Sitecom WL-115" Ta RT2560 Ta PCI +.It Li "SMC SMCWCB-GM" Ta RT2661 Ta CardBus +.It Li "SMC SMCWPCI-GM" Ta RT2661 Ta PCI +.It Li "SparkLAN WL-685R" Ta RT2560 Ta CardBus +.It Li "Surecom EP-9321-g" Ta RT2560 Ta PCI +.It Li "Surecom EP-9321-g1" Ta RT2560 Ta PCI +.It Li "Surecom EP-9428-g" Ta RT2560 Ta CardBus +.It Li "Sweex LC500050" Ta RT2560 Ta CardBus +.It Li "Sweex LC700030" Ta RT2560 Ta PCI +.It Li "TekComm NE-9321-g" Ta RT2560 Ta PCI +.It Li "TekComm NE-9428-g" Ta RT2560 Ta CardBus +.It Li "Unex CR054g-R02" Ta RT2560 Ta PCI +.It Li "Unex MR054g-R02" Ta RT2560 Ta CardBus +.It Li "Zinwell ZWX-G160" Ta RT2560 Ta CardBus +.It Li "Zinwell ZWX-G360" Ta RT2560 Ta mini-PCI +.It Li "Zinwell ZWX-G361" Ta RT2560 Ta PCI +.It Li "Zonet ZEW1500" Ta RT2560 Ta CardBus +.It Li "Zonet ZEW1600" Ta RT2560 Ta PCI .El .Pp An up to date list can be found at ==== //depot/projects/hammer/sys/amd64/amd64/apic_vector.S#38 (text+ko) ==== @@ -28,7 +28,7 @@ * SUCH DAMAGE. * * from: vector.s, 386BSD 0.1 unknown origin - * $FreeBSD: src/sys/amd64/amd64/apic_vector.S,v 1.107 2005/12/14 21:47:01 jhb Exp $ + * $FreeBSD: src/sys/amd64/amd64/apic_vector.S,v 1.108 2006/03/13 23:55:31 peter Exp $ */ /* ==== //depot/projects/hammer/sys/amd64/amd64/db_trace.c#37 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_trace.c,v 1.73 2005/12/27 23:23:47 pjd Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_trace.c,v 1.74 2006/03/13 23:56:44 peter Exp $"); #include #include ==== //depot/projects/hammer/sys/amd64/amd64/io_apic.c#48 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.21 2006/02/28 22:24:54 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.22 2006/03/13 23:55:31 peter Exp $"); #include "opt_atpic.h" #include "opt_isa.h" ==== //depot/projects/hammer/sys/amd64/amd64/machdep.c#152 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.646 2006/02/03 02:49:14 davidxu Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.647 2006/03/13 23:55:31 peter Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" ==== //depot/projects/hammer/sys/amd64/amd64/trap.c#90 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.302 2006/02/08 08:09:15 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.303 2006/03/13 23:55:31 peter Exp $"); /* * AMD64 Trap and System call handling ==== //depot/projects/hammer/sys/amd64/include/asmacros.h#14 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/include/asmacros.h,v 1.29 2005/12/08 18:33:30 jhb Exp $ + * $FreeBSD: src/sys/amd64/include/asmacros.h,v 1.30 2006/03/14 00:01:56 peter Exp $ */ #ifndef _MACHINE_ASMACROS_H_ ==== //depot/projects/hammer/sys/amd64/include/bus.h#16 (text+ko) ==== @@ -28,7 +28,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/include/bus.h,v 1.16 2005/05/29 04:42:15 nyan Exp $ + * $FreeBSD: src/sys/amd64/include/bus.h,v 1.17 2006/03/14 00:01:56 peter Exp $ */ /* $NetBSD: bus.h,v 1.12 1997/10/01 08:25:15 fvdl Exp $ */ ==== //depot/projects/hammer/sys/amd64/include/pmap.h#59 (text+ko) ==== @@ -39,7 +39,7 @@ * * from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90 * from: @(#)pmap.h 7.4 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.128 2005/12/06 21:09:01 jhb Exp $ + * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.129 2006/03/14 00:01:56 peter Exp $ */ #ifndef _MACHINE_PMAP_H_ ==== //depot/projects/hammer/sys/amd64/include/trap.h#8 (text+ko) ==== @@ -30,7 +30,7 @@ * SUCH DAMAGE. * * from: @(#)trap.h 5.4 (Berkeley) 5/9/91 - * $FreeBSD: src/sys/amd64/include/trap.h,v 1.14 2004/04/05 21:25:51 imp Exp $ + * $FreeBSD: src/sys/amd64/include/trap.h,v 1.15 2006/03/14 00:01:22 peter Exp $ */ #ifndef _MACHINE_TRAP_H_ ==== //depot/projects/hammer/sys/amd64/pci/pci_bus.c#34 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/pci/pci_bus.c,v 1.116 2006/01/06 19:22:18 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/pci/pci_bus.c,v 1.117 2006/03/13 23:58:40 peter Exp $"); #include "opt_cpu.h" ==== //depot/projects/hammer/sys/cam/scsi/scsi_da.c#33 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.186 2006/01/30 20:27:44 flz Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.187 2006/03/13 22:26:33 joerg Exp $"); #include @@ -421,6 +421,13 @@ }, { /* + * TOSHIBA TransMemory USB sticks + */ + {T_DIRECT, SIP_MEDIA_REMOVABLE, "TOSHIBA", "TransMemory", + "*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE + }, + { + /* * PNY USB Flash keys * PR: usb/75578, usb/72344, usb/65436 */ ==== //depot/projects/hammer/sys/isofs/cd9660/cd9660_rrip.c#8 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/isofs/cd9660/cd9660_rrip.c,v 1.28 2004/07/03 16:56:45 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/isofs/cd9660/cd9660_rrip.c,v 1.29 2006/03/13 22:32:33 joerg Exp $"); #include #include @@ -157,9 +157,7 @@ case ISO_SUSP_CFLAG_ROOT: /* Inserting slash for ROOT */ - /* start over from beginning(?) */ - outbuf -= len; - len = 0; + /* Double slash, nothing really to do here. */ break; case ISO_SUSP_CFLAG_VOLROOT: From owner-p4-projects@FreeBSD.ORG Tue Mar 14 10:27:51 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AF04716A423; Tue, 14 Mar 2006 10:27:51 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 41CBF16A401 for ; Tue, 14 Mar 2006 10:27:51 +0000 (UTC) (envelope-from soc-bushman@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1D83E43D48 for ; Tue, 14 Mar 2006 10:27:48 +0000 (GMT) (envelope-from soc-bushman@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2EARmhd031570 for ; Tue, 14 Mar 2006 10:27:48 GMT (envelope-from soc-bushman@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2EARlDb031566 for perforce@freebsd.org; Tue, 14 Mar 2006 10:27:47 GMT (envelope-from soc-bushman@freebsd.org) Date: Tue, 14 Mar 2006 10:27:47 GMT Message-Id: <200603141027.k2EARlDb031566@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-bushman@freebsd.org using -f From: soc-bushman To: Perforce Change Reviews Cc: Subject: PERFORCE change 93288 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Mar 2006 10:27:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=93288 Change 93288 by soc-bushman@soc-bushman_stinger on 2006/03/14 10:26:49 versions merged + src_rel6 branch created (basically to be able to build cached without libpidfile present) Affected files ... .. //depot/projects/soc2005/nsswitch_cached/src/include/Makefile#6 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/Makefile#5 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/Versions.def#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/Makefile.inc#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/Symbol.map#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/Makefile.inc#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/Symbol.map#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/Makefile.inc#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/Symbol.map#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/compat-43/Makefile.inc#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/compat-43/Symbol.map#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/Makefile.inc#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/Symbol.map#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gdtoa/Makefile.inc#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gdtoa/Symbol.map#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/Makefile.inc#6 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/Symbol.map#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/_spinlock_stub.c#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gmon/Makefile.inc#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gmon/Symbol.map#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/Makefile.inc#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/Symbol.map#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/Makefile.inc#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/Symbol.map#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/include/un-namespace.h#4 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/Makefile.inc#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/Symbol.map#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/Makefile.inc#6 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/Symbol.map#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/nls/Makefile.inc#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/nls/Symbol.map#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/Makefile.inc#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/Symbol.map#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/powerpc/Makefile.inc#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/powerpc/Symbol.map#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/quad/Makefile.inc#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/quad/Symbol.map#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/regex/Makefile.inc#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/regex/Symbol.map#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/rpc/Makefile.inc#4 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/rpc/Symbol.map#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/softfloat/Makefile.inc#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/softfloat/Symbol.map#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/sparc64/Makefile.inc#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/sparc64/Symbol.map#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/stdio/Makefile.inc#4 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/stdio/Symbol.map#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/stdlib/Makefile.inc#4 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/stdlib/Symbol.map#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/stdtime/Makefile.inc#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/stdtime/Symbol.map#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/string/Makefile.inc#5 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/string/Symbol.map#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/sys/Makefile.inc#7 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/sys/Symbol.map#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/uuid/Makefile.inc#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/uuid/Symbol.map#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/xdr/Makefile.inc#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/xdr/Symbol.map#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/yp/Makefile.inc#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/yp/Symbol.map#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/bthidd/hid.c#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bsnmpd/bsnmpd/Makefile#4 integrate .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/filters.ru/koi2855/Makefile#4 integrate .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/filters.ru/koi2alt/Makefile#4 integrate .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/filters/Makefile#4 integrate .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pkg_install/add/add.h#4 integrate .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pkg_install/add/main.c#4 integrate .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pkg_install/add/perform.c#4 integrate .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pkg_install/add/pkg_add.1#4 integrate .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/rpcbind/Makefile#4 integrate .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/sysinstall/Makefile#6 integrate .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/sysinstall/install.c#5 integrate .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/agent.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/agent.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/agents/Makefile.inc#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/agents/group.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/agents/group.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/agents/hosts.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/agents/hosts.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/agents/passwd.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/agents/passwd.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/agents/services.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/agents/services.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/cached.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/cached.c#1 add .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/cached.conf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/cached.conf.5#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/cachedcli.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/cachedcli.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/cachelib.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/cachelib.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/cacheplcs.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/cacheplcs.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/config.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/config.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/debug.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/debug.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/hashtable.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/log.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/log.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/mp_rs_query.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/mp_rs_query.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/mp_ws_query.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/mp_ws_query.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/parser.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/parser.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/protocol.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/protocol.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/query.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/query.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/singletons.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/cached/singletons.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src_rel6/usr.sbin/cached/startup/cached#1 branch Differences ... ==== //depot/projects/soc2005/nsswitch_cached/src/include/Makefile#6 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.2 (Berkeley) 1/4/94 -# $FreeBSD: src/include/Makefile,v 1.254 2005/12/29 14:40:19 dfr Exp $ +# $FreeBSD: src/include/Makefile,v 1.256 2006/03/10 11:07:39 ru Exp $ # # Doing a "make install" builds /usr/include. @@ -72,18 +72,18 @@ INCS+= osreldate.h -osreldate.h: ${.CURDIR}/../sys/conf/newvers.sh \ - ${.CURDIR}/../sys/sys/param.h \ - ${.CURDIR}/Makefile +osreldate.h: ${.CURDIR}/../sys/conf/newvers.sh ${.CURDIR}/../sys/sys/param.h \ + ${.CURDIR}/Makefile @${ECHO} creating osreldate.h from newvers.sh - @setvar PARAMFILE ${.CURDIR}/../sys/sys/param.h; \ - MAKE=${MAKE} . ${.CURDIR}/../sys/conf/newvers.sh; \ - echo "$$COPYRIGHT" > osreldate.h; \ - echo "#ifdef _KERNEL" >> osreldate.h; \ - echo '#error " cannot be used in the kernel, use "' >> osreldate.h; \ - echo "#else" >> osreldate.h; \ - echo \#'undef __FreeBSD_version' >> osreldate.h; \ - echo \#'define __FreeBSD_version' $$RELDATE >> osreldate.h; \ + @MAKE=${MAKE}; \ + PARAMFILE=${.CURDIR}/../sys/sys/param.h; \ + . ${.CURDIR}/../sys/conf/newvers.sh; \ + echo "$$COPYRIGHT" > osreldate.h; \ + echo "#ifdef _KERNEL" >> osreldate.h; \ + echo "#error \" cannot be used in the kernel, use \"" >> osreldate.h; \ + echo "#else" >> osreldate.h; \ + echo "#undef __FreeBSD_version" >> osreldate.h; \ + echo "#define __FreeBSD_version $$RELDATE" >> osreldate.h; \ echo "#endif" >> osreldate.h .for i in ${LHDRS} ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/Makefile#5 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.2 (Berkeley) 2/3/94 -# $FreeBSD: src/lib/libc/Makefile,v 1.58 2005/12/29 04:10:52 grehan Exp $ +# $FreeBSD: src/lib/libc/Makefile,v 1.59 2006/03/13 00:56:02 deischen Exp $ # # All library objects contain FreeBSD revision strings by default; they may be # excluded as a space-saving measure. To produce a library that does @@ -18,6 +18,8 @@ CLEANFILES+=tags INSTALL_PIC_ARCHIVE= PRECIOUSLIB= +VERSION_DEF=Versions.def +VERSION_MAP=Version.map # Define (empty) variables so that make doesn't give substitution # errors if the included makefiles don't change these: @@ -97,7 +99,19 @@ cp -p ${.ALLSRC} ${DESTDIR}/sys/libkern/${MACHINE_ARCH} .endif +${VERSION_MAP}: ${SYM_MAPS} + awk -v vfile=${.CURDIR}/Versions.def -f ${.CURDIR}/version_gen.awk \ + ${SYM_MAPS} > ${.TARGET} + + .include # Disable warnings in contributed sources. CWARNFLAGS:= ${.IMPSRC:Ngdtoa_*.c:C/^.+$/${CWARNFLAGS}/} + +.if defined(SYMVER_ENABLED) +CFLAGS+= -DSYMBOL_VERSIONING +LDFLAGS= -Wl,--version-script=${.OBJDIR}/${VERSION_MAP} + +${SHLIB_NAME}: ${VERSION_MAP} +.endif ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/Makefile.inc#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/lib/libc/alpha/Makefile.inc,v 1.7 2005/01/15 05:23:56 das Exp $ +# $FreeBSD: src/lib/libc/alpha/Makefile.inc,v 1.8 2006/03/13 01:14:55 deischen Exp $ # # Machine dependent definitions for the alpha architecture. # @@ -10,3 +10,4 @@ # On Alpha, long double is just double precision. MDSRCS+=machdep_ldisd.c +SYM_MAPS+=${.CURDIR}/alpha/Symbol.map ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/Makefile.inc#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/lib/libc/amd64/Makefile.inc,v 1.3 2005/01/15 05:23:57 das Exp $ +# $FreeBSD: src/lib/libc/amd64/Makefile.inc,v 1.4 2006/03/13 01:14:55 deischen Exp $ # # Machine dependent definitions for the amd64 architecture. # @@ -11,3 +11,4 @@ # Long double is 80 bits GDTOASRCS+=strtopx.c MDSRCS+=machdep_ldisx.c +SYM_MAPS+=${.CURDIR}/amd64/Symbol.map ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/Makefile.inc#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/lib/libc/arm/Makefile.inc,v 1.3 2005/03/20 00:53:52 cognet Exp $ +# $FreeBSD: src/lib/libc/arm/Makefile.inc,v 1.4 2006/03/13 01:14:55 deischen Exp $ # # Machine dependent definitions for the arm architecture. # @@ -9,3 +9,4 @@ # Long double is just double precision. MDSRCS+=machdep_ldisd.c +SYM_MAPS+=${.CURDIR}/arm/Symbol.map ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/compat-43/Makefile.inc#3 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile.inc 8.1 (Berkeley) 6/2/93 -# $FreeBSD: src/lib/libc/compat-43/Makefile.inc,v 1.12 2002/11/18 09:50:54 ru Exp $ +# $FreeBSD: src/lib/libc/compat-43/Makefile.inc,v 1.13 2006/03/13 01:14:55 deischen Exp $ # compat-43 sources .PATH: ${.CURDIR}/${MACHINE_ARCH}/compat-43 ${.CURDIR}/compat-43 @@ -7,6 +7,8 @@ SRCS+= creat.c gethostid.c getwd.c killpg.c sethostid.c setpgrp.c \ setrgid.c setruid.c sigcompat.c +SYM_MAPS+=${.CURDIR}/compat-43/Symbol.map + MAN+= creat.2 killpg.2 sigpause.2 sigsetmask.2 sigvec.2 MAN+= gethostid.3 setruid.3 ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/Makefile.inc#3 (text+ko) ==== @@ -1,5 +1,5 @@ # from @(#)Makefile.inc 8.2 (Berkeley) 2/21/94 -# $FreeBSD: src/lib/libc/db/Makefile.inc,v 1.4 2002/11/18 09:50:54 ru Exp $ +# $FreeBSD: src/lib/libc/db/Makefile.inc,v 1.5 2006/03/13 01:14:56 deischen Exp $ # CFLAGS+=-D__DBINTERFACE_PRIVATE @@ -9,3 +9,5 @@ .include "${.CURDIR}/db/man/Makefile.inc" .include "${.CURDIR}/db/mpool/Makefile.inc" .include "${.CURDIR}/db/recno/Makefile.inc" + +SYM_MAPS+=${.CURDIR}/db/Symbol.map ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gdtoa/Makefile.inc#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/lib/libc/gdtoa/Makefile.inc,v 1.8 2005/01/27 05:44:16 das Exp $ +# $FreeBSD: src/lib/libc/gdtoa/Makefile.inc,v 1.9 2006/03/13 01:14:56 deischen Exp $ # netlib gdtoa sources .PATH: ${.CURDIR}/gdtoa @@ -8,6 +8,8 @@ hd_init.c hexnan.c misc.c smisc.c \ strtod.c strtodg.c strtof.c strtord.c sum.c ulp.c +SYM_MAPS+=${.CURDIR}/gdtoa/Symbol.map + CFLAGS+=-I${.CURDIR}/../../contrib/gdtoa .for src in ${GDTOASRCS} ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/Makefile.inc#6 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile.inc 8.6 (Berkeley) 5/4/95 -# $FreeBSD: src/lib/libc/gen/Makefile.inc,v 1.124 2005/12/01 15:56:05 jhb Exp $ +# $FreeBSD: src/lib/libc/gen/Makefile.inc,v 1.125 2006/03/13 01:14:56 deischen Exp $ # machine-independent gen sources .PATH: ${.CURDIR}/${MACHINE_ARCH}/gen ${.CURDIR}/gen @@ -33,6 +33,8 @@ usleep.c utime.c valloc.c vis.c wait.c wait3.c waitpid.c \ wordexp.c +SYM_MAPS+=${.CURDIR}/gen/Symbol.map + # machine-dependent gen sources .if exists(${.CURDIR}/${MACHINE_ARCH}/gen/Makefile.inc) .include "${.CURDIR}/${MACHINE_ARCH}/gen/Makefile.inc" ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/_spinlock_stub.c#3 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/gen/_spinlock_stub.c,v 1.8 2003/03/26 04:02:24 jeff Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/gen/_spinlock_stub.c,v 1.9 2006/03/13 01:17:39 deischen Exp $"); #include @@ -43,7 +43,7 @@ */ __weak_reference(_atomic_lock_stub, _atomic_lock); __weak_reference(_spinlock_stub, _spinlock); -__weak_reference(_spinlock_stub, _spinunlock); +__weak_reference(_spinunlock_stub, _spinunlock); __weak_reference(_spinlock_debug_stub, _spinlock_debug); ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gmon/Makefile.inc#3 (text+ko) ==== @@ -1,11 +1,13 @@ # from @(#)Makefile.inc 8.1 (Berkeley) 6/4/93 -# $FreeBSD: src/lib/libc/gmon/Makefile.inc,v 1.10 2004/05/18 22:49:15 peter Exp $ +# $FreeBSD: src/lib/libc/gmon/Makefile.inc,v 1.11 2006/03/13 01:14:56 deischen Exp $ # gmon sources .PATH: ${.CURDIR}/gmon SRCS+= gmon.c mcount.c +SYM_MAPS+=${.CURDIR}/gmon/Symbol.map + MAN+= moncontrol.3 MLINKS+=moncontrol.3 monstartup.3 ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/Makefile.inc#3 (text+ko) ==== @@ -1,5 +1,6 @@ -# $FreeBSD: src/lib/libc/i386/Makefile.inc,v 1.1 2005/01/15 05:23:57 das Exp $ +# $FreeBSD: src/lib/libc/i386/Makefile.inc,v 1.2 2006/03/13 01:14:57 deischen Exp $ # Long double is 80 bits GDTOASRCS+=strtopx.c MDSRCS+=machdep_ldisx.c +SYM_MAPS+=${.CURDIR}/i386/Symbol.map ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/Makefile.inc#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/lib/libc/ia64/Makefile.inc,v 1.4 2005/01/15 05:23:58 das Exp $ +# $FreeBSD: src/lib/libc/ia64/Makefile.inc,v 1.5 2006/03/13 01:14:57 deischen Exp $ # # Machine dependent definitions for the alpha architecture. # @@ -11,3 +11,4 @@ # Long double is 80 bits GDTOASRCS+=strtopx.c MDSRCS+=machdep_ldisx.c +SYM_MAPS+=${.CURDIR}/ia64/Symbol.map ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/include/un-namespace.h#4 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libc/include/un-namespace.h,v 1.14 2005/08/03 00:43:14 deischen Exp $ + * $FreeBSD: src/lib/libc/include/un-namespace.h,v 1.15 2006/03/10 09:58:18 davidxu Exp $ */ #ifndef _UN_NAMESPACE_H_ @@ -62,14 +62,40 @@ #undef nanosleep #undef open #undef poll +#undef pthread_atfork +#undef pthread_attr_destroy +#undef pthread_attr_getdetachstate +#undef pthread_attr_getguardsize +#undef pthread_attr_getstackaddr +#undef pthread_attr_getstacksize +#undef pthread_attr_getinheritsched +#undef pthread_attr_getschedparam +#undef pthread_attr_getschedpolicy +#undef pthread_attr_getscope +#undef pthread_attr_init +#undef pthread_attr_setdetachstate +#undef pthread_attr_setguardsize +#undef pthread_attr_setstackaddr +#undef pthread_attr_setstacksize +#undef pthread_attr_setinheritsched +#undef pthread_attr_setschedparam +#undef pthread_attr_setschedpolicy +#undef pthread_attr_setscope +#undef pthread_cancel +#undef pthread_cleanup_pop +#undef pthread_cleanup_push #undef pthread_cond_broadcast #undef pthread_cond_destroy #undef pthread_cond_init #undef pthread_cond_signal #undef pthread_cond_timedwait #undef pthread_cond_wait +#undef pthread_detach +#undef pthread_equal #undef pthread_exit #undef pthread_getspecific +#undef pthread_join +#undef pthread_kill #undef pthread_key_create #undef pthread_key_delete #undef pthread_main_np @@ -78,6 +104,7 @@ #undef pthread_mutex_lock #undef pthread_mutex_trylock #undef pthread_mutex_unlock +#undef pthread_mutexattr_destroy #undef pthread_mutexattr_init #undef pthread_mutexattr_destroy #undef pthread_mutexattr_settype @@ -90,8 +117,11 @@ #undef pthread_rwlock_trywrlock #undef pthread_rwlock_unlock #undef pthread_self +#undef pthread_setcancelstate +#undef pthread_setcanceltype #undef pthread_setspecific #undef pthread_sigmask +#undef pthread_testcancel #undef read #undef readv #undef recvfrom ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/Makefile.inc#3 (text+ko) ==== @@ -1,5 +1,5 @@ # from @(#)Makefile.inc 8.1 (Berkeley) 6/4/93 -# $FreeBSD: src/lib/libc/locale/Makefile.inc,v 1.60 2005/01/09 03:55:13 tjr Exp $ +# $FreeBSD: src/lib/libc/locale/Makefile.inc,v 1.61 2006/03/13 01:14:57 deischen Exp $ # locale sources .PATH: ${.CURDIR}/${MACHINE_ARCH}/locale ${.CURDIR}/locale @@ -22,6 +22,8 @@ wcstoul.c wcstoull.c wcstoumax.c wctob.c wctomb.c wctrans.c wctype.c \ wcwidth.c +SYM_MAPS+=${.CURDIR}/locale/Symbol.map + MAN+= btowc.3 \ ctype.3 digittoint.3 isalnum.3 isalpha.3 isascii.3 isblank.3 iscntrl.3 \ isdigit.3 isgraph.3 isideogram.3 islower.3 isphonogram.3 isprint.3 \ ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/Makefile.inc#6 (text+ko) ==== @@ -1,5 +1,5 @@ # from @(#)Makefile.inc 8.2 (Berkeley) 9/5/93 -# $FreeBSD: src/lib/libc/net/Makefile.inc,v 1.55 2005/08/06 16:53:54 phk Exp $ +# $FreeBSD: src/lib/libc/net/Makefile.inc,v 1.56 2006/03/13 01:14:57 deischen Exp $ # machine-independent net sources .PATH: ${.CURDIR}/${MACHINE_ARCH}/net ${.CURDIR}/net @@ -21,6 +21,8 @@ res_debug.c res_init.c res_mkquery.c res_mkupdate.c res_query.c res_send.c \ res_update.c rthdr.c send.c sockatmark.c vars.c +SYM_MAPS+=${.CURDIR}/net/Symbol.map + CFLAGS+=-DINET6 -I${.OBJDIR} YFLAGS+=-p_nsyy ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/nls/Makefile.inc#3 (text+ko) ==== @@ -1,8 +1,10 @@ # from $NetBSD: Makefile.inc,v 1.7 1995/02/27 13:06:20 cgd Exp $ -# $FreeBSD: src/lib/libc/nls/Makefile.inc,v 1.10 2005/02/27 22:17:47 phantom Exp $ +# $FreeBSD: src/lib/libc/nls/Makefile.inc,v 1.11 2006/03/13 01:14:57 deischen Exp $ .PATH: ${.CURDIR}/nls SRCS+= msgcat.c +SYM_MAPS+=${.CURDIR}/nls/Symbol.map + MAN+= catclose.3 catgets.3 catopen.3 ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/Makefile.inc#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/lib/libc/posix1e/Makefile.inc,v 1.17 2005/06/03 15:50:55 imp Exp $ +# $FreeBSD: src/lib/libc/posix1e/Makefile.inc,v 1.18 2006/03/13 01:14:58 deischen Exp $ .PATH: ${.CURDIR}/posix1e @@ -22,6 +22,8 @@ mac_get.c \ mac_set.c +SYM_MAPS+=${.CURDIR}/posix1e/Symbol.map + MAN+= acl.3 \ acl_add_perm.3 \ acl_calc_mask.3 \ ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/powerpc/Makefile.inc#3 (text+ko) ==== @@ -1,5 +1,5 @@ -# $FreeBSD: src/lib/libc/powerpc/Makefile.inc,v 1.1 2005/01/15 05:26:32 das Exp $ +# $FreeBSD: src/lib/libc/powerpc/Makefile.inc,v 1.2 2006/03/13 01:14:58 deischen Exp $ # Long double is 64-bits MDSRCS+=machdep_ldisd.c - +SYM_MAPS+=${.CURDIR}/powerpc/Symbol.map ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/quad/Makefile.inc#3 (text+ko) ==== @@ -1,5 +1,5 @@ # from @(#)Makefile.inc 8.1 (Berkeley) 6/4/93 -# $FreeBSD: src/lib/libc/quad/Makefile.inc,v 1.9 2002/11/18 09:50:56 ru Exp $ +# $FreeBSD: src/lib/libc/quad/Makefile.inc,v 1.10 2006/03/13 01:14:58 deischen Exp $ # Quad support, if needed .PATH: ${.CURDIR}/${MACHINE_ARCH}/quad ${.CURDIR}/quad @@ -17,3 +17,5 @@ xordi3.c .endif + +SYM_MAP+=${.CURDIR}/quad/Symbol.map ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/regex/Makefile.inc#3 (text+ko) ==== @@ -1,5 +1,5 @@ # from @(#)Makefile.inc 8.1 (Berkeley) 6/4/93 -# $FreeBSD: src/lib/libc/regex/Makefile.inc,v 1.7 2002/11/18 09:50:56 ru Exp $ +# $FreeBSD: src/lib/libc/regex/Makefile.inc,v 1.8 2006/03/13 01:14:58 deischen Exp $ # regex sources .PATH: ${.CURDIR}/regex @@ -8,6 +8,8 @@ SRCS+= regcomp.c regerror.c regexec.c regfree.c +SYM_MAPS+=${.CURDIR}/regex/Symbol.map + MAN+= regex.3 MAN+= re_format.7 ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/rpc/Makefile.inc#4 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 5.11 (Berkeley) 9/6/90 -# $FreeBSD: src/lib/libc/rpc/Makefile.inc,v 1.27 2005/09/11 20:59:52 stefanf Exp $ +# $FreeBSD: src/lib/libc/rpc/Makefile.inc,v 1.28 2006/03/13 01:14:59 deischen Exp $ .PATH: ${.CURDIR}/rpc ${.CURDIR}/. SRCS+= auth_none.c auth_unix.c authunix_prot.c bindresvport.c clnt_bcast.c \ @@ -25,6 +25,8 @@ # generated sources SRCS+= crypt_clnt.c crypt_xdr.c crypt.h +SYM_MAPS+=${.CURDIR}/rpc/Symbol.map + CFLAGS+= -DBROKEN_DES -DPORTMAP -DDES_BUILTIN CFLAGS+= -I${.CURDIR}/rpc ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/softfloat/Makefile.inc#3 (text+ko) ==== @@ -1,5 +1,5 @@ # $NetBSD: Makefile.inc,v 1.3 2003/05/06 08:58:20 rearnsha Exp $ -# $FreeBSD: src/lib/libc/softfloat/Makefile.inc,v 1.2 2005/03/15 15:53:39 das Exp $ +# $FreeBSD: src/lib/libc/softfloat/Makefile.inc,v 1.3 2006/03/13 01:14:59 deischen Exp $ SOFTFLOAT_BITS?=64 .PATH: ${MACHINE_ARCH}/softfloat \ @@ -16,3 +16,5 @@ SRCS+= eqsf2.c nesf2.c gtsf2.c gesf2.c ltsf2.c lesf2.c negsf2.c \ eqdf2.c nedf2.c gtdf2.c gedf2.c ltdf2.c ledf2.c negdf2.c \ unordsf2.c unorddf2.c + +SYM_MAPS+= ${.CURDIR}/softfloat/Symbol.map ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/sparc64/Makefile.inc#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/lib/libc/sparc64/Makefile.inc,v 1.4 2005/01/15 05:23:58 das Exp $ +# $FreeBSD: src/lib/libc/sparc64/Makefile.inc,v 1.5 2006/03/13 01:14:59 deischen Exp $ # # Machine dependent definitions for the ultra sparc architecture. # @@ -13,3 +13,4 @@ # Long double is quad precision GDTOASRCS+=strtopQ.c MDSRCS+=machdep_ldisQ.c +SYM_MAPS+=${.CURDIR}/sparc64/Symbol.map ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/stdio/Makefile.inc#4 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile.inc 8.3 (Berkeley) 4/17/94 -# $FreeBSD: src/lib/libc/stdio/Makefile.inc,v 1.35 2006/01/25 12:45:24 phk Exp $ +# $FreeBSD: src/lib/libc/stdio/Makefile.inc,v 1.36 2006/03/13 01:14:59 deischen Exp $ # stdio sources .PATH: ${.CURDIR}/stdio @@ -27,6 +27,8 @@ SRCS+= xprintf_errno.c xprintf_hexdump.c xprintf_quote.c SRCS+= xprintf_time.c xprintf_vis.c +SYM_MAPS+= ${.CURDIR}/stdio/Symbol.map + MAN+= fclose.3 ferror.3 fflush.3 fgetln.3 fgets.3 fgetwln.3 fgetws.3 \ flockfile.3 \ fopen.3 fputs.3 \ ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/stdlib/Makefile.inc#4 (text+ko) ==== @@ -1,5 +1,5 @@ # from @(#)Makefile.inc 8.3 (Berkeley) 2/4/95 -# $FreeBSD: src/lib/libc/stdlib/Makefile.inc,v 1.50 2006/01/12 07:28:20 jasone Exp $ +# $FreeBSD: src/lib/libc/stdlib/Makefile.inc,v 1.51 2006/03/13 01:14:59 deischen Exp $ # machine-independent stdlib sources .PATH: ${.CURDIR}/${MACHINE_ARCH}/stdlib ${.CURDIR}/stdlib @@ -13,6 +13,8 @@ strtol.c strtoll.c strtoq.c strtoul.c strtoull.c strtoumax.c strtouq.c \ system.c tdelete.c tfind.c tsearch.c twalk.c +SYM_MAPS+= ${.CURDIR}/stdlib/Symbol.map + # machine-dependent stdlib sources .if exists(${.CURDIR}/${MACHINE_ARCH}/stdlib/Makefile.inc) .include "${.CURDIR}/${MACHINE_ARCH}/stdlib/Makefile.inc" ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/stdtime/Makefile.inc#3 (text+ko) ==== @@ -1,11 +1,13 @@ # Makefile.inc,v 1.2 1994/09/13 21:26:01 wollman Exp -# $FreeBSD: src/lib/libc/stdtime/Makefile.inc,v 1.14 2002/11/18 09:50:56 ru Exp $ +# $FreeBSD: src/lib/libc/stdtime/Makefile.inc,v 1.15 2006/03/13 01:15:00 deischen Exp $ .PATH: ${.CURDIR}/stdtime ${.CURDIR}/../locale SRCS+= asctime.c difftime.c localtime.c strftime.c strptime.c timelocal.c \ time32.c +SYM_MAPS+= ${.CURDIR}/stdtime/Symbol.map + MAN+= ctime.3 strftime.3 strptime.3 time2posix.3 MAN+= tzfile.5 ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/string/Makefile.inc#5 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile.inc 8.1 (Berkeley) 6/4/93 -# $FreeBSD: src/lib/libc/string/Makefile.inc,v 1.36 2005/08/25 18:26:58 andre Exp $ +# $FreeBSD: src/lib/libc/string/Makefile.inc,v 1.37 2006/03/13 01:15:00 deischen Exp $ .PATH: ${.CURDIR}/${MACHINE_ARCH}/string ${.CURDIR}/string @@ -20,6 +20,8 @@ wmemcmp.c \ wmemcpy.c wmemmove.c wmemset.c +SYM_MAPS+= ${.CURDIR}/string/Symbol.map + # machine-dependent string sources .if exists(${.CURDIR}/${MACHINE_ARCH}/string/Makefile.inc) ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/sys/Makefile.inc#7 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile.inc 8.3 (Berkeley) 10/24/94 -# $FreeBSD: src/lib/libc/sys/Makefile.inc,v 1.120 2006/03/01 06:25:46 davidxu Exp $ +# $FreeBSD: src/lib/libc/sys/Makefile.inc,v 1.121 2006/03/13 01:15:00 deischen Exp $ # sys sources .PATH: ${.CURDIR}/${MACHINE_ARCH}/sys ${.CURDIR}/sys @@ -43,6 +43,8 @@ SRCS+= ${SASM} ${SPSEUDO} +SYM_MAPS+= ${.CURDIR}/sys/Symbol.map + # Generated files CLEANFILES+= ${SASM} ${SPSEUDO} ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/uuid/Makefile.inc#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/lib/libc/uuid/Makefile.inc,v 1.3 2002/11/18 09:50:57 ru Exp $ +# $FreeBSD: src/lib/libc/uuid/Makefile.inc,v 1.4 2006/03/13 01:15:01 deischen Exp $ # DCE 1.1 UUID implementation sources @@ -6,6 +6,7 @@ SRCS+= uuid_compare.c uuid_create.c uuid_create_nil.c uuid_equal.c \ uuid_from_string.c uuid_hash.c uuid_is_nil.c uuid_to_string.c +SYM_MAPS+= ${.CURDIR}/uuid/Symbol.map MAN+= uuid.3 MLINKS+=uuid.3 uuid_compare.3 ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/xdr/Makefile.inc#3 (text+ko) ==== @@ -1,10 +1,12 @@ # @(#)Makefile 5.11 (Berkeley) 9/6/90 -# $FreeBSD: src/lib/libc/xdr/Makefile.inc,v 1.14 2002/11/18 09:50:57 ru Exp $ +# $FreeBSD: src/lib/libc/xdr/Makefile.inc,v 1.15 2006/03/13 01:15:01 deischen Exp $ .PATH: ${.CURDIR}/xdr ${.CURDIR}/. SRCS+= xdr.c xdr_array.c xdr_float.c xdr_mem.c \ xdr_rec.c xdr_reference.c xdr_stdio.c +SYM_MAPS+= ${.CURDIR}/xdr/Symbol.map + MAN+= xdr.3 MLINKS+= rpc_xdr.3 xdr_accepted_reply.3 \ ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/yp/Makefile.inc#3 (text+ko) ==== @@ -1,5 +1,5 @@ # from: @(#)Makefile.inc 5.3 (Berkeley) 2/20/91 -# $FreeBSD: src/lib/libc/yp/Makefile.inc,v 1.9 2002/11/18 09:50:57 ru Exp $ +# $FreeBSD: src/lib/libc/yp/Makefile.inc,v 1.10 2006/03/13 01:15:01 deischen Exp $ # yp sources .PATH: ${.CURDIR}/yp @@ -7,6 +7,8 @@ SRCS+= xdryp.c yp.h yp_xdr.c yplib.c CLEANFILES+= yp.h yp_xdr.c +SYM_MAPS+= ${.CURDIR}/yp/Symbol.map + RPCSRC= ${DESTDIR}/usr/include/rpcsvc/yp.x RPCGEN= rpcgen -C ==== //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/bthidd/hid.c#3 (text+ko) ==== @@ -26,7 +26,7 @@ * SUCH DAMAGE. * * $Id: hid.c,v 1.4 2004/11/17 21:59:42 max Exp $ - * $FreeBSD: src/usr.sbin/bluetooth/bthidd/hid.c,v 1.2 2004/11/18 18:05:15 emax Exp $ + * $FreeBSD: src/usr.sbin/bluetooth/bthidd/hid.c,v 1.3 2006/03/13 23:59:43 emax Exp $ */ #include @@ -289,7 +289,7 @@ val = 0x68; break; - case 0227: /* WWW Refresh */ + case 0x227: /* WWW Refresh */ val = 0x67; break; ==== //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bsnmpd/bsnmpd/Makefile#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/usr.sbin/bsnmpd/bsnmpd/Makefile,v 1.12 2005/10/04 15:03:39 harti Exp $ +# $FreeBSD: src/usr.sbin/bsnmpd/bsnmpd/Makefile,v 1.13 2006/03/13 09:23:51 harti Exp $ # # Author: Harti Brandt @@ -25,7 +25,7 @@ CFLAGS+= -I${CONTRIB}/lib -I${CONTRIB}/snmpd -I. -DUSE_LIBBEGEMOT CFLAGS+= -DUSE_TCPWRAPPERS -DQUADFMT='"llu"' -DQUADXFMT='"llx"' -CFLAGS+= -DHAVE_STDINT_H -DHAVE_INTTYPES_H +CFLAGS+= -DHAVE_STDINT_H -DHAVE_INTTYPES_H -DHAVE_ERR_H -DHAVE_STRLCPY DPADD= ${LIBBEGEMOT} ${LIBBSNMP} LDADD= -lbegemot -lbsnmp -lwrap ==== //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/filters.ru/koi2855/Makefile#4 (text+ko) ==== @@ -1,7 +1,7 @@ -# $FreeBSD: src/usr.sbin/lpr/filters.ru/koi2855/Makefile,v 1.6 2006/03/08 22:28:12 gad Exp $ +# $FreeBSD: src/usr.sbin/lpr/filters.ru/koi2855/Makefile,v 1.7 2006/03/09 19:52:44 gad Exp $ PROG= koi2855 -MAN= +NO_MAN= CFLAGS+= -I${.CURDIR}/../../common_source ==== //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/filters.ru/koi2alt/Makefile#4 (text+ko) ==== @@ -1,7 +1,7 @@ -# $FreeBSD: src/usr.sbin/lpr/filters.ru/koi2alt/Makefile,v 1.6 2006/03/08 22:28:12 gad Exp $ +# $FreeBSD: src/usr.sbin/lpr/filters.ru/koi2alt/Makefile,v 1.7 2006/03/09 19:52:44 gad Exp $ PROG= koi2alt -MAN= +NO_MAN= CFLAGS+= -I${.CURDIR}/../../common_source ==== //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/filters/Makefile#4 (text+ko) ==== @@ -1,10 +1,10 @@ # @(#)Makefile 8.1 (Berkeley) 6/6/93 -# $FreeBSD: src/usr.sbin/lpr/filters/Makefile,v 1.6 2006/03/08 22:28:12 gad Exp $ +# $FreeBSD: src/usr.sbin/lpr/filters/Makefile,v 1.7 2006/03/09 19:52:43 gad Exp $ BINDIR= /usr/libexec/lpr PROG= lpf -MAN= +NO_MAN= CFLAGS+= -I${.CURDIR}/../common_source ==== //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pkg_install/add/add.h#4 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/usr.sbin/pkg_install/add/add.h,v 1.13 2006/01/09 18:27:20 flz Exp $ */ +/* $FreeBSD: src/usr.sbin/pkg_install/add/add.h,v 1.14 2006/03/09 14:49:19 phk Exp $ */ /* * FreeBSD install - a package for the installation and maintainance @@ -29,6 +29,7 @@ extern Boolean PrefixRecursive; extern Boolean NoInstall; extern Boolean NoRecord; +extern Boolean FailOnAlreadyInstalled; extern Boolean KeepPackage; extern char *Mode; extern char *Owner; ==== //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pkg_install/add/main.c#4 (text+ko) ==== @@ -19,7 +19,7 @@ */ #include -__FBSDID("$FreeBSD: src/usr.sbin/pkg_install/add/main.c,v 1.66 2006/01/09 18:27:20 flz Exp $"); +__FBSDID("$FreeBSD: src/usr.sbin/pkg_install/add/main.c,v 1.67 2006/03/09 14:49:19 phk Exp $"); #include #include @@ -27,7 +27,7 @@ #include "lib.h" #include "add.h" -static char Options[] = "hvIRfnrp:P:SMt:C:K"; +static char Options[] = "hvIRfFnrp:P:SMt:C:K"; char *Prefix = NULL; Boolean PrefixRecursive = FALSE; @@ -36,6 +36,7 @@ Boolean NoRecord = FALSE; Boolean Remote = FALSE; Boolean KeepPackage = FALSE; +Boolean FailOnAlreadyInstalled = TRUE; char *Mode = NULL; char *Owner = NULL; @@ -132,6 +133,10 @@ Force = TRUE; break; + case 'F': + FailOnAlreadyInstalled = FALSE; + break; + case 'K': KeepPackage = TRUE; break; ==== //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pkg_install/add/perform.c#4 (text+ko) ==== @@ -19,7 +19,7 @@ */ #include -__FBSDID("$FreeBSD: src/usr.sbin/pkg_install/add/perform.c,v 1.79 2006/01/09 18:27:20 flz Exp $"); +__FBSDID("$FreeBSD: src/usr.sbin/pkg_install/add/perform.c,v 1.80 2006/03/09 14:49:19 phk Exp $"); #include #include @@ -245,9 +245,9 @@ */ if ((isinstalledpkg(Plist.name) > 0 || matchbyorigin(Plist.origin, NULL) != NULL) && !Force) { - warnx("package '%s' or its older version already installed", - Plist.name); - code = 1; + warnx("package '%s' or its older version already installed%s", + Plist.name, FailOnAlreadyInstalled ? "" : " (ignored)"); + code = FailOnAlreadyInstalled != FALSE; goto success; /* close enough for government work */ } ==== //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pkg_install/add/pkg_add.1#4 (text+ko) ==== @@ -13,7 +13,7 @@ .\" .\" Jordan K. Hubbard .\" -.\" $FreeBSD: src/usr.sbin/pkg_install/add/pkg_add.1,v 1.70 2006/01/29 20:30:55 krion Exp $ +.\" $FreeBSD: src/usr.sbin/pkg_install/add/pkg_add.1,v 1.71 2006/03/09 14:49:19 phk Exp $ .\" .Dd January 9, 2006 .Dt PKG_ADD 1 @@ -23,7 +23,7 @@ .Nd a utility for installing software package distributions .Sh SYNOPSIS .Nm -.Op Fl vInfrRMSK +.Op Fl vInfFrRMSK .Op Fl t Ar template .Op Fl p Ar prefix .Op Fl P Ar prefix @@ -109,6 +109,8 @@ .Nm will still try to find and auto-install missing prerequisite packages, a failure to find one will not be fatal. +.It Fl F +Already installed packages are not an error. .It Fl p Ar prefix Set .Ar prefix ==== //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/rpcbind/Makefile#4 (text+ko) ==== @@ -1,19 +1,13 @@ # $NetBSD: Makefile,v 1.3 2000/06/20 13:56:43 fvdl Exp $ -# $FreeBSD: src/usr.sbin/rpcbind/Makefile,v 1.6 2006/03/06 10:07:52 matteo Exp $ - -LIBCDIR= ${.CURDIR}/../../lib/libc -LIBCRPCDIR= ${LIBCDIR}/rpc -LIBCINCLUDE= ${LIBCDIR}/include +# $FreeBSD: src/usr.sbin/rpcbind/Makefile,v 1.7 2006/03/10 07:58:02 deischen Exp $ -.PATH: ${LIBCRPCDIR} PROG= rpcbind MAN= rpcbind.8 SRCS= check_bound.c rpcb_stat.c rpcb_svc_4.c rpcbind.c pmap_svc.c \ - rpcb_svc.c rpcb_svc_com.c security.c warmstart.c util.c \ - rpc_generic.c + rpcb_svc.c rpcb_svc_com.c security.c warmstart.c util.c -CFLAGS+= -I${LIBCRPCDIR} -I${LIBCINCLUDE} -DPORTMAP -DLIBWRAP +CFLAGS+= -DPORTMAP -DLIBWRAP .if !defined(NO_INET6) CFLAGS+= -DINET6 ==== //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/sysinstall/Makefile#6 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/usr.sbin/sysinstall/Makefile,v 1.139 2006/03/08 18:02:31 sam Exp $ +# $FreeBSD: src/usr.sbin/sysinstall/Makefile,v 1.141 2006/03/11 19:00:05 sam Exp $ .if ${MACHINE_ARCH} != "ia64" _wizard= wizard.c @@ -45,10 +45,11 @@ # that is painful because of media changes and the structure of # sysinstall so for now it's a priori. # -.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "amd64" >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Mar 14 15:20:56 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6B2FF16A422; Tue, 14 Mar 2006 15:20:56 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 19A8D16A41F for ; Tue, 14 Mar 2006 15:20:56 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D93C143D46 for ; Tue, 14 Mar 2006 15:20:55 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2EFKtsk060267 for ; Tue, 14 Mar 2006 15:20:55 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2EFKtws060264 for perforce@freebsd.org; Tue, 14 Mar 2006 15:20:55 GMT (envelope-from jhb@freebsd.org) Date: Tue, 14 Mar 2006 15:20:55 GMT Message-Id: <200603141520.k2EFKtws060264@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 93291 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Mar 2006 15:20:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=93291 Change 93291 by jhb@jhb_slimer on 2006/03/14 15:19:55 Move this to where david committed it in CVS. Affected files ... .. //depot/projects/smpng/sys/kern/kern_thread.c#87 edit Differences ... ==== //depot/projects/smpng/sys/kern/kern_thread.c#87 (text+ko) ==== @@ -499,6 +499,23 @@ */ sched_thread_exit(td); + /* Do the same timestamp bookkeeping that mi_switch() would do. */ + new_switchtime = cpu_ticks(); + p->p_rux.rux_runtime += (new_switchtime - PCPU_GET(switchtime)); + p->p_rux.rux_uticks += td->td_uticks; + p->p_rux.rux_sticks += td->td_sticks; + p->p_rux.rux_iticks += td->td_iticks; + PCPU_SET(switchtime, new_switchtime); + PCPU_SET(switchticks, ticks); + cnt.v_swtch++; + + /* + * If we are the last thread, the process is dying, so add our + * usage into the usage of all our children. + */ + if (p->p_numthreads == 1) + ruadd(p->p_ru, &p->p_rux, &p->p_stats->p_cru, &p->p_crux); + /* * The last thread is left attached to the process * So that the whole bundle gets recycled. Skip @@ -587,23 +604,6 @@ */ } - /* Do the same timestamp bookkeeping that mi_switch() would do. */ - new_switchtime = cpu_ticks(); - p->p_rux.rux_runtime += (new_switchtime - PCPU_GET(switchtime)); - p->p_rux.rux_uticks += td->td_uticks; - p->p_rux.rux_sticks += td->td_sticks; - p->p_rux.rux_iticks += td->td_iticks; - PCPU_SET(switchtime, new_switchtime); - PCPU_SET(switchticks, ticks); - cnt.v_swtch++; - - /* - * If we are the last thread, the process is dying, so add our - * usage into the usage of all our children. - */ - if (p->p_numthreads == 1) - ruadd(p->p_ru, &p->p_rux, &p->p_stats->p_cru, &p->p_crux); - PROC_UNLOCK(p); td->td_state = TDS_INACTIVE; CTR1(KTR_PROC, "thread_exit: cpu_throw() thread %p", td); From owner-p4-projects@FreeBSD.ORG Tue Mar 14 16:34:50 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 738A016A422; Tue, 14 Mar 2006 16:34:50 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 354FF16A41F for ; Tue, 14 Mar 2006 16:34:50 +0000 (UTC) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E205B43D49 for ; Tue, 14 Mar 2006 16:34:49 +0000 (GMT) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2EGYnHO062958 for ; Tue, 14 Mar 2006 16:34:49 GMT (envelope-from millert@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2EGYnBA062955 for perforce@freebsd.org; Tue, 14 Mar 2006 16:34:49 GMT (envelope-from millert@freebsd.org) Date: Tue, 14 Mar 2006 16:34:49 GMT Message-Id: <200603141634.k2EGYnBA062955@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to millert@freebsd.org using -f From: Todd Miller To: Perforce Change Reviews Cc: Subject: PERFORCE change 93294 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Mar 2006 16:34:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=93294 Change 93294 by millert@millert_p3 on 2006/03/14 16:34:36 Remove obsolete file. Affected files ... .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/ss/services_private.h#3 delete Differences ... From owner-p4-projects@FreeBSD.ORG Tue Mar 14 21:22:42 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 850AE16A424; Tue, 14 Mar 2006 21:22:42 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CAE2016A420 for ; Tue, 14 Mar 2006 21:22:41 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2B98643D46 for ; Tue, 14 Mar 2006 21:22:41 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2ELMfAs089540 for ; Tue, 14 Mar 2006 21:22:41 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2ELMeWO089536 for perforce@freebsd.org; Tue, 14 Mar 2006 21:22:40 GMT (envelope-from jhb@freebsd.org) Date: Tue, 14 Mar 2006 21:22:40 GMT Message-Id: <200603142122.k2ELMeWO089536@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 93305 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Mar 2006 21:22:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=93305 Change 93305 by jhb@jhb_slimer on 2006/03/14 21:22:36 IFC @93304. Affected files ... .. //depot/projects/smpng/sys/amd64/amd64/apic_vector.S#13 integrate .. //depot/projects/smpng/sys/amd64/amd64/db_trace.c#17 integrate .. //depot/projects/smpng/sys/amd64/amd64/io_apic.c#14 integrate .. //depot/projects/smpng/sys/amd64/amd64/machdep.c#51 integrate .. //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#34 integrate .. //depot/projects/smpng/sys/amd64/amd64/pmap.c#52 integrate .. //depot/projects/smpng/sys/amd64/amd64/trap.c#43 integrate .. //depot/projects/smpng/sys/amd64/include/asmacros.h#6 integrate .. //depot/projects/smpng/sys/amd64/include/bus.h#8 integrate .. //depot/projects/smpng/sys/amd64/include/pmap.h#20 integrate .. //depot/projects/smpng/sys/amd64/include/trap.h#3 integrate .. //depot/projects/smpng/sys/amd64/linux32/linux32_machdep.c#10 integrate .. //depot/projects/smpng/sys/amd64/pci/pci_bus.c#16 integrate .. //depot/projects/smpng/sys/arm/arm/in_cksum.c#6 integrate .. //depot/projects/smpng/sys/arm/include/in_cksum.h#4 integrate .. //depot/projects/smpng/sys/boot/i386/libi386/Makefile#15 integrate .. //depot/projects/smpng/sys/boot/i386/libi386/libi386.h#11 integrate .. //depot/projects/smpng/sys/boot/i386/libi386/smbios.c#4 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_da.c#65 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_misc.c#34 integrate .. //depot/projects/smpng/sys/conf/files#169 integrate .. //depot/projects/smpng/sys/contrib/pf/net/if_pflog.h#7 integrate .. //depot/projects/smpng/sys/dev/ata/ata-all.c#81 integrate .. //depot/projects/smpng/sys/dev/ata/ata-all.h#46 integrate .. //depot/projects/smpng/sys/dev/ata/ata-chipset.c#65 integrate .. //depot/projects/smpng/sys/dev/ata/ata-disk.c#57 integrate .. //depot/projects/smpng/sys/dev/ata/ata-pci.h#42 integrate .. //depot/projects/smpng/sys/dev/ata/ata-queue.c#33 integrate .. //depot/projects/smpng/sys/dev/ata/ata-raid.c#46 integrate .. //depot/projects/smpng/sys/dev/ata/ata-usb.c#1 branch .. //depot/projects/smpng/sys/dev/ata/atapi-cd.c#61 integrate .. //depot/projects/smpng/sys/dev/ata/atapi-fd.c#32 integrate .. //depot/projects/smpng/sys/dev/ath/ath_rate/sample/sample.c#7 integrate .. //depot/projects/smpng/sys/dev/cs/if_cs.c#17 integrate .. //depot/projects/smpng/sys/dev/exca/exca.c#19 integrate .. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_logging.c#5 integrate .. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_mod.c#13 integrate .. //depot/projects/smpng/sys/dev/ieee488/upd7210.c#7 integrate .. //depot/projects/smpng/sys/dev/ipw/if_ipw.c#10 integrate .. //depot/projects/smpng/sys/dev/ipw/if_ipwreg.h#2 integrate .. //depot/projects/smpng/sys/dev/ipw/if_ipwvar.h#3 integrate .. //depot/projects/smpng/sys/dev/iwi/if_iwi.c#15 integrate .. //depot/projects/smpng/sys/dev/iwi/if_iwireg.h#7 integrate .. //depot/projects/smpng/sys/dev/iwi/if_iwivar.h#6 integrate .. //depot/projects/smpng/sys/fs/fifofs/fifo_vnops.c#39 integrate .. //depot/projects/smpng/sys/fs/nullfs/null_vnops.c#27 integrate .. //depot/projects/smpng/sys/geom/geom_io.c#41 integrate .. //depot/projects/smpng/sys/geom/mirror/g_mirror.c#26 integrate .. //depot/projects/smpng/sys/geom/mirror/g_mirror.h#11 integrate .. //depot/projects/smpng/sys/geom/mirror/g_mirror_ctl.c#9 integrate .. //depot/projects/smpng/sys/geom/raid3/g_raid3.c#23 integrate .. //depot/projects/smpng/sys/geom/raid3/g_raid3.h#11 integrate .. //depot/projects/smpng/sys/geom/raid3/g_raid3_ctl.c#10 integrate .. //depot/projects/smpng/sys/gnu/fs/xfs/FreeBSD/support/kdb.c#2 integrate .. //depot/projects/smpng/sys/i386/i386/machdep.c#104 integrate .. //depot/projects/smpng/sys/i386/i386/mp_machdep.c#99 integrate .. //depot/projects/smpng/sys/i386/i386/vm_machdep.c#76 integrate .. //depot/projects/smpng/sys/isofs/cd9660/cd9660_rrip.c#10 integrate .. //depot/projects/smpng/sys/kern/kern_environment.c#20 integrate .. //depot/projects/smpng/sys/kern/kern_exec.c#95 integrate .. //depot/projects/smpng/sys/kern/kern_exit.c#115 integrate .. //depot/projects/smpng/sys/kern/kern_mbuf.c#17 integrate .. //depot/projects/smpng/sys/kern/kern_resource.c#61 integrate .. //depot/projects/smpng/sys/kern/kern_sig.c#120 integrate .. //depot/projects/smpng/sys/kern/kern_tc.c#39 integrate .. //depot/projects/smpng/sys/kern/kern_thread.c#88 integrate .. //depot/projects/smpng/sys/kern/subr_prf.c#44 integrate .. //depot/projects/smpng/sys/kern/uipc_mbuf.c#45 integrate .. //depot/projects/smpng/sys/kern/vfs_mount.c#59 integrate .. //depot/projects/smpng/sys/kern/vfs_subr.c#124 integrate .. //depot/projects/smpng/sys/kern/vfs_vnops.c#67 integrate .. //depot/projects/smpng/sys/modules/ata/atausb/Makefile#1 branch .. //depot/projects/smpng/sys/modules/iwi/Makefile#4 integrate .. //depot/projects/smpng/sys/modules/pf/Makefile#10 integrate .. //depot/projects/smpng/sys/modules/pflog/Makefile#5 integrate .. //depot/projects/smpng/sys/net/if_vlan.c#47 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_proto.c#19 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_vnops.c#57 integrate .. //depot/projects/smpng/sys/nfsserver/nfs_serv.c#45 integrate .. //depot/projects/smpng/sys/nfsserver/nfs_srvsock.c#26 integrate .. //depot/projects/smpng/sys/pc98/pc98/machdep.c#11 integrate .. //depot/projects/smpng/sys/sys/cdefs.h#33 integrate .. //depot/projects/smpng/sys/sys/disk.h#13 integrate .. //depot/projects/smpng/sys/sys/hash.h#1 branch .. //depot/projects/smpng/sys/sys/mount.h#51 integrate .. //depot/projects/smpng/sys/sys/proc.h#166 integrate .. //depot/projects/smpng/sys/sys/vnode.h#72 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_extern.h#21 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_snapshot.c#56 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_softdep.c#53 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_vfsops.c#81 integrate .. //depot/projects/smpng/sys/ufs/ufs/ufs_inode.c#23 integrate .. //depot/projects/smpng/sys/ufs/ufs/ufs_lookup.c#24 integrate .. //depot/projects/smpng/sys/ufs/ufs/ufs_quota.c#32 integrate .. //depot/projects/smpng/sys/ufs/ufs/ufsmount.h#15 integrate .. //depot/projects/smpng/sys/vm/swap_pager.c#61 integrate .. //depot/projects/smpng/sys/vm/vm_contig.c#37 integrate .. //depot/projects/smpng/sys/vm/vm_fault.c#56 integrate .. //depot/projects/smpng/sys/vm/vm_map.c#78 integrate .. //depot/projects/smpng/sys/vm/vm_page.c#73 integrate .. //depot/projects/smpng/sys/vm/vm_pageq.c#17 integrate Differences ... ==== //depot/projects/smpng/sys/amd64/amd64/apic_vector.S#13 (text+ko) ==== @@ -28,7 +28,7 @@ * SUCH DAMAGE. * * from: vector.s, 386BSD 0.1 unknown origin - * $FreeBSD: src/sys/amd64/amd64/apic_vector.S,v 1.107 2005/12/14 21:47:01 jhb Exp $ + * $FreeBSD: src/sys/amd64/amd64/apic_vector.S,v 1.108 2006/03/13 23:55:31 peter Exp $ */ /* @@ -188,11 +188,7 @@ jmp doreti /* - * Executed by a CPU when it receives an Xcpustop IPI from another CPU, - * - * - Signals its receipt. - * - Waits for permission to restart. - * - Signals its restart. + * Executed by a CPU when it receives an IPI_STOP from another CPU. */ .text SUPERALIGN_TEXT ==== //depot/projects/smpng/sys/amd64/amd64/db_trace.c#17 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_trace.c,v 1.73 2005/12/27 23:23:47 pjd Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_trace.c,v 1.74 2006/03/13 23:56:44 peter Exp $"); #include #include @@ -192,6 +192,7 @@ #define TRAP 1 #define INTERRUPT 2 #define SYSCALL 3 +#define TRAP_INTERRUPT 5 static void db_nextframe(struct amd64_frame **, db_addr_t *, struct thread *); static int db_numargs(struct amd64_frame *); @@ -326,6 +327,12 @@ frame_type = INTERRUPT; else if (strcmp(name, "Xfast_syscall") == 0) frame_type = SYSCALL; + /* XXX: These are interrupts with trap frames. */ + else if (strcmp(name, "Xtimerint") == 0 || + strcmp(name, "Xcpustop") == 0 || + strcmp(name, "Xrendezvous") == 0 || + strcmp(name, "Xipi_intr_bitmap_handler") == 0) + frame_type = TRAP_INTERRUPT; } /* @@ -357,6 +364,7 @@ db_printf("--- syscall"); decode_syscall(tf->tf_rax, td); break; + case TRAP_INTERRUPT: case INTERRUPT: db_printf("--- interrupt"); break; ==== //depot/projects/smpng/sys/amd64/amd64/io_apic.c#14 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.21 2006/02/28 22:24:54 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.22 2006/03/13 23:55:31 peter Exp $"); #include "opt_atpic.h" #include "opt_isa.h" @@ -73,6 +73,10 @@ * IRQs behave as PCI IRQs by default. We also assume that the pin for * IRQ 0 is actually an ExtINT pin. The apic enumerators override the * configuration of individual pins as indicated by their tables. + * + * Documentation for the I/O APIC: "82093AA I/O Advanced Programmable + * Interrupt Controller (IOAPIC)", May 1996, Intel Corp. + * ftp://download.intel.com/design/chipsets/datashts/29056601.pdf */ struct ioapic_intsrc { ==== //depot/projects/smpng/sys/amd64/amd64/machdep.c#51 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.646 2006/02/03 02:49:14 davidxu Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.648 2006/03/14 16:13:54 jhb Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -247,8 +247,8 @@ struct sigacts *psp; char *sp; struct trapframe *regs; + int sig; int oonstack; - int sig; td = curthread; p = td->td_proc; ==== //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#34 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.269 2006/02/28 22:24:54 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.270 2006/03/09 16:38:52 jhb Exp $"); #include "opt_cpu.h" #include "opt_kstack_pages.h" @@ -612,12 +612,12 @@ continue; if (cpu_info[apic_id].cpu_bsp) continue; -#if 0 + /* Don't let hyperthreads service interrupts. */ if (hyperthreading_cpus > 1 && apic_id % hyperthreading_cpus != 0) continue; -#endif + intr_add_cpu(apic_id); } } ==== //depot/projects/smpng/sys/amd64/amd64/pmap.c#52 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.536 2006/02/03 00:16:36 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.537 2006/03/13 08:13:37 ps Exp $"); /* * Manages physical address maps. @@ -1360,7 +1360,7 @@ return sysctl_handle_long(oidp, &ksize, 0, req); } SYSCTL_PROC(_vm, OID_AUTO, kvm_size, CTLTYPE_LONG|CTLFLAG_RD, - 0, 0, kvm_size, "IU", "Size of KVM"); + 0, 0, kvm_size, "LU", "Size of KVM"); static int kvm_free(SYSCTL_HANDLER_ARGS) @@ -1370,7 +1370,7 @@ return sysctl_handle_long(oidp, &kfree, 0, req); } SYSCTL_PROC(_vm, OID_AUTO, kvm_free, CTLTYPE_LONG|CTLFLAG_RD, - 0, 0, kvm_free, "IU", "Amount of KVM free"); + 0, 0, kvm_free, "LU", "Amount of KVM free"); /* * grow the number of kernel page table entries, if needed ==== //depot/projects/smpng/sys/amd64/amd64/trap.c#43 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.302 2006/02/08 08:09:15 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.303 2006/03/13 23:55:31 peter Exp $"); /* * AMD64 Trap and System call handling @@ -872,7 +872,6 @@ */ if (orig_tf_rflags & PSL_T) { frame.tf_rflags &= ~PSL_T; - ksiginfo_init_trap(&ksi); ksi.ksi_signo = SIGTRAP; ksi.ksi_code = TRAP_TRACE; ==== //depot/projects/smpng/sys/amd64/include/asmacros.h#6 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/include/asmacros.h,v 1.29 2005/12/08 18:33:30 jhb Exp $ + * $FreeBSD: src/sys/amd64/include/asmacros.h,v 1.30 2006/03/14 00:01:56 peter Exp $ */ #ifndef _MACHINE_ASMACROS_H_ @@ -130,7 +130,7 @@ #ifdef LOCORE /* - * Convenience macros for declaring interrupt entry points. + * Convenience macro for declaring interrupt entry points. */ #define IDTVEC(name) ALIGN_TEXT; .globl __CONCAT(X,name); \ .type __CONCAT(X,name),@function; __CONCAT(X,name): ==== //depot/projects/smpng/sys/amd64/include/bus.h#8 (text+ko) ==== @@ -28,7 +28,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/include/bus.h,v 1.16 2005/05/29 04:42:15 nyan Exp $ + * $FreeBSD: src/sys/amd64/include/bus.h,v 1.17 2006/03/14 00:01:56 peter Exp $ */ /* $NetBSD: bus.h,v 1.12 1997/10/01 08:25:15 fvdl Exp $ */ @@ -1004,6 +1004,17 @@ #endif } +#ifdef BUS_SPACE_NO_LEGACY +#undef inb +#undef outb +#define inb(a) compiler_error +#define inw(a) compiler_error +#define inl(a) compiler_error +#define outb(a, b) compiler_error +#define outw(a, b) compiler_error +#define outl(a, b) compiler_error +#endif + #include /* ==== //depot/projects/smpng/sys/amd64/include/pmap.h#20 (text+ko) ==== @@ -39,7 +39,7 @@ * * from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90 * from: @(#)pmap.h 7.4 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.128 2005/12/06 21:09:01 jhb Exp $ + * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.129 2006/03/14 00:01:56 peter Exp $ */ #ifndef _MACHINE_PMAP_H_ @@ -176,7 +176,7 @@ * the corresponding pde that in turn maps it. */ pt_entry_t *vtopte(vm_offset_t); -#define vtophys(va) pmap_kextract((vm_offset_t)(va)) +#define vtophys(va) pmap_kextract(((vm_offset_t) (va))) static __inline pt_entry_t pte_load(pt_entry_t *ptep) ==== //depot/projects/smpng/sys/amd64/include/trap.h#3 (text+ko) ==== @@ -30,7 +30,7 @@ * SUCH DAMAGE. * * from: @(#)trap.h 5.4 (Berkeley) 5/9/91 - * $FreeBSD: src/sys/amd64/include/trap.h,v 1.14 2004/04/05 21:25:51 imp Exp $ + * $FreeBSD: src/sys/amd64/include/trap.h,v 1.15 2006/03/14 00:01:22 peter Exp $ */ #ifndef _MACHINE_TRAP_H_ @@ -72,16 +72,6 @@ #define ILL_ALIGN_FAULT T_ALIGNFLT #define ILL_FPOP_FAULT T_FPOPFLT /* coprocessor operand fault */ -/* portable macros for SIGFPE/ARITHTRAP */ -#define FPE_INTOVF 1 /* integer overflow */ -#define FPE_INTDIV 2 /* integer divide by zero */ -#define FPE_FLTDIV 3 /* floating point divide by zero */ -#define FPE_FLTOVF 4 /* floating point overflow */ -#define FPE_FLTUND 5 /* floating point underflow */ -#define FPE_FLTRES 6 /* floating point inexact result */ -#define FPE_FLTINV 7 /* invalid floating point operation */ -#define FPE_FLTSUB 8 /* subscript out of range */ - /* old FreeBSD macros, deprecated */ #define FPE_INTOVF_TRAP 0x1 /* integer overflow */ #define FPE_INTDIV_TRAP 0x2 /* integer divide by zero */ ==== //depot/projects/smpng/sys/amd64/linux32/linux32_machdep.c#10 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.11 2006/02/06 22:06:53 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.12 2006/03/08 20:21:53 ups Exp $"); #include #include @@ -130,7 +130,7 @@ copystr(fname, args->fname, PATH_MAX, &length) : copyinstr(fname, args->fname, PATH_MAX, &length); if (error != 0) - return (error); + goto err_exit; /* * extract arguments first @@ -139,16 +139,16 @@ for (;;) { error = copyin(p32++, &arg, sizeof(arg)); if (error) - return (error); + goto err_exit; if (arg == 0) break; argp = PTRIN(arg); error = copyinstr(argp, args->endp, args->stringspace, &length); if (error) { if (error == ENAMETOOLONG) - return (E2BIG); - else - return (error); + error = E2BIG; + + goto err_exit; } args->stringspace -= length; args->endp += length; @@ -165,7 +165,7 @@ for (;;) { error = copyin(p32++, &arg, sizeof(arg)); if (error) - return (error); + goto err_exit; if (arg == 0) break; envp = PTRIN(arg); @@ -173,9 +173,8 @@ &length); if (error) { if (error == ENAMETOOLONG) - return (E2BIG); - else - return (error); + error = E2BIG; + goto err_exit; } args->stringspace -= length; args->endp += length; @@ -184,6 +183,12 @@ } return (0); + +err_exit: + kmem_free_wakeup(exec_map, (vm_offset_t)args->buf, + PATH_MAX + ARG_MAX + MAXSHELLCMDLEN); + args->buf = NULL; + return (error); } int ==== //depot/projects/smpng/sys/amd64/pci/pci_bus.c#16 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/pci/pci_bus.c,v 1.116 2006/01/06 19:22:18 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/pci/pci_bus.c,v 1.117 2006/03/13 23:58:40 peter Exp $"); #include "opt_cpu.h" @@ -326,10 +326,10 @@ { 0, 0 } }; -static devclass_t pcib_devclass; +static devclass_t hostb_devclass; DEFINE_CLASS_0(pcib, legacy_pcib_driver, legacy_pcib_methods, 1); -DRIVER_MODULE(pcib, legacy, legacy_pcib_driver, pcib_devclass, 0, 0); +DRIVER_MODULE(pcib, legacy, legacy_pcib_driver, hostb_devclass, 0, 0); /* ==== //depot/projects/smpng/sys/arm/arm/in_cksum.c#6 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include /* RCS ID & Copyright macro defns */ -__FBSDID("$FreeBSD: src/sys/arm/arm/in_cksum.c,v 1.5 2005/10/03 14:06:44 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/in_cksum.c,v 1.6 2006/03/09 23:33:59 cognet Exp $"); #include #include @@ -130,3 +130,12 @@ REDUCE16; return (~sum & 0xffff); } + +u_int in_cksum_hdr(const struct ip *ip) +{ + u_int64_t sum = do_cksum(ip, sizeof(struct ip)); + union q_util q_util; + union l_util l_util; + REDUCE16; + return (~sum & 0xffff); +} ==== //depot/projects/smpng/sys/arm/include/in_cksum.h#4 (text+ko) ==== @@ -33,7 +33,7 @@ * from tahoe: in_cksum.c 1.2 86/01/05 * from: @(#)in_cksum.c 1.3 (Berkeley) 1/19/91 * from: Id: in_cksum.c,v 1.8 1995/12/03 18:35:19 bde Exp - * $FreeBSD: src/sys/arm/include/in_cksum.h,v 1.3 2005/10/03 14:06:44 cognet Exp $ + * $FreeBSD: src/sys/arm/include/in_cksum.h,v 1.4 2006/03/09 23:33:59 cognet Exp $ */ #ifndef _MACHINE_IN_CKSUM_H_ @@ -46,80 +46,7 @@ u_short in_addword(u_short sum, u_short b); u_short in_cksum_skip(struct mbuf *m, int len, int skip); u_int do_cksum(const void *, int); -static __inline u_int -in_cksum_hdr(const struct ip *ip) -{ - u_int sum = 0; - u_int tmp1, tmp2, tmp3, tmp4; - - if (((vm_offset_t)ip & 0x03) == 0) - __asm __volatile ( - "adds %0, %0, %1\n" - "adcs %0, %0, %2\n" - "adcs %0, %0, %3\n" - "adcs %0, %0, %4\n" - "adcs %0, %0, %5\n" - "adc %0, %0, #0\n" - : "+r" (sum) - : "r" (((const u_int32_t *)ip)[0]), - "r" (((const u_int32_t *)ip)[1]), - "r" (((const u_int32_t *)ip)[2]), - "r" (((const u_int32_t *)ip)[3]), - "r" (((const u_int32_t *)ip)[4]) - ); - else - __asm __volatile ( - "and %1, %5, #3\n" - "cmp %1, #0x02\n" - "ldrb %2, [%5], #0x01\n" - "ldrgeb %3, [%5], #0x01\n" - "movlt %3, #0\n" - "ldrgtb %4, [%5], #0x01\n" - "movle %4, #0x00\n" -#ifdef __ARMEB__ - "orreq %0, %3, %2, lsl #8\n" - "orreq %0, %0, %4, lsl #24\n" - "orrne %0, %0, %3, lsl #8\n" - "orrne %0, %0, %4, lsl #16\n" -#else - "orreq %0, %2, %3, lsl #8\n" - "orreq %0, %0, %4, lsl #16\n" - "orrne %0, %3, %2, lsl #8\n" - "orrne %0, %0, %4, lsl #24\n" -#endif - "ldmia %5, {%2, %3, %4}\n" - "adcs %0, %0, %2\n" - "adcs %0, %0, %3\n" - "adcs %0, %0, %4\n" - "ldrb %2, [%5]\n" - "cmp %1, #0x02\n" - "ldrgeb %3, [%5, #0x01]\n" - "movlt %3, #0x00\n" - "ldrgtb %4, [%5, #0x02]\n" - "movle %4, #0x00\n" - "tst %5, #0x01\n" -#ifdef __ARMEB__ - "orreq %2, %3, %2, lsl #8\n" - "orreq %2, %2, %4, lsl #24\n" - "orrne %2, %2, %3, lsl #8\n" - "orrne %2, %2, %4, lsl #16\n" -#else - "orreq %2, %2, %3, lsl #8\n" - "orreq %2, %2, %4, lsl #16\n" - "orrne %2, %3, %2, lsl #8\n" - "orrne %2, %2, %4, lsl #24\n" -#endif - "adds %0, %0, %2\n" - "adc %0, %0, #0\n" - : "+r" (sum), "=r" (tmp1), "=r" (tmp2), "=r" (tmp3), - "=r" (tmp4) - : "r" (ip)); - - sum = (sum & 0xffff) + (sum >> 16); - if (sum > 0xffff) - sum -= 0xffff; - return (~sum & 0xffff); -} +u_int in_cksum_hdr(const struct ip *); static __inline u_short in_pseudo(u_int sum, u_int b, u_int c) ==== //depot/projects/smpng/sys/boot/i386/libi386/Makefile#15 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/boot/i386/libi386/Makefile,v 1.39 2005/12/19 09:00:11 sobomax Exp $ +# $FreeBSD: src/sys/boot/i386/libi386/Makefile,v 1.41 2006/03/14 19:02:00 jkim Exp $ # LIB= i386 INTERNALLIB= @@ -21,6 +21,11 @@ CFLAGS+= -DDISK_DEBUG .endif +.if !defined(BOOT_HIDE_SERIAL_NUMBERS) +# Export serial numbers, UUID, and asset tag from loader. +CFLAGS+= -DSMBIOS_SERIAL_NUMBERS +.endif + # Include simple terminal emulation (cons25-compatible) CFLAGS+= -DTERM_EMU ==== //depot/projects/smpng/sys/boot/i386/libi386/libi386.h#11 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/boot/i386/libi386/libi386.h,v 1.23 2005/12/21 02:17:58 sobomax Exp $ + * $FreeBSD: src/sys/boot/i386/libi386/libi386.h,v 1.24 2006/03/09 22:49:44 jkim Exp $ */ @@ -100,9 +100,9 @@ int biospci_write_config(uint32_t locator, int offset, int width, int val); int biospci_read_config(uint32_t locator, int offset, int width, uint32_t *val); -void biosacpi_detect(); +void biosacpi_detect(void); -void smbios_detect(); +void smbios_detect(void); void gateA20(void); ==== //depot/projects/smpng/sys/boot/i386/libi386/smbios.c#4 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2005 Jung-uk Kim + * Copyright (c) 2005, 2006 Jung-uk Kim * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -25,12 +25,13 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/smbios.c,v 1.3 2005/10/18 20:03:31 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/smbios.c,v 1.6 2006/03/14 19:02:00 jkim Exp $"); #include #include #include "btxv86.h" +#include "libi386.h" /* * Detect SMBIOS and export information about the SMBIOS into the @@ -54,21 +55,26 @@ #define SMBIOS_SIG "_SM_" #define SMBIOS_DMI_SIG "_DMI_" -static u_int8_t smbios_enabled_sockets = 0; -static u_int8_t smbios_populated_sockets = 0; +static uint8_t smbios_enabled_sockets = 0; +static uint8_t smbios_populated_sockets = 0; + +static uint8_t *smbios_parse_table(const uint8_t *dmi); +static void smbios_setenv(const char *name, const uint8_t *dmi, + const int offset); +static uint8_t smbios_checksum(const caddr_t addr, const uint8_t len); +static uint8_t *smbios_sigsearch(const caddr_t addr, const uint32_t len); -static u_int8_t *smbios_parse_table(const u_int8_t *dmi); -static void smbios_setenv(const char *env, const u_int8_t *dmi, +#ifdef SMBIOS_SERIAL_NUMBERS +static void smbios_setuuid(const char *name, const uint8_t *dmi, const int offset); -static u_int8_t smbios_checksum(const u_int8_t *addr, const u_int8_t len); -static u_int8_t *smbios_sigsearch(const caddr_t addr, const u_int32_t len); +#endif void smbios_detect(void) { - u_int8_t *smbios, *dmi, *addr; - u_int16_t i, length, count; - u_int32_t paddr; + uint8_t *smbios, *dmi, *addr; + uint16_t i, length, count; + uint32_t paddr; char buf[4]; /* locate and validate the SMBIOS */ @@ -76,9 +82,9 @@ if (smbios == NULL) return; - length = *(u_int16_t *)(smbios + 0x16); /* Structure Table Length */ - paddr = *(u_int32_t *)(smbios + 0x18); /* Structure Table Address */ - count = *(u_int16_t *)(smbios + 0x1c); /* No of SMBIOS Structures */ + length = *(uint16_t *)(smbios + 0x16); /* Structure Table Length */ + paddr = *(uint32_t *)(smbios + 0x18); /* Structure Table Address */ + count = *(uint16_t *)(smbios + 0x1c); /* No of SMBIOS Structures */ for (dmi = addr = PTOV(paddr), i = 0; dmi - addr < length && i < count; i++) @@ -89,10 +95,10 @@ setenv("smbios.socket.populated", buf, 1); } -static u_int8_t * -smbios_parse_table(const u_int8_t *dmi) +static uint8_t * +smbios_parse_table(const uint8_t *dmi) { - u_int8_t *dp; + uint8_t *dp; switch(dmi[0]) { case 0: /* Type 0: BIOS */ @@ -105,17 +111,28 @@ smbios_setenv("smbios.system.maker", dmi, 0x04); smbios_setenv("smbios.system.product", dmi, 0x05); smbios_setenv("smbios.system.version", dmi, 0x06); +#ifdef SMBIOS_SERIAL_NUMBERS + smbios_setenv("smbios.system.serial", dmi, 0x07); + smbios_setuuid("smbios.system.uuid", dmi, 0x08); +#endif break; case 2: /* Type 2: Base Board (or Module) */ smbios_setenv("smbios.planar.maker", dmi, 0x04); smbios_setenv("smbios.planar.product", dmi, 0x05); smbios_setenv("smbios.planar.version", dmi, 0x06); +#ifdef SMBIOS_SERIAL_NUMBERS + smbios_setenv("smbios.planar.serial", dmi, 0x07); +#endif break; case 3: /* Type 3: System Enclosure or Chassis */ smbios_setenv("smbios.chassis.maker", dmi, 0x04); smbios_setenv("smbios.chassis.version", dmi, 0x06); +#ifdef SMBIOS_SERIAL_NUMBERS + smbios_setenv("smbios.chassis.serial", dmi, 0x07); + smbios_setenv("smbios.chassis.tag", dmi, 0x08); +#endif break; case 4: /* Type 4: Processor Information */ @@ -147,7 +164,7 @@ } /* find structure terminator */ - dp = (u_int8_t *)(dmi + dmi[1]); + dp = __DECONST(uint8_t *, dmi + dmi[1]); while (dp[0] != 0 || dp[1] != 0) dp++; @@ -155,42 +172,43 @@ } static void -smbios_setenv(const char *str, const u_int8_t *dmi, const int offset) +smbios_setenv(const char *name, const uint8_t *dmi, const int offset) { - char *cp; + char *cp = __DECONST(char *, dmi + dmi[1]); int i; /* skip undefined string */ if (dmi[offset] == 0) return; - for (cp = (char *)(dmi + dmi[1]), i = 0; i < dmi[offset] - 1; i++) + for (i = 0; i < dmi[offset] - 1; i++) cp += strlen(cp) + 1; - setenv(str, cp, 1); + setenv(name, cp, 1); } -static u_int8_t -smbios_checksum(const u_int8_t *addr, const u_int8_t len) +static uint8_t +smbios_checksum(const caddr_t addr, const uint8_t len) { - u_int8_t sum; + const uint8_t *cp = addr; + uint8_t sum; int i; for (sum = 0, i = 0; i < len; i++) - sum += addr[i]; + sum += cp[i]; return(sum); } -static u_int8_t * -smbios_sigsearch(const caddr_t addr, const u_int32_t len) +static uint8_t * +smbios_sigsearch(const caddr_t addr, const uint32_t len) { caddr_t cp; /* search on 16-byte boundaries */ - for (cp = addr; cp - addr < len; cp += SMBIOS_STEP) { + for (cp = addr; cp < addr + len; cp += SMBIOS_STEP) { /* compare signature, validate checksum */ if (!strncmp(cp, SMBIOS_SIG, 4)) { - if (smbios_checksum(cp, *(cp + 0x05))) + if (smbios_checksum(cp, *(uint8_t *)(cp + 0x05))) continue; if (strncmp(cp + 0x10, SMBIOS_DMI_SIG, 5)) continue; @@ -203,3 +221,31 @@ return(NULL); } + +#ifdef SMBIOS_SERIAL_NUMBERS +static void +smbios_setuuid(const char *name, const uint8_t *dmi, const int offset) +{ + const uint8_t *idp = dmi + offset; + int i, f = 0, z = 0; + char uuid[37]; + + for (i = 0; i < 16; i++) { + if (idp[i] == 0xff) + f++; + else if (idp[i] == 0x00) + z++; + else + break; + } + if (f != 16 && z != 16) { + sprintf(uuid, "%02X%02X%02X%02X-" + "%02X%02X-%02X%02X-%02X%02X-" + "%02X%02X%02X%02X%02X%02X", + idp[0], idp[1], idp[2], idp[3], + idp[4], idp[5], idp[6], idp[7], idp[8], idp[9], + idp[10], idp[11], idp[12], idp[13], idp[14], idp[15]); + setenv(name, uuid, 1); + } +} +#endif ==== //depot/projects/smpng/sys/cam/scsi/scsi_da.c#65 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.186 2006/01/30 20:27:44 flz Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.187 2006/03/13 22:26:33 joerg Exp $"); #include @@ -421,6 +421,13 @@ }, { /* + * TOSHIBA TransMemory USB sticks + */ + {T_DIRECT, SIP_MEDIA_REMOVABLE, "TOSHIBA", "TransMemory", + "*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE + }, + { + /* * PNY USB Flash keys * PR: usb/75578, usb/72344, usb/65436 */ ==== //depot/projects/smpng/sys/compat/freebsd32/freebsd32_misc.c#34 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.52 2006/03/04 00:09:09 ps Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.53 2006/03/08 20:21:53 ups Exp $"); #include "opt_compat.h" @@ -260,7 +260,7 @@ copystr(fname, args->fname, PATH_MAX, &length) : copyinstr(fname, args->fname, PATH_MAX, &length); if (error != 0) - return (error); + goto err_exit; /* * extract arguments first @@ -269,16 +269,15 @@ for (;;) { error = copyin(p32++, &arg, sizeof(arg)); if (error) - return (error); + goto err_exit; if (arg == 0) break; argp = PTRIN(arg); error = copyinstr(argp, args->endp, args->stringspace, &length); if (error) { if (error == ENAMETOOLONG) - return (E2BIG); - else - return (error); + error = E2BIG; + goto err_exit; } args->stringspace -= length; args->endp += length; @@ -295,7 +294,7 @@ for (;;) { error = copyin(p32++, &arg, sizeof(arg)); if (error) - return (error); + goto err_exit; if (arg == 0) break; envp = PTRIN(arg); @@ -303,9 +302,8 @@ &length); if (error) { if (error == ENAMETOOLONG) - return (E2BIG); - else - return (error); + error = E2BIG; + goto err_exit; } args->stringspace -= length; args->endp += length; @@ -314,6 +312,12 @@ } return (0); + +err_exit: + kmem_free_wakeup(exec_map, (vm_offset_t)args->buf, + PATH_MAX + ARG_MAX + MAXSHELLCMDLEN); + args->buf = NULL; + return (error); } int ==== //depot/projects/smpng/sys/conf/files#169 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1100 2006/03/05 22:52:16 yar Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1102 2006/03/13 06:38:22 ru Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -11,7 +11,7 @@ clean "acpi_quirks.h" aicasm optional ahc | ahd \ dependency "$S/dev/aic7xxx/aicasm/*.[chyl]" \ - compile-with "CC=${CC} ${MAKE} -f $S/dev/aic7xxx/aicasm/Makefile MAKESRCPATH=$S/dev/aic7xxx/aicasm" \ + compile-with "CC='${CC}' ${MAKE} -f $S/dev/aic7xxx/aicasm/Makefile MAKESRCPATH=$S/dev/aic7xxx/aicasm" \ no-obj no-implicit-rule \ clean "aicasm* y.tab.h" aic7xxx_seq.h optional ahc \ @@ -52,7 +52,7 @@ no-implicit-rule local emu10k1-alsa%diked.h optional snd_emu10k1 pci \ dependency "$S/tools/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/emu10k1-alsa.h" \ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Mar 14 21:27:48 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3AD4116A422; Tue, 14 Mar 2006 21:27:48 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 193D016A401 for ; Tue, 14 Mar 2006 21:27:48 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id BFF1A43D45 for ; Tue, 14 Mar 2006 21:27:47 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2ELRlr4089717 for ; Tue, 14 Mar 2006 21:27:47 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2ELRlP6089714 for perforce@freebsd.org; Tue, 14 Mar 2006 21:27:47 GMT (envelope-from peter@freebsd.org) Date: Tue, 14 Mar 2006 21:27:47 GMT Message-Id: <200603142127.k2ELRlP6089714@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 93306 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Mar 2006 21:27:48 -0000 http://perforce.freebsd.org/chv.cgi?CH=93306 Change 93306 by peter@peter_daintree on 2006/03/14 21:27:31 Check in my WIP for half sized pv entries, very roughly ported forward 6.x at yahoo. Much work is still to be done, especially the get_pv_entry() reclaim process which needs to be synced with alc's changes. Affected files ... .. //depot/projects/hammer/sys/amd64/amd64/pmap.c#134 edit .. //depot/projects/hammer/sys/amd64/include/pmap.h#60 edit Differences ... ==== //depot/projects/hammer/sys/amd64/amd64/pmap.c#134 (text+ko) ==== @@ -182,7 +182,6 @@ /* * Data for the pv entry allocation mechanism */ -static uma_zone_t pvzone; static int pv_entry_count = 0, pv_entry_max = 0, pv_entry_high_water = 0; static int shpgperproc = PMAP_SHPGPERPROC; @@ -198,7 +197,7 @@ */ static caddr_t crashdumpmap; -static PMAP_INLINE void free_pv_entry(pv_entry_t pv); +static PMAP_INLINE void free_pv_entry(pmap_t pmap, pv_entry_t pv); static pv_entry_t get_pv_entry(pmap_t locked_pmap); static void pmap_clear_ptes(vm_page_t m, long bit); @@ -509,7 +508,7 @@ PMAP_LOCK_INIT(kernel_pmap); kernel_pmap->pm_pml4 = (pdp_entry_t *) (KERNBASE + KPML4phys); kernel_pmap->pm_active = -1; /* don't allow deactivation */ - TAILQ_INIT(&kernel_pmap->pm_pvlist); + TAILQ_INIT(&kernel_pmap->pm_pvchunk); nkpt = NKPT; /* @@ -569,8 +568,6 @@ * high water mark so that the system can recover from excessive * numbers of pv entries. */ - pvzone = uma_zcreate("PV ENTRY", sizeof(struct pv_entry), NULL, NULL, - NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_VM); TUNABLE_INT_FETCH("vm.pmap.shpgperproc", &shpgperproc); pv_entry_max = shpgperproc * maxproc + cnt.v_page_count; TUNABLE_INT_FETCH("vm.pmap.pv_entries", &pv_entry_max); @@ -1063,7 +1060,7 @@ PMAP_LOCK_INIT(pmap); pmap->pm_pml4 = (pml4_entry_t *)(KERNBASE + KPML4phys); pmap->pm_active = 0; - TAILQ_INIT(&pmap->pm_pvlist); + TAILQ_INIT(&pmap->pm_pvchunk); bzero(&pmap->pm_stats, sizeof pmap->pm_stats); } @@ -1100,7 +1097,7 @@ pmap->pm_pml4[PML4PML4I] = VM_PAGE_TO_PHYS(pml4pg) | PG_V | PG_RW | PG_A | PG_M; pmap->pm_active = 0; - TAILQ_INIT(&pmap->pm_pvlist); + TAILQ_INIT(&pmap->pm_pvchunk); bzero(&pmap->pm_stats, sizeof pmap->pm_stats); } @@ -1437,14 +1434,51 @@ * page management routines. ***************************************************/ +CTASSERT(sizeof(struct pv_chunk) == PAGE_SIZE); +CTASSERT(_NPCM == 3); +CTASSERT(_NPCPV == 168); + +static __inline struct pv_chunk * +pv_to_chunk(pv_entry_t pv) +{ + + return (struct pv_chunk *)((uintptr_t)pv & ~(uintptr_t)PAGE_MASK); +} + +#define PV_PMAP(pv) (pv_to_chunk(pv)->pc_pmap) + +#define PC_FREE0 0xfffffffffffffffful +#define PC_FREE1 0xfffffffffffffffful +#define PC_FREE2 0x000000fffffffffful + /* * free the pv_entry back to the free list */ static PMAP_INLINE void -free_pv_entry(pv_entry_t pv) +free_pv_entry(pmap_t pmap, pv_entry_t pv) { + vm_page_t m; + struct pv_chunk *pc; + int idx, field, bit; + pv_entry_count--; - uma_zfree(pvzone, pv); + pc = pv_to_chunk(pv); + idx = pv - &pc->pc_pventry[0]; + field = idx / 64; + bit = idx % 64; + pc->pc_map[field] |= 1ul << bit; + /* move to head of list */ + TAILQ_REMOVE(&pmap->pm_pvchunk, pc, pc_list); + TAILQ_INSERT_HEAD(&pmap->pm_pvchunk, pc, pc_list); + if (pc->pc_map[0] != PC_FREE0 || pc->pc_map[1] != PC_FREE1 || + pc->pc_map[2] != PC_FREE2) + return; + /* entire chunk is free, return it */ + TAILQ_REMOVE(&pmap->pm_pvchunk, pc, pc_list); + m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((vm_offset_t)pc)); + vm_page_lock_queues(); + vm_page_free(m); + vm_page_unlock_queues(); } /* @@ -1452,6 +1486,53 @@ * when needed. */ static pv_entry_t +get_pv_entry(pmap_t pmap) +{ + static vm_pindex_t colour; + int bit, field; + pv_entry_t pv; + struct pv_chunk *pc; + vm_page_t m; + + pv_entry_count++; + if ((pv_entry_count > pv_entry_high_water) && + (pmap_pagedaemon_waken == 0)) { + pmap_pagedaemon_waken = 1; + wakeup (&vm_pages_needed); + } + pc = TAILQ_FIRST(&pmap->pm_pvchunk); + for (field = 0; field < _NPCM; field++) { + bit = bsrq(pc->pc_map[field]); + if (bit >= 0) + break; + } + if (bit >= 0) { + pv = &pc->pc_pventry[field * 64 + bit]; + pc->pc_map[field] &= (1ul << bit); + /* If this was the last item, move it to tail */ + if (pc->pc_map[0] == 0 && pc->pc_map[1] == 0 && + pc->pc_map[2] == 0) { + TAILQ_REMOVE(&pmap->pm_pvchunk, pc, pc_list); + TAILQ_INSERT_TAIL(&pmap->pm_pvchunk, pc, pc_list); + } + return (pv); + } + /* No free items, allocate another chunk */ + m = vm_page_alloc(NULL, colour, VM_ALLOC_SYSTEM | VM_ALLOC_NOOBJ); + if (m == NULL) + return (NULL); + colour++; + pc = (void *)PHYS_TO_DMAP(m->phys_addr); + pc->pc_pmap = pmap; + pc->pc_map[0] = PC_FREE0 & ~1ul; /* preallocated bit 0 */ + pc->pc_map[1] = PC_FREE1; + pc->pc_map[2] = PC_FREE2; + pv = &pc->pc_pventry[0]; + TAILQ_INSERT_HEAD(&pmap->pm_pvchunk, pc, pc_list); + return (pv); +} +#if 0 +static pv_entry_t get_pv_entry(pmap_t locked_pmap) { static const struct timeval printinterval = { 60, 0 }; @@ -1535,6 +1616,7 @@ } return (allocated_pv); } +#endif static void pmap_remove_entry(pmap_t pmap, vm_page_t m, vm_offset_t va) @@ -1543,24 +1625,16 @@ PMAP_LOCK_ASSERT(pmap, MA_OWNED); mtx_assert(&vm_page_queue_mtx, MA_OWNED); - if (m->md.pv_list_count < pmap->pm_stats.resident_count) { - TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) { - if (pmap == pv->pv_pmap && va == pv->pv_va) - break; - } - } else { - TAILQ_FOREACH(pv, &pmap->pm_pvlist, pv_plist) { - if (va == pv->pv_va) - break; - } + TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) { + if (pmap == PV_PMAP(pv) && va == pv->pv_va) + break; } KASSERT(pv != NULL, ("pmap_remove_entry: pv not found")); TAILQ_REMOVE(&m->md.pv_list, pv, pv_list); m->md.pv_list_count--; if (TAILQ_EMPTY(&m->md.pv_list)) vm_page_flag_clear(m, PG_WRITEABLE); - TAILQ_REMOVE(&pmap->pm_pvlist, pv, pv_plist); - free_pv_entry(pv); + free_pv_entry(pmap, pv); } /* @@ -1574,11 +1648,9 @@ pv = get_pv_entry(pmap); pv->pv_va = va; - pv->pv_pmap = pmap; PMAP_LOCK_ASSERT(pmap, MA_OWNED); mtx_assert(&vm_page_queue_mtx, MA_OWNED); - TAILQ_INSERT_TAIL(&pmap->pm_pvlist, pv, pv_plist); TAILQ_INSERT_TAIL(&m->md.pv_list, pv, pv_list); m->md.pv_list_count++; } @@ -1760,6 +1832,7 @@ pmap_remove_all(vm_page_t m) { register pv_entry_t pv; + pmap_t pmap; pt_entry_t *pte, tpte; pd_entry_t ptepde; @@ -1774,12 +1847,13 @@ #endif mtx_assert(&vm_page_queue_mtx, MA_OWNED); while ((pv = TAILQ_FIRST(&m->md.pv_list)) != NULL) { - PMAP_LOCK(pv->pv_pmap); - pv->pv_pmap->pm_stats.resident_count--; - pte = pmap_pte_pde(pv->pv_pmap, pv->pv_va, &ptepde); + pmap = PV_PMAP(pv); + PMAP_LOCK(pmap); + pmap->pm_stats.resident_count--; + pte = pmap_pte_pde(pmap, pv->pv_va, &ptepde); tpte = pte_load_clear(pte); if (tpte & PG_W) - pv->pv_pmap->pm_stats.wired_count--; + pmap->pm_stats.wired_count--; if (tpte & PG_A) vm_page_flag_set(m, PG_REFERENCED); @@ -1793,13 +1867,12 @@ if (pmap_track_modified(pv->pv_va)) vm_page_dirty(m); } - pmap_invalidate_page(pv->pv_pmap, pv->pv_va); - TAILQ_REMOVE(&pv->pv_pmap->pm_pvlist, pv, pv_plist); + pmap_invalidate_page(pmap, pv->pv_va); TAILQ_REMOVE(&m->md.pv_list, pv, pv_list); m->md.pv_list_count--; - pmap_unuse_pt(pv->pv_pmap, pv->pv_va, ptepde); - PMAP_UNLOCK(pv->pv_pmap); - free_pv_entry(pv); + pmap_unuse_pt(pmap, pv->pv_va, ptepde); + PMAP_UNLOCK(pmap); + free_pv_entry(pmap, pv); } vm_page_flag_clear(m, PG_WRITEABLE); } @@ -2563,7 +2636,7 @@ mtx_assert(&vm_page_queue_mtx, MA_OWNED); TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) { - if (pv->pv_pmap == pmap) { + if (PV_PMAP(pv) == pmap) { return TRUE; } loops++; @@ -2573,7 +2646,6 @@ return (FALSE); } -#define PMAP_REMOVE_PAGES_CURPROC_ONLY /* * Remove all pages from specified address space * this aids process exit speeds. Also, this code @@ -2589,73 +2661,97 @@ { pt_entry_t *pte, tpte; vm_page_t m; - pv_entry_t pv, npv; + pv_entry_t pv; + struct pv_chunk *pc, *npc; + int field, idx; + int64_t bit; + int allfree, didfree;; -#ifdef PMAP_REMOVE_PAGES_CURPROC_ONLY if (pmap != vmspace_pmap(curthread->td_proc->p_vmspace)) { printf("warning: pmap_remove_pages called with non-current pmap\n"); return; } -#endif vm_page_lock_queues(); PMAP_LOCK(pmap); - for (pv = TAILQ_FIRST(&pmap->pm_pvlist); pv; pv = npv) { + TAILQ_FOREACH_SAFE(pc, &pmap->pm_pvchunk, pc_list, npc) { + allfree = 1; + didfree = 0; + /* + * If only we could eliminate the sva/eva tests, and define + * pmap_remove_pages() to simply remove *ALL* user pages, we + * could make it faster here. eg: replace for() loop with + * bsrq() and some other some algorithm changes. + */ + for (idx = 0; idx < _NPCPV; idx++) { + field = idx / 64; + bit = idx % 64; + if ((pc->pc_map[field] & 1ul << bit) == 0) { /* inuse */ + pv = &pc->pc_pventry[idx]; - if (pv->pv_va >= eva || pv->pv_va < sva) { - npv = TAILQ_NEXT(pv, pv_plist); - continue; - } + if (pv->pv_va >= eva || pv->pv_va < sva) { + allfree = 0; + continue; + } -#ifdef PMAP_REMOVE_PAGES_CURPROC_ONLY - pte = vtopte(pv->pv_va); -#else - pte = pmap_pte(pmap, pv->pv_va); -#endif - tpte = *pte; + pte = vtopte(pv->pv_va); + tpte = *pte; - if (tpte == 0) { - printf("TPTE at %p IS ZERO @ VA %08lx\n", - pte, pv->pv_va); - panic("bad pte"); - } + if (tpte == 0) { + printf( + "TPTE at %p IS ZERO @ VA %08lx\n", + pte, pv->pv_va); + panic("bad pte"); + } /* * We cannot remove wired pages from a process' mapping at this time */ - if (tpte & PG_W) { - npv = TAILQ_NEXT(pv, pv_plist); - continue; - } + if (tpte & PG_W) + continue; + + m = PHYS_TO_VM_PAGE(tpte & PG_FRAME); + KASSERT(m->phys_addr == (tpte & PG_FRAME), + ("vm_page_t %p phys_addr mismatch %016jx %016jx", + m, (uintmax_t)m->phys_addr, + (uintmax_t)tpte)); - m = PHYS_TO_VM_PAGE(tpte & PG_FRAME); - KASSERT(m->phys_addr == (tpte & PG_FRAME), - ("vm_page_t %p phys_addr mismatch %016jx %016jx", - m, (uintmax_t)m->phys_addr, (uintmax_t)tpte)); + KASSERT(m < &vm_page_array[vm_page_array_size], + ("pmap_remove_pages: bad tpte %#jx", + (uintmax_t)tpte)); - KASSERT(m < &vm_page_array[vm_page_array_size], - ("pmap_remove_pages: bad tpte %#jx", (uintmax_t)tpte)); + pmap->pm_stats.resident_count--; - pmap->pm_stats.resident_count--; + pte_clear(pte); - pte_clear(pte); + /* + * Update the vm_page_t clean/reference bits. + */ + if (tpte & PG_M) + vm_page_dirty(m); - /* - * Update the vm_page_t clean and reference bits. - */ - if (tpte & PG_M) { - vm_page_dirty(m); + /* Mark free */ + didfree = 1; + pc->pc_map[field] |= 1ul << bit; + m->md.pv_list_count--; + TAILQ_REMOVE(&m->md.pv_list, pv, pv_list); + if (TAILQ_EMPTY(&m->md.pv_list)) + vm_page_flag_clear(m, PG_WRITEABLE); + pmap_unuse_pt(pmap, pv->pv_va, + *vtopde(pv->pv_va)); + } + } + if (allfree) { + TAILQ_REMOVE(&pmap->pm_pvchunk, pc, pc_list); + m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((vm_offset_t)pc)); + vm_page_lock_queues(); + vm_page_free(m); + vm_page_unlock_queues(); + } else { + if (didfree) { + TAILQ_REMOVE(&pmap->pm_pvchunk, pc, pc_list); + TAILQ_INSERT_HEAD(&pmap->pm_pvchunk, pc, pc_list); + } } - - npv = TAILQ_NEXT(pv, pv_plist); - TAILQ_REMOVE(&pmap->pm_pvlist, pv, pv_plist); - - m->md.pv_list_count--; - TAILQ_REMOVE(&m->md.pv_list, pv, pv_list); - if (TAILQ_EMPTY(&m->md.pv_list)) - vm_page_flag_clear(m, PG_WRITEABLE); - - pmap_unuse_pt(pmap, pv->pv_va, *vtopde(pv->pv_va)); - free_pv_entry(pv); } pmap_invalidate_all(pmap); PMAP_UNLOCK(pmap); @@ -2673,6 +2769,7 @@ { pv_entry_t pv; pt_entry_t *pte; + pmap_t pmap; boolean_t rv; rv = FALSE; @@ -2688,10 +2785,11 @@ */ if (!pmap_track_modified(pv->pv_va)) continue; - PMAP_LOCK(pv->pv_pmap); - pte = pmap_pte(pv->pv_pmap, pv->pv_va); + pmap = PV_PMAP(pv); + PMAP_LOCK(pmap); + pte = pmap_pte(pmap, pv->pv_va); rv = (*pte & PG_M) != 0; - PMAP_UNLOCK(pv->pv_pmap); + PMAP_UNLOCK(pmap); if (rv) break; } @@ -2729,6 +2827,7 @@ pmap_clear_ptes(vm_page_t m, long bit) { register pv_entry_t pv; + pmap_t pmap; pt_entry_t pbits, *pte; if ((m->flags & PG_FICTITIOUS) || @@ -2749,8 +2848,9 @@ continue; } - PMAP_LOCK(pv->pv_pmap); - pte = pmap_pte(pv->pv_pmap, pv->pv_va); + pmap = PV_PMAP(pv); + PMAP_LOCK(pmap); + pte = pmap_pte(pmap, pv->pv_va); retry: pbits = *pte; if (pbits & bit) { @@ -2764,9 +2864,9 @@ } else { atomic_clear_long(pte, bit); } - pmap_invalidate_page(pv->pv_pmap, pv->pv_va); + pmap_invalidate_page(pmap, pv->pv_va); } - PMAP_UNLOCK(pv->pv_pmap); + PMAP_UNLOCK(pmap); } if (bit == PG_RW) vm_page_flag_clear(m, PG_WRITEABLE); @@ -2805,6 +2905,7 @@ pmap_ts_referenced(vm_page_t m) { register pv_entry_t pv, pvf, pvn; + pmap_t pmap; pt_entry_t *pte; pt_entry_t v; int rtval = 0; @@ -2827,20 +2928,21 @@ if (!pmap_track_modified(pv->pv_va)) continue; - PMAP_LOCK(pv->pv_pmap); - pte = pmap_pte(pv->pv_pmap, pv->pv_va); + pmap = PV_PMAP(pv); + PMAP_LOCK(pmap); + pte = pmap_pte(pmap, pv->pv_va); if (pte && ((v = pte_load(pte)) & PG_A) != 0) { atomic_clear_long(pte, PG_A); - pmap_invalidate_page(pv->pv_pmap, pv->pv_va); + pmap_invalidate_page(pmap, pv->pv_va); rtval++; if (rtval > 4) { - PMAP_UNLOCK(pv->pv_pmap); + PMAP_UNLOCK(pmap); break; } } - PMAP_UNLOCK(pv->pv_pmap); + PMAP_UNLOCK(pmap); } while ((pv = pvn) != NULL && pv != pvf); } ==== //depot/projects/hammer/sys/amd64/include/pmap.h#60 (text+ko) ==== @@ -222,6 +222,7 @@ * Pmap stuff */ struct pv_entry; +struct pv_chunk; struct md_page { int pv_list_count; @@ -231,7 +232,7 @@ struct pmap { struct mtx pm_mtx; pml4_entry_t *pm_pml4; /* KVA of level 4 page table */ - TAILQ_HEAD(,pv_entry) pm_pvlist; /* list of mappings in pmap */ + TAILQ_HEAD(,pv_chunk) pm_pvchunk; /* list of mappings in pmap */ u_int pm_active; /* active on cpus */ /* spare u_int here due to padding */ struct pmap_statistics pm_stats; /* pmap statistics */ @@ -260,12 +261,24 @@ * mappings of that page. An entry is a pv_entry_t, the list is pv_table. */ typedef struct pv_entry { - pmap_t pv_pmap; /* pmap where mapping lies */ vm_offset_t pv_va; /* virtual address for mapping */ TAILQ_ENTRY(pv_entry) pv_list; - TAILQ_ENTRY(pv_entry) pv_plist; } *pv_entry_t; +/* + * pv_entries are allocated in chunks per-process. This avoids the + * need to track per-pmap assignments. + */ +#define _NPCM 3 +#define _NPCPV 168 +struct pv_chunk { + pmap_t pc_pmap; + TAILQ_ENTRY(pv_chunk) pc_list; + uint64_t pc_map[_NPCM]; /* bitmap; 1 = free */ + uint64_t pc_spare[2]; + struct pv_entry pc_pventry[_NPCPV]; +}; + #ifdef _KERNEL #define NPPROVMTRR 8 From owner-p4-projects@FreeBSD.ORG Tue Mar 14 21:34:57 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4969A16A422; Tue, 14 Mar 2006 21:34:57 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 259B616A400 for ; Tue, 14 Mar 2006 21:34:57 +0000 (UTC) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id CD96343D49 for ; Tue, 14 Mar 2006 21:34:56 +0000 (GMT) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2ELYu2Q089962 for ; Tue, 14 Mar 2006 21:34:56 GMT (envelope-from millert@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2ELYuXX089959 for perforce@freebsd.org; Tue, 14 Mar 2006 21:34:56 GMT (envelope-from millert@freebsd.org) Date: Tue, 14 Mar 2006 21:34:56 GMT Message-Id: <200603142134.k2ELYuXX089959@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to millert@freebsd.org using -f From: Todd Miller To: Perforce Change Reviews Cc: Subject: PERFORCE change 93307 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Mar 2006 21:34:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=93307 Change 93307 by millert@millert_p3 on 2006/03/14 21:34:02 Remove duplicate mac.h inclusion Affected files ... .. //depot/projects/trustedbsd/sebsd/sys/kern/kern_descrip.c#16 edit Differences ... ==== //depot/projects/trustedbsd/sebsd/sys/kern/kern_descrip.c#16 (text+ko) ==== @@ -68,7 +68,6 @@ #include #include #include -#include #include #include From owner-p4-projects@FreeBSD.ORG Tue Mar 14 21:37:00 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4BB1816A420; Tue, 14 Mar 2006 21:37:00 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 13EE116A401 for ; Tue, 14 Mar 2006 21:37:00 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id C112543D45 for ; Tue, 14 Mar 2006 21:36:59 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2ELaxuE090144 for ; Tue, 14 Mar 2006 21:36:59 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2ELaxL7090141 for perforce@freebsd.org; Tue, 14 Mar 2006 21:36:59 GMT (envelope-from jhb@freebsd.org) Date: Tue, 14 Mar 2006 21:36:59 GMT Message-Id: <200603142136.k2ELaxL7090141@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 93308 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Mar 2006 21:37:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=93308 Change 93308 by jhb@jhb_slimer on 2006/03/14 21:36:16 Sync with CVS. Affected files ... .. //depot/projects/smpng/sys/kern/kern_thread.c#89 edit Differences ... ==== //depot/projects/smpng/sys/kern/kern_thread.c#89 (text+ko) ==== @@ -459,7 +459,6 @@ struct thread *td; struct proc *p; struct ksegrp *kg; - uint64_t new_switchtime; td = curthread; kg = td->td_ksegrp; From owner-p4-projects@FreeBSD.ORG Tue Mar 14 21:46:12 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6E4DA16A422; Tue, 14 Mar 2006 21:46:12 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4D65F16A41F for ; Tue, 14 Mar 2006 21:46:12 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0A5BD43D53 for ; Tue, 14 Mar 2006 21:46:12 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2ELkBJp090724 for ; Tue, 14 Mar 2006 21:46:11 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2ELkBFk090720 for perforce@freebsd.org; Tue, 14 Mar 2006 21:46:11 GMT (envelope-from peter@freebsd.org) Date: Tue, 14 Mar 2006 21:46:11 GMT Message-Id: <200603142146.k2ELkBFk090720@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 93310 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Mar 2006 21:46:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=93310 Change 93310 by peter@peter_daintree on 2006/03/14 21:45:43 Integrate alc's pv reclaim procedure by moving it to a callable function - long live pmap_collect()!! Call it if needed to try and pry loose a page for more chunks. Since pv entries are per process with this, we cannot just steal one from another process. We have to reclaim an entire contiguous page worth of pv entries. Affected files ... .. //depot/projects/hammer/sys/amd64/amd64/pmap.c#135 edit Differences ... ==== //depot/projects/hammer/sys/amd64/amd64/pmap.c#135 (text+ko) ==== @@ -1452,6 +1452,61 @@ #define PC_FREE2 0x000000fffffffffful /* + * We are in a serious low memory condition. Resort to + * drastic measures to free some pages so we can allocate + * another pv entry chunk. This is normally called to + * unmap inactive pages, and if necessary, active pages. + */ +static void +pmap_collect(pmap_t locked_pmap, struct vpgqueues *vpq) +{ + pd_entry_t ptepde; + pmap_t pmap; + pt_entry_t *pte, tpte; + pv_entry_t next_pv, pv; + vm_offset_t va; + vm_page_t m; + + TAILQ_FOREACH(m, &vpq->pl, pageq) { + if (m->hold_count || m->busy || (m->flags & PG_BUSY)) + continue; + TAILQ_FOREACH_SAFE(pv, &m->md.pv_list, pv_list, next_pv) { + va = pv->pv_va; + pmap = PV_PMAP(pv); + /* Avoid deadlock and lock recursion. */ + if (pmap > locked_pmap) + PMAP_LOCK(pmap); + else if (pmap != locked_pmap && !PMAP_TRYLOCK(pmap)) + continue; + pmap->pm_stats.resident_count--; + pte = pmap_pte_pde(pmap, va, &ptepde); + tpte = pte_load_clear(pte); + KASSERT((tpte & PG_W) == 0, + ("get_pv_entry: wired pte %#lx", tpte)); + if (tpte & PG_A) + vm_page_flag_set(m, PG_REFERENCED); + if (tpte & PG_M) { + KASSERT((tpte & PG_RW), + ("get_pv_entry: modified page not writable: va: %#lx, pte: %#lx", + va, tpte)); + if (pmap_track_modified(va)) + vm_page_dirty(m); + } + pmap_invalidate_page(pmap, va); + TAILQ_REMOVE(&m->md.pv_list, pv, pv_list); + if (TAILQ_EMPTY(&m->md.pv_list)) + vm_page_flag_clear(m, PG_WRITEABLE); + m->md.pv_list_count--; + pmap_unuse_pt(pmap, va, ptepde); + if (pmap != locked_pmap) + PMAP_UNLOCK(pmap); + free_pv_entry(pv); + } + } +} + + +/* * free the pv_entry back to the free list */ static PMAP_INLINE void @@ -1488,18 +1543,19 @@ static pv_entry_t get_pv_entry(pmap_t pmap) { + static const struct timeval printinterval = { 60, 0 }; + static struct timeval lastprint; static vm_pindex_t colour; int bit, field; pv_entry_t pv; struct pv_chunk *pc; vm_page_t m; + PMAP_LOCK_ASSERT(locked_pmap, MA_OWNED); + mtx_assert(&vm_page_queue_mtx, MA_OWNED); pv_entry_count++; - if ((pv_entry_count > pv_entry_high_water) && - (pmap_pagedaemon_waken == 0)) { - pmap_pagedaemon_waken = 1; - wakeup (&vm_pages_needed); - } + if (pv_entry_count > pv_entry_high_water) + pagedaemon_wakeup(); pc = TAILQ_FIRST(&pmap->pm_pvchunk); for (field = 0; field < _NPCM; field++) { bit = bsrq(pc->pc_map[field]); @@ -1519,8 +1575,25 @@ } /* No free items, allocate another chunk */ m = vm_page_alloc(NULL, colour, VM_ALLOC_SYSTEM | VM_ALLOC_NOOBJ); - if (m == NULL) - return (NULL); + if (m == NULL) { + /* + * Reclaim pv entries: At first, destroy mappings to inactive + * pages. After that, if a pv chunk entry is still needed, + * destroy mappings to active pages. + */ + if (ratecheck(&lastprint, &printinterval)) + printf("Approaching the limit on PV entries, consider " + "increasing sysctl vm.pmap.shpgperproc or " + "vm.pmap.pv_entry_max\n"); + pmap_collect(locked_pmap, &vm_page_queues[PQ_INACTIVE]); + m = vm_page_alloc(NULL, colour, VM_ALLOC_SYSTEM | VM_ALLOC_NOOBJ); + if (m == NULL) { + pmap_collect(locked_pmap, &vm_page_queues[PQ_ACTIVE]); + m = vm_page_alloc(NULL, colour, VM_ALLOC_SYSTEM | VM_ALLOC_NOOBJ); + if (m == NULL) + panic("get_pv_entry: increase vm.pmap.shpgperproc"); + } + } colour++; pc = (void *)PHYS_TO_DMAP(m->phys_addr); pc->pc_pmap = pmap; @@ -1531,92 +1604,6 @@ TAILQ_INSERT_HEAD(&pmap->pm_pvchunk, pc, pc_list); return (pv); } -#if 0 -static pv_entry_t -get_pv_entry(pmap_t locked_pmap) -{ - static const struct timeval printinterval = { 60, 0 }; - static struct timeval lastprint; - struct vpgqueues *vpq; - pd_entry_t ptepde; - pmap_t pmap; - pt_entry_t *pte, tpte; - pv_entry_t allocated_pv, next_pv, pv; - vm_offset_t va; - vm_page_t m; - - PMAP_LOCK_ASSERT(locked_pmap, MA_OWNED); - mtx_assert(&vm_page_queue_mtx, MA_OWNED); - allocated_pv = uma_zalloc(pvzone, M_NOWAIT); - if (allocated_pv != NULL) { - pv_entry_count++; - if (pv_entry_count > pv_entry_high_water) - pagedaemon_wakeup(); - else - return (allocated_pv); - } - - /* - * Reclaim pv entries: At first, destroy mappings to inactive - * pages. After that, if a pv entry is still needed, destroy - * mappings to active pages. - */ - if (ratecheck(&lastprint, &printinterval)) - printf("Approaching the limit on PV entries, consider " - "increasing sysctl vm.pmap.shpgperproc or " - "vm.pmap.pv_entry_max\n"); - vpq = &vm_page_queues[PQ_INACTIVE]; -retry: - TAILQ_FOREACH(m, &vpq->pl, pageq) { - if (m->hold_count || m->busy || (m->flags & PG_BUSY)) - continue; - TAILQ_FOREACH_SAFE(pv, &m->md.pv_list, pv_list, next_pv) { - va = pv->pv_va; - pmap = pv->pv_pmap; - /* Avoid deadlock and lock recursion. */ - if (pmap > locked_pmap) - PMAP_LOCK(pmap); - else if (pmap != locked_pmap && !PMAP_TRYLOCK(pmap)) - continue; - pmap->pm_stats.resident_count--; - pte = pmap_pte_pde(pmap, va, &ptepde); - tpte = pte_load_clear(pte); - KASSERT((tpte & PG_W) == 0, - ("get_pv_entry: wired pte %#lx", tpte)); - if (tpte & PG_A) - vm_page_flag_set(m, PG_REFERENCED); - if (tpte & PG_M) { - KASSERT((tpte & PG_RW), - ("get_pv_entry: modified page not writable: va: %#lx, pte: %#lx", - va, tpte)); - if (pmap_track_modified(va)) - vm_page_dirty(m); - } - pmap_invalidate_page(pmap, va); - TAILQ_REMOVE(&pmap->pm_pvlist, pv, pv_plist); - TAILQ_REMOVE(&m->md.pv_list, pv, pv_list); - if (TAILQ_EMPTY(&m->md.pv_list)) - vm_page_flag_clear(m, PG_WRITEABLE); - m->md.pv_list_count--; - pmap_unuse_pt(pmap, va, ptepde); - if (pmap != locked_pmap) - PMAP_UNLOCK(pmap); - if (allocated_pv == NULL) - allocated_pv = pv; - else - free_pv_entry(pv); - } - } - if (allocated_pv == NULL) { - if (vpq == &vm_page_queues[PQ_INACTIVE]) { - vpq = &vm_page_queues[PQ_ACTIVE]; - goto retry; - } - panic("get_pv_entry: increase the vm.pmap.shpgperproc tunable"); - } - return (allocated_pv); -} -#endif static void pmap_remove_entry(pmap_t pmap, vm_page_t m, vm_offset_t va) From owner-p4-projects@FreeBSD.ORG Tue Mar 14 21:53:22 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F1E4516A422; Tue, 14 Mar 2006 21:53:21 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D25DF16A41F for ; Tue, 14 Mar 2006 21:53:21 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9CFDA43D48 for ; Tue, 14 Mar 2006 21:53:21 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2ELrLKQ090973 for ; Tue, 14 Mar 2006 21:53:21 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2ELrLw2090970 for perforce@freebsd.org; Tue, 14 Mar 2006 21:53:21 GMT (envelope-from peter@freebsd.org) Date: Tue, 14 Mar 2006 21:53:21 GMT Message-Id: <200603142153.k2ELrLw2090970@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 93312 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Mar 2006 21:53:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=93312 Change 93312 by peter@peter_daintree on 2006/03/14 21:52:28 Compile fixes Affected files ... .. //depot/projects/hammer/sys/amd64/amd64/pmap.c#136 edit Differences ... ==== //depot/projects/hammer/sys/amd64/amd64/pmap.c#136 (text+ko) ==== @@ -197,7 +197,7 @@ */ static caddr_t crashdumpmap; -static PMAP_INLINE void free_pv_entry(pmap_t pmap, pv_entry_t pv); +static void free_pv_entry(pmap_t pmap, pv_entry_t pv); static pv_entry_t get_pv_entry(pmap_t locked_pmap); static void pmap_clear_ptes(vm_page_t m, long bit); @@ -1500,7 +1500,7 @@ pmap_unuse_pt(pmap, va, ptepde); if (pmap != locked_pmap) PMAP_UNLOCK(pmap); - free_pv_entry(pv); + free_pv_entry(locked_pmap, pv); } } } @@ -1509,7 +1509,7 @@ /* * free the pv_entry back to the free list */ -static PMAP_INLINE void +static void free_pv_entry(pmap_t pmap, pv_entry_t pv) { vm_page_t m; @@ -1551,7 +1551,7 @@ struct pv_chunk *pc; vm_page_t m; - PMAP_LOCK_ASSERT(locked_pmap, MA_OWNED); + PMAP_LOCK_ASSERT(pmap, MA_OWNED); mtx_assert(&vm_page_queue_mtx, MA_OWNED); pv_entry_count++; if (pv_entry_count > pv_entry_high_water) @@ -1585,10 +1585,10 @@ printf("Approaching the limit on PV entries, consider " "increasing sysctl vm.pmap.shpgperproc or " "vm.pmap.pv_entry_max\n"); - pmap_collect(locked_pmap, &vm_page_queues[PQ_INACTIVE]); + pmap_collect(pmap, &vm_page_queues[PQ_INACTIVE]); m = vm_page_alloc(NULL, colour, VM_ALLOC_SYSTEM | VM_ALLOC_NOOBJ); if (m == NULL) { - pmap_collect(locked_pmap, &vm_page_queues[PQ_ACTIVE]); + pmap_collect(pmap, &vm_page_queues[PQ_ACTIVE]); m = vm_page_alloc(NULL, colour, VM_ALLOC_SYSTEM | VM_ALLOC_NOOBJ); if (m == NULL) panic("get_pv_entry: increase vm.pmap.shpgperproc"); From owner-p4-projects@FreeBSD.ORG Tue Mar 14 21:58:29 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DCCC816A422; Tue, 14 Mar 2006 21:58:28 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BA8D316A41F for ; Tue, 14 Mar 2006 21:58:28 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5E4F143D45 for ; Tue, 14 Mar 2006 21:58:28 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2ELwSHp091159 for ; Tue, 14 Mar 2006 21:58:28 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2ELwRgg091156 for perforce@freebsd.org; Tue, 14 Mar 2006 21:58:27 GMT (envelope-from peter@freebsd.org) Date: Tue, 14 Mar 2006 21:58:27 GMT Message-Id: <200603142158.k2ELwRgg091156@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 93313 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Mar 2006 21:58:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=93313 Change 93313 by peter@peter_daintree on 2006/03/14 21:57:49 IFC @93312 Affected files ... .. //depot/projects/hammer/contrib/csup/GNUmakefile#2 integrate .. //depot/projects/hammer/contrib/csup/Makefile#2 integrate .. //depot/projects/hammer/contrib/csup/TODO#2 integrate .. //depot/projects/hammer/contrib/csup/config.c#2 integrate .. //depot/projects/hammer/contrib/csup/config.h#2 integrate .. //depot/projects/hammer/contrib/csup/csup.1#2 integrate .. //depot/projects/hammer/contrib/csup/fattr.c#2 integrate .. //depot/projects/hammer/contrib/csup/globtree.c#2 integrate .. //depot/projects/hammer/contrib/csup/idcache.c#1 branch .. //depot/projects/hammer/contrib/csup/idcache.h#1 branch .. //depot/projects/hammer/contrib/csup/lister.c#2 integrate .. //depot/projects/hammer/contrib/csup/main.c#2 integrate .. //depot/projects/hammer/contrib/csup/misc.c#2 integrate .. //depot/projects/hammer/contrib/csup/misc.h#2 integrate .. //depot/projects/hammer/contrib/csup/proto.c#2 integrate .. //depot/projects/hammer/contrib/csup/token.h#2 integrate .. //depot/projects/hammer/contrib/csup/token.l#2 integrate .. //depot/projects/hammer/contrib/csup/updater.c#2 integrate .. //depot/projects/hammer/etc/mtree/BSD.x11-4.dist#13 integrate .. //depot/projects/hammer/include/stdlib.h#14 integrate .. //depot/projects/hammer/lib/libc/stdlib/Makefile.inc#15 integrate .. //depot/projects/hammer/lib/libc/stdlib/Symbol.map#2 integrate .. //depot/projects/hammer/lib/libc/stdlib/strtonum.3#1 branch .. //depot/projects/hammer/lib/libc/stdlib/strtonum.c#1 branch .. //depot/projects/hammer/share/man/man5/Makefile#17 integrate .. //depot/projects/hammer/share/man/man9/hash.9#1 branch .. //depot/projects/hammer/sys/amd64/amd64/machdep.c#153 integrate .. //depot/projects/hammer/sys/boot/i386/libi386/Makefile#18 integrate .. //depot/projects/hammer/sys/boot/i386/libi386/smbios.c#5 integrate .. //depot/projects/hammer/sys/fs/fifofs/fifo_vnops.c#34 integrate .. //depot/projects/hammer/sys/i386/i386/machdep.c#69 integrate .. //depot/projects/hammer/sys/kern/kern_exit.c#58 integrate .. //depot/projects/hammer/sys/kern/kern_thread.c#88 integrate .. //depot/projects/hammer/sys/kern/uipc_mbuf.c#39 integrate .. //depot/projects/hammer/sys/pc98/pc98/machdep.c#10 integrate .. //depot/projects/hammer/usr.bin/csup/Makefile#2 integrate .. //depot/projects/hammer/usr.bin/ktrace/ktrace.c#3 integrate .. //depot/projects/hammer/usr.sbin/bluetooth/bthidd/bthidd.c#4 integrate .. //depot/projects/hammer/usr.sbin/bluetooth/bthidd/hid.c#3 integrate Differences ... ==== //depot/projects/hammer/contrib/csup/GNUmakefile#2 (text) ==== @@ -2,7 +2,7 @@ # be used elsewhere because it assumes that the target system doesn't # support BSD extended file flags. # -# $FreeBSD: src/contrib/csup/GNUmakefile,v 1.1.1.1 2006/03/03 04:11:25 mux Exp $ +# $FreeBSD: src/contrib/csup/GNUmakefile,v 1.1.1.2 2006/03/14 03:51:13 mux Exp $ # PREFIX?=/usr/local @@ -12,8 +12,8 @@ UNAME= $(shell uname -s) SRCS= attrstack.c config.c detailer.c diff.c fattr.c fixups.c fnmatch.c \ - globtree.c keyword.c lister.c main.c misc.c mux.c pathcomp.c parse.c \ - proto.c status.c stream.c threads.c token.c updater.c + globtree.c idcache.c keyword.c lister.c main.c misc.c mux.c pathcomp.c \ + parse.c proto.c status.c stream.c threads.c token.c updater.c OBJS= $(SRCS:.c=.o) WARNS= -Wall -W -Wno-unused-parameter -Wmissing-prototypes -Wpointer-arith \ @@ -22,10 +22,10 @@ -Wnested-externs -Wredundant-decls -Wno-format-y2k CFLAGS+= -g -O -pipe -DNDEBUG -I$(PREFIX)/include -ifeq ($(UNAME), "Linux") +ifeq ($(UNAME), Linux) CFLAGS+= -D_XOPEN_SOURCE -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 endif -ifeq ($(UNAME), "Darwin") +ifeq ($(UNAME), Darwin) CFLAGS+= -DHAVE_FFLAGS endif CFLAGS+= $(WARNS) ==== //depot/projects/hammer/contrib/csup/Makefile#2 (text) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/contrib/csup/Makefile,v 1.1.1.1 2006/03/03 04:11:25 mux Exp $ +# $FreeBSD: src/contrib/csup/Makefile,v 1.1.1.2 2006/03/14 03:51:13 mux Exp $ PREFIX?= /usr/local BINDIR?= ${PREFIX}/bin @@ -7,27 +7,9 @@ UNAME!= /usr/bin/uname -s PROG= csup -SRCS= attrstack.c attrstack.h \ - config.c config.h \ - detailer.c detailer.h \ - diff.c diff.h \ - fattr.c fattr.h fattr_bsd.h \ - fixups.c fixups.h \ - fnmatch.c fnmatch.h \ - globtree.c globtree.h \ - keyword.c keyword.h \ - lister.c lister.h \ - main.c main.h \ - misc.c misc.h \ - mux.c mux.h \ - parse.h parse.y \ - pathcomp.c pathcomp.h \ - proto.c proto.h \ - status.c status.h \ - stream.c stream.h \ - threads.c threads.h \ - token.h token.l \ - updater.c updater.h +SRCS= attrstack.c config.c detailer.c diff.c fattr.c fixups.c fnmatch.c \ + globtree.c idcache.c keyword.c lister.c main.c misc.c mux.c parse.y \ + pathcomp.c proto.c status.c stream.c threads.c token.l updater.c CFLAGS+= -I. -I${.CURDIR} -g -pthread -DHAVE_FFLAGS -DNDEBUG WARNS?= 6 ==== //depot/projects/hammer/contrib/csup/TODO#2 (text) ==== @@ -1,4 +1,4 @@ -$FreeBSD: src/contrib/csup/TODO,v 1.1.1.1 2006/03/03 04:11:25 mux Exp $ +$FreeBSD: src/contrib/csup/TODO,v 1.1.1.2 2006/03/14 03:51:13 mux Exp $ BUGS: @@ -9,9 +9,6 @@ has global variables because of yacc, but I think it should be possible to do it better by using YYFUNC_PROTOTYPE or something. I think it should also be possible to completely get rid of the lex file. -- Some code uses getpwnam() while it should use the thread-safe variant, - getpwnam_r(). Same for getpwuid() and getgrgid(). We probably need a - UID/GID lookup cache here. - The $Log$ CVS keyword is not supported. - Add missing support for supfile keywords and add sanity checks for some of them. Also, we're not supposed to choke on unknown keywords @@ -22,9 +19,9 @@ - Add support for authentication. - Add support for shell commands sent by the server. -- Add missing support for various CVSup options : -k, -d, -D, - -a (requires authentication support), -e and -E (requires shell - commands support) and the destDir parameter. +- Add missing support for various CVSup options : -D, -a (requires + authentication support), -e and -E (requires shell commands support) + and the destDir parameter. - For now, this code should build fine on FreeBSD, NetBSD, OpenBSD, Linux and Darwin. Solaris support would also be nice at some point. - Implement some new useful options : the ability to generate CVS ==== //depot/projects/hammer/contrib/csup/config.c#2 (text) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/contrib/csup/config.c,v 1.1.1.1 2006/03/03 04:11:26 mux Exp $ + * $FreeBSD: src/contrib/csup/config.c,v 1.1.1.2 2006/03/14 03:51:13 mux Exp $ */ #include @@ -53,6 +53,8 @@ static STAILQ_HEAD(, coll) colls; static struct coll *cur_coll; static struct coll *defaults; +static struct coll *ovcoll; +static int ovmask; static const char *cfgfile; /* @@ -78,13 +80,14 @@ mask = umask(0); umask(mask); defaults->co_umask = mask; + ovcoll = override; + ovmask = overridemask; /* Extract a list of collections from the configuration file. */ cur_coll = coll_new(defaults); yyin = fopen(file, "r"); if (yyin == NULL) { - lprintf(-1, "Cannot open \"%s\": %s\n", file, - strerror(errno)); + lprintf(-1, "Cannot open \"%s\": %s\n", file, strerror(errno)); goto bad; } cfgfile = file; @@ -101,7 +104,6 @@ /* Fixup the list of collections. */ STAILQ_FOREACH(coll, &config->colls, co_next) { - coll_override(coll, override, overridemask); if (coll->co_base == NULL) coll->co_base = xstrdup("/usr/local/etc/cvsup"); if (coll->co_colldir == NULL) @@ -229,13 +231,27 @@ config_parse_refusefile(struct coll *coll, char *path) { struct stream *rd; - char *line; + char *cp, *line, *pat; rd = stream_open_file(path, O_RDONLY); if (rd == NULL) return (0); - while ((line = stream_getln(rd, NULL)) != NULL) - pattlist_add(coll->co_refusals, line); + while ((line = stream_getln(rd, NULL)) != NULL) { + pat = line; + for (;;) { + /* Trim leading whitespace. */ + pat += strspn(pat, " \t"); + if (pat[0] == '\0') + break; + cp = strpbrk(pat, " \t"); + if (cp != NULL) + *cp = '\0'; + pattlist_add(coll->co_refusals, pat); + if (cp == NULL) + break; + pat = cp + 1; + } + } if (!stream_eof(rd)) { stream_close(rd); lprintf(-1, "Read failure from \"%s\": %s\n", path, @@ -417,6 +433,7 @@ struct coll *coll; cur_coll->co_name = name; + coll_override(cur_coll, ovcoll, ovmask); if (cur_coll->co_release == NULL) { lprintf(-1, "Release not specified for collection " "\"%s\"\n", cur_coll->co_name); @@ -472,6 +489,8 @@ globtree_free(coll->co_dirfilter); if (coll->co_dirfilter != NULL) globtree_free(coll->co_filefilter); + if (coll->co_norsync != NULL) + globtree_free(coll->co_norsync); if (coll->co_accepts != NULL) pattlist_free(coll->co_accepts); if (coll->co_refusals != NULL) @@ -483,6 +502,7 @@ coll_setopt(int opt, char *value) { struct coll *coll; + int error, mask; coll = cur_coll; switch (opt) { @@ -529,14 +549,14 @@ coll->co_listsuffix = value; break; case PT_UMASK: - errno = 0; - coll->co_umask = strtol(value, NULL, 8); + error = asciitoint(value, &mask, 8); free(value); - if (errno) { + if (error) { lprintf(-1, "Parse error in \"%s\": Invalid " "umask value\n", cfgfile); exit(1); } + coll->co_umask = mask; break; case PT_USE_REL_SUFFIX: coll->co_options |= CO_USERELSUFFIX; @@ -547,6 +567,9 @@ case PT_COMPRESS: coll->co_options |= CO_COMPRESS; break; + case PT_NORSYNC: + coll->co_options |= CO_NORSYNC; + break; } } ==== //depot/projects/hammer/contrib/csup/config.h#2 (text) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/contrib/csup/config.h,v 1.1.1.1 2006/03/03 04:11:26 mux Exp $ + * $FreeBSD: src/contrib/csup/config.h,v 1.1.1.2 2006/03/14 03:51:12 mux Exp $ */ #ifndef _CONFIG_H_ #define _CONFIG_H_ @@ -86,6 +86,7 @@ struct pattlist *co_refusals; struct globtree *co_dirfilter; struct globtree *co_filefilter; + struct globtree *co_norsync; const char *co_colldir; char *co_listsuffix; time_t co_scantime; /* Set by the detailer thread. */ @@ -101,6 +102,7 @@ char *host; struct sockaddr *laddr; socklen_t laddrlen; + int deletelim; int socket; struct chan *chan0; struct chan *chan1; ==== //depot/projects/hammer/contrib/csup/csup.1#2 (text) ==== @@ -22,7 +22,7 @@ .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" .\" $Id: cvsup.1,v 1.70 2003/03/04 18:23:46 jdp Exp $ -.\" $FreeBSD: src/contrib/csup/csup.1,v 1.1.1.1 2006/03/03 04:11:26 mux Exp $ +.\" $FreeBSD: src/contrib/csup/csup.1,v 1.1.1.2 2006/03/14 03:51:12 mux Exp $ .\" .Dd February 1, 2006 .Os FreeBSD @@ -32,10 +32,11 @@ .Nd network distribution package for CVS repositories .Sh SYNOPSIS .Nm -.Op Fl 146svzZ +.Op Fl 146ksvzZ .Op Fl A Ar addr .Op Fl b Ar base .Op Fl c Ar collDir +.Op Fl d Ar delLimit .Op Fl h Ar host .Op Fl i Ar pattern .Op Fl l Ar lockfile @@ -123,6 +124,13 @@ where the information about the collections is maintained. The default is .Pa sup . +.It Fl d Ar delLimit +Specifies the maximum number of files that may be deleted in a +single update run. +Any attempt to exceed the limit results in a fatal error. +This can provide some protection against temporary configuration +mistakes on the server. +The default limit is infinity. .It Fl h Ar host Specifies the server host to contact, overriding any .Cm host @@ -148,6 +156,17 @@ It is interpreted relative to the collection's prefix directory. Slash characters are matched only by explicit slashes in the pattern. Leading periods in file name are not treated specially. +.It Fl k +Causes +.Nm +to keep the temporary copies of any incorrectly edited files, in the +event of checksum mismatches. +This option is for debugging, to help determine why the files were +edited incorrectly. +Regardless of whether this option is specified, the permanent versions +of faulty files are replaced with correct versions obtained by +transferring the files in their entirety. +Such transfers are called fixups. .It Fl l Ar lockfile Creates and locks the .Ar lockfile ==== //depot/projects/hammer/contrib/csup/fattr.c#2 (text) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/contrib/csup/fattr.c,v 1.1.1.1 2006/03/03 04:11:26 mux Exp $ + * $FreeBSD: src/contrib/csup/fattr.c,v 1.1.1.2 2006/03/14 03:51:12 mux Exp $ */ #include @@ -32,14 +32,13 @@ #include #include -#include -#include #include #include #include #include #include "fattr.h" +#include "idcache.h" #include "misc.h" /* @@ -126,6 +125,8 @@ fa->mask |= FA_MODE; defaults[i] = fa; } + /* Initialize the uid/gid lookup cache. */ + idcache_init(); } void @@ -133,6 +134,7 @@ { int i; + idcache_fini(); for (i = 0; i < FT_NUMBER; i++) fattr_free(defaults[i]); } @@ -336,29 +338,26 @@ int extval; char *ext; } pieces[FA_NUMBER], *piece; - struct passwd *pw; - struct group *gr; - char *cp, *s; + char *cp, *s, *username, *groupname; size_t len, vallen; mode_t mode, modemask; int mask, n, i; - pw = NULL; - gr = NULL; + username = NULL; + groupname = NULL; if (support == NULL) mask = fa->mask; else mask = fa->mask & support[fa->type]; mask &= ~ignore; - /* XXX - Use getpwuid_r() and getgrgid_r(). */ if (fa->mask & FA_OWNER) { - pw = getpwuid(fa->uid); - if (pw == NULL) + username = getuserbyid(fa->uid); + if (username == NULL) mask &= ~FA_OWNER; } if (fa->mask & FA_GROUP) { - gr = getgrgid(fa->gid); - if (gr == NULL) + groupname = getgroupbyid(fa->gid); + if (groupname == NULL) mask &= ~FA_GROUP; } if (fa->mask & FA_LINKCOUNT && fa->linkcount == 1) @@ -408,17 +407,17 @@ piece++; } if (mask & FA_OWNER) { - vallen = strlen(pw->pw_name); + vallen = strlen(username); piece->extval = 1; - piece->ext = pw->pw_name; + piece->ext = username; len += snprintf(piece->len, sizeof(piece->len), "%lld", (long long)vallen) + vallen + 1; piece++; } if (mask & FA_GROUP) { - vallen = strlen(gr->gr_name); + vallen = strlen(groupname); piece->extval = 1; - piece->ext = gr->gr_name; + piece->ext = groupname; len += snprintf(piece->len, sizeof(piece->len), "%lld", (long long)vallen) + vallen + 1; piece++; @@ -551,11 +550,10 @@ static char * fattr_scanattr(struct fattr *fa, int type, const char *attr) { - struct passwd *pw; - struct group *gr; char *attrend, *attrstart, *end; size_t len; unsigned long attrlen; + int error; mode_t modemask; char tmp; @@ -606,21 +604,13 @@ goto bad; break; case FA_OWNER: - /* - * XXX - We need to use getpwnam_r() since getpwnam() - * is not thread-safe, and we also need to use a cache. - */ - pw = getpwnam(attrstart); - if (pw != NULL) - fa->uid = pw->pw_uid; - else + error = getuidbyname(attrstart, &fa->uid); + if (error) fa->mask &= ~FA_OWNER; break; case FA_GROUP: - gr = getgrnam(attrstart); - if (gr != NULL) - fa->gid = gr->gr_gid; - else + error = getgidbyname(attrstart, &fa->gid); + if (error) fa->mask &= ~FA_GROUP; break; case FA_MODE: @@ -770,11 +760,13 @@ return (-1); } +#ifdef HAVE_FFLAGS /* Clear flags. */ if (fa->mask & FA_FLAGS && fa->flags != 0) { fa->flags = 0; (void)chflags(path, fa->flags); } +#endif if (fa->type == FT_DIRECTORY) error = rmdir(path); @@ -812,35 +804,35 @@ inplace = 1; } old = fattr_frompath(topath, FATTR_NOFOLLOW); - if (old == NULL) - return (-1); - if (inplace && fattr_equal(fa, old)) { - fattr_free(old); - return (0); - } + if (old != NULL) { + if (inplace && fattr_equal(fa, old)) { + fattr_free(old); + return (0); + } #ifdef HAVE_FFLAGS - /* - * Determine whether we need to clear the flags of the target. - * This is bogus in that it assumes a value of 0 is safe and - * that non-zero is unsafe. I'm not really worried by that - * since as far as I know that's the way things are. - */ - if ((old->mask & FA_FLAGS) && old->flags > 0) { - (void)chflags(topath, 0); - old->flags = 0; - } + /* + * Determine whether we need to clear the flags of the target. + * This is bogus in that it assumes a value of 0 is safe and + * that non-zero is unsafe. I'm not really worried by that + * since as far as I know that's the way things are. + */ + if ((old->mask & FA_FLAGS) && old->flags > 0) { + (void)chflags(topath, 0); + old->flags = 0; + } #endif - /* Determine whether we need to remove the target first. */ - if (!inplace && (fa->type == FT_DIRECTORY) != - (old->type == FT_DIRECTORY)) { - if (old->type == FT_DIRECTORY) - error = rmdir(topath); - else - error = unlink(topath); - if (error) - goto bad; + /* Determine whether we need to remove the target first. */ + if (!inplace && (fa->type == FT_DIRECTORY) != + (old->type == FT_DIRECTORY)) { + if (old->type == FT_DIRECTORY) + error = rmdir(topath); + else + error = unlink(topath); + if (error) + goto bad; + } } /* Change those attributes that we can before moving the file @@ -866,8 +858,8 @@ } if (mask & FA_MODE) { newmode = fa->mode & modemask; - /* Merge in set*id bits from the old attribute. XXX - Why? */ - if (old->mask & FA_MODE) { + /* Merge in set*id bits from the old attribute. */ + if (old != NULL && old->mask & FA_MODE) { newmode |= (old->mode & ~modemask); newmode &= (FA_SETIDMASK | FA_PERMMASK); } ==== //depot/projects/hammer/contrib/csup/globtree.c#2 (text) ==== @@ -23,16 +23,16 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/contrib/csup/globtree.c,v 1.1.1.1 2006/03/03 04:11:27 mux Exp $ + * $FreeBSD: src/contrib/csup/globtree.c,v 1.1.1.2 2006/03/14 03:51:12 mux Exp $ */ #include #include -#include #include #include +#include "fnmatch.h" #include "globtree.h" #include "misc.h" ==== //depot/projects/hammer/contrib/csup/lister.c#2 (text) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/contrib/csup/lister.c,v 1.1.1.1 2006/03/03 04:11:27 mux Exp $ + * $FreeBSD: src/contrib/csup/lister.c,v 1.1.1.2 2006/03/14 03:51:12 mux Exp $ */ #include @@ -145,6 +145,7 @@ struct attrstack *as; struct statusrec *sr; struct fattr *fa; + size_t i; int depth, error, ret, prunedepth; wr = l->wr; @@ -203,7 +204,7 @@ return (LISTER_ERR_WRITE); return (0); bad: - while (depth-- > 0) { + for (i = 0; i < attrstack_size(as); i++) { fa = attrstack_pop(as); fattr_free(fa); } ==== //depot/projects/hammer/contrib/csup/main.c#2 (text) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/contrib/csup/main.c,v 1.1.1.1 2006/03/03 04:11:28 mux Exp $ + * $FreeBSD: src/contrib/csup/main.c,v 1.1.1.2 2006/03/14 03:51:11 mux Exp $ */ #include @@ -66,6 +66,8 @@ "Override supfile's \"base\" directory"); lprintf(-1, USAGE_OPTFMT, "-c collDir", "Subdirectory of \"base\" for collections (default \"sup\")"); + lprintf(-1, USAGE_OPTFMT, "-d delLimit", + "Allow at most \"delLimit\" file deletions (default unlimited)"); lprintf(-1, USAGE_OPTFMT, "-h host", "Override supfile's \"host\" name"); lprintf(-1, USAGE_OPTFMT, "-i pattern", @@ -73,6 +75,8 @@ lprintf(-1, USAGE_OPTFMTSUB, "May be repeated for an OR operation. Default is"); lprintf(-1, USAGE_OPTFMTSUB, "to include each entire collection."); + lprintf(-1, USAGE_OPTFMT, "-k", + "Keep bad temporary files when fixups are required"); lprintf(-1, USAGE_OPTFMT, "-l lockfile", "Lock file during update; fail if already locked"); lprintf(-1, USAGE_OPTFMT, "-L n", @@ -102,13 +106,13 @@ socklen_t laddrlen; struct stream *lock; char *argv0, *file, *lockfile; - uint16_t port; int family, error, lockfd, lflag, overridemask; - int c, i, retries, status; + int c, i, deletelim, port, retries, status; time_t nexttry; error = 0; family = PF_UNSPEC; + deletelim = -1; port = 0; lflag = 0; lockfd = 0; @@ -121,7 +125,8 @@ override = coll_new(NULL); overridemask = 0; - while ((c = getopt(argc, argv, "146A:b:c:gh:i:l:L:p:P:r:svzZ")) != -1) { + while ((c = getopt(argc, argv, + "146A:b:c:d:gh:i:kl:L:p:P:r:svzZ")) != -1) { switch (c) { case '1': retries = 0; @@ -152,6 +157,14 @@ case 'c': override->co_colldir = optarg; break; + case 'd': + error = asciitoint(optarg, &deletelim, 0); + if (error || deletelim < 0) { + lprintf(-1, "Invalid deletion limit\n"); + usage(argv0); + return (1); + } + break; case 'g': /* For compatibility. */ break; @@ -163,6 +176,10 @@ case 'i': pattlist_add(override->co_accepts, optarg); break; + case 'k': + override->co_options |= CO_KEEPBADFILES; + overridemask |= CO_KEEPBADFILES; + break; case 'l': lockfile = optarg; lflag = 1; @@ -191,9 +208,8 @@ stream_close(lock); break; case 'L': - errno = 0; - verbose = strtol(optarg, NULL, 0); - if (errno == EINVAL) { + error = asciitoint(optarg, &verbose, 0); + if (error) { lprintf(-1, "Invalid verbosity\n"); usage(argv0); return (1); @@ -201,13 +217,21 @@ break; case 'p': /* Use specified server port. */ - errno = 0; - port = strtol(optarg, NULL, 0); - if (errno == EINVAL) { + error = asciitoint(optarg, &port, 0); + if (error) { lprintf(-1, "Invalid server port\n"); usage(argv0); return (1); } + if (port <= 0 || port >= 65536) { + lprintf(-1, "Invalid port %d\n", port); + return (1); + } + if (port < 1024) { + lprintf(-1, "Reserved port %d not permitted\n", + port); + return (1); + } break; case 'P': /* For compatibility. */ @@ -218,9 +242,8 @@ } break; case 'r': - errno = 0; - retries = strtol(optarg, NULL, 0); - if (errno == EINVAL || retries < 0) { + error = asciitoint(optarg, &retries, 0); + if (error || retries < 0) { lprintf(-1, "Invalid retry limit\n"); usage(argv0); return (1); @@ -270,15 +293,16 @@ if (config == NULL) return (1); - if (laddr != NULL) { - config->laddr = laddr; - config->laddrlen = laddrlen; - } if (config_checkcolls(config) == 0) { lprintf(-1, "No collections selected\n"); return (1); } + if (laddr != NULL) { + config->laddr = laddr; + config->laddrlen = laddrlen; + } + config->deletelim = deletelim; lprintf(2, "Connecting to %s\n", config->host); i = 0; ==== //depot/projects/hammer/contrib/csup/misc.c#2 (text) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/contrib/csup/misc.c,v 1.1.1.2 2006/03/03 18:45:08 mux Exp $ + * $FreeBSD: src/contrib/csup/misc.c,v 1.1.1.3 2006/03/14 03:51:11 mux Exp $ */ #include @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #include @@ -64,6 +65,24 @@ static void bt_addjitter(struct backoff_timer *); int +asciitoint(const char *s, int *val, int base) +{ + char *end; + long longval; + + errno = 0; + longval = strtol(s, &end, base); + if (errno || *end != '\0') + return (-1); + if (longval > INT_MAX || longval < INT_MIN) { + errno = ERANGE; + return (-1); + } + *val = longval; + return (0); +} + +int lprintf(int level, const char *fmt, ...) { FILE *to; ==== //depot/projects/hammer/contrib/csup/misc.h#2 (text) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/contrib/csup/misc.h,v 1.1.1.1 2006/03/03 04:11:28 mux Exp $ + * $FreeBSD: src/contrib/csup/misc.h,v 1.1.1.2 2006/03/14 03:51:11 mux Exp $ */ #ifndef _MISC_H_ #define _MISC_H_ @@ -99,6 +99,7 @@ struct pattlist; struct tm; +int asciitoint(const char *, int *, int); int lprintf(int, const char *, ...) __printflike(2, 3); int MD5_File(char *, char *); void MD5_End(char *, MD5_CTX *); @@ -125,4 +126,5 @@ time_t bt_get(struct backoff_timer *); void bt_pause(struct backoff_timer *); void bt_free(struct backoff_timer *); + #endif /* !_MISC_H_ */ ==== //depot/projects/hammer/contrib/csup/proto.c#2 (text) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/contrib/csup/proto.c,v 1.1.1.1 2006/03/03 04:11:28 mux Exp $ + * $FreeBSD: src/contrib/csup/proto.c,v 1.1.1.2 2006/03/14 03:51:11 mux Exp $ */ #include @@ -35,7 +35,6 @@ #include #include #include -#include #include #include #include @@ -228,7 +227,7 @@ stream_flush(s); line = stream_getln(s, NULL); cmd = proto_get_ascii(&line); - if (line == NULL) + if (cmd == NULL || line == NULL) goto bad; if (strcmp(cmd, "!") == 0) { msg = proto_get_rest(&line); @@ -256,13 +255,20 @@ proto_login(struct config *config) { struct stream *s; - char host[MAXHOSTNAMELEN]; - char *line, *cmd, *realm, *challenge, *msg; + char hostbuf[MAXHOSTNAMELEN]; + char *line, *login, *host, *cmd, *realm, *challenge, *msg; + int error; s = config->server; - gethostname(host, sizeof(host)); - host[sizeof(host) - 1] = '\0'; - proto_printf(s, "USER %s %s\n", getlogin(), host); + error = gethostname(hostbuf, sizeof(hostbuf)); + hostbuf[sizeof(hostbuf) - 1] = '\0'; + if (error) + host = NULL; + else + host = hostbuf; + login = getlogin(); + proto_printf(s, "USER %s %s\n", login != NULL ? login : "?", + host != NULL ? host : "?"); stream_flush(s); line = stream_getln(s, NULL); cmd = proto_get_ascii(&line); @@ -279,6 +285,8 @@ stream_flush(s); line = stream_getln(s, NULL); cmd = proto_get_ascii(&line); + if (cmd == NULL || line == NULL) + goto bad; if (strcmp(cmd, "OK") == 0) return (STATUS_SUCCESS); if (strcmp(cmd, "!") == 0) { @@ -371,9 +379,11 @@ } proto_printf(s, ".\n"); stream_flush(s); + STAILQ_FOREACH(coll, &config->colls, co_next) { if (coll->co_options & CO_SKIP) continue; + coll->co_norsync = globtree_false(); line = stream_getln(s, NULL); if (line == NULL) goto bad; @@ -430,7 +440,21 @@ ident); if (error) goto bad; - } + } else if (strcmp(cmd, "NORS") == 0) { + pat = proto_get_ascii(&line); + if (pat == NULL || line != NULL) + goto bad; + coll->co_norsync = globtree_or(coll->co_norsync, + globtree_match(pat, FNM_PATHNAME)); + } else if (strcmp(cmd, "RNORS") == 0) { + pat = proto_get_ascii(&line); + if (pat == NULL || line != NULL) + goto bad; + coll->co_norsync = globtree_or(coll->co_norsync, + globtree_match(pat, FNM_PATHNAME | + FNM_LEADING_DIR)); + } else + goto bad; } if (line == NULL) goto bad; @@ -904,22 +928,14 @@ int proto_get_int(char **s, int *val, int base) { - char *cp, *end; - long longval; + char *cp; + int error; cp = proto_get_ascii(s); if (cp == NULL) return (-1); - errno = 0; - longval = strtol(cp, &end, base); - if (errno || *end != '\0') - return (-1); - if (longval > INT_MAX || longval < INT_MIN) { - errno = ERANGE; - return (-1); - } - *val = longval; - return (0); + error = asciitoint(cp, val, base); + return (error); } /* >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Mar 14 22:09:42 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C161816A423; Tue, 14 Mar 2006 22:09:42 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A19DE16A420 for ; Tue, 14 Mar 2006 22:09:42 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5660F43D46 for ; Tue, 14 Mar 2006 22:09:42 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2EM9gEF091528 for ; Tue, 14 Mar 2006 22:09:42 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2EM9g1u091525 for perforce@freebsd.org; Tue, 14 Mar 2006 22:09:42 GMT (envelope-from kmacy@freebsd.org) Date: Tue, 14 Mar 2006 22:09:42 GMT Message-Id: <200603142209.k2EM9g1u091525@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 93314 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Mar 2006 22:09:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=93314 Change 93314 by kmacy@kmacy_storage:sun4v_work on 2006/03/14 22:08:59 invlctx flushes locked entries - don't call on context 0 Affected files ... .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/pmap.c#24 edit Differences ... ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/pmap.c#24 (text+ko) ==== @@ -1021,11 +1021,12 @@ #ifdef SMP #error __FUNCTION_ not implemented #else - if (pmap->pm_context != 0) { - tsb_clear(&pmap->pm_tsb); - } + tsb_clear(&pmap->pm_tsb); - invlctx(pmap->pm_context); + if (pmap->pm_context) + invlctx(pmap->pm_context); + else + invltlb(); #endif } From owner-p4-projects@FreeBSD.ORG Tue Mar 14 23:18:11 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D513116A422; Tue, 14 Mar 2006 23:18:10 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 989BC16A41F for ; Tue, 14 Mar 2006 23:18:10 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 62A6643D45 for ; Tue, 14 Mar 2006 23:18:10 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2ENIAbv094295 for ; Tue, 14 Mar 2006 23:18:10 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2ENIAaP094292 for perforce@freebsd.org; Tue, 14 Mar 2006 23:18:10 GMT (envelope-from peter@freebsd.org) Date: Tue, 14 Mar 2006 23:18:10 GMT Message-Id: <200603142318.k2ENIAaP094292@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 93320 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Mar 2006 23:18:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=93320 Change 93320 by peter@peter_daintree on 2006/03/14 23:18:05 Add some temporary bandaids to get back to single user Affected files ... .. //depot/projects/hammer/sys/amd64/amd64/pmap.c#137 edit Differences ... ==== //depot/projects/hammer/sys/amd64/amd64/pmap.c#137 (text+ko) ==== @@ -1482,12 +1482,12 @@ pte = pmap_pte_pde(pmap, va, &ptepde); tpte = pte_load_clear(pte); KASSERT((tpte & PG_W) == 0, - ("get_pv_entry: wired pte %#lx", tpte)); + ("pmap_collect: wired pte %#lx", tpte)); if (tpte & PG_A) vm_page_flag_set(m, PG_REFERENCED); if (tpte & PG_M) { KASSERT((tpte & PG_RW), - ("get_pv_entry: modified page not writable: va: %#lx, pte: %#lx", + ("pmap_collect: modified page not writable: va: %#lx, pte: %#lx", va, tpte)); if (pmap_track_modified(va)) vm_page_dirty(m); @@ -1557,14 +1557,18 @@ if (pv_entry_count > pv_entry_high_water) pagedaemon_wakeup(); pc = TAILQ_FIRST(&pmap->pm_pvchunk); + if (pc == NULL) + goto alloc; for (field = 0; field < _NPCM; field++) { - bit = bsrq(pc->pc_map[field]); + bit = -1; + if (pc->pc_map[field]) + bit = bsfq(pc->pc_map[field]); if (bit >= 0) break; } if (bit >= 0) { pv = &pc->pc_pventry[field * 64 + bit]; - pc->pc_map[field] &= (1ul << bit); + pc->pc_map[field] &= ~(1ul << bit); /* If this was the last item, move it to tail */ if (pc->pc_map[0] == 0 && pc->pc_map[1] == 0 && pc->pc_map[2] == 0) { @@ -1573,6 +1577,7 @@ } return (pv); } +alloc: /* No free items, allocate another chunk */ m = vm_page_alloc(NULL, colour, VM_ALLOC_SYSTEM | VM_ALLOC_NOOBJ); if (m == NULL) { From owner-p4-projects@FreeBSD.ORG Tue Mar 14 23:48:53 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F238816A423; Tue, 14 Mar 2006 23:48:52 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B7DE316A400 for ; Tue, 14 Mar 2006 23:48:52 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8A5C243D72 for ; Tue, 14 Mar 2006 23:48:48 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2ENmmbu095532 for ; Tue, 14 Mar 2006 23:48:48 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2ENmlWF095529 for perforce@freebsd.org; Tue, 14 Mar 2006 23:48:47 GMT (envelope-from peter@freebsd.org) Date: Tue, 14 Mar 2006 23:48:47 GMT Message-Id: <200603142348.k2ENmlWF095529@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 93322 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Mar 2006 23:48:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=93322 Change 93322 by peter@peter_melody on 2006/03/14 23:48:30 add some stats Affected files ... .. //depot/projects/hammer/sys/amd64/amd64/pmap.c#138 edit Differences ... ==== //depot/projects/hammer/sys/amd64/amd64/pmap.c#138 (text+ko) ==== @@ -1451,6 +1451,32 @@ #define PC_FREE1 0xfffffffffffffffful #define PC_FREE2 0x000000fffffffffful +static int pc_chunk_count, pc_chunk_allocs, pc_chunk_frees; + +SYSCTL_INT(_vm_pmap, OID_AUTO, pc_chunk_count, CTLFLAG_RD, &pc_chunk_count, 0, + "Current number of pv entry chunks"); +SYSCTL_INT(_vm_pmap, OID_AUTO, pc_chunk_allocs, CTLFLAG_RD, &pc_chunk_allocs, 0, + "Current number of pv entry chunks allocated"); +SYSCTL_INT(_vm_pmap, OID_AUTO, pc_chunk_frees, CTLFLAG_RD, &pc_chunk_frees, 0, + "Current number of pv entry chunks frees"); + +static int pv_entry_frees, pv_entry_allocs, pv_entry_spare; + +SYSCTL_INT(_vm_pmap, OID_AUTO, pv_entry_count, CTLFLAG_RD, &pv_entry_count, 0, + "Current number of pv entries"); +SYSCTL_INT(_vm_pmap, OID_AUTO, pv_entry_frees, CTLFLAG_RD, &pv_entry_frees, 0, + "Current number of pv entry frees"); +SYSCTL_INT(_vm_pmap, OID_AUTO, pv_entry_allocs, CTLFLAG_RD, &pv_entry_allocs, 0, + "Current number of pv entry allocs"); +SYSCTL_INT(_vm_pmap, OID_AUTO, pv_entry_spare, CTLFLAG_RD, &pv_entry_spare, 0, + "Current number of spare pv entries"); + +static int pmap_collect_inactive, pmap_collect_active; + +SYSCTL_INT(_vm_pmap, OID_AUTO, pmap_collect_inactive, CTLFLAG_RD, &pmap_collect_inactive, 0, + "Current number times pmap_collect called on inactive queue"); +SYSCTL_INT(_vm_pmap, OID_AUTO, pmap_collect_active, CTLFLAG_RD, &pmap_collect_active, 0, + "Current number times pmap_collect called on active queue"); /* * We are in a serious low memory condition. Resort to * drastic measures to free some pages so we can allocate @@ -1516,6 +1542,8 @@ struct pv_chunk *pc; int idx, field, bit; + pv_entry_frees++; + pv_entry_spare++; pv_entry_count--; pc = pv_to_chunk(pv); idx = pv - &pc->pc_pventry[0]; @@ -1528,6 +1556,9 @@ if (pc->pc_map[0] != PC_FREE0 || pc->pc_map[1] != PC_FREE1 || pc->pc_map[2] != PC_FREE2) return; + pv_entry_spare -= _NPCPV; + pc_chunk_count--; + pc_chunk_frees++; /* entire chunk is free, return it */ TAILQ_REMOVE(&pmap->pm_pvchunk, pc, pc_list); m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((vm_offset_t)pc)); @@ -1553,6 +1584,7 @@ PMAP_LOCK_ASSERT(pmap, MA_OWNED); mtx_assert(&vm_page_queue_mtx, MA_OWNED); + pv_entry_allocs++; pv_entry_count++; if (pv_entry_count > pv_entry_high_water) pagedaemon_wakeup(); @@ -1575,6 +1607,7 @@ TAILQ_REMOVE(&pmap->pm_pvchunk, pc, pc_list); TAILQ_INSERT_TAIL(&pmap->pm_pvchunk, pc, pc_list); } + pv_entry_spare--; return (pv); } alloc: @@ -1590,15 +1623,19 @@ printf("Approaching the limit on PV entries, consider " "increasing sysctl vm.pmap.shpgperproc or " "vm.pmap.pv_entry_max\n"); + pmap_collect_inactive++; pmap_collect(pmap, &vm_page_queues[PQ_INACTIVE]); m = vm_page_alloc(NULL, colour, VM_ALLOC_SYSTEM | VM_ALLOC_NOOBJ); if (m == NULL) { + pmap_collect_active++; pmap_collect(pmap, &vm_page_queues[PQ_ACTIVE]); m = vm_page_alloc(NULL, colour, VM_ALLOC_SYSTEM | VM_ALLOC_NOOBJ); if (m == NULL) panic("get_pv_entry: increase vm.pmap.shpgperproc"); } } + pc_chunk_count++; + pc_chunk_allocs++; colour++; pc = (void *)PHYS_TO_DMAP(m->phys_addr); pc->pc_pmap = pmap; @@ -1607,6 +1644,7 @@ pc->pc_map[2] = PC_FREE2; pv = &pc->pc_pventry[0]; TAILQ_INSERT_HEAD(&pmap->pm_pvchunk, pc, pc_list); + pv_entry_spare += _NPCPV - 1; return (pv); } From owner-p4-projects@FreeBSD.ORG Wed Mar 15 00:12:34 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2576416A445; Wed, 15 Mar 2006 00:12:34 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EFC7C16A436 for ; Wed, 15 Mar 2006 00:12:33 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 966C943DA2 for ; Wed, 15 Mar 2006 00:12:16 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2F0CGmK096582 for ; Wed, 15 Mar 2006 00:12:16 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2F0CGJW096579 for perforce@freebsd.org; Wed, 15 Mar 2006 00:12:16 GMT (envelope-from peter@freebsd.org) Date: Wed, 15 Mar 2006 00:12:16 GMT Message-Id: <200603150012.k2F0CGJW096579@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 93323 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Mar 2006 00:12:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=93323 Change 93323 by peter@peter_melody on 2006/03/15 00:11:28 Add corresponding stats entries in pmap_remove_pages(), because it directly manipulates and frees pv entries and pv entry chunks. Affected files ... .. //depot/projects/hammer/sys/amd64/amd64/pmap.c#139 edit Differences ... ==== //depot/projects/hammer/sys/amd64/amd64/pmap.c#139 (text+ko) ==== @@ -2760,6 +2760,9 @@ vm_page_dirty(m); /* Mark free */ + pv_entry_frees++; + pv_entry_spare++; + pv_entry_count--; didfree = 1; pc->pc_map[field] |= 1ul << bit; m->md.pv_list_count--; @@ -2771,6 +2774,9 @@ } } if (allfree) { + pv_entry_spare -= _NPCPV; + pc_chunk_count--; + pc_chunk_frees++; TAILQ_REMOVE(&pmap->pm_pvchunk, pc, pc_list); m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((vm_offset_t)pc)); vm_page_lock_queues(); From owner-p4-projects@FreeBSD.ORG Wed Mar 15 00:31:41 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DA2D216A424; Wed, 15 Mar 2006 00:31:40 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B894E16A400 for ; Wed, 15 Mar 2006 00:31:40 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6CFA043D46 for ; Wed, 15 Mar 2006 00:31:40 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2F0Veqi097303 for ; Wed, 15 Mar 2006 00:31:40 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2F0VeJA097300 for perforce@freebsd.org; Wed, 15 Mar 2006 00:31:40 GMT (envelope-from kmacy@freebsd.org) Date: Wed, 15 Mar 2006 00:31:40 GMT Message-Id: <200603150031.k2F0VeJA097300@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 93324 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Mar 2006 00:31:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=93324 Change 93324 by kmacy@kmacy_storage:sun4v_work on 2006/03/15 00:30:44 add support for direct mappings map kernel text with permanent mapping clean up cpu_setregs don't expect PCB to be in %g6 don't set kernel stack until it is mapped Affected files ... .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/locore.S#7 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/machdep.c#10 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/pmap.c#25 edit Differences ... ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/locore.S#7 (text+ko) ==== @@ -76,6 +76,7 @@ call sparc64_init nop + GET_PCB(%g6) /* * Get onto thread0's kstack. */ @@ -94,18 +95,12 @@ * void cpu_setregs(struct pcpu *pc) */ ENTRY(cpu_setregs) - ldx [%o0 + PC_CURPCB], %o1 /* * Disable interrupts, normal globals. */ wrpr %g0, PSTATE_NORMAL, %pstate - /* - * Normal %g6 points to the current thread's pcb, and %g7 points to - * the per-cpu data structure. - */ - mov %o1, %g6 mov %o0, PCPU_REG /* ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/machdep.c#10 (text+ko) ==== @@ -367,9 +367,6 @@ proc_linkup(&proc0, &ksegrp0, &thread0); proc0.p_md.md_sigtramp = NULL; proc0.p_md.md_utrap = NULL; - thread0.td_kstack = kstack0; - thread0.td_pcb = (struct pcb *) - (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; frame0.tf_tstate = TSTATE_IE | TSTATE_PEF | TSTATE_PRIV; thread0.td_frame = &frame0; @@ -381,7 +378,6 @@ pc = (struct pcpu *)(pcpu0 + (PCPU_PAGES * PAGE_SIZE)) - 1; pcpu_init(pc, 0, sizeof(struct pcpu)); pc->pc_curthread = &thread0; - pc->pc_curpcb = thread0.td_pcb; #ifdef notyet /* SUN4V_FIXME what is pc_mid? */ pc->pc_mid = UPA_CR_GET_MID(ldxa(0, ASI_UPA_CONFIG_REG)); @@ -403,6 +399,12 @@ */ pmap_bootstrap(end); + thread0.td_kstack = kstack0; + thread0.td_pcb = (struct pcb *) + (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; + pc->pc_curpcb = thread0.td_pcb; + + /* * Initialize tunables. */ @@ -416,11 +418,10 @@ /* * Initialize the message buffer (after setting trap table). */ -#if 0 + printf("msgbuf_init\n"); msgbufinit(msgbufp, MSGBUF_SIZE); -#endif mutex_init(); OF_getprop(root, "name", sparc64_model, sizeof(sparc64_model) - 1); @@ -512,8 +513,11 @@ tf->tf_out[4] = (register_t)catcher; /* Fill siginfo structure. */ sf.sf_si = ksi->ksi_info; +#ifdef notyet sf.sf_si.si_addr = (void *)tf->tf_sfar; /* XXX */ - +#else + __asm __volatile("ta 0x71"); +#endif /* Copy the sigframe out to the user's stack. */ if (rwindow_save(td) != 0 || copyout(&sf, sfp, sizeof(*sfp)) != 0 || suword(&fp->fr_in[6], tf->tf_out[6]) != 0) { @@ -765,6 +769,7 @@ u_long sp; /* XXX no cpu_exec */ + p = td->td_proc; p->p_md.md_sigtramp = NULL; if (p->p_md.md_utrap != NULL) { ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/pmap.c#25 (text+ko) ==== @@ -62,6 +62,7 @@ #include #include #include +#include #include #include #include @@ -110,11 +111,10 @@ vm_offset_t virtual_avail; vm_offset_t virtual_end; vm_offset_t kernel_vm_end; - vm_offset_t vm_max_kernel_address; +vm_paddr_t kernel_phys; - #ifndef PMAP_SHPGPERPROC #define PMAP_SHPGPERPROC 200 #endif @@ -381,7 +381,7 @@ pmap_bootstrap(vm_offset_t ekva) { struct pmap *pm; - vm_offset_t off, va, kernel_hash; + vm_offset_t off, va; vm_paddr_t pa, kernel_hash_pa; vm_size_t physsz, virtsz; ihandle_t pmem, vmem; @@ -453,10 +453,6 @@ kernel_hash_pa = pmap_bootstrap_alloc(PAGE_SIZE_4M); if (kernel_hash_pa & PAGE_MASK_4M) panic("pmap_bootstrap: hashtable pa unaligned\n"); - kernel_hash = virtual_avail; - if (kernel_hash & PAGE_MASK_4M) - panic("pmap_bootstrap: hashtable va unaligned\n"); - virtual_avail += PAGE_SIZE_4M; pmap_scrub_pages(kernel_hash_pa, PAGE_SIZE_4M); /* @@ -511,11 +507,12 @@ pmap_scrub_pages(kernel_td[TSB4M_INDEX].hvtsb_pa, tsb_4m_size); /* - * Install kernel hashtable into 4M TSB + * setup direct mappings * */ - tsb_set_tte(&kernel_td[TSB4M_INDEX], kernel_hash, - kernel_hash_pa | TTE_KERNEL | VTD_4M, 0); + for (pa = PAGE_SIZE_4M; pa < phys_avail[2]; pa += PAGE_SIZE_4M) + tsb_set_tte(&kernel_td[TSB4M_INDEX], TLB_PHYS_TO_DIRECT(pa), + pa | TTE_KERNEL | VTD_4M, 0); /* * allocate MMU fault status areas for all CPUS @@ -531,7 +528,8 @@ #ifdef notyet /* XXX this tries to map at a wacky address */ for (i = 0; i < (MSGBUF_SIZE / PAGE_SIZE); i++) - tsb_set_tte(&kernel_td[TSB8K_INDEX], ((vm_offset_t)msgbufp) + i*PAGE_SIZE , + tsb_set_tte(&kernel_td[TSB8K_INDEX], + ((vm_offset_t)msgbufp) + i*PAGE_SIZE, msgbuf_phys + i*PAGE_SIZE | TTE_KERNEL | VTD_8K, 0); #endif @@ -547,7 +545,8 @@ for (i = 0; i < KSTACK_PAGES; i++) { pa = kstack0_phys + i * PAGE_SIZE; va = kstack0 + i * PAGE_SIZE; - tsb_set_tte(&kernel_td[TSB8K_INDEX], va, pa | TTE_KERNEL | VTD_8K, 0); + tsb_set_tte(&kernel_td[TSB8K_INDEX], va, + pa | TTE_KERNEL | VTD_8K, 0); } /* short-term MP-unsafe hack for pmap_copy_page */ @@ -585,24 +584,31 @@ "translation: start=%#lx size=%#lx tte=%#lx", translations[i].om_start, translations[i].om_size, translations[i].om_tte); -#if 0 - if (translations[i].om_start < VM_MIN_PROM_ADDRESS || - translations[i].om_start > VM_MAX_PROM_ADDRESS) + printf("om_size=%ld om_start=%lx om_tte=%lx\n", + translations[i].om_size, translations[i].om_start, + translations[i].om_tte); + + + if (translations[i].om_size == PAGE_SIZE_4M && + translations[i].om_start == KERNBASE) { + kernel_phys = pa = TTE_GET_PA(translations[i].om_tte); + printf("mapping permanent translation\n"); + error = hv_mmu_map_perm_addr((char *)translations[i].om_start, KCONTEXT, + pa | TTE_KERNEL | VTD_4M, MAP_ITLB | MAP_DTLB); + if (error != H_EOK) + panic("map_perm_addr returned error=%ld", error); + continue; + } else if (translations[i].om_start < VM_MIN_PROM_ADDRESS || + translations[i].om_start > VM_MAX_PROM_ADDRESS) { continue; -#endif - printf("om_size=%ld om_start=%lx om_tte=%lx\n", translations[i].om_size, - translations[i].om_start, translations[i].om_tte); - if (translations[i].om_size == PAGE_SIZE_4M) { - tsb_assert_invalid(&kernel_td[TSB4M_INDEX], translations[i].om_start); - tsb_set_tte(&kernel_td[TSB4M_INDEX], translations[i].om_start, - TTE_GET_PA(translations[i].om_tte) | TTE_KERNEL | VTD_4M, 0); } else { for (off = 0; off < translations[i].om_size; off += PAGE_SIZE) { va = translations[i].om_start + off; pa = TTE_GET_PA(translations[i].om_tte) + off; tsb_assert_invalid(&kernel_td[TSB8K_INDEX], va); - tsb_set_tte(&kernel_td[TSB8K_INDEX], va, pa | TTE_KERNEL | VTD_8K, 0); + tsb_set_tte(&kernel_td[TSB8K_INDEX], va, pa | + TTE_KERNEL | VTD_8K, 0); } } } @@ -625,7 +631,7 @@ PMAP_LOCK_INIT(kernel_pmap); TAILQ_INIT(&kernel_pmap->pm_pvlist); - printf("physical address of kernel_td: 0x%lx\n", vtophys((vm_offset_t)&kernel_td)); + printf("physical address of kernel_td: 0x%lx\n", vtophys((vm_offset_t)&kernel_td)); error = hv_set_ctx0(MAX_TSB_INFO, vtophys((vm_offset_t)&kernel_td)); if (error != H_EOK) @@ -635,21 +641,34 @@ * This could happen earlier - but I put it here to avoid * attempts to do updates until they're legal */ - pm->pm_hash = tte_hash_kernel_create(kernel_hash, PAGE_SIZE_4M); + pm->pm_hash = tte_hash_kernel_create(TLB_PHYS_TO_DIRECT(kernel_hash_pa), PAGE_SIZE_4M); pm->pm_hashscratch = tte_hash_set_scratchpad_kernel(pm->pm_hash); for (i = 0; i < sz; i++) { if (translations[i].om_start < VM_MIN_PROM_ADDRESS || translations[i].om_start > VM_MAX_PROM_ADDRESS) continue; - if (translations[i].om_size == PAGE_SIZE_4M) - continue; for (off = 0; off < translations[i].om_size; off += PAGE_SIZE) { va = translations[i].om_start + off; pa = TTE_GET_PA(translations[i].om_tte) + off; tte_hash_insert(pm->pm_hash, va, pa | TTE_KERNEL | VTD_8K); } } + for (i = 0; i < KSTACK_PAGES; i++) { + pa = kstack0_phys + i * PAGE_SIZE; + va = kstack0 + i * PAGE_SIZE; + tte_hash_insert(pm->pm_hash, va, pa | TTE_KERNEL | VTD_8K); + } + /* + * Add direct mappings to hash + * + */ +#ifdef notyet + /* hash only supports 8k pages */ + for (pa = PAGE_SIZE_4M; pa < phys_avail[2]; pa += PAGE_SIZE_4M) + tte_hash_insert(pm->pm_hash, TLB_PHYS_TO_DIRECT(pa), + pa | TTE_KERNEL | VTD_4M); +#endif } @@ -1068,7 +1087,10 @@ vm_paddr_t pa; pa = 0; - if ((tte_data = tsb_lookup_tte(va, 0)) != 0) + if (va > KERNBASE && va < KERNBASE + PAGE_SIZE_4M) + pa = kernel_phys + (va - KERNBASE); + + if ((pa == 0) && (tte_data = tsb_lookup_tte(va, 0)) != 0) pa = TTE_GET_PA(tte_data) | (va & TTE_GET_PAGE_MASK(tte_data)); if ((pa == 0) && (tte = tte_hash_lookup(kernel_pmap->pm_hash, va)) != NULL) From owner-p4-projects@FreeBSD.ORG Wed Mar 15 00:50:12 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BA79716A401; Wed, 15 Mar 2006 00:50:12 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8230116A426 for ; Wed, 15 Mar 2006 00:50:12 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 26F6143D7F for ; Wed, 15 Mar 2006 00:50:04 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2F0o33c005625 for ; Wed, 15 Mar 2006 00:50:03 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2F0o3an005622 for perforce@freebsd.org; Wed, 15 Mar 2006 00:50:03 GMT (envelope-from peter@freebsd.org) Date: Wed, 15 Mar 2006 00:50:03 GMT Message-Id: <200603150050.k2F0o3an005622@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 93327 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Mar 2006 00:50:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=93327 Change 93327 by peter@peter_melody on 2006/03/15 00:49:56 Eliminate the sva/eva args to pmap_remove_pages(). We only ever call it for "all user address space", and as long as that is true, the amd64 pmap_remove_pages() can use bsfq etc to scan its bitmaps instead of a slow for loop. XXX switch over to using bsfq()! Affected files ... .. //depot/projects/hammer/sys/alpha/alpha/pmap.c#50 edit .. //depot/projects/hammer/sys/amd64/amd64/pmap.c#140 edit .. //depot/projects/hammer/sys/arm/arm/pmap.c#30 edit .. //depot/projects/hammer/sys/i386/i386/pmap.c#80 edit .. //depot/projects/hammer/sys/ia64/ia64/pmap.c#52 edit .. //depot/projects/hammer/sys/kern/kern_exec.c#62 edit .. //depot/projects/hammer/sys/kern/kern_exit.c#59 edit .. //depot/projects/hammer/sys/powerpc/powerpc/mmu_if.m#3 edit .. //depot/projects/hammer/sys/powerpc/powerpc/pmap_dispatch.c#4 edit .. //depot/projects/hammer/sys/sparc64/sparc64/pmap.c#40 edit .. //depot/projects/hammer/sys/vm/pmap.h#24 edit Differences ... ==== //depot/projects/hammer/sys/alpha/alpha/pmap.c#50 (text+ko) ==== @@ -2125,9 +2125,7 @@ * in the case of running down an entire address space. */ void -pmap_remove_pages(pmap, sva, eva) - pmap_t pmap; - vm_offset_t sva, eva; +pmap_remove_pages(pmap_t pmap) { pt_entry_t *pte, tpte; vm_page_t m; @@ -2146,11 +2144,6 @@ pv; pv = npv) { - if (pv->pv_va >= eva || pv->pv_va < sva) { - npv = TAILQ_NEXT(pv, pv_plist); - continue; - } - #ifdef PMAP_REMOVE_PAGES_CURPROC_ONLY pte = vtopte(pv->pv_va); #else ==== //depot/projects/hammer/sys/amd64/amd64/pmap.c#140 (text+ko) ==== @@ -2685,9 +2685,7 @@ * in the case of running down an entire address space. */ void -pmap_remove_pages(pmap, sva, eva) - pmap_t pmap; - vm_offset_t sva, eva; +pmap_remove_pages(pmap_t pmap) { pt_entry_t *pte, tpte; vm_page_t m; @@ -2695,7 +2693,6 @@ struct pv_chunk *pc, *npc; int field, idx; int64_t bit; - int allfree, didfree;; if (pmap != vmspace_pmap(curthread->td_proc->p_vmspace)) { printf("warning: pmap_remove_pages called with non-current pmap\n"); @@ -2704,13 +2701,11 @@ vm_page_lock_queues(); PMAP_LOCK(pmap); TAILQ_FOREACH_SAFE(pc, &pmap->pm_pvchunk, pc_list, npc) { - allfree = 1; - didfree = 0; /* - * If only we could eliminate the sva/eva tests, and define - * pmap_remove_pages() to simply remove *ALL* user pages, we - * could make it faster here. eg: replace for() loop with - * bsrq() and some other some algorithm changes. + * XXX optimize more after removal of sva/eva! + * We can use bsfq to find the next inuse pv instead of + * the for loop. Since we free as we go, we won't have + * to skip unfreeable ones that sva/eva might have allowed. */ for (idx = 0; idx < _NPCPV; idx++) { field = idx / 64; @@ -2718,11 +2713,6 @@ if ((pc->pc_map[field] & 1ul << bit) == 0) { /* inuse */ pv = &pc->pc_pventry[idx]; - if (pv->pv_va >= eva || pv->pv_va < sva) { - allfree = 0; - continue; - } - pte = vtopte(pv->pv_va); tpte = *pte; @@ -2763,7 +2753,6 @@ pv_entry_frees++; pv_entry_spare++; pv_entry_count--; - didfree = 1; pc->pc_map[field] |= 1ul << bit; m->md.pv_list_count--; TAILQ_REMOVE(&m->md.pv_list, pv, pv_list); @@ -2773,21 +2762,14 @@ *vtopde(pv->pv_va)); } } - if (allfree) { - pv_entry_spare -= _NPCPV; - pc_chunk_count--; - pc_chunk_frees++; - TAILQ_REMOVE(&pmap->pm_pvchunk, pc, pc_list); - m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((vm_offset_t)pc)); - vm_page_lock_queues(); - vm_page_free(m); - vm_page_unlock_queues(); - } else { - if (didfree) { - TAILQ_REMOVE(&pmap->pm_pvchunk, pc, pc_list); - TAILQ_INSERT_HEAD(&pmap->pm_pvchunk, pc, pc_list); - } - } + pv_entry_spare -= _NPCPV; + pc_chunk_count--; + pc_chunk_frees++; + TAILQ_REMOVE(&pmap->pm_pvchunk, pc, pc_list); + m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((vm_offset_t)pc)); + vm_page_lock_queues(); + vm_page_free(m); + vm_page_unlock_queues(); } pmap_invalidate_all(pmap); PMAP_UNLOCK(pmap); ==== //depot/projects/hammer/sys/arm/arm/pmap.c#30 (text+ko) ==== @@ -2809,7 +2809,7 @@ * in the case of running down an entire address space. */ void -pmap_remove_pages(pmap_t pmap, vm_offset_t sva, vm_offset_t eva) +pmap_remove_pages(pmap_t pmap) { struct pv_entry *pv, *npv; struct l2_bucket *l2b = NULL; @@ -2818,10 +2818,6 @@ vm_page_lock_queues(); for (pv = TAILQ_FIRST(&pmap->pm_pvlist); pv; pv = npv) { - if (pv->pv_va >= eva || pv->pv_va < sva) { - npv = TAILQ_NEXT(pv, pv_plist); - continue; - } if (pv->pv_flags & PVF_WIRED) { /* The page is wired, cannot remove it now. */ npv = TAILQ_NEXT(pv, pv_plist); ==== //depot/projects/hammer/sys/i386/i386/pmap.c#80 (text+ko) ==== @@ -2590,9 +2590,7 @@ * in the case of running down an entire address space. */ void -pmap_remove_pages(pmap, sva, eva) - pmap_t pmap; - vm_offset_t sva, eva; +pmap_remove_pages(pmap_t pmap) { pt_entry_t *pte, tpte; vm_page_t m; @@ -2609,11 +2607,6 @@ sched_pin(); for (pv = TAILQ_FIRST(&pmap->pm_pvlist); pv; pv = npv) { - if (pv->pv_va >= eva || pv->pv_va < sva) { - npv = TAILQ_NEXT(pv, pv_plist); - continue; - } - #ifdef PMAP_REMOVE_PAGES_CURPROC_ONLY pte = vtopte(pv->pv_va); #else ==== //depot/projects/hammer/sys/ia64/ia64/pmap.c#52 (text+ko) ==== @@ -1862,7 +1862,7 @@ * in the case of running down an entire address space. */ void -pmap_remove_pages(pmap_t pmap, vm_offset_t sva, vm_offset_t eva) +pmap_remove_pages(pmap_t pmap) { pmap_t oldpmap; pv_entry_t pv, npv; @@ -1881,9 +1881,6 @@ npv = TAILQ_NEXT(pv, pv_plist); - if (pv->pv_va >= eva || pv->pv_va < sva) - continue; - pte = pmap_find_vhpt(pv->pv_va); KASSERT(pte != NULL, ("pte")); if (!pmap_wired(pte)) ==== //depot/projects/hammer/sys/kern/kern_exec.c#62 (text+ko) ==== @@ -905,8 +905,7 @@ if (vmspace->vm_refcnt == 1 && vm_map_min(map) == sv->sv_minuser && vm_map_max(map) == sv->sv_maxuser) { shmexit(vmspace); - pmap_remove_pages(vmspace_pmap(vmspace), vm_map_min(map), - vm_map_max(map)); + pmap_remove_pages(vmspace_pmap(vmspace)); vm_map_remove(map, vm_map_min(map), vm_map_max(map)); } else { vmspace_exec(p, sv->sv_minuser, sv->sv_maxuser); ==== //depot/projects/hammer/sys/kern/kern_exit.c#59 (text+ko) ==== @@ -325,8 +325,7 @@ while (!atomic_cmpset_int(&vm->vm_refcnt, refcnt, refcnt - 1)); if (refcnt == 1) { shmexit(vm); - pmap_remove_pages(vmspace_pmap(vm), vm_map_min(&vm->vm_map), - vm_map_max(&vm->vm_map)); + pmap_remove_pages(vmspace_pmap(vm)); (void) vm_map_remove(&vm->vm_map, vm_map_min(&vm->vm_map), vm_map_max(&vm->vm_map)); } ==== //depot/projects/hammer/sys/powerpc/powerpc/mmu_if.m#3 (text+ko) ==== @@ -85,8 +85,7 @@ return; } - static void mmu_null_remove_pages(mmu_t mmu, pmap_t pmap, - vm_offset_t start, vm_offset_t end) + static void mmu_null_remove_pages(mmu_t mmu, pmap_t pmap) { return; } @@ -543,8 +542,6 @@ METHOD void remove_pages { mmu_t _mmu; pmap_t _pmap; - vm_offset_t _start; - vm_offset_t _end; } DEFAULT mmu_null_remove_pages; ==== //depot/projects/hammer/sys/powerpc/powerpc/pmap_dispatch.c#4 (text+ko) ==== @@ -244,9 +244,9 @@ } void -pmap_remove_pages(pmap_t pmap, vm_offset_t start, vm_offset_t end) +pmap_remove_pages(pmap_t pmap) { - MMU_REMOVE_PAGES(mmu_obj, pmap, start, end); + MMU_REMOVE_PAGES(mmu_obj, pmap); } void ==== //depot/projects/hammer/sys/sparc64/sparc64/pmap.c#40 (text+ko) ==== @@ -1698,7 +1698,7 @@ * an entire address space. Only works for the current pmap. */ void -pmap_remove_pages(pmap_t pm, vm_offset_t sva, vm_offset_t eva) +pmap_remove_pages(pmap_t pm) { } ==== //depot/projects/hammer/sys/vm/pmap.h#24 (text+ko) ==== @@ -121,7 +121,7 @@ void pmap_release(pmap_t); void pmap_remove(pmap_t, vm_offset_t, vm_offset_t); void pmap_remove_all(vm_page_t m); -void pmap_remove_pages(pmap_t, vm_offset_t, vm_offset_t); +void pmap_remove_pages(pmap_t); void pmap_zero_page(vm_page_t); void pmap_zero_page_area(vm_page_t, int off, int size); void pmap_zero_page_idle(vm_page_t); From owner-p4-projects@FreeBSD.ORG Wed Mar 15 00:52:07 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8BF2016A424; Wed, 15 Mar 2006 00:52:07 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5469116A422 for ; Wed, 15 Mar 2006 00:52:07 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1EC2D43D48 for ; Wed, 15 Mar 2006 00:52:07 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2F0q7PY005773 for ; Wed, 15 Mar 2006 00:52:07 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2F0q6DZ005770 for perforce@freebsd.org; Wed, 15 Mar 2006 00:52:06 GMT (envelope-from peter@freebsd.org) Date: Wed, 15 Mar 2006 00:52:06 GMT Message-Id: <200603150052.k2F0q6DZ005770@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 93328 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Mar 2006 00:52:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=93328 Change 93328 by peter@peter_melody on 2006/03/15 00:51:25 Use an if() rather than a goto. Code body is otherwise unchanged besides the indent. Affected files ... .. //depot/projects/hammer/sys/amd64/amd64/pmap.c#141 edit Differences ... ==== //depot/projects/hammer/sys/amd64/amd64/pmap.c#141 (text+ko) ==== @@ -1589,28 +1589,27 @@ if (pv_entry_count > pv_entry_high_water) pagedaemon_wakeup(); pc = TAILQ_FIRST(&pmap->pm_pvchunk); - if (pc == NULL) - goto alloc; - for (field = 0; field < _NPCM; field++) { - bit = -1; - if (pc->pc_map[field]) - bit = bsfq(pc->pc_map[field]); - if (bit >= 0) - break; - } - if (bit >= 0) { - pv = &pc->pc_pventry[field * 64 + bit]; - pc->pc_map[field] &= ~(1ul << bit); - /* If this was the last item, move it to tail */ - if (pc->pc_map[0] == 0 && pc->pc_map[1] == 0 && - pc->pc_map[2] == 0) { - TAILQ_REMOVE(&pmap->pm_pvchunk, pc, pc_list); - TAILQ_INSERT_TAIL(&pmap->pm_pvchunk, pc, pc_list); + if (pc != NULL) { + for (field = 0; field < _NPCM; field++) { + bit = -1; + if (pc->pc_map[field]) + bit = bsfq(pc->pc_map[field]); + if (bit >= 0) + break; + } + if (bit >= 0) { + pv = &pc->pc_pventry[field * 64 + bit]; + pc->pc_map[field] &= ~(1ul << bit); + /* If this was the last item, move it to tail */ + if (pc->pc_map[0] == 0 && pc->pc_map[1] == 0 && + pc->pc_map[2] == 0) { + TAILQ_REMOVE(&pmap->pm_pvchunk, pc, pc_list); + TAILQ_INSERT_TAIL(&pmap->pm_pvchunk, pc, pc_list); + } + pv_entry_spare--; + return (pv); } - pv_entry_spare--; - return (pv); } -alloc: /* No free items, allocate another chunk */ m = vm_page_alloc(NULL, colour, VM_ALLOC_SYSTEM | VM_ALLOC_NOOBJ); if (m == NULL) { From owner-p4-projects@FreeBSD.ORG Wed Mar 15 02:32:51 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7F8D816A422; Wed, 15 Mar 2006 02:32:51 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 41D6916A400 for ; Wed, 15 Mar 2006 02:32:51 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0AE4143D46 for ; Wed, 15 Mar 2006 02:32:51 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2F2WonT010126 for ; Wed, 15 Mar 2006 02:32:50 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2F2WoGP010123 for perforce@freebsd.org; Wed, 15 Mar 2006 02:32:50 GMT (envelope-from peter@freebsd.org) Date: Wed, 15 Mar 2006 02:32:50 GMT Message-Id: <200603150232.k2F2WoGP010123@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 93334 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Mar 2006 02:32:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=93334 Change 93334 by peter@peter_melody on 2006/03/15 02:31:50 Instead of iterating through the loop 160 times, use a while loop to examine each of the three bitmaps and the cpu's built in bsfq instruction (like ffs()). This is why I wanted to kill the sva/eva option, because the bit scan instructions do not have an easy way of skipping or ignoring bits. Affected files ... .. //depot/projects/hammer/sys/amd64/amd64/pmap.c#142 edit Differences ... ==== //depot/projects/hammer/sys/amd64/amd64/pmap.c#142 (text+ko) ==== @@ -1451,6 +1451,8 @@ #define PC_FREE1 0xfffffffffffffffful #define PC_FREE2 0x000000fffffffffful +static uint64_t pc_freemask[3] = { PC_FREE0, PC_FREE1, PC_FREE2 }; + static int pc_chunk_count, pc_chunk_allocs, pc_chunk_frees; SYSCTL_INT(_vm_pmap, OID_AUTO, pc_chunk_count, CTLFLAG_RD, &pc_chunk_count, 0, @@ -2692,6 +2694,7 @@ struct pv_chunk *pc, *npc; int field, idx; int64_t bit; + uint64_t inuse; if (pmap != vmspace_pmap(curthread->td_proc->p_vmspace)) { printf("warning: pmap_remove_pages called with non-current pmap\n"); @@ -2706,10 +2709,10 @@ * the for loop. Since we free as we go, we won't have * to skip unfreeable ones that sva/eva might have allowed. */ - for (idx = 0; idx < _NPCPV; idx++) { - field = idx / 64; - bit = idx % 64; - if ((pc->pc_map[field] & 1ul << bit) == 0) { /* inuse */ + for (field = 0; field < _NPCM; field++) { + while ((inuse = (~(pc->pc_map[field])) & pc_freemask[field]) != 0) { + bit = bsfq(inuse); + idx = field * 64 + bit; pv = &pc->pc_pventry[idx]; pte = vtopte(pv->pv_va); From owner-p4-projects@FreeBSD.ORG Wed Mar 15 08:32:06 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 63C8F16A422; Wed, 15 Mar 2006 08:32:06 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 39A9016A401 for ; Wed, 15 Mar 2006 08:32:06 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E416C43D46 for ; Wed, 15 Mar 2006 08:32:05 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2F8W5c5020337 for ; Wed, 15 Mar 2006 08:32:05 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2F8W5en020334 for perforce@freebsd.org; Wed, 15 Mar 2006 08:32:05 GMT (envelope-from kmacy@freebsd.org) Date: Wed, 15 Mar 2006 08:32:05 GMT Message-Id: <200603150832.k2F8W5en020334@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 93341 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Mar 2006 08:32:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=93341 Change 93341 by kmacy@kmacy_storage:sun4v_work on 2006/03/15 08:32:03 don't zero cleanwin on context switch as it is handled in user_rtt add support for direct mapped physical address using large pages allocate early processes' hash tables out of block allocated in pmap_bootstrap implement pmap_copy to avoid unnecessary read faults Affected files ... .. //depot/projects/kmacy_sun4v/src/sys/sun4v/include/tte_hash.h#6 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/pmap.c#26 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/swtch.S#10 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/tte_hash.c#9 edit Differences ... ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/include/tte_hash.h#6 (text+ko) ==== @@ -6,7 +6,7 @@ struct tte_hash; typedef struct tte_hash *tte_hash_t; -void tte_hash_init(void); +void tte_hash_init(vm_paddr_t); tte_hash_t tte_hash_kernel_create(vm_offset_t, uint64_t); ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/pmap.c#26 (text+ko) ==== @@ -103,6 +103,7 @@ int sparc64_nmemreg; extern vm_paddr_t mmu_fault_status_area; +vm_paddr_t proc0_mem; /* @@ -130,13 +131,6 @@ */ struct pmap kernel_pmap_store; -/* - * pmap_copy_page vas NOT mp-safe - */ -vm_offset_t pmap_copy_0, pmap_copy_1; - - - hv_tsb_info_t kernel_td[MAX_TSB_INFO]; /* @@ -363,6 +357,8 @@ pmap->pm_active |= 1; #endif pmap->pm_hashscratch = tte_hash_set_scratchpad_user(pmap->pm_hash); + printf("hashscratch=%lx\n", pmap->pm_hashscratch); + pmap->pm_tsbscratch = tsb_set_scratchpad_user(&pmap->pm_tsb); PCPU_SET(curpmap, pmap); critical_exit(); @@ -506,33 +502,19 @@ pmap_scrub_pages(kernel_td[TSB4M_INDEX].hvtsb_pa, tsb_4m_size); - /* - * setup direct mappings - * - */ - for (pa = PAGE_SIZE_4M; pa < phys_avail[2]; pa += PAGE_SIZE_4M) - tsb_set_tte(&kernel_td[TSB4M_INDEX], TLB_PHYS_TO_DIRECT(pa), - pa | TTE_KERNEL | VTD_4M, 0); /* * allocate MMU fault status areas for all CPUS */ mmu_fault_status_area = pmap_bootstrap_alloc(MMFSA_SIZE*MAXCPU); + proc0_mem = pmap_bootstrap_alloc(PAGE_SIZE*4*40); /* * Allocate and map the message buffer. */ msgbuf_phys = pmap_bootstrap_alloc(MSGBUF_SIZE); msgbufp = (struct msgbuf *)TLB_PHYS_TO_DIRECT(msgbuf_phys); -#ifdef notyet - /* XXX this tries to map at a wacky address */ - for (i = 0; i < (MSGBUF_SIZE / PAGE_SIZE); i++) - tsb_set_tte(&kernel_td[TSB8K_INDEX], - ((vm_offset_t)msgbufp) + i*PAGE_SIZE, - msgbuf_phys + i*PAGE_SIZE | TTE_KERNEL | VTD_8K, 0); -#endif - /* * Allocate a kernel stack with guard page for thread0 and map it into * the kernel tsb. @@ -548,20 +530,20 @@ tsb_set_tte(&kernel_td[TSB8K_INDEX], va, pa | TTE_KERNEL | VTD_8K, 0); } - /* short-term MP-unsafe hack for pmap_copy_page - */ - pmap_copy_0 = virtual_avail; - virtual_avail += PAGE_SIZE; - pmap_copy_1 = virtual_avail; - virtual_avail += PAGE_SIZE; - - /* * Calculate the last available physical address. */ for (i = 0; phys_avail[i + 2] != 0; i += 2) ; Maxmem = sparc64_btop(phys_avail[i + 1]); + /* + * setup direct mappings + * + */ + for (pa = PAGE_SIZE_4M; pa < phys_avail[2]; pa += PAGE_SIZE_4M) { + tsb_set_tte(&kernel_td[TSB4M_INDEX], TLB_PHYS_TO_DIRECT(pa), + pa | TTE_KERNEL | VTD_4M, 0); + } /* * Add the prom mappings to the kernel tsb. @@ -713,22 +695,67 @@ pmap_copy(pmap_t dst_pmap, pmap_t src_pmap, vm_offset_t dst_addr, vm_size_t len, vm_offset_t src_addr) { - IMPLEMENTME; + vm_offset_t addr, end_addr; + + end_addr = src_addr + len; + + printf("pmap_copy(0x%lx, %ld, 0x%lx)\n", dst_addr, len, src_addr); + if (dst_addr != src_addr) + return; + + /* + * Don't let optional prefaulting of pages make us go + * way below the low water mark of free pages or way + * above high water mark of used pv entries. + */ + if (cnt.v_free_count < cnt.v_free_reserved || + pv_entry_count > pv_entry_high_water) + return; + + vm_page_lock_queues(); + if (dst_pmap < src_pmap) { + PMAP_LOCK(dst_pmap); + PMAP_LOCK(src_pmap); + } else { + PMAP_LOCK(src_pmap); + PMAP_LOCK(dst_pmap); + } + sched_pin(); + for (addr = src_addr; addr < end_addr; addr += PAGE_SIZE) { + tte_t *src_tte, *dst_tte, tte_data; + vm_page_t m; + + src_tte = tte_hash_lookup(src_pmap->pm_hash, addr); + tte_data = src_tte ? *src_tte : 0; + if ((tte_data & VTD_MANAGED) != 0) { + if ((dst_tte = tte_hash_lookup(dst_pmap->pm_hash, addr)) == NULL) { + m = PHYS_TO_VM_PAGE(TTE_GET_PA(tte_data)); + tte_hash_insert(dst_pmap->pm_hash, addr, tte_data & ~(VTD_W|VTD_REF)); + dst_pmap->pm_stats.resident_count++; + pmap_insert_entry(dst_pmap, addr, m); + } + } + + + } + + sched_unpin(); + vm_page_unlock_queues(); + PMAP_UNLOCK(src_pmap); + PMAP_UNLOCK(dst_pmap); + } void pmap_copy_page(vm_page_t src, vm_page_t dst) { - /* XXX NOT mp-safe */ - tsb_set_tte(&kernel_pmap->pm_tsb, pmap_copy_0, - VM_PAGE_TO_PHYS(src) | TTE_KERNEL | VTD_8K, 0); - tsb_set_tte(&kernel_pmap->pm_tsb, pmap_copy_1, - VM_PAGE_TO_PHYS(dst) | TTE_KERNEL | VTD_8K, 0); - - bcopy((char *)pmap_copy_0, (char *)pmap_copy_1, PAGE_SIZE); + vm_paddr_t srcpa, dstpa; + srcpa = VM_PAGE_TO_PHYS(src); + dstpa = VM_PAGE_TO_PHYS(dst); + + bcopy((char *)TLB_PHYS_TO_DIRECT(srcpa), (char *)TLB_PHYS_TO_DIRECT(dstpa), PAGE_SIZE); + - pmap_invalidate_page(kernel_pmap, pmap_copy_0); - pmap_invalidate_page(kernel_pmap, pmap_copy_1); } /* @@ -974,7 +1001,7 @@ pv_entry_high_water = 9 * (pv_entry_max / 10); uma_zone_set_obj(pvzone, &pvzone_obj, pv_entry_max); - tte_hash_init(); + tte_hash_init(proc0_mem); } @@ -1239,6 +1266,7 @@ ("max context limit hit - need to implement context recycling")); pmap->pm_hash = tte_hash_create(pmap->pm_context, &pmap->pm_hashscratch); + printf("hashscratch=%lx\n", pmap->pm_hashscratch); pmap->pm_tsb_ra = tsb_init(&pmap->pm_tsb, &pmap->pm_tsbscratch); pmap->pm_active = 0; TAILQ_INIT(&pmap->pm_pvlist); ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/swtch.S#10 (text+ko) ==== @@ -40,6 +40,7 @@ #define PCB_REG %g6 +#define MAGIC_EXIT ta 0x71 #define MAGIC_TRAP_ON ta 0x77 #define MAGIC_TRAP_OFF ta 0x78 /* @@ -97,7 +98,6 @@ * pointer and program counter. */ 2: flushw - wrpr %g0, 0, %cleanwin stx %fp, [PCB_REG + PCB_SP] stx %i7, [PCB_REG + PCB_PC] @@ -184,7 +184,8 @@ cmp %g0, %o0 be %xcc, 4f nop - illtrap + MAGIC_TRAP_ON + MAGIC_EXIT 4: /* * install the new secondary context number in the cpu. ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/tte_hash.c#9 (text+ko) ==== @@ -49,6 +49,8 @@ #include #include #include +#include +#include #include #define HASH_SIZE 4 @@ -85,7 +87,7 @@ }; static struct tte_hash kernel_tte_hash; - +static vm_paddr_t proc0_mem; /* * Data for the tte_hash allocation mechanism @@ -115,12 +117,13 @@ } void -tte_hash_init(void) +tte_hash_init(vm_paddr_t bootmem) { thzone = uma_zcreate("TTE_HASH", sizeof(struct tte_hash), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_VM | UMA_ZONE_NOFREE); tte_hash_max = maxproc; uma_zone_set_obj(thzone, &thzone_obj, tte_hash_max); + proc0_mem = bootmem; } @@ -144,39 +147,46 @@ tte_hash_create(uint64_t context, uint64_t *scratchval) { tte_hash_t th; - vm_page_t m, hash_pages[HASH_SIZE]; + vm_page_t m, tm; int i; - static int color; - + static int proc0_mem_allocated; + th = get_tte_hash(); th->th_size = HASH_SIZE; th->th_entries = 0; th->th_context = (uint16_t)context; - th->th_hashtable = (tte_hash_entry_t)kmem_alloc_nofault(kernel_map, - PAGE_SIZE*HASH_SIZE); + m = NULL; + + + if (proc0_mem_allocated < 40) { + + printf("skipping vm_page_alloc_contig\n"); + proc0_mem_allocated++; + th->th_hashtable = (void *)TLB_PHYS_TO_DIRECT(proc0_mem); + proc0_mem += PAGE_SIZE*HASH_SIZE; + goto done; + } - printf("th->th_hashtable=%p ", th->th_hashtable); - for (i = 0; i < HASH_SIZE;) { - m = vm_page_alloc(NULL, color++, - VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ | VM_ALLOC_WIRED | - VM_ALLOC_ZERO); - printf("PHYS(m)=0x%010lx ", VM_PAGE_TO_PHYS(m)); + printf("calling vm_page_alloc_contig\n"); + while (m == NULL) { + m = vm_page_alloc_contig(HASH_SIZE, 2*PAGE_SIZE_4M, + (1UL<<28), 0, 0); if (m == NULL) VM_WAIT; - else { - hash_pages[i++] = m; - } + } + printf("PHYS(m)=0x%010lx ", VM_PAGE_TO_PHYS(m)); + for (i = 0, tm = m; i < HASH_SIZE; i++, tm++) { + if (tm->flags & PG_ZERO) + pmap_zero_page(tm); } - printf("entered\n"); - pmap_qenter((vm_offset_t)th->th_hashtable, hash_pages, HASH_SIZE); - for (i = 0; i < HASH_SIZE; i++) { - if ((hash_pages[i]->flags & PG_ZERO) == 0) - pmap_zero_page(hash_pages[i]); - } - *scratchval = ((vm_offset_t)th->th_hashtable) | ((vm_offset_t)th->th_size); + th->th_hashtable = (void *)TLB_PHYS_TO_DIRECT(VM_PAGE_TO_PHYS(m)); +done: + printf("th->th_hashtable %p\n", th->th_hashtable); + *scratchval = (uint64_t)((vm_offset_t)th->th_hashtable) | ((vm_offset_t)th->th_size); + printf("hash_create done\n"); return (th); } @@ -186,6 +196,7 @@ vm_page_t m, hash_pages[MAX_HASH_SIZE]; int i; + panic("FIXME"); for (i = 0; i < th->th_size; i++) hash_pages[i] = PHYS_TO_VM_PAGE(vtophys(((char *)th->th_hashtable) + i*PAGE_SIZE)); @@ -315,7 +326,7 @@ */ hash_scratch = ((vm_offset_t)th->th_hashtable) | ((vm_offset_t)th->th_size); - + printf("hash_scratch=0x%lx\n", hash_scratch); set_hash_user_scratchpad(hash_scratch); return hash_scratch; From owner-p4-projects@FreeBSD.ORG Wed Mar 15 08:35:11 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DA2A116A422; Wed, 15 Mar 2006 08:35:10 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9B9CC16A401 for ; Wed, 15 Mar 2006 08:35:10 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4CC3743D46 for ; Wed, 15 Mar 2006 08:35:10 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2F8ZAb8020493 for ; Wed, 15 Mar 2006 08:35:10 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2F8Z9jk020490 for perforce@freebsd.org; Wed, 15 Mar 2006 08:35:09 GMT (envelope-from kmacy@freebsd.org) Date: Wed, 15 Mar 2006 08:35:09 GMT Message-Id: <200603150835.k2F8Z9jk020490@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 93342 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Mar 2006 08:35:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=93342 Change 93342 by kmacy@kmacy_storage:sun4v_work on 2006/03/15 08:34:17 formatting cleanups Affected files ... .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/exception.S#30 edit Differences ... ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/exception.S#30 (text+ko) ==== @@ -1300,6 +1300,7 @@ be,pn %xcc, 1f srlx %g5, TTARGET_VA_SHIFT, %g1 GET_HASH_SCRATCH_USER(%g2) +! MAGIC_TRAP_ON ba,pt %xcc, 2f sllx %g6, TTARGET_CTX_SHIFT, %g6 1: @@ -1325,65 +1326,66 @@ #endif tsb_miss_compute_hash_addr: - sethi %hi(PAGE_SIZE), %g7 - sub %g7, 1, %g7 ! %g7==PAGE_MASK + sethi %hi(PAGE_SIZE), %g7 + sub %g7, 1, %g7 ! %g7==PAGE_MASK - and %g2, %g7, %g4 ! size stored in lower 13 bits - andn %g2, %g7, %g2 ! actual VA of hash + and %g2, %g7, %g4 ! size stored in lower 13 bits + andn %g2, %g7, %g2 ! actual VA of hash ! XXX only handle 8k page miss ! calculate hash index - srlx %g5, PAGE_SHIFT, %g1 ! absolute hash index - sllx %g4, (PAGE_SHIFT - THE_SHIFT), %g4 ! size of hash in THEs - sub %g4, 1, %g4 ! THE_MASK - and %g1, %g4, %g4 ! masked hash index - sllx %g4, THE_SHIFT, %g4 ! masked hash offset + srlx %g5, PAGE_SHIFT, %g1 ! absolute hash index + sllx %g4, (PAGE_SHIFT - THE_SHIFT), %g4 ! size of hash in THEs + sub %g4, 1, %g4 ! THE_MASK + and %g1, %g4, %g4 ! masked hash index + sllx %g4, THE_SHIFT, %g4 ! masked hash offset ! fetch hash entries - exit when we find what were looking for ! %g2==entry base - add %g2, %g4, %g2 ! base + offset == entry base + add %g2, %g4, %g2 ! base + offset == entry base + mov %g5, %g7 ! save fault addr ! entry 0 ! %g1 == abs index %g2 == THE pointer %g3 == flags ! %g4 <- tag %g5 <- data ! %g6 == search tag %g7 == fault addr tsb_miss_lookup_0: - ldda [%g2]ASI_LDTD_N, %g4 - cmp %g4, %g0 ! entry tag == 0 ? - be,pn %xcc, 4f + ldda [%g2]ASI_LDTD_N, %g4 + cmp %g4, %g0 ! entry tag == 0 ? + be,pn %xcc, 4f nop - cmp %g4, %g6 ! entry tag == VA tag? - be,pn %xcc, 5f + cmp %g4, %g6 ! entry tag == VA tag? + be,pn %xcc, 5f nop ! entry 1 tsb_miss_lookup_1: - add %g2, 16, %g2 ! next THF - ldda [%g2 + %g0]ASI_LDTD_N, %g4 - cmp %g4, %g0 ! entry tag == 0 ? - be,pn %xcc, 4f + add %g2, 16, %g2 ! next THF + ldda [%g2 + %g0]ASI_LDTD_N, %g4 + cmp %g4, %g0 ! entry tag == 0 ? + be,pn %xcc, 4f nop - cmp %g4, %g6 ! entry tag == search tag? - be,pn %xcc, 5f + cmp %g4, %g6 ! entry tag == search tag? + be,pn %xcc, 5f nop ! entry 2 tsb_miss_lookup_2: - add %g2, 16, %g2 ! next THF - ldda [%g2 + %g0]ASI_LDTD_N, %g4 - cmp %g4, %g0 ! entry tag == 0 ? - be,pn %xcc, 4f + add % g2, 16, %g2 ! next THF + ldda [%g2 + %g0]ASI_LDTD_N, %g4 + cmp %g4, %g0 ! entry tag == 0 ? + be,pn %xcc, 4f nop - cmp %g4, %g6 ! entry tag == search tag? - be,pn %xcc, 5f + cmp %g4, %g6 ! entry tag == search tag? + be,pn %xcc, 5f nop ! entry 3 tsb_miss_lookup_3: - add %g2, 16, %g2 ! next THF - ldda [%g2 + %g0]ASI_LDTD_N, %g4 - cmp %g4, %g0 ! entry tag == 0 ? - be,pn %xcc, 4f + add %g2, 16, %g2 ! next THF + ldda [%g2 + %g0]ASI_LDTD_N, %g4 + cmp %g4, %g0 ! entry tag == 0 ? + be,pn %xcc, 4f nop - cmp %g4, %g6 ! entry tag == search tag? - be,pn %xcc, 5f + cmp %g4, %g6 ! entry tag == search tag? + be,pn %xcc, 5f nop tsb_miss_not_found: 4: ! not found @@ -1448,8 +1450,8 @@ bz,pn %xcc, 8f nop GET_TSB_SCRATCH_USER(%g3) ! %g3 == TSB (RA) - ba,pt %xcc, 9f - and %g3, %g7, %g2 ! size of TSB in pages + ba,pt %xcc, 9f + and %g3, %g7, %g2 ! size of TSB in pages 8: GET_TSB_SCRATCH_KERNEL(%g3) ! %g3 == TSB (RA) and %g3, %g7, %g2 ! size of TSB in pages @@ -1472,8 +1474,8 @@ 10: mov %g1, %g2 #endif - stxa %g4, [%g2]ASI_REAL ! store tag - stxa %g5, [%g2 + %g7]ASI_REAL ! store data + stxa %g4, [%g2]ASI_REAL ! store tag + stxa %g5, [%g2 + %g7]ASI_REAL ! store data ! XXX the following intstruction should be replaced with a ! retry on HVs that do auto-demap From owner-p4-projects@FreeBSD.ORG Wed Mar 15 18:03:01 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 23AB516A424; Wed, 15 Mar 2006 18:03:01 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id DB4F016A422 for ; Wed, 15 Mar 2006 18:03:00 +0000 (UTC) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 98B0C43D4C for ; Wed, 15 Mar 2006 18:03:00 +0000 (GMT) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2FI30io074965 for ; Wed, 15 Mar 2006 18:03:00 GMT (envelope-from millert@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2FI30vG074962 for perforce@freebsd.org; Wed, 15 Mar 2006 18:03:00 GMT (envelope-from millert@freebsd.org) Date: Wed, 15 Mar 2006 18:03:00 GMT Message-Id: <200603151803.k2FI30vG074962@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to millert@freebsd.org using -f From: Todd Miller To: Perforce Change Reviews Cc: Subject: PERFORCE change 93353 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Mar 2006 18:03:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=93353 Change 93353 by millert@millert_g5tower on 2006/03/15 18:02:08 Don't call mac_check_vnode_access() for the existence check (flags == 0) as it is just a no-op. This is consistent with what FreeBSD does and makes for a simpler diff against the vendor code. Affected files ... .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/vfs/vfs_syscalls.c#4 edit Differences ... ==== //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/vfs/vfs_syscalls.c#4 (text+ko) ==== @@ -1792,30 +1792,22 @@ vp = nd.ni_vp; /* Flags == 0 means only check for existence. */ - flags = 0; if (uap->flags) { + flags = 0; if (uap->flags & R_OK) flags |= VREAD; if (uap->flags & W_OK) flags |= VWRITE; if (uap->flags & X_OK) flags |= VEXEC; +#ifdef MAC + error = mac_check_vnode_access(cred, vp, flags); + if (error) + return (error); +#endif if ((flags & VWRITE) == 0 || (error = vn_writechk(vp)) == 0) error = VOP_ACCESS(vp, flags, cred, p); } -#ifdef MAC - /* - * Override DAC error value with MAC error value unless - * MAC returns OK and DAC returns error. - */ - { - int mac_error; - - mac_error = mac_check_vnode_access(cred, vp, flags); - if (mac_error) - error = mac_error; - } -#endif vput(vp); out1: cred->cr_uid = t_uid; From owner-p4-projects@FreeBSD.ORG Wed Mar 15 19:23:48 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 78DC016A465; Wed, 15 Mar 2006 19:23:48 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4F49916A463 for ; Wed, 15 Mar 2006 19:23:48 +0000 (UTC) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B406D43D83 for ; Wed, 15 Mar 2006 19:23:40 +0000 (GMT) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2FJNeW8079183 for ; Wed, 15 Mar 2006 19:23:40 GMT (envelope-from millert@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2FJNeQh079180 for perforce@freebsd.org; Wed, 15 Mar 2006 19:23:40 GMT (envelope-from millert@freebsd.org) Date: Wed, 15 Mar 2006 19:23:40 GMT Message-Id: <200603151923.k2FJNeQh079180@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to millert@freebsd.org using -f From: Todd Miller To: Perforce Change Reviews Cc: Subject: PERFORCE change 93358 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Mar 2006 19:23:48 -0000 http://perforce.freebsd.org/chv.cgi?CH=93358 Change 93358 by millert@millert_p3 on 2006/03/15 19:23:08 Convert policy lock from sx lock to rw lock. We can't use an sx lock since the proc lock is held and you are not allowed to hold a mutex while getting an sx lock. It looks like an rw lock is what was desired in the first place but they were not available at the time. Affected files ... .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/ss/services.c#12 edit Differences ... ==== //depot/projects/trustedbsd/sebsd/sys/security/sebsd/ss/services.c#12 (text+ko) ==== @@ -39,16 +39,16 @@ #ifdef _KERNEL -#include +#include #include -static struct sx policy_rwlock; -#define POLICY_RDLOCK sx_slock(&policy_rwlock) -#define POLICY_WRLOCK sx_xlock(&policy_rwlock) -#define POLICY_RDUNLOCK sx_sunlock(&policy_rwlock) -#define POLICY_WRUNLOCK sx_xunlock(&policy_rwlock) +static struct rwlock policy_rwlock; +#define POLICY_RDLOCK rw_rlock(&policy_rwlock) +#define POLICY_WRLOCK rw_wlock(&policy_rwlock) +#define POLICY_RDUNLOCK rw_runlock(&policy_rwlock) +#define POLICY_WRUNLOCK rw_wunlock(&policy_rwlock) -SX_SYSINIT(policy_rwlock, &policy_rwlock, "SEBSD policy lock"); +RW_SYSINIT(policy_rwlock, &policy_rwlock, "SEBSD policy lock"); static struct mtx load_sem; #define LOAD_LOCK mtx_lock(&load_sem) From owner-p4-projects@FreeBSD.ORG Wed Mar 15 19:25:44 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5C29916A426; Wed, 15 Mar 2006 19:25:44 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2250F16A423 for ; Wed, 15 Mar 2006 19:25:44 +0000 (UTC) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8F33843D48 for ; Wed, 15 Mar 2006 19:25:43 +0000 (GMT) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2FJPhFo079330 for ; Wed, 15 Mar 2006 19:25:43 GMT (envelope-from millert@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2FJPhDE079327 for perforce@freebsd.org; Wed, 15 Mar 2006 19:25:43 GMT (envelope-from millert@freebsd.org) Date: Wed, 15 Mar 2006 19:25:43 GMT Message-Id: <200603151925.k2FJPhDE079327@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to millert@freebsd.org using -f From: Todd Miller To: Perforce Change Reviews Cc: Subject: PERFORCE change 93359 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Mar 2006 19:25:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=93359 Change 93359 by millert@millert_p3 on 2006/03/15 19:25:00 SEBSD policy lock is an rw lock now. Affected files ... .. //depot/projects/trustedbsd/sebsd/sys/kern/subr_witness.c#17 edit Differences ... ==== //depot/projects/trustedbsd/sebsd/sys/kern/subr_witness.c#17 (text+ko) ==== @@ -293,7 +293,7 @@ { "SEBSD AVC", &lock_class_mtx_sleep }, { "SEBSD message lock", &lock_class_mtx_sleep }, - { "SEBSD policy lock", &lock_class_sx }, + { "SEBSD policy lock", &lock_class_rw }, { NULL, NULL }, /* From owner-p4-projects@FreeBSD.ORG Wed Mar 15 19:52:30 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 813D316A429; Wed, 15 Mar 2006 19:52:30 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4033916A401 for ; Wed, 15 Mar 2006 19:52:30 +0000 (UTC) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id C425943D48 for ; Wed, 15 Mar 2006 19:52:29 +0000 (GMT) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2FJqTJA083588 for ; Wed, 15 Mar 2006 19:52:29 GMT (envelope-from millert@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2FJqSNx083526 for perforce@freebsd.org; Wed, 15 Mar 2006 19:52:28 GMT (envelope-from millert@freebsd.org) Date: Wed, 15 Mar 2006 19:52:28 GMT Message-Id: <200603151952.k2FJqSNx083526@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to millert@freebsd.org using -f From: Todd Miller To: Perforce Change Reviews Cc: Subject: PERFORCE change 93364 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Mar 2006 19:52:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=93364 Change 93364 by millert@millert_p3 on 2006/03/15 19:51:56 Add sebsd_update_devfsdirent(). Check for fullpath == NULL in devfs functions that have it as a parameter. This is overkill as we really only need to do this in sebsd_create_devfs_directory() (which is called with a NULL fullpath from devfs_mount() via devfs_vmkdir()). Affected files ... .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/sebsd.c#41 edit Differences ... ==== //depot/projects/trustedbsd/sebsd/sys/security/sebsd/sebsd.c#41 (text+ko) ==== @@ -443,6 +443,20 @@ */ } +static void +sebsd_update_devfsdirent(struct mount *mp, struct devfs_dirent *de, + struct label *delabel, struct vnode *vp, struct label *vlabel) +{ + struct vnode_security_struct *vsec, *dsec; + + vsec = SLOT(vlabel); + dsec = SLOT(delabel); + + dsec->sid = vsec->sid; + dsec->task_sid = vsec->task_sid; + dsec->sclass = vsec->sclass; +} + static int sebsd_associate_vnode_extattr(struct mount *mp, struct label *fslabel, struct vnode *vp, struct label *vlabel) @@ -644,9 +658,12 @@ dirent_type_to_security_class(devfs_dirent->de_dirent->d_type); /* Obtain a SID based on the fstype, path, and class. */ - path = malloc(strlen(fullpath) + 2, M_SEBSD, M_ZERO | M_WAITOK); - path[0] = '/'; - strcpy(&path[1], fullpath); + if (fullpath != NULL) { + path = malloc(strlen(fullpath) + 2, M_SEBSD, M_ZERO | M_WAITOK); + path[0] = '/'; + strcpy(&path[1], fullpath); + } else + path = "/"; rc = security_genfs_sid(mp->mnt_vfc->vfc_name, path, dirent->sclass, &newsid); @@ -675,7 +692,8 @@ "dirent=%d\n", path, sbsec->sid, mp->mnt_stat.f_mntonname, rc, dirent->sclass, newsid, dirent->sid); } - free(path, M_SEBSD); + if (fullpath != NULL) + free(path, M_SEBSD); } static void @@ -698,9 +716,12 @@ dirent->sclass = SECCLASS_DIR; /* Obtain a SID based on the fstype, path, and class. */ - path = malloc(strlen(fullpath) + 2, M_SEBSD, M_ZERO | M_WAITOK); - path[0] = '/'; - strcpy(&path[1], fullpath); + if (fullpath != NULL) { + path = malloc(strlen(fullpath) + 2, M_SEBSD, M_ZERO | M_WAITOK); + path[0] = '/'; + strcpy(&path[1], fullpath); + } else + path = "/"; rc = security_genfs_sid(mp->mnt_vfc->vfc_name, path, dirent->sclass, &newsid); if (rc == 0) @@ -713,7 +734,8 @@ __func__, path, sbsec->sid, mp->mnt_stat.f_mntonname, rc, dirent->sclass, newsid, dirent->sid); } - free(path, M_SEBSD); + if (fullpath != NULL) + free(path, M_SEBSD); } static void @@ -740,9 +762,12 @@ lnksec->sclass = SECCLASS_LNK_FILE; /* Obtain a SID based on the fstype, path, and class. */ - path = malloc(strlen(fullpath) + 2, M_SEBSD, M_ZERO | M_WAITOK); - path[0] = '/'; - strcpy(&path[1], fullpath); + if (fullpath != NULL) { + path = malloc(strlen(fullpath) + 2, M_SEBSD, M_ZERO | M_WAITOK); + path[0] = '/'; + strcpy(&path[1], fullpath); + } else + path = "/"; rc = security_genfs_sid(mp->mnt_vfc->vfc_name, path, lnksec->sclass, &newsid); if (rc == 0) @@ -754,7 +779,8 @@ sbsec->sid, mp->mnt_stat.f_mntonname, rc, lnksec->sclass, newsid, lnksec->sid); } - free(path, M_SEBSD); + if (fullpath != NULL) + free(path, M_SEBSD); } /* @@ -2457,6 +2483,7 @@ /* .mpo_create_socket = sebsd_create_socket, */ /* .mpo_create_socket_from_socket = sebsd_create_socket_from_socket, */ .mpo_create_vnode_extattr = sebsd_create_vnode_extattr, + .mpo_update_devfsdirent = sebsd_update_devfsdirent, .mpo_associate_vnode_devfs = sebsd_associate_vnode_devfs, .mpo_associate_vnode_singlelabel = sebsd_associate_vnode_singlelabel, .mpo_associate_vnode_extattr = sebsd_associate_vnode_extattr, From owner-p4-projects@FreeBSD.ORG Wed Mar 15 20:01:42 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4C02E16A425; Wed, 15 Mar 2006 20:01:42 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E9DB316A423 for ; Wed, 15 Mar 2006 20:01:41 +0000 (UTC) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B5B2243D45 for ; Wed, 15 Mar 2006 20:01:41 +0000 (GMT) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2FK1foN085565 for ; Wed, 15 Mar 2006 20:01:41 GMT (envelope-from millert@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2FK1fk7085562 for perforce@freebsd.org; Wed, 15 Mar 2006 20:01:41 GMT (envelope-from millert@freebsd.org) Date: Wed, 15 Mar 2006 20:01:41 GMT Message-Id: <200603152001.k2FK1fk7085562@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to millert@freebsd.org using -f From: Todd Miller To: Perforce Change Reviews Cc: Subject: PERFORCE change 93366 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Mar 2006 20:01:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=93366 Change 93366 by millert@millert_p3 on 2006/03/15 20:01:38 Get rid of non-std -e option; we want to check extattrs for ufs2 by default. Affected files ... .. //depot/projects/trustedbsd/sebsd/sbin/fsck_ffs/fsck.h#9 edit .. //depot/projects/trustedbsd/sebsd/sbin/fsck_ffs/main.c#10 edit .. //depot/projects/trustedbsd/sebsd/sbin/fsck_ffs/pass1.c#8 edit Differences ... ==== //depot/projects/trustedbsd/sebsd/sbin/fsck_ffs/fsck.h#9 (text+ko) ==== @@ -280,7 +280,6 @@ char resolved; /* cleared if unresolved changes => not clean */ char havesb; /* superblock has been read */ char skipclean; /* skip clean file systems if preening */ -char extattr; /* take a lot longer, and check ea's */ int fsmodified; /* 1 => write done to file system */ int fsreadfd; /* file descriptor for reading file system */ int fswritefd; /* file descriptor for writing file system */ ==== //depot/projects/trustedbsd/sebsd/sbin/fsck_ffs/main.c#10 (text+ko) ==== @@ -79,7 +79,7 @@ sync(); skipclean = 1; - while ((ch = getopt(argc, argv, "b:Bc:defFm:npy")) != -1) { + while ((ch = getopt(argc, argv, "b:Bc:dfFm:npy")) != -1) { switch (ch) { case 'b': skipclean = 0; @@ -103,10 +103,6 @@ debug++; break; - case 'e': - extattr++; - break; - case 'f': skipclean = 0; break; ==== //depot/projects/trustedbsd/sebsd/sbin/fsck_ffs/pass1.c#8 (text+ko) ==== @@ -340,7 +340,7 @@ break; } } - if (extattr && sblock.fs_magic == FS_UFS2_MAGIC) + if (sblock.fs_magic == FS_UFS2_MAGIC) eascan(idesc, &dp->dp2); idesc->id_entryno *= btodb(sblock.fs_fsize); if (DIP(dp, di_blocks) != idesc->id_entryno) { From owner-p4-projects@FreeBSD.ORG Wed Mar 15 20:27:17 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 085FC16A423; Wed, 15 Mar 2006 20:27:17 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C2EFB16A401 for ; Wed, 15 Mar 2006 20:27:16 +0000 (UTC) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7A9E343D6E for ; Wed, 15 Mar 2006 20:27:16 +0000 (GMT) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2FKRGZK088411 for ; Wed, 15 Mar 2006 20:27:16 GMT (envelope-from millert@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2FKRGRf088408 for perforce@freebsd.org; Wed, 15 Mar 2006 20:27:16 GMT (envelope-from millert@freebsd.org) Date: Wed, 15 Mar 2006 20:27:16 GMT Message-Id: <200603152027.k2FKRGRf088408@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to millert@freebsd.org using -f From: Todd Miller To: Perforce Change Reviews Cc: Subject: PERFORCE change 93370 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Mar 2006 20:27:17 -0000 http://perforce.freebsd.org/chv.cgi?CH=93370 Change 93370 by millert@millert_p3 on 2006/03/15 20:26:57 Remove duplicate include of sys/ucred.h Affected files ... .. //depot/projects/trustedbsd/sebsd/sys/kern/kern_conf.c#16 edit Differences ... ==== //depot/projects/trustedbsd/sebsd/sys/kern/kern_conf.c#16 (text+ko) ==== @@ -43,7 +43,6 @@ #include #include #include -#include #include From owner-p4-projects@FreeBSD.ORG Wed Mar 15 20:52:52 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A98B316A420; Wed, 15 Mar 2006 20:52:52 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8112716A401 for ; Wed, 15 Mar 2006 20:52:52 +0000 (UTC) (envelope-from deker@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 222E643D78 for ; Wed, 15 Mar 2006 20:52:49 +0000 (GMT) (envelope-from deker@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2FKqnZH097424 for ; Wed, 15 Mar 2006 20:52:49 GMT (envelope-from deker@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2FKqma5097421 for perforce@freebsd.org; Wed, 15 Mar 2006 20:52:48 GMT (envelope-from deker@FreeBSD.org) Date: Wed, 15 Mar 2006 20:52:48 GMT Message-Id: <200603152052.k2FKqma5097421@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to deker@FreeBSD.org using -f From: Rob Deker To: Perforce Change Reviews Cc: Subject: PERFORCE change 93373 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Mar 2006 20:52:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=93373 Change 93373 by deker@deker_build1.columbia.sparta.com on 2006/03/15 20:51:48 Instantiate ChangeLog created by p42ch.pl Affected files ... .. //depot/projects/trustedbsd/sedarwin7/ChangeLog#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Wed Mar 15 21:32:18 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1028F16A401 for ; Wed, 15 Mar 2006 21:32:18 +0000 (UTC) (envelope-from north@tamaulipas.com) Received: from 82-44-242-49.stb.ubr02.haye.blueyonder.co.uk (82-44-242-49.stb.ubr02.haye.blueyonder.co.uk [82.44.242.49]) by mx1.FreeBSD.org (Postfix) with SMTP id E9DC843D4C for ; Wed, 15 Mar 2006 21:32:16 +0000 (GMT) (envelope-from north@tamaulipas.com) Received: from tamaulipas.com (tamaulipas-com.mr.outblaze.com [208.36.123.75]) by 82-44-242-49.stb.ubr02.haye.blueyonder.co.uk (Postfix) with ESMTP id 33AABC378F for ; Wed, 15 Mar 2006 16:30:11 -0500 Message-ID: <010001c64877$9cbccf3e$6ec2e648@tamaulipas.com> From: Reklama To: p4-projects Date: Wed, 15 Mar 2006 16:30:11 -0500 Content-Transfer-Encoding: quoted-printable X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 X-Virus-Scanned: by amavisd-milter (http://amavis.org/) MIME-Version: 1.0 Content-Type: text/plain; charset="windows-1251" X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Subject: =?windows-1251?b?UmU6ICLK4Oog7+7i+/Ho8vwg/fT05ery6OLt7vHy/CDw?= =?windows-1251?b?5err4Oz7IiAgICBvMw==?= X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Mar 2006 21:32:18 -0000 =20 =20 =ca= =e0=ea=20 =ef=ee=e2=fb=f1=e8=f2=fc =fd=f4=f4=e5=ea=f2=e8=e2=ed=ee=f1=f2=fc = =f0=e5=ea=eb=e0=ec=fb =20 =d6=e5=eb=fc =ea=f3= =f0=f1=e0: =c2=ee=ef=f0=ee=f1 =ee=e1 =fd=f4=f4=e5=ea=f2=e8=e2=ed=ee=f1=f2=e8=20 - =e3=eb=e0=e2=ed=fb=e9 =e2 =f0=e5=ea=eb=e0=ec=e5=2e =ca=e0=e6=e4= =fb=e9 =f0=e5=ea=eb=e0=ec=ee=e4=e0=f2=e5=eb=fc =f1=f2=f0=e5=ec=e8=f2=f1=ff= =ef=ee=eb=f3=f7=e8=f2=fc =ec=e0=ea=f1=e8=ec=e0=eb=fc=ed=f3=fe=20 =ee=f2=e4=e0=f7=f3 =ee=f2 =e8=ed=e2=e5=f1=f2=e8=f6=e8=e9 =e2 =f0=e5= =ea=eb=e0=ec=f3=2e =cf=ee=fd=f2=ee=ec=f3 =e3=eb=e0=e2=ed=e0=ff =f6=e5=eb=fc= =ea=f3=f0=f1=e0 - =f0=e0=f1=f1=ea=e0=e7=e0=f2=fc=20 =ee =f1=eb=e0=e1=fb=f5 =e8 =f1=e8=eb=fc=ed=fb=f5 =f1=f2=ee=f0=ee=ed= =e0=f5 =ec=e0=f0=ea=e5=f2=e8=ed=e3=ee=e2=fb=f5 =ea=ee=ec=ec=f3=ed=e8=ea=e0= =f6=e8=e9 =e8 =ef=ee=ea=e0=e7=e0=ed=fb =f0=e5=e0=eb=fc=ed=fb=e5=20 =f1=ef=ee=f1=ee=e1=fb =ef=ee=e2=fb=f8=e5=ed=e8=ff =fd=f4=f4=e5=ea= =f2=e8=e2=ed=ee=f1=f2=e8=2e =c0=ed=e0=eb=e8=e7 =f0=e5=ea=eb=e0=ec=ed=fb=f5= =ec=e5=f0=ee=ef=f0=e8=ff=f2=e8=e9 =ef=ee=e7=e2=ee=eb=e8=f2=20 =ee=f6=e5=ed=e8=f2=fc =fd=f4=f4=e5=ea=f2=e8=e2=ed=ee=f1=f2=fc =f0= =e0=e1=ee=f2=fb =ea=ee=ec=ef=e0=ed=e8=e8, =ed=e0=e9=f2=e8 =fd=f4=f4=e5=ea= =f2=e8=e2=ed=fb=e5 =ef=f3=f2=e8 =e2=e7=e0=e8=ec=ee=e4=e5=e9=f1=f2=e2=e8=ff= =20 =f1 =ea=ee=ed=f2=f0=e0=e3=e5=ed=f2=e0=ec=e8, =f3=f7=e8=f2=fb=e2=e0= =f2=fc =ea=ee=ed=ea=f3=f0=e5=ed=f2=ed=f3=fe =f1=f0=e5=e4=f3 =ef=f0=e8 =f4= =ee=f0=ec=e8=f0=ee=e2=e0=ed=e8=e8 =ef=ee=eb=e8=f2=e8=ea=e8=20 =ea=ee=ec=ef=e0=ed=e8=e8=2e =dd=f2=ee =ef=ee=e7=e2=ee=eb=e8=f2 =ea= =ee=ec=ef=e0=ed=e8=e8 =ef=ee=e2=fb=f1=e8=f2=fc =ea=ee=ed=ea=f3=f0=e5=ed=f2= =ee=f1=ef=ee=f1=ee=e1=ed=ee=f1=f2=fc =e8 =e7=e0=ed=ff=f2=fc=20 =e2=e5=e4=f3=f9=e8=e5 =ef=ee=e7=e8=f6=e8=e8 =ed=e0 =f0=fb=ed=ea=e5= =2e =20 =20 =c4=e0=f2=e0 =ef=f0=ee=e2= =e5=e4=e5=ed=e8=ff: 21 - 22 =ec= =e0=f0=f2=e0 2006=20 =e3=2e =ef=ee 6 =e0=ea=e0=e4= =e5=ec=e8=f7=e5=f1=ea=e8=f5 =f7=e0=f1=ee=e2 =e2 =e4=e5=ed=fc,=20 =f1 =ef=e5=f0=e5=f0=fb=e2=ee=ec =ed=e0 =ee=e1=e5=e4 =e8 =ea=ee=f4=e5= -=e1=f0=fd=e9=ea=2e =20 =cc=e5=f1=f2=ee =ef=f0=ee=e2=e5= =e4=e5=ed=e8=ff: =e3=2e =cc=ee=f1=ea=e2=e0&nb= sp; =20 =20 =d1=f2=ee=e8=ec=ee=f1=f2= =fc =f3=f7=e0=f1=f2=e8=ff: 10 999=20 =f0=f3=e1=eb=e5=e9, =ec=e5=f2=ee=e4=e8=f7=e5=f1=ea=e8=e5= =e8 =f0=e0=e7=e4=e0=f2=ee=f7=ed=fb=e5 =ec=e0=f2=e5=f0=e8=e0=eb=fb, =ee=e1= =e5=e4=fb, =ea=ee=f4=e5-=e1=f0=fd=e9=ea=e8=20 =e2=ea=eb=fe=f7=e5=ed=fb =e2 =f1=f2=ee=e8=ec=ee=f1=f2=fc=2e = =20 =c0=f3=e4=e8=f2=ee=f0=e8=ff:&nb= sp; =ca=f3=f0=f1 =f0=e0=e7=f0=e0= =e1=ee=f2=e0=ed =e4=eb=ff =ec=e0=f0=ea=e5=f2=ee=eb=ee=e3=ee=e2, =f0=f3=ea= =ee=e2=ee=e4=e8=f2=e5=eb=e5=e9=20 =ee=f2=e4=e5=eb=ee=e2 =e8 =e4=f0=f3=e3=e8=f5 =f1=ef=e5=f6=e8=e0=eb= =e8=f1=f2=ee=e2, =e7=e0=ed=e8=ec=e0=fe=f9=e8=f5=f1=ff =ef=f0=ee=e4=e2=e8=e6= =e5=ed=e8=e5=ec =f2=ee=e2=e0=f0=ee=e2 =e8 =f3=f1=eb=f3=e3=20 =ea=ee=ec=ef=e0=ed=e8=e8, =e0 =f2=e0=ea=e6=e5 =e4=eb=ff =f2=e5=f5= , =ea=f2=ee =f5=ee=f7=e5=f2 =f0=e0=f1=f8=e8=f0=e8=f2=fc =e8=ed=f1=f2=f0=f3= =ec=e5=ed=f2=e0=f0=e8=e9 =e8=f1=ef=ee=eb=fc=e7=f3=e5=ec=fb=f5=20 =ec=e5=f2=ee=e4=e8=ea =f1 =f6=e5=eb=fc=fe =ef=f0=e8=ed=ff=f2=e8=ff= =f0=e5=f8=e5=ed=e8=e9, =f3=f7=e8=f2=fb=e2=e0=fe=f9=e8=f5 =f4=e0=ea=f2=ee= =f0=fb =e2=ed=e5=f8=ed=e5=e9 =f1=f0=e5=e4=fb =ee=f0=e3=e0=ed=e8=e7=e0=f6=e8= =e8 =20 =20 =ca= =f0=e0=f2=ea=ee=e5 =f1=ee=e4=e5=f0=e6=e0=ed=e8=e5: <= /div> =20 * =20 =d1=ef=ee=f1=ee=e1= =fb =ee=ef=f0=e5=e4=e5=eb=e5=ed=e8=ff =fd=f4=f4=e5=ea=f2=e8=e2=ed=ee=f1=f2= =e8=20 =f0=e5=ea=eb=e0=ec=fb * =20 =d1=ef=ee=f1=ee=e1= =fb =ef=ee=e2=fb=f8=e5=ed=e8=ff =fd=f4=f4=e5=ea=f2=e8=e2=ed=ee=f1=f2=e8=20= =f0=e5=ea=eb=e0=ec=fb * =20 =c2=fb=e1=ee=f0 = =ef=e0=f0=e0=ec=e5=f2=f0=ee=e2 =f0=e5=ea=eb=e0=ec=fb=20 * =20 =cf=f0=e0=ea=f2=e8= =f7=e5=f1=ea=e8=e5 =ee=f1=ee=e1=e5=ed=ed=ee=f1=f2=e8=20 =f0=e5=ea=eb=e0=ec=fb =ed=e5=ea=ee=f2=ee=f0=fb=f5 =e2=e8=e4=ee= =e2 =f2=ee=e2=e0=f0=ee=e2 =e8 =f3=f1=eb=f3=e3 * =20 =cf=f0=e8=ec=e5=f0= =fb =eb=f3=f7=f8=e5=e3=ee =e1=e8=e7=ed=e5=f1=e0 * =20 =d5=f3=e4=f8=e8=e5= =ef=f0=e8=ec=e5=f0=fb =e1=e8=e7=ed=e5=f1=e0 =20 =cf= =ee =e2=ee=ef=f0=ee=f1=e0=ec =f0=e5=e3=e8=f1=f2=f0=e0=f6=e8=e8=20 =ee=e1=f0=e0=f9=e0=e9=f2=e5=f1=fc =ef=ee =f2=e5=eb: (495) 235-58-= 88, 967-6822 c70vt From owner-p4-projects@FreeBSD.ORG Wed Mar 15 23:43:38 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6C4FD16A426; Wed, 15 Mar 2006 23:43:38 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 436A816A400 for ; Wed, 15 Mar 2006 23:43:38 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 71BE043DC3 for ; Wed, 15 Mar 2006 23:43:17 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2FNhHH5005068 for ; Wed, 15 Mar 2006 23:43:17 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2FNhHBN005065 for perforce@freebsd.org; Wed, 15 Mar 2006 23:43:17 GMT (envelope-from peter@freebsd.org) Date: Wed, 15 Mar 2006 23:43:17 GMT Message-Id: <200603152343.k2FNhHBN005065@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 93380 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Mar 2006 23:43:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=93380 Change 93380 by peter@peter_melody on 2006/03/15 23:43:08 Slight optimization. If we're going to test the map for nonzero, use that to terminate the loop. Use the loop termination condition to measure success. Affected files ... .. //depot/projects/hammer/sys/amd64/amd64/pmap.c#143 edit Differences ... ==== //depot/projects/hammer/sys/amd64/amd64/pmap.c#143 (text+ko) ==== @@ -1593,13 +1593,12 @@ pc = TAILQ_FIRST(&pmap->pm_pvchunk); if (pc != NULL) { for (field = 0; field < _NPCM; field++) { - bit = -1; - if (pc->pc_map[field]) + if (pc->pc_map[field]) { bit = bsfq(pc->pc_map[field]); - if (bit >= 0) break; + } } - if (bit >= 0) { + if (field < _NPCM) { pv = &pc->pc_pventry[field * 64 + bit]; pc->pc_map[field] &= ~(1ul << bit); /* If this was the last item, move it to tail */ From owner-p4-projects@FreeBSD.ORG Thu Mar 16 02:51:57 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D4D9416A401 for ; Thu, 16 Mar 2006 02:51:57 +0000 (UTC) (envelope-from electric@google.com) Received: from 221x241x130x66.ap221.ftth.ucom.ne.jp (221x241x130x66.ap221.ftth.ucom.ne.jp [221.241.130.66]) by mx1.FreeBSD.org (Postfix) with ESMTP id 34AB343D69 for ; Thu, 16 Mar 2006 02:51:53 +0000 (GMT) (envelope-from electric@google.com) Message-ID: <111101c648a4$929f1d7f$e18d9620@google.com> From: Perconal To: p4-projects Date: Wed, 15 Mar 2006 18:48:08 -0800 Content-Transfer-Encoding: quoted-printable X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1106 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2462.0000 X-AntiVirus: scanned for viruses by AMaViS 0.2.1 (http://amavis.org/) MIME-Version: 1.0 Content-Type: text/plain; charset="windows-1251" X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Subject: =?windows-1251?b?0PPq7uLu5Ojy5ev+IO7y5OXr4CDq4OTw7uI6IMrO0M/O?= =?windows-1251?b?0MDSyMLNzsUgzsHT18XNyMUgz8XQ0c7NwMvALiDDztLOwtvF?= =?windows-1251?b?INLF1c3Oy87DyMggICAgdVk=?= X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Mar 2006 02:51:58 -0000 =cf=f0=e8=e3=eb=e0=f8= =e0=e5=ec =ed=e0=20 =f1=e5=ec=e8=ed=e0=f0-=ef=f0=e0=ea=f2=e8=ea=f3=ec 29-30 =ec=e0=f0=f2=e0=20 2006=e3=2e +7 495 510-99-56 "=ca=ce=d0=cf= =ce=d0=c0=d2=c8=c2=cd=ce=c5=20 =ce=c1=d3=d7=c5=cd=c8=c5 =cf=c5=d0=d1=ce=cd=c0=cb=c0=2e =c3=ce=d2=ce= =c2=db=c5 =d2=c5=d5=cd=ce=cb=ce=c3=c8=c8" =cf= =ee=e4=f0=ee=e1=ed=e0=ff=20 =ef=f0=ee=e3=f0=e0=ec=ec=e0: [1]http://www=2eseminars=2eru/content/34/index=2e= htm =d1=e5=ec=e8=ed=e0=f0= =f0=e0=e7=f0=e0=e1=ee=f2=e0=ed =e4=eb=ff=20 =f0=f3=ea=ee=e2=ee=e4=e8=f2=e5=eb=e5=e9 =e8 =f1=ef=e5=f6=e8=e0=eb=e8= =f1=f2=ee=e2 =f1=f2=f0=f3=ea=f2=f3=f0=ed=fb=f5 =ef=ee=e4=f0=e0=e7=e4=e5=eb= =e5=ed=e8=e9 =ea=ee=ec=ef=e0=ed=e8=e8,=20 =ee=f2=e2=e5=f2=f1=f2=e2=e5=ed=ed=fb=f5 =e7=e0 =f3=ef=f0=e0=e2=eb=e5= =ed=e8=e5 =ef=f0=ee=f6=e5=f1=f1=ee=ec =ee=e1=f3=f7=e5=ed=e8=ff, =ee=f0=e3= =e0=ed=e8=e7=e0=f6=e8=fe =e4=e5=ff=f2=e5=eb=fc=ed=ee=f1=f2=e8=20 =ea=ee=f0=ef=ee=f0=e0=f2=e8=e2=ed=fb=f5 =f3=f7=e5=e1=ed=fb=f5 =f6=e5= =ed=f2=f0=ee=e2=2e =d6=e5=eb=e8=20= =f2=f0=e5=ed=e8=ed=e3=e0 * = =cf=ee=e7=ed=e0=ea=ee=ec=e8=f2=fc=20 =f3=f7=e0=f1=f2=ed=e8=ea=ee=e2 =f1 =ef=f0=e0=ea=f2=e8=f7=e5=f1=ea= =e8=ec=e8 =f2=e5=f5=ed=ee=eb=ee=e3=e8=ff=ec=e8 =ee=f0=e3=e0=ed=e8=e7=e0=f6= =e8=e8 =e4=e5=ff=f2=e5=eb=fc=ed=ee=f1=f2=e8=20 =ea=ee=f0=ef=ee=f0=e0=f2=e8=e2=ed=ee=e3=ee =f3=f7=e5=e1=ed=ee=e3=ee= =f6=e5=ed=f2=f0=e0, =ef=e5=f0=e5=e4=e0=f2=fc =ed=e0=e2=fb=ea=e8 =ee=e1=ee= =f1=ed=ee=e2=e0=ed=e8=ff =ea=ee=ed=f6=e5=ef=f6=e8=e8=20 =ee=e1=f3=f7=e5=ed=e8=ff =ef=e5=f0=e5=e4 =f0=f3=ea=ee=e2=ee=e4=f1= =f2=e2=ee=ec =ea=ee=ec=ef=e0=ed=e8=e8 * = =c8=f1=f1=eb=e5=e4=ee=e2=e0=f2=fc=20 =e7=e0=e2=e8=f1=e8=ec=ee=f1=f2=fc =ee=f0=e3=e0=ed=e8=e7=e0=f6=e8=e8= =ee=e1=f3=f7=e5=ed=e8=ff =e8 =f1=f2=f0=e0=f2=e5=e3=e8=e8 =ea=ee=ec=ef=e0= =ed=e8=e8, =e5=e5 =f0=fb=ed=ee=f7=ed=ee=e9=20 =ef=ee=e7=e8=f6=e8=e8, =fd=f2=e0=ef=e0 =f0=e0=e7=e2=e8=f2=e8=ff=2e= =c2=20 =ef=f0=ee=e3=f0=e0=ec=ec=e5: = 1. = =d3=ef=f0=e0=e2=eb=e5=ed=e8=e5 =ef=ee=20 =f6=e5=eb=ff=ec=2e =c0=f1=ef=e5=ea=f2 "=ef=e5=f0=f1=ee=ed=e0=eb" = =e2 =e8=e5=f0=e0=f0=f5=e8=e8 =f6=e5=eb=e5=e9 =ef=f0=e5=e4=ef=f0=e8=ff=f2=e8= =ff, =ec=e5=f1=f2=ee =e8 =f0=ee=eb=fc=20 =ee=e1=f3=f7=e5=ed=e8=ff=2e 2. = =cf=eb=e0=ed=e8=f0=ee=e2=e0=ed=e8=e5=20 =e8 =ee=f0=e3=e0=ed=e8=e7=e0=f6=e8=ff =f0=e0=e1=ee=f2=fb =d3=f7=e5= =e1=ed=ee=e3=ee =f6=e5=ed=f2=f0=e0=2e =d4=ee=f0=ec=e8=f0=ee=e2=e0=ed=e8=e5= =cf=eb=e0=ed=e0 =ee=e1=f3=f7=e5=ed=e8=ff=2e=20 3. = =ce=f0=e3=e0=ed=e8=e7=e0=f6=e8=ff=20 =f3=f7=e5=e1=ed=ee=e3=ee =ef=f0=ee=f6=e5=f1=f1=e0=2e 4. = =dd=ea=ee=ed=ee=ec=e8=f7=e5=f1=ea=e0=ff=20 =fd=f4=f4=e5=ea=f2=e8=e2=ed=ee=f1=f2=fc =f3=f7=e5=e1=ed=fb=f5 =f6= =e5=ed=f2=f0=ee=e2 5. = =c4=e8=e7=e0=e9=ed=20 =ef=ee=f1=f2=f2=f0=e5=ed=e8=ed=e3=e0 6. = =d2=e5=ed=e4=e5=ed=f6=e8=e8 =e8=20 =ef=f0=ee=e1=eb=e5=ec=fb =f0=e0=e7=e2=e8=f2=e8=ff =f0=fb=ed=ea=e0= =f2=f0=e5=ed=e8=ed=e3=ee=e2=fb=f5 =f3=f1=eb=f3=e3 =e2 =cc=ee=f1=ea=e2=e5= =e8 =d0=ee=f1=f1=e8=e8=20 7. = =ca=f0=f3=e3=eb=fb=e9 =f1=f2=ee=eb=2e=20 =d1=f2=ee=e8= =ec=ee=f1=f2=fc=20 =f3=f7=e0=f1=f2=e8=ff: 12 00= 0=20 =f0=f3=e1=eb=e5=e9 =f1 =f3=f7=e5=f2=ee=ec =cd=c4=d1= 18% =cf=f0=e8 =f3=f7=e0=f1=f2=e8=e8 2-=f5 =e8 =e1=ee=eb=e5=e5=20 =ef=f0=e5=e4=f1=f2=e0=e2=e8=f2=e5=eb=e5=e9 =ee=f2 =ee=e4=ed=ee=e3=ee= =ef=f0=e5=e4=ef=f0=e8=ff=f2=e8=ff - =f1=ea=e8=e4=ea=e0 10 %=20 =c2 =f1=f2=ee= =e8=ec=ee=f1=f2=fc =ee=e1=f3=f7=e5=ed=e8=ff=20 =e2=f5=ee=e4=e8=f2: =d0=e5=f1=f2=ee=f0=e0=ed=ed=ee=e5 = =ef=e8=f2=e0=ed=e8=e5, =ea=ee=f4=e5-=ef=e0=f3=e7=fb, =ee=e1=f3=f7=e5=ed=e8= =e5, =f3=ed=e8=ea=e0=eb=fc=ed=fb=e9=20 =ea=ee=ec=ef=eb=e5=ea=f2 =ec=e0=f2=e5=f0=e8=e0=eb=ee=e2 =ca=c0=c6=c4=ce=cc=d3 =d3=d7=c0=d1=d2=cd=c8=ca=d3=20= =c2=db=c4=c0=c5=d2=d1=df =d1=c5=d0=d2=c8=d4=c8=ca=c0=d2 =d0=e5=e6=e8= =ec =ef=f0=ee=e2=e5=e4=e5=ed=e8=ff:=20 =d1=e5=ec=e8=ed=e0=f0 =e1=f3=e4=e5=f2 =ef=f0=ee=f5=ee=e4= =e8=f2=fc =f1 10=2e00 =e4=ee 17=2e00=20 =c7=e0=ef=e8=f1= =fc =ed=e0 =f1=e5=ec=e8=ed=e0=f0 =ef=ee=20 =f2=e5=eb=e5=f4=ee=ed=f3: +7-495-510-99-56 =d1 =f3=e2=e0=e6=e5= =ed=e8=e5=ec, =c1=ee=e3=e0=f7=e5=e2=f1=ea=e0=ff=20 =cb=fe=e4=ec=e8=eb=e0 = V1uVx References 1. 3d"http://www=2eseminars=2eru/content/34/index=2ehtm" From owner-p4-projects@FreeBSD.ORG Thu Mar 16 03:50:04 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7D58216A428 for ; Thu, 16 Mar 2006 03:50:04 +0000 (UTC) (envelope-from uahqamubzonx@billonario.com) Received: from cpe-66-69-49-255.satx.res.rr.com (cpe-66-69-49-255.satx.res.rr.com [66.69.49.255]) by mx1.FreeBSD.org (Postfix) with SMTP id 4E18D43D45 for ; Thu, 16 Mar 2006 03:50:02 +0000 (GMT) (envelope-from uahqamubzonx@billonario.com) Received: from 144.211.117.218 ([1] helo=247.137.243.228) by 227.123.232.127 with esmtp ( 3.35 #1 ()) id 819tuL-5353zu-04 for ; Wed, 15 Mar 2006 21:49:40 -0500 Message-Id: <61844090528164191.20060315214940@sorenson-xnmdh0.satx.rr.com> Date: Wed, 15 Mar 2006 21:49:40 -0500 X-Sender: uahqamubzonx@billonario.com From: "Oscar Jacobs" To: Date: Wed, 15 Mar 2006 21:49:40 -0500 X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1437 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441 MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_NextPart_iwkzxtocwyveezteaemzxslu" X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Subject: FW: HI . X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Mar 2006 03:50:04 -0000 This is a multi-part message in MIME format. ------=_NextPart_iwkzxtocwyveezteaemzxslu Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" cphe cjdh iyilfq enzepzqvzu ceqnwi muys lcfkrrdvjh huxdmv lhfihhbm kchijjdfrp [1][3D"cid:yehokcwugrjvywztarcavxpf"] ivoh wjazpvimb bjmwajsnmu qsdeklzylj jwut kbgofsrbw uzllpom gcruaeehvu dppfacym cyvb fznszf gmoez milztzwttqd axpol yudtxa msqq erupbehy ccmrahzck njjunekz cslwky kzdnezkif nahrk egtemghyvu wafkfqpxvu udbfbm xiurwfmro pljykq fybomvh gzgyjy xogcr xiob rtpud tumadno References 1. 3D"http://iBlgKbxzbzihchbzwnbt4gtbmgttb.byssineee.com/" ------=_NextPart_iwkzxtocwyveezteaemzxslu-- From owner-p4-projects@FreeBSD.ORG Thu Mar 16 04:10:10 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5D47216A41F; Thu, 16 Mar 2006 04:10:10 +0000 (UTC) (envelope-from trwknm@comune.dego.sv.it) Received: from ppp-58.10.251.102.revip2.asianet.co.th (ppp-58.10.251.102.revip2.asianet.co.th [58.10.251.102]) by mx1.FreeBSD.org (Postfix) with SMTP id C6A3543D46; Thu, 16 Mar 2006 04:09:49 +0000 (GMT) (envelope-from trwknm@comune.dego.sv.it) Received: (qmail 07805 invoked from network); Thu, 16 Mar 2006 08:07:47 +0400 Date: Thu, 16 Mar 2006 03:06:47 -0100 From: "Rodney Klein" Message-ID: <051c.eosine@argo67.qualified12.net> To: necar@freebsd.org Cc: powerpc@freebsd.org, p4-projects@freebsd.org, yoichi@freebsd.org Subject: soma dateline X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Mar 2006 04:10:10 -0000 Cialis, Viagra, Valium and other drugs with wholesale prices. You wont find better prices anywhere else! Viagra - 150 Pills - $269 Cialis - 90 Pills - $324 Valium - 90 Pills - $341 Xanax - 60 Pills - $190 Soma - 80 Pills - 79$ Ambien - 60 Pills - $190 ..much more meds on our site Please click below and check out our offer. http://superpleasant.info/?0ae7f7ffS790c2083S81a149d8925b4d martensite you twice me, porcelain chimique . effie you foursquare me, dialogue one . nary you cartilaginous me, picnicking . stanza you marketplace me, planoconcave persevere . barnyard you frey me, circumlocution . http://www.superpleasant.info/fgh.php From owner-p4-projects@FreeBSD.ORG Thu Mar 16 08:45:50 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7645516A400 for ; Thu, 16 Mar 2006 08:45:50 +0000 (UTC) (envelope-from "investiciy."@rocketmail.com) Received: from cable-62-205-112-165.upc.chello.be (cable-62-205-112-165.upc.chello.be [62.205.112.165]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2F2EA43D45 for ; Thu, 16 Mar 2006 08:45:48 +0000 (GMT) (envelope-from "investiciy."@rocketmail.com) Date: Thu, 16 Mar 2006 00:44:23 -0800 From: âÀÄÖÅÔÉÒÏ×ÁÎÉÅ X-Mailer: The Bat! (v2.00.0) Personal X-Priority: 3 Message-ID: <4482416759.20060316004423@rocketmail.com> To: p4-projects Content-Transfer-Encoding: 8bit X-Virus-Scanned: Norton MIME-Version: 1.0 Content-Type: text/plain; charset="windows-1251" X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Subject: =?windows-1251?b?zvIg7eD34Ov87fv1IP3r5ezl7fLu4iDh6Oft5fEg7+vg?= =?windows-1251?b?7ejw7uLg7ej/IOgg6O3i5fHy6Pbo7u3t7uPuLiDv8O7l6vLo?= =?windows-1251?b?8O7i4O3o/yDk7l/v7vHy8O7l7ej/IP3q7u3u7Oj35fHq7ukg?= =?windows-1251?b?7O7k5evoIO/w5eTv8Oj/8uj/IOgg8e7n5ODt6P8g7/Du9OXx?= =?windows-1251?b?8eju7eDr/O3u6SDk7urz7OXt8uD26Ogu?= X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Mar 2006 08:45:50 -0000 Ïðàêòèêóì â êîìïüþòåðíîì êëàññå. 20 ï0 24 ìàðòà 2OO6ã. Íàñòîÿùàÿ ïîäãîòîâêà çà ïÿòü äíåé ÷èñòîé ïðàêòèêè Òåõíèêà áþäæåòèðîâàíèÿ: îñíîâà â ñèñòåìå ïëàíèðîâàíèÿ ïðåäïðèÿòèÿ, áþäæåòíûé êîíòðîëü è àíàëèç èñïîëíåíèÿ áþäæåòà. * Âïåðâûå è òîëüêî ó÷àñòíèêè äàííîé ãðóïïû ïîëó÷àþò äîïîëíèòåëüíûé áåñïëàòíûé êâàëèôèêàöèîííûé äåíü çàíÿòèé, êîòîðûé áóäåò ñîãëàñîâàí ñ ãðóïïîé è íàçíà÷åí âî âðåìÿ çàíÿòèé. * Âñå ó÷àñòíèêè ïîëó÷àþò êóïîí íà áåñïëàòíîå îáíîâëåíèå ñëåäóþùåé âåðñèè ïðîãðàììíîãî êîìïëåêñà. * È åùå ñþðïðèç! ýòàê äîëëàðîâ íà 200. Ïîäãîòîâêà ó÷àñòíèêîâ ïðàêòè÷åñêîãî ñåìèíàðà áóäåò îñíîâàíà íà ïðîãðàììíîì Êîìïëåêñå "Business Plan PL" Professional category ñ èñïîëüçîâàíèåì òåõíîëîãèé (àíàëèòè÷åñêîãî ÿäðà) "LOGICAL - J 3000" è ìåòîäèêè "Áþäæåòèðîâàíèå". Ñåðèÿ ñåìèíàðîâ: "Áþäæåòíîå óïðàâëåíèå èíâåñòèöèîííûìè ïðîåêòàìè" Òåìà êóðñà íàñòîëüêî ðàñøèðåííàÿ, ÷òî èìååò ÷åòûðå äîïîëíèòåëüíûõ íàçâàíèÿ - ýòî òåìû êîòðûå âêëþ÷åíû â çàíÿòèÿ è ÿâëÿþòñÿ ñîñòàâëÿþùåé ÷àñòüþ îáùåãî ó÷åáíîãî êóðñà: Îáùåå íàçâàíèå ñåìèíàðà: "Òåõíèêà áþäæåòèðîâàíèÿ: îñíîâà â ñèñòåìå ïëàíèðîâàíèÿ ïðåäïðèÿòèÿ, áþäæåòíûé êîíòðîëü è àíàëèç èñïîëíåíèÿ áþäæåòà". 1-å Íàçâàíèå ñåìèíàðà: "Ìåòîäèêà è òåõíèêà áþäæåòèðîâàíèÿ - îñíîâà ïðîôåññèîíàëüíîãî ôèíàíñîâîãî ïëàíèðîâàíèÿ íà ïðåäïðèÿòèè". 2-å Íàçâàíèå ñåìèíàðà: "Óïðàâëåíèå èíâåñòèöèîííûìè ïðîåêòàìè (ïëàí, ôàêò, ôèíàíñîâûé àíàëèç)". 3-å Íàçâàíèå ñåìèíàðà: "Ïðîôåññèîíàëüíîå ôèíàíñîâîå ïëàíèðîâàíèå". 4-å Íàçâàíèå ñåìèíàðà: "Îò íà÷àëüíûõ ýëåìåíòîâ áèçíåñ ïëàíèðîâàíèÿ è èíâåñòèöèîííîãî ïðîåêòèðîâàíèÿ äî ïîñòðîåíèÿ ýêîíîìè÷åñêîé ìîäåëè ïðåäïðèÿòèÿ è ñîçäàíèÿ ïðîôåññèîíàëüíîé äîêóìåíòàöèè". Ïî òåëåôîííîìó çàïðîñó âûñûëàþòñÿ 2 èíôîðìàöèîííûõ ôàéëà: ïîëíîå îïèñàíèå ñåìèíàðà; ôîðìà çàÿâêè íà ó÷àñòèå â ñåìèíàðå. Çàíÿòèÿ ïðîâîäÿòñÿ â êîìïüþòåðíîì êëàññå (èç ðàñ÷åòà: îäèí ó÷àñòíèê - îäíî ðàáî÷åå ìåñòî). Ñåìèíàð îðèåíòèðîâàí íà: Ðóêîâîäèòåëåé îðãàíèçàöèé, ðóêîâîäèòåëåé ïëàíîâî-ýêîíîìè÷åñêèõ ñëóæá, ñïåöèàëèñòîâ ïî óïðàâëåíèþ ôèíàíñàìè, ñîáñòâåííèêîâ, èíâåñòîðîâ, ñïåöèàëèñòîâ êðåäèòíûõ îðãàíèçàöèé è îðãàíîâ ãîñóäàðñòâåííîãî óïðàâëåíèÿ, îñóùåñòâëÿþùèõ ýêñïåðòèçó èíâåñòèöèîííûõ ïðîåêòîâ, âíóòðåííå ïëàíèðîâàíèå òåêóùåé è áóäóùåé äåÿòåëüíîñòè ïðåäïðèÿòèé ïîäãîòîâêó è ïðèíÿòèå ðåøåíèé, ñâÿçàííûõ ñ äîëãîñðî÷íûì è êðàòêîñðî÷íûì èíâåñòèðîâàíèåì. Ñïåöèàëèñòîâ, îñóùåñòâëÿþùèõ âíóòðåííå ïëàíèðîâàíèå òåêóùåé (îò÷åòíîé) è áóäóùåé (ïëàíèðóåìîé) äåÿòåëüíîñòè ïðåäïðèÿòèé ïîäãîòîâêó è ïðèíÿòèå ðåøåíèé, ñâÿçàííûõ ñ äîëãîñðî÷íûì è êðàòêîñðî÷íûì êðåäèòîâàíèåì ïðåäïðèÿòèÿ, ïîèñêîì ïàðòíåðîâ, ïîäãîòîâêîé âíóòðåííåé ôèíàíñîâîé è äîêóìåíòàöèè, åæåäíåâíûì ïëàíèðîâàíèåì äåÿòåëüíîñòè ñîáñòâåííîãî ïðåäïðèÿòèÿ èëè åãî ïîäðàçäåëåíèé. Êàæäîìó ó÷àñòíèêó ñåìèíàðà : äëÿ äàëüíåéøåé óñïåøíîé ðàáîòû è âíåäðåíèÿ ìåòîäèêè ïëàíèðîâàíèÿ è òåêóùåãî áþäæåòíîãî ó÷åòà íà ïðåäïðèÿòèè ïðåäîñòàâëÿþòñÿ áåñïëàòíî ñëåäóþùèå ìåòîäè÷åñêèå ìàòåðèàëû è ïðîãðàììû * Business Plan PL Ïðîôåññèîíàëüíàÿ ðàçðàáîòêà äîêóìåíòàöèè! Ïðîãðàììíûé ïðîäóêò ñïîñîáåí íå òîëüêî ðàçðàáàòûâàòü ôèíàíñîâóþ äîêóìåíòàöèþ íà ïðîôåññèîíàëüíîì óðîâíå, â íîâîé âåðñèè ðåàëèçîâàíû çíà÷èòåëüíûå âîçìîæíîñòè äëÿ ïëàíèðîâàíèÿ òåêóùåãî áþäæåòà ïðåäïðèÿòèé. * Business Plan PL Integrator Professional category Îáúåäèíåíèå, ñðàâíåíèå ïðîåêòîâ, õîëäèíã, êîíñîëèäèðîâàííàÿ îò÷åòíîñòü. * Business Plan PL Analyzer Professional category Ïîñòðîåíèå, ðàçâèòèå è óïðàâëåíèå ýêîíîìè÷åñêîé ìîäåëüþ ïðåäïðèÿòèÿ. Óïðàâëåíèå èíâåñòèöèîííûìè ïðîåêòàìè, ñðàâíåíèå ïëàí/ôàêò, ìîíèòîðèíã áþäæåòà ïðåäïðèÿòèÿ â ðåàëüíîì âðåìåíè. Âîçìîæíîñòü íàïèñàíèÿ ñîáñòâåííûõ ôîðìóë, ñöåíàðèÿ äèàãíîñòèêè ïðîåêòà, ïåðåïðîãðàììèðîâàíèå è íàñòðîéêà ïðîãðàììû. * Business Plan PL Òåõò Àâòîìàòèçèðîâàííîå ðåøåíèå ïðîáëåìû îïèñàíèÿ ôèíàíñîâîãî ïðîåêòà! Ïðîôåññèîíàëüíûé ÏÏ äëÿ ðàçðàáîòêè òåêñòîâîé ÷àñòè äåëîâîé äîêóìåíòàöèè ïðè ïîìîùè ìûøè (áèçíåñ ïëàíîâ, ÒÝÎ, èíâåñòèöèîííûõ ïðîåêòîâ è ïðî÷èõ ôèíàíñîâûõ ïðîåêòîâ.). * Business Plan Ì" Ýêñïðåññ ïîäãîòîâêà ýêîíîìè÷åñêîé äîêóìåíòàöèè. * Ìåòîäè÷åñêèé ïå÷àòíûé ìàòåðèàë Ý ýëåêòðîííàÿ âåðñèÿ (íà CD) ìåòîäè÷åñêîãî ìàòåðèàëà äëÿ ñàìîñòîÿòåëüíîé ðàçðàáîòêè ôèíàíñîâîé äîêóìåíòàöèè è ñîáñòâåííîãî ìåòîäè÷åñêîãî ìàòåðèàëà. * Âïåðâûå è òîëüêî äëÿ äàííîé ãðóïïû! Business Plan PL Report Designer Professional category Ïîçâîëÿåò ïðîñòûìè âèçóàëüíûìè ñðåäñòâàìè ðåøèòü îäíó èç òðóäîåìêèõ è âàæíûõ çàäà÷ ñîñòàâëåíèå îò÷åòíîñòè ïî ôèíàíñîâûì ïðîåêòàì. Áëîê ïîçâîëÿåò ïåðåíàïðàâèòü äàííûå, ââåäåííûå â êîìïëåêñå " Business Plan PL Professional category ", â ñîáñòâåííûé øàáëîí, ïîäãîòîâëåííûé ñðåäñòâàìè MS Excel. ÄÎÏÎËÍÈÒÅËÜÍÎ: òîëüêî ó÷àñòíèêè ñåìèíàðà ïîëó÷àò â ïîäàðîê îò êîìïàíèè ÷àñòü òåõíîëîãèé â âèäå èñïîëíèòåëüíûõ ïðîãðàììíûõ ìîäóëåé äëÿ âîñïðîèçâîäñòâà äîêóìåíòàöèè è ôîðìèðîâàíèÿ îò÷åòîâ è ïðåçåíòàöèé. Ñòîèìîñòü ïðîãðàìì âêëþ÷åíà â ñòîèìîñòü ñåìèíàðà. Äëÿ äàííîé êàòåãîðèè ó÷àñòíèêîâ áóäåò îðãàíèçîâàí äîïîëíèòåëüíûé áåñïëàòíûé äåíü îáó÷åíèÿ íå âõîäÿùèé â ñîñòàâ ðàñïèñàíèÿ ïðîâîäèìîãî ñåìèíàðà. Êàæäîìó ó÷àñòíèêó ñåìèíàðà Âûäàåòñÿ êâàëèôèêàöèîííûé ñ å ð ò è ô è ê à ò Êîìïàíèè î ïðîõîæäåíèè êóðñà îáó÷åíèÿ ïî ìåòîäèêå "Áþäæåòèðîâàíèå" è êëàññó ñåìèíàðîâ "Áþäæåòíîå óïðàâëåíèå èíâåñòèöèîííûìè ïðîåêòàìè". Ñïèñêè ñåðòèôèöèðîâàííûõ ñïåöèàëèñòîâ ïóáëèêóþòñÿ íà ñàéòå Êîìïàíèè è áóäóò ïîäòâåðæäàòüñÿ ïî ëþáîìó çàïðîñó â òå÷åíèå êâàëèôèêàöèîííîãî ïåðèîäà. Ñåìèíàð ïðîâîäèòñÿ â CONGRESS - HOTEL IRIS Äîñòàâêà ê ìåñòó ïðîâåäåíèÿ ñåìèíàðà îñóùåñòâëÿåòñÿ òðàíñïîðòîì êîìïàíèè. Ïî âîïðîñàì ðåãèñòðàöèè îáðàùàéòåñü ïî òåë: òåë. (495) 742-91-98 (495) 792-2I-22 VeBu2 From owner-p4-projects@FreeBSD.ORG Thu Mar 16 08:53:31 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 92A9C16A423; Thu, 16 Mar 2006 08:53:31 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 370B616A401 for ; Thu, 16 Mar 2006 08:53:31 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 01FB543D45 for ; Thu, 16 Mar 2006 08:53:31 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2G8rUTZ050036 for ; Thu, 16 Mar 2006 08:53:30 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2G8rUnJ050033 for perforce@freebsd.org; Thu, 16 Mar 2006 08:53:30 GMT (envelope-from kmacy@freebsd.org) Date: Thu, 16 Mar 2006 08:53:30 GMT Message-Id: <200603160853.k2G8rUnJ050033@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 93387 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Mar 2006 08:53:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=93387 Change 93387 by kmacy@kmacy_storage:sun4v_work on 2006/03/16 08:52:30 implement fault handling for a couple of register spill / fill handlers make sure that the others cause us to exit Affected files ... .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/wbuf.S#4 edit Differences ... ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/wbuf.S#4 (text+ko) ==== @@ -9,24 +9,46 @@ #include "assym.s" ENTRY(fault_32bit_sn0) + MAGIC_TRAP_ON + MAGIC_EXIT END(fault_32bit_sn0) ENTRY(fault_32bit_sn1) + MAGIC_TRAP_ON + MAGIC_EXIT END(fault_32bit_sn1) ENTRY(fault_32bit_so0) + MAGIC_TRAP_ON + MAGIC_EXIT END(fault_32bit_so0) ENTRY(fault_32bit_so1) + MAGIC_TRAP_ON + MAGIC_EXIT END(fault_32bit_so1) ENTRY(fault_64bit_sn0) + MAGIC_TRAP_ON + MAGIC_EXIT END(fault_64bit_sn0) ENTRY(fault_64bit_sn1) + /* XXX need to use physical addresses here */ + GET_PCB(%g6) + stx %sp, [%g6 + PCB_RWSP] + SPILL(stx, %g6 + PCB_RW, 8) + mov 1, %g5 + stx %g5, [%g6 + PCB_NSAVED] + saved + set tl0_trap, %g5 + wrpr %g5, %tnpc + done END(fault_64bit_sn1) ENTRY(fault_32bit_sk) + MAGIC_TRAP_ON + MAGIC_EXIT END(fault_32bit_sk) ENTRY(fault_64bit_sk) @@ -42,41 +64,85 @@ ENTRY(fault_64bit_so0) + GET_PCB(%g6) + ld [%g6 + PCB_NSAVED], %g2 + add %g2, 1, %g3 + stx %g3, [%g6 + PCB_NSAVED] + + sll %g2, PTR_SHIFT, %g4 + add %g6, PCB_RWSP, %g3 + stx %sp, [%g3 + %g4] + sll %g2, RW_SHIFT, %g4 + add %g4, %g6, %g4 + add %g4, PCB_RW, %g3 + SAVE_WINDOW(%g3) + saved + retry END(fault_64bit_so0) ENTRY(fault_64bit_so1) + MAGIC_TRAP_ON + MAGIC_EXIT END(fault_64bit_so1) ENTRY(fault_32bit_fn0) - + MAGIC_TRAP_ON + MAGIC_EXIT fault_fn0_common: END(fault_32bit_fn0) - + MAGIC_TRAP_ON + MAGIC_EXIT ENTRY(fault_32bit_fn1) + MAGIC_TRAP_ON + MAGIC_EXIT +fault_fn1_common: + rdpr %tstate, %g1 + and %g1, TSTATE_CWP_MASK, %g1 + wrpr %g0, %g1, %cwp + ! + ! fake tl1 traps regs so that after pagefault runs, we + ! re-execute at user_rtt. + ! + wrpr %g0, 1, %tl + set TSTATE_KERNEL | TSTATE_IE, %g1 + GET_PCPU_SCRATCH + wrpr %g0, %g1, %tstate + set user_rtt, %g1 + wrpr %g0, %g1, %tpc + add %g1, 4, %g1 + wrpr %g0, %g1, %tnpc -fault_fn1_common: -illtrap + set trap, %g1 + mov T_DATA_MISS, %g2 ! XXX is this always true? + mov %g6, %g3 + cmp %g5, T_ALIGNMENT + bne %icc, 1f + nop +1: + sub %g0, 1, %g4 + rdpr %wstate, %l1 + sllx %l1, WSTATE_SHIFT, %l1 + wrpr %l1, WSTATE_K64, %wstate + mov KCONTEXT, %g5 + mov MMU_CID_P, %g6 + SET_MMU_CONTEXT(%g6, %g5) + membar #Sync + b tl0_ktrap + nop END(fault_32bit_fn1) ENTRY(fault_64bit_fn0) - b fault_fn0_common - nop + MAGIC_TRAP_ON + MAGIC_EXIT END(fault_64bit_fn0) ENTRY(fault_64bit_fn1) -#ifdef notyet - /* gas doesn't recognize %gl */ - wrpr %g0, 1, %gl -#endif - b fault_fn1_common - nop + MAGIC_TRAP_ON + MAGIC_EXIT END(fault_64bit_fn1) ENTRY(fault_rtt_fn1) -#ifdef notyet - wrpr %g0, 1, %gl -#endif b fault_fn1_common nop END(fault_rtt_fn1) From owner-p4-projects@FreeBSD.ORG Thu Mar 16 08:59:11 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AA18016A420; Thu, 16 Mar 2006 08:59:11 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7717716A400 for ; Thu, 16 Mar 2006 08:59:11 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 35FB143D45 for ; Thu, 16 Mar 2006 08:59:11 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2G8xB85050514 for ; Thu, 16 Mar 2006 08:59:11 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2G8xAvU050511 for perforce@freebsd.org; Thu, 16 Mar 2006 08:59:10 GMT (envelope-from kmacy@freebsd.org) Date: Thu, 16 Mar 2006 08:59:10 GMT Message-Id: <200603160859.k2G8xAvU050511@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 93390 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Mar 2006 08:59:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=93390 Change 93390 by kmacy@kmacy_storage:sun4v_work on 2006/03/16 08:58:10 add support for vm faults during register spill / fill handling Affected files ... .. //depot/projects/kmacy_sun4v/src/sys/sparc64/sparc64/genassym.c#10 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/include/trap.h#4 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/exception.S#31 edit Differences ... ==== //depot/projects/kmacy_sun4v/src/sys/sparc64/sparc64/genassym.c#10 (text+ko) ==== @@ -335,3 +335,4 @@ ASSYM(TF_SIZEOF, sizeof(struct trapframe)); ASSYM(UT_MAX, UT_MAX); +ASSYM(VM_MIN_DIRECT_ADDRESS, VM_MIN_DIRECT_ADDRESS); ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/include/trap.h#4 (text+ko) ==== @@ -31,6 +31,8 @@ #ifdef _KERNEL +#define T_ALIGNMENT 0x34 + #define T_RESERVED 0 #define T_INSTRUCTION_EXCEPTION 1 #define T_INSTRUCTION_ERROR 2 @@ -106,6 +108,18 @@ #define PTL1_BAD_HCALL 14 #define PTL1_BAD_GL 15 + +/* + * These defines are used by the TL1 tlb miss handlers to calculate + * the pc to jump to in the case the entry was not found in the TSB. + */ +#define WTRAP_ALIGN 0x7f /* window handlers are 128 byte align */ +#define WTRAP_FAULTOFF 124 /* last instruction in handler */ + +/* use the following defines to determine if trap was a fill or a spill */ +#define WTRAP_TTMASK 0x180 +#define WTRAP_TYPE 0x080 + #ifndef LOCORE extern const char *trap_msg[]; void trap_init(void); ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/exception.S#31 (text+ko) ==== @@ -74,7 +74,7 @@ #define PCB_REG %g6 -#include + /* @@ -104,7 +104,26 @@ * */ -#define SPILL(storer, bias, size, asi) \ + +#define SPILL(storer, base, size) \ + storer %l0, [base + (0 * size)] ; \ + storer %l1, [base + (1 * size)] ; \ + storer %l2, [base + (2 * size)] ; \ + storer %l3, [base + (3 * size)] ; \ + storer %l4, [base + (4 * size)] ; \ + storer %l5, [base + (5 * size)] ; \ + storer %l6, [base + (6 * size)] ; \ + storer %l7, [base + (7 * size)] ; \ + storer %i0, [base + (8 * size)] ; \ + storer %i1, [base + (9 * size)] ; \ + storer %i2, [base + (10 * size)] ; \ + storer %i3, [base + (11 * size)] ; \ + storer %i4, [base + (12 * size)] ; \ + storer %i5, [base + (13 * size)] ; \ + storer %i6, [base + (14 * size)] ; \ + storer %i7, [base + (15 * size)] + +#define SPILL_ASI(storer, bias, size, asi) \ mov 0 + bias, %g1 ;\ storer %l0, [%sp + %g1]asi ;\ mov size + bias, %g2 ;\ @@ -169,6 +188,7 @@ ldda [%g3 + %g1]asi, %i4 ;\ ldda [%g3 + %g2]asi, %i6 +#include /* * Clean window traps occur when %cleanwin is zero to ensure that data * is not leaked between address spaces in registers. @@ -344,7 +364,7 @@ #define spill_32bit_asi(asi, target) \ srl %sp, 0, %sp ; \ SPILL_FILL_MAGIC_TRAP_ON; \ - SPILL(sta, 0, 4, asi) ; \ + SPILL_ASI(sta, 0, 4, asi) ; \ saved ; \ SPILL_FILL_MAGIC_TRAP_OFF; \ retry ; \ @@ -354,7 +374,7 @@ #define spill_64bit_asi(asi, target) \ SPILL_FILL_MAGIC_TRAP_ON ; \ - SPILL(stxa, SPOFF, 8, asi) ; \ + SPILL_ASI(stxa, SPOFF, 8, asi) ; \ saved ; \ SPILL_FILL_MAGIC_TRAP_OFF ; \ retry ; \ @@ -365,7 +385,7 @@ #define spill_32clean(asi, target) \ srl %sp, 0, %sp ; \ SPILL_FILL_MAGIC_TRAP_ON; \ - SPILL(sta, 0, 4, asi) ; \ + SPILL_ASI(sta, 0, 4, asi) ; \ b spill_clean ; \ mov WSTATE_USER32, %g7 ; \ .skip (31-27)*4 ; \ @@ -374,7 +394,7 @@ #define spill_64clean(asi, target) \ SPILL_FILL_MAGIC_TRAP_ON; \ - SPILL(stxa, SPOFF, 8, asi) ; \ + SPILL_ASI(stxa, SPOFF, 8, asi) ; \ b spill_clean ; \ mov WSTATE_USER64, %g7 ; \ .skip (31-26)*4 ; \ @@ -706,19 +726,23 @@ spill_64bit_nucleus_not ! 0x98 tl0_spill_7_normal: spill_mixed ! 0x9c -tl0_spill_n_other_a0: +tl0_spill_0_other: tl0_reserved 4 ! 0xa0 -tl0_spill_n_other_a4: +tl0_spill_1_other: spill_32bit_secondary_so0 ! 0xa4 -tl0_spill_n_other_a8: +tl0_spill_2_other: spill_64bit_secondary_so0 ! 0xa8 -tl0_spill_n_other_ac: +tl0_spill_3_other: spill_32bit_secondary_so0 ! 0xac -tl0_spill_n_other_b0: +tl0_spill_4_other: spill_64bit_secondary_so0 ! 0xb0 -tl0_spill_n_other_b4: - tl0_reserved 12 ! 0xb4-0xbf -tl0_fill_n_normal_c0: +tl0_spill_5_other: + tl0_reserved 4 ! 0xb4 +tl0_spill_6_other: + tl0_reserved 4 ! 0xb8 +tl0_spill_7_other: + tl0_reserved 4 ! 0xbc +tl0_fill_n_normal: tl0_reserved 4 ! 0xc0 fill_32bit_primary_fn0 ! 0xc4 fill_64bit_primary_fn0 ! 0xc8 @@ -953,7 +977,8 @@ ba,a,pt %xcc, user_rtt nop -1: ldx [PCB_REG + PCB_NSAVED], %l1 +1: GET_PCB(PCB_REG) + ldx [PCB_REG + PCB_NSAVED], %l1 brz,a,pt %l1, 2f nop wrpr %g0, 0, %pil @@ -1074,7 +1099,7 @@ wrpr %g0, %g1, %cleanwin rdpr %cwp, %g1 wrpr %g1, %g7, %tstate -! MAGIC_TRAP_ON + MAGIC_TRAP_ON retry END(user_rtt) END(utl0) @@ -1200,6 +1225,13 @@ ! %l7 trapframe ENTRY(tl0_trap) + MAGIC_TRAP_OFF + /* if we're at tl2 we have some extra work to do */ + rdpr %tl, %g5 + cmp %g5, 2 + be,pn %xcc, tl1_trap + nop + rdpr %tstate, %g5 btst TSTATE_PRIV, %g5 and %g5, TSTATE_CWP_MASK, %g6 @@ -1322,7 +1354,16 @@ bne,pn %xcc, 17f nop ! MAGIC_TRAP_ON ! enable debugging for instruction misses -17: +17: + sethi %uhi(VM_MIN_DIRECT_ADDRESS), %g7 + sllx %g7, 32, %g7 + cmp %g5, %g7 + blu %xcc, 7f + nop + MAGIC_TRAP_ON + MAGIC_EXIT +7: + #endif tsb_miss_compute_hash_addr: @@ -1392,12 +1433,6 @@ ! we need to jump to tl0_trap to drop us back down to tl0 ! and take us to trap(...) to service the fault #ifdef PMAP_DEBUG - rdpr %tl, %g4 - cmp %g4, 1 - be,pt %xcc, 15f - nop - MAGIC_TRAP_ON;MAGIC_TRAP_ON;MAGIC_EXIT -15: #if 0 srlx %g6, TTARGET_CTX_SHIFT, %g4 ! recover context brnz %g4, 16f @@ -1558,8 +1593,54 @@ .comm intrcnt, IV_MAX * 8 .comm eintrcnt, 0 - +#define TRAP_ENTRY_SHIFT 5 +#define TRAP_ENTRY_MASK 0x1ff ENTRY(tl1_trap) - MAGIC_TRAP_ON;MAGIC_TRAP_ON;MAGIC_EXIT + ! MAGIC_TRAP_ON + ! assume no tl1 handler + rdpr %tpc, %g7 + + set rtt_fill_start, %g6 + cmp %g7, %g6 + blu,pn %xcc, 1f + .empty + set rtt_fill_end, %g6 + cmp %g7, %g6 + bgeu,pn %xcc, 1f + nop + set fault_rtt_fn1, %g7 + ba,a 2f +1: + set tl1_end, %g6 + cmp %g7, %g6 + bgeu,a,pn %xcc, ptl1_panic + mov PTL1_BAD_TRAP, %g1 + ! tpc is in the trap table + ! convert to trap index + srl %g7, TRAP_ENTRY_SHIFT, %g6 + and %g6, TRAP_ENTRY_MASK, %g6 + ! check for window trap type + and %g6, WTRAP_TTMASK, %g6 + cmp %g6, WTRAP_TYPE + bne,a,pn %xcc, ptl1_panic + mov PTL1_BAD_TRAP, %g1 + andn %g7, WTRAP_ALIGN, %g7 + add %g7, WTRAP_FAULTOFF, %g7 +2: + wrpr %g0, %g7, %tnpc + wrpr %g0, 1, %gl + rdpr %tt, %g5 + GET_MMFSA_SCRATCH(%g7) + cmp %g5, T_ALIGNMENT + be,pn %xcc, 3f + wr %g0, ASI_REAL, %asi + ldxa [%g7 + MMFSA_D_ADDR]%asi, %g6 + ldxa [%g7 + MMFSA_D_CTX]%asi, %g7 + srlx %g6, PAGE_SHIFT, %g6 + sllx %g6, PAGE_SHIFT, %g6 ! mask off bottom + or %g6, %g7, %g6 + +3: + done END(tl1_trap) From owner-p4-projects@FreeBSD.ORG Thu Mar 16 09:04:18 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C7FF716A422; Thu, 16 Mar 2006 09:04:18 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A4B5416A424 for ; Thu, 16 Mar 2006 09:04:18 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 576CD43D48 for ; Thu, 16 Mar 2006 09:04:18 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2G94Ioq051861 for ; Thu, 16 Mar 2006 09:04:18 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2G94IiL051858 for perforce@freebsd.org; Thu, 16 Mar 2006 09:04:18 GMT (envelope-from kmacy@freebsd.org) Date: Thu, 16 Mar 2006 09:04:18 GMT Message-Id: <200603160904.k2G94IiL051858@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 93392 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Mar 2006 09:04:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=93392 Change 93392 by kmacy@kmacy_storage:sun4v_work on 2006/03/16 09:04:08 reduce debug noise somewhat ensure all direct mappings are added Affected files ... .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/pmap.c#27 edit Differences ... ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/pmap.c#27 (text+ko) ==== @@ -357,8 +357,6 @@ pmap->pm_active |= 1; #endif pmap->pm_hashscratch = tte_hash_set_scratchpad_user(pmap->pm_hash); - printf("hashscratch=%lx\n", pmap->pm_hashscratch); - pmap->pm_tsbscratch = tsb_set_scratchpad_user(&pmap->pm_tsb); PCPU_SET(curpmap, pmap); critical_exit(); @@ -533,18 +531,20 @@ /* * Calculate the last available physical address. */ - for (i = 0; phys_avail[i + 2] != 0; i += 2) + for (i = 0; phys_avail[i + 2] != 0; i += 2) ; Maxmem = sparc64_btop(phys_avail[i + 1]); /* * setup direct mappings * */ - for (pa = PAGE_SIZE_4M; pa < phys_avail[2]; pa += PAGE_SIZE_4M) { + pa = PAGE_SIZE_4M; + for (i = 0; phys_avail[i + 2] != 0; i += 2) + for (; pa < phys_avail[i + 1]; pa += PAGE_SIZE_4M) { tsb_set_tte(&kernel_td[TSB4M_INDEX], TLB_PHYS_TO_DIRECT(pa), pa | TTE_KERNEL | VTD_4M, 0); - } - + } + /* * Add the prom mappings to the kernel tsb. */ @@ -613,7 +613,6 @@ PMAP_LOCK_INIT(kernel_pmap); TAILQ_INIT(&kernel_pmap->pm_pvlist); - printf("physical address of kernel_td: 0x%lx\n", vtophys((vm_offset_t)&kernel_td)); error = hv_set_ctx0(MAX_TSB_INFO, vtophys((vm_offset_t)&kernel_td)); if (error != H_EOK) @@ -698,8 +697,7 @@ vm_offset_t addr, end_addr; end_addr = src_addr + len; - - printf("pmap_copy(0x%lx, %ld, 0x%lx)\n", dst_addr, len, src_addr); + if (dst_addr != src_addr) return; @@ -1130,11 +1128,7 @@ pmap_kremove(vm_offset_t va) { - if ((va & PAGE_MASK_4M) == 0 && - tsb_get_tte(&kernel_td[TSB4M_INDEX], va) != 0) - tsb_clear_tte(&kernel_td[TSB4M_INDEX], va); - else - tte_hash_delete(kernel_pmap->pm_hash, va); + tte_hash_delete(kernel_pmap->pm_hash, va); } static void @@ -1266,7 +1260,6 @@ ("max context limit hit - need to implement context recycling")); pmap->pm_hash = tte_hash_create(pmap->pm_context, &pmap->pm_hashscratch); - printf("hashscratch=%lx\n", pmap->pm_hashscratch); pmap->pm_tsb_ra = tsb_init(&pmap->pm_tsb, &pmap->pm_tsbscratch); pmap->pm_active = 0; TAILQ_INIT(&pmap->pm_pvlist); From owner-p4-projects@FreeBSD.ORG Thu Mar 16 18:39:45 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 52B5816A422; Thu, 16 Mar 2006 18:39:45 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2E42A16A400 for ; Thu, 16 Mar 2006 18:39:45 +0000 (UTC) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id DB94143D48 for ; Thu, 16 Mar 2006 18:39:44 +0000 (GMT) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2GIdieA096069 for ; Thu, 16 Mar 2006 18:39:44 GMT (envelope-from millert@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2GIdi01096066 for perforce@freebsd.org; Thu, 16 Mar 2006 18:39:44 GMT (envelope-from millert@freebsd.org) Date: Thu, 16 Mar 2006 18:39:44 GMT Message-Id: <200603161839.k2GIdi01096066@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to millert@freebsd.org using -f From: Todd Miller To: Perforce Change Reviews Cc: Subject: PERFORCE change 93408 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Mar 2006 18:39:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=93408 Change 93408 by millert@millert_g5tower on 2006/03/16 18:39:10 Remove obsolete file. Affected files ... .. //depot/projects/trustedbsd/sedarwin7/src/sedarwin/sedarwin/ss/services_private.h#4 delete Differences ... From owner-p4-projects@FreeBSD.ORG Thu Mar 16 19:07:34 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F3B2616A423; Thu, 16 Mar 2006 19:07:33 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B2DE216A400 for ; Thu, 16 Mar 2006 19:07:33 +0000 (UTC) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8119643D48 for ; Thu, 16 Mar 2006 19:07:33 +0000 (GMT) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2GJ7XvD097187 for ; Thu, 16 Mar 2006 19:07:33 GMT (envelope-from millert@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2GJ7XRR097184 for perforce@freebsd.org; Thu, 16 Mar 2006 19:07:33 GMT (envelope-from millert@freebsd.org) Date: Thu, 16 Mar 2006 19:07:33 GMT Message-Id: <200603161907.k2GJ7XRR097184@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to millert@freebsd.org using -f From: Todd Miller To: Perforce Change Reviews Cc: Subject: PERFORCE change 93409 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Mar 2006 19:07:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=93409 Change 93409 by millert@millert_p3 on 2006/03/16 19:06:34 Fix some apparent merge errors, primarily in error paths. Affected files ... .. //depot/projects/trustedbsd/sebsd/sys/kern/kern_descrip.c#17 edit Differences ... ==== //depot/projects/trustedbsd/sebsd/sys/kern/kern_descrip.c#17 (text+ko) ==== @@ -474,6 +474,8 @@ (struct vnode *)fp->f_data, mode); VOP_UNLOCK((struct vnode *)fp->f_data, 0, td); if (error) { + FILE_UNLOCK(fp); + FILEDESC_UNLOCK(fdp); fdrop(fp, td); break; } @@ -485,6 +487,8 @@ fp->f_flag, (fp->f_flag & ~FCNTLFLAGS) | (FFLAGS(arg & ~O_ACCMODE) & FCNTLFLAGS)); if (error) { + FILE_UNLOCK(fp); + FILEDESC_UNLOCK(fdp); fdrop(fp, td); break; } @@ -723,6 +727,9 @@ #ifdef MAC error = mac_check_file_dup(td->td_ucred, fp, new); if (error) { + /* we've allocated a descriptor which we won't use */ + if (fdp->fd_ofiles[new] == NULL) + fdunused(fdp, new); FILEDESC_UNLOCK(fdp); fdrop(fp, td); return (error); @@ -1858,7 +1865,8 @@ for (i = 0; i <= fdp->fd_lastfile; i++) { #ifdef MAC if (fdp->fd_ofiles[i] != NULL && - ((fdp->fd_ofileflags[i] & UF_EXCLOSE) || + (fdp->fd_ofiles[i]->f_type == DTYPE_MQUEUE || + (fdp->fd_ofileflags[i] & UF_EXCLOSE) || mac_check_file_inherit(td->td_ucred, fdp->fd_ofiles[i]))) { #else if (fdp->fd_ofiles[i] != NULL && From owner-p4-projects@FreeBSD.ORG Fri Mar 17 00:48:33 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 649D216A424; Fri, 17 Mar 2006 00:48:33 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 29D0116A401 for ; Fri, 17 Mar 2006 00:48:33 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id EB5CA43D48 for ; Fri, 17 Mar 2006 00:48:32 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2H0mWRZ026292 for ; Fri, 17 Mar 2006 00:48:32 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2H0mWr4026289 for perforce@freebsd.org; Fri, 17 Mar 2006 00:48:32 GMT (envelope-from kmacy@freebsd.org) Date: Fri, 17 Mar 2006 00:48:32 GMT Message-Id: <200603170048.k2H0mWr4026289@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 93424 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Mar 2006 00:48:33 -0000 http://perforce.freebsd.org/chv.cgi?CH=93424 Change 93424 by kmacy@kmacy_storage:sun4v_work on 2006/03/17 00:47:49 fix I/O handling for requests larger than PAGE_SIZE Affected files ... .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/simdisk.c#2 edit Differences ... ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/simdisk.c#2 (text+ko) ==== @@ -89,18 +89,22 @@ hvd_startio(struct hvd_softc *sc, struct bio *bp) { u_int r; -#if 0 - printf("hvd_startio called \n"); -#endif - r = 0; + int len; + r = H_EOK; + switch (bp->bio_cmd) { case BIO_READ: - r = hv_sim_read(bp->bio_offset, vtophys((void *)bp->bio_data), - bp->bio_length); + for (len = 0; len < bp->bio_length && r == H_EOK; len += PAGE_SIZE) { + int rlen = (bp->bio_length - len) > PAGE_SIZE ? PAGE_SIZE : bp->bio_length - len; + r = hv_sim_read(bp->bio_offset + len, vtophys((char *)bp->bio_data + len), rlen); + + } break; case BIO_WRITE: - r = hv_sim_read(bp->bio_offset, vtophys((void *)bp->bio_data), - bp->bio_length); + for (len = 0; len < bp->bio_length && r == H_EOK; len += PAGE_SIZE) { + int wlen = (bp->bio_length - len) > PAGE_SIZE ? PAGE_SIZE : bp->bio_length - len; + r = hv_sim_write(bp->bio_offset + len, vtophys((char *)bp->bio_data + len), wlen); + } break; } if (r != H_EOK) From owner-p4-projects@FreeBSD.ORG Fri Mar 17 02:19:22 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 837EF16A424; Fri, 17 Mar 2006 02:19:22 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5E9D916A422 for ; Fri, 17 Mar 2006 02:19:22 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2A65D43D46 for ; Fri, 17 Mar 2006 02:19:22 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2H2JMZS029757 for ; Fri, 17 Mar 2006 02:19:22 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2H2JLIs029754 for perforce@freebsd.org; Fri, 17 Mar 2006 02:19:21 GMT (envelope-from kmacy@freebsd.org) Date: Fri, 17 Mar 2006 02:19:21 GMT Message-Id: <200603170219.k2H2JLIs029754@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 93425 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Mar 2006 02:19:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=93425 Change 93425 by kmacy@kmacy_storage:sun4v_work on 2006/03/17 02:19:09 make MAGIC_TRAP definition dependent on SIMULATOR define fix invltlb to call DEMAP_ALL Affected files ... .. //depot/projects/kmacy_sun4v/src/sys/sun4v/include/hypervisorvar.h#3 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/support.S#10 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/swtch.S#11 edit Differences ... ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/include/hypervisorvar.h#3 (text+ko) ==== @@ -287,4 +287,17 @@ #define HVIO_FIRE_PERFREG_PCIE_LNK_CNT1 14 #define HVIO_FIRE_PERFREG_PCIE_LNK_CNT2 15 + + +#ifdef SIMULATOR +#define MAGIC_TRAP_ON ta 0x77 +#define MAGIC_TRAP_OFF ta 0x78 +#define MAGIC_EXIT ta 0x71 +#else +#define MAGIC_TRAP_ON nop +#define MAGIC_TRAP_OFF nop +#define MAGIC_EXIT nop +#endif + + #endif /*_MACHINE_HYPERVISORVAR_H_ */ ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/support.S#10 (text+ko) ==== @@ -742,6 +742,12 @@ * */ ENTRY(invlctx) + cmp %o0, %g0 + bne %xcc, 2f + nop + MAGIC_TRAP_ON + MAGIC_EXIT +2: mov %o0, %o2 mov %g0, %o0 mov %g0, %o1 @@ -761,7 +767,7 @@ mov %g0, %o0 mov %g0, %o1 mov MAP_ITLB | MAP_DTLB, %o2 - mov MMU_DEMAP_CTX, %o5 + mov MMU_DEMAP_ALL, %o5 ta FAST_TRAP brz,pt %o0, 1f nop ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/swtch.S#11 (text+ko) ==== @@ -39,10 +39,6 @@ .register %g3, #ignore #define PCB_REG %g6 - -#define MAGIC_EXIT ta 0x71 -#define MAGIC_TRAP_ON ta 0x77 -#define MAGIC_TRAP_OFF ta 0x78 /* * void cpu_throw(struct thread *old, struct thread *new) */ From owner-p4-projects@FreeBSD.ORG Fri Mar 17 02:29:35 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 78F9716A425; Fri, 17 Mar 2006 02:29:35 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4185F16A423 for ; Fri, 17 Mar 2006 02:29:35 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id F273143D48 for ; Fri, 17 Mar 2006 02:29:34 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2H2TYo6030167 for ; Fri, 17 Mar 2006 02:29:34 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2H2TY0k030164 for perforce@freebsd.org; Fri, 17 Mar 2006 02:29:34 GMT (envelope-from kmacy@freebsd.org) Date: Fri, 17 Mar 2006 02:29:34 GMT Message-Id: <200603170229.k2H2TY0k030164@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 93426 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Mar 2006 02:29:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=93426 Change 93426 by kmacy@kmacy_storage:sun4v_work on 2006/03/17 02:28:47 numerous small fixes add toggle for debug noise Affected files ... .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/pmap.c#28 edit Differences ... ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/pmap.c#28 (text+ko) ==== @@ -72,9 +72,9 @@ #include - +#if 0 #define PMAP_DEBUG - +#endif #ifndef PMAP_SHPGPERPROC #define PMAP_SHPGPERPROC 200 #endif @@ -167,7 +167,13 @@ #define UNIMPLEMENTED panic("%s not implemented", __FUNCTION__) #define IMPLEMENTME printf("don't forget %s not implemented\n", __FUNCTION__) +#ifdef PMAP_DEBUG +#define DPRINTF printf +#else +#define DPRINTF(...) +#endif + static void free_pv_entry(pv_entry_t pv); static pv_entry_t get_pv_entry(pmap_t locked_pmap); @@ -344,7 +350,7 @@ pmap_activate(struct thread *td) { pmap_t pmap, oldpmap; - printf("activating pmap\n"); + DPRINTF("activating pmap\n"); critical_enter(); pmap = vmspace_pmap(td->td_proc->p_vmspace); @@ -566,7 +572,7 @@ "translation: start=%#lx size=%#lx tte=%#lx", translations[i].om_start, translations[i].om_size, translations[i].om_tte); - printf("om_size=%ld om_start=%lx om_tte=%lx\n", + DPRINTF("om_size=%ld om_start=%lx om_tte=%lx\n", translations[i].om_size, translations[i].om_start, translations[i].om_tte); @@ -574,7 +580,7 @@ if (translations[i].om_size == PAGE_SIZE_4M && translations[i].om_start == KERNBASE) { kernel_phys = pa = TTE_GET_PA(translations[i].om_tte); - printf("mapping permanent translation\n"); + DPRINTF("mapping permanent translation\n"); error = hv_mmu_map_perm_addr((char *)translations[i].om_start, KCONTEXT, pa | TTE_KERNEL | VTD_4M, MAP_ITLB | MAP_DTLB); if (error != H_EOK) @@ -681,12 +687,14 @@ void pmap_clear_modify(vm_page_t m) { + DPRINTF("pmap_clear_modify(0x%lx)\n", VM_PAGE_TO_PHYS(m)); tte_clear_phys_bit(m, VTD_W); } void pmap_clear_reference(vm_page_t m) { + DPRINTF("pmap_clear_reference(0x%lx)\n", VM_PAGE_TO_PHYS(m)); tte_clear_phys_bit(m, VTD_REF); } @@ -695,6 +703,7 @@ vm_size_t len, vm_offset_t src_addr) { vm_offset_t addr, end_addr; + return; end_addr = src_addr + len; @@ -750,6 +759,7 @@ vm_paddr_t srcpa, dstpa; srcpa = VM_PAGE_TO_PHYS(src); dstpa = VM_PAGE_TO_PHYS(dst); + DPRINTF("pmap_copy_page(srcpa=0x%lx, dstpa=0x%lx)\n", srcpa, dstpa); bcopy((char *)TLB_PHYS_TO_DIRECT(srcpa), (char *)TLB_PHYS_TO_DIRECT(dstpa), PAGE_SIZE); @@ -771,8 +781,7 @@ int invlva; if (pmap->pm_context) - printf("ctx=%d va=%lx prot=%x wired=%x\n", (int)pmap->pm_context, - va, prot, wired); + DPRINTF("pmap_enter(va=%lx, pa=0x%lx, prot=%x)\n", va, VM_PAGE_TO_PHYS(m), prot); om = NULL; @@ -870,7 +879,9 @@ if ((prot & VM_PROT_WRITE) == 0) invlva = TRUE; } +#ifdef notyet if (invlva) +#endif pmap_invalidate_page(pmap, va); } else { tte_hash_insert(pmap->pm_hash, va, tte_data); @@ -891,6 +902,9 @@ { uint64_t tte_data; + + if (pmap->pm_context) + DPRINTF("pmap_enter_quick(va=%lx, pa=0x%lx prot=%x)\n", va, VM_PAGE_TO_PHYS(m), prot); mtx_assert(&vm_page_queue_mtx, MA_OWNED); VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED); @@ -908,8 +922,6 @@ tte_data = VM_PAGE_TO_PHYS(m); - if ((prot & VM_PROT_WRITE) != 0) - tte_data |= VTD_SW_W; if ((prot & VM_PROT_EXECUTE) != 0) tte_data |= VTD_X; @@ -1030,10 +1042,8 @@ #ifdef SMP #error __FUNCTION_ not implemented #else -#if 0 - /* XXX SUN4V_FIXME - need to clear multiple TSBs */ - tsb_clear_tte(va, pmap->pm_context); -#endif + tsb_clear_tte(&pmap->pm_tsb, va); + DPRINTF("pmap_invalidate_page(va=0x%lx)\n", va); invlpg(va, pmap->pm_context); #endif } @@ -1042,20 +1052,19 @@ pmap_invalidate_range(pmap_t pmap, vm_offset_t sva, vm_offset_t eva) { vm_offset_t tva; -#if 0 - printf("pmap_invalidate_range(sva=%lx, eva=%lx)\n", sva, eva); -#endif + DPRINTF("pmap_invalidate_range(sva=%lx, eva=%lx)\n", sva, eva); /* XXX SUN4V_FIXME - oversimplified logic */ tsb_clear_range(&pmap->pm_tsb, sva, eva); - if ((((eva - sva) >> PAGE_SHIFT) < MAX_INVALIDATES) || - ((sva & PAGE_MASK_4M) != 0) || ((eva & PAGE_MASK_4M) != 0)) { + if ((((eva - sva) >> PAGE_SHIFT) < MAX_INVALIDATES)) { for (tva = sva; tva < eva; tva += PAGE_SIZE_8K) invlpg(tva, pmap->pm_context); - } else + } else if (pmap->pm_context) invlctx(pmap->pm_context); + else + invltlb(); } @@ -1222,9 +1231,12 @@ void pmap_page_protect(vm_page_t m, vm_prot_t prot) { + + DPRINTF("pmap_page_protect(0x%lx, %d)\n", VM_PAGE_TO_PHYS(m), prot); + if ((prot & VM_PROT_WRITE) == 0) { if (prot & (VM_PROT_READ | VM_PROT_EXECUTE)) { - tte_clear_phys_bit(m, VTD_SW_W | VTD_W); + tte_clear_phys_bit(m, VTD_SW_W); } else { pmap_remove_all(m); } @@ -1277,7 +1289,9 @@ int anychanged; uint64_t *tte; - + vm_offset_t tva; + + DPRINTF("pmap_protect(0x%lx, 0x%lx, %d)\n", sva, eva, prot); if ((prot & VM_PROT_READ) == VM_PROT_NONE) { pmap_remove(pmap, sva, eva); @@ -1293,11 +1307,11 @@ PMAP_LOCK(pmap); sched_pin(); - for (; sva < eva; sva += PAGE_SIZE) { + for (tva = sva; tva < eva; tva += PAGE_SIZE) { uint64_t otte_data, tte_data; vm_page_t m; retry: - tte = tte_hash_lookup(pmap->pm_hash, sva); + tte = tte_hash_lookup(pmap->pm_hash, tva); otte_data = tte_data = tte ? *tte : 0; if (tte_data & VTD_MANAGED) { m = NULL; @@ -1306,7 +1320,7 @@ vm_page_flag_set(m, PG_REFERENCED); tte_data &= ~VTD_REF; } - if ((tte_data & VTD_W) && pmap_track_modified(pmap, sva)) { + if ((tte_data & VTD_W) && pmap_track_modified(pmap, tva)) { m = PHYS_TO_VM_PAGE(TTE_GET_PA(tte_data)); vm_page_dirty(m); } @@ -1325,6 +1339,7 @@ sched_unpin(); if (anychanged) pmap_invalidate_range(pmap, sva, eva); + vm_page_unlock_queues(); PMAP_UNLOCK(pmap); } @@ -1462,6 +1477,7 @@ { pv_entry_t pv; uint64_t *tte, tte_data; + DPRINTF("pmap_remove_all 0x%lx\n", VM_PAGE_TO_PHYS(m)); mtx_assert(&vm_page_queue_mtx, MA_OWNED); sched_pin(); @@ -1547,7 +1563,7 @@ tte_data = tte ? *tte : 0; if (tte_data == 0) { - printf("TTE at %p IS ZERO @ VA %016lx\n", + printf("TTE at %p IS ZERO @ VA %016lx\n", tte, pv->pv_va); panic("bad tte"); } From owner-p4-projects@FreeBSD.ORG Fri Mar 17 04:58:36 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 91E0A16A423; Fri, 17 Mar 2006 04:58:36 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3F28D16A400 for ; Fri, 17 Mar 2006 04:58:36 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 050EB43D46 for ; Fri, 17 Mar 2006 04:58:36 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2H4wZPg043443 for ; Fri, 17 Mar 2006 04:58:35 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2H4wZ2h043440 for perforce@freebsd.org; Fri, 17 Mar 2006 04:58:35 GMT (envelope-from kmacy@freebsd.org) Date: Fri, 17 Mar 2006 04:58:35 GMT Message-Id: <200603170458.k2H4wZ2h043440@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 93431 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Mar 2006 04:58:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=93431 Change 93431 by kmacy@kmacy_storage:sun4v_work on 2006/03/17 04:58:21 fix pmap_is_prefaultable increase possible debugging noise Affected files ... .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/pmap.c#29 edit Differences ... ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/pmap.c#29 (text+ko) ==== @@ -703,6 +703,7 @@ vm_size_t len, vm_offset_t src_addr) { vm_offset_t addr, end_addr; + return; end_addr = src_addr + len; @@ -904,7 +905,7 @@ uint64_t tte_data; if (pmap->pm_context) - DPRINTF("pmap_enter_quick(va=%lx, pa=0x%lx prot=%x)\n", va, VM_PAGE_TO_PHYS(m), prot); + DPRINTF("pmap_enter_quick(ctx=0x%lx va=%lx, pa=0x%lx prot=%x)\n", pmap->pm_context, va, VM_PAGE_TO_PHYS(m), prot); mtx_assert(&vm_page_queue_mtx, MA_OWNED); VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED); @@ -1024,6 +1025,13 @@ { pv_entry_t pv; +#if 0 + TAILQ_FOREACH(pv, &pmap->pm_pvlist, pv_plist) + if (pv->pv_va == va) + panic("va=0x%lx already in pmap for ctx=0x%lx\n", + va, pmap->pm_context); +#endif + DPRINTF("pmap_insert_entry(va=0x%lx, pa=0x%lx)\n", va, VM_PAGE_TO_PHYS(m)); pv = get_pv_entry(pmap); pv->pv_va = va; pv->pv_pmap = pmap; @@ -1033,6 +1041,10 @@ TAILQ_INSERT_TAIL(&pmap->pm_pvlist, pv, pv_plist); TAILQ_INSERT_TAIL(&m->md.pv_list, pv, pv_list); m->md.pv_list_count++; + + + + } void @@ -1052,7 +1064,8 @@ pmap_invalidate_range(pmap_t pmap, vm_offset_t sva, vm_offset_t eva) { vm_offset_t tva; - DPRINTF("pmap_invalidate_range(sva=%lx, eva=%lx)\n", sva, eva); + if (pmap != kernel_pmap) + DPRINTF("pmap_invalidate_range(sva=%lx, eva=%lx)\n", sva, eva); /* XXX SUN4V_FIXME - oversimplified logic */ tsb_clear_range(&pmap->pm_tsb, sva, eva); @@ -1095,7 +1108,7 @@ boolean_t pmap_is_prefaultable(pmap_t pmap, vm_offset_t va) { - return (TRUE); + return (tte_hash_lookup(pmap->pm_hash, va) == NULL); } /* @@ -1518,7 +1531,8 @@ pmap_remove_entry(pmap_t pmap, vm_page_t m, vm_offset_t va) { pv_entry_t pv; - + if (pmap != kernel_pmap) + DPRINTF("pmap_remove_entry(va=0x%lx, pa=0x%lx)\n", va, VM_PAGE_TO_PHYS(m)); PMAP_LOCK_ASSERT(pmap, MA_OWNED); mtx_assert(&vm_page_queue_mtx, MA_OWNED); if (m->md.pv_list_count < pmap->pm_stats.resident_count) { @@ -1554,18 +1568,18 @@ PMAP_LOCK(pmap); sched_pin(); for (pv = TAILQ_FIRST(&pmap->pm_pvlist); pv; pv = npv) { - +#if 0 if (pv->pv_va >= eva || pv->pv_va < sva) { npv = TAILQ_NEXT(pv, pv_plist); continue; } +#endif tte = tte_hash_lookup(pmap->pm_hash, pv->pv_va); tte_data = tte ? *tte : 0; if (tte_data == 0) { - printf("TTE at %p IS ZERO @ VA %016lx\n", - tte, pv->pv_va); - panic("bad tte"); + printf("TTE at %p IS ZERO @ VA %016lx\n", tte, pv->pv_va); + panic("bad tte"); } /* @@ -1621,6 +1635,8 @@ vm_page_t m; + if (pmap != kernel_pmap) + DPRINTF("pmap_remove_tte(va=0x%lx, pa=0x%lx)\n", va, TTE_GET_PA(*tte)); mtx_assert(&vm_page_queue_mtx, MA_OWNED); PMAP_LOCK_ASSERT(pmap, MA_OWNED); if (*tte & VTD_WIRED) From owner-p4-projects@FreeBSD.ORG Fri Mar 17 05:02:42 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5D04816A424; Fri, 17 Mar 2006 05:02:42 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2273F16A41F for ; Fri, 17 Mar 2006 05:02:42 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7FC1443D4C for ; Fri, 17 Mar 2006 05:02:41 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2H52f4t043600 for ; Fri, 17 Mar 2006 05:02:41 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2H52fke043597 for perforce@freebsd.org; Fri, 17 Mar 2006 05:02:41 GMT (envelope-from kmacy@freebsd.org) Date: Fri, 17 Mar 2006 05:02:41 GMT Message-Id: <200603170502.k2H52fke043597@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 93432 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Mar 2006 05:02:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=93432 Change 93432 by kmacy@kmacy_storage:sun4v_work on 2006/03/17 05:02:34 handle additional tl1 register spill/fill trap turn timer on include opt_simulator.h is hypervisorvar.h Affected files ... .. //depot/projects/kmacy_sun4v/src/sys/sun4v/include/hypervisorvar.h#4 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/exception.S#32 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/machdep.c#11 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/wbuf.S#5 edit Differences ... ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/include/hypervisorvar.h#4 (text+ko) ==== @@ -287,7 +287,7 @@ #define HVIO_FIRE_PERFREG_PCIE_LNK_CNT1 14 #define HVIO_FIRE_PERFREG_PCIE_LNK_CNT2 15 - +#include "opt_simulator.h" #ifdef SIMULATOR #define MAGIC_TRAP_ON ta 0x77 ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/exception.S#32 (text+ko) ==== @@ -50,19 +50,9 @@ #include #define PMAP_DEBUG -#if 1 -#define SPILL_FILL_MAGIC_TRAP_ON nop -#define SPILL_FILL_MAGIC_TRAP_OFF nop -#define MAGIC_TRAP_ON ta 0x77 -#define MAGIC_TRAP_OFF ta 0x78 -#define MAGIC_EXIT ta 0x71 -/*#define MAGIC_TRAP_OFF nop */ -#else + #define SPILL_FILL_MAGIC_TRAP_ON nop #define SPILL_FILL_MAGIC_TRAP_OFF nop -#define MAGIC_TRAP_ON nop -#define MAGIC_TRAP_OFF nop -#endif #define REGSIZE 8 @@ -503,8 +493,6 @@ .endm .macro spill_64bit_tt1_secondary_so1 - MAGIC_TRAP_ON - MAGIC_EXIT ba,a,pt %xcc, fault_64bit_so1 nop .align 128 @@ -531,13 +519,13 @@ .endm .macro tl0_pil_entry level, mask -#if 0 +#if 1 set \mask, %g1 clr %g2 clr %g3 ba %xcc, tl0_intr mov \level, %g4 -#endif +#else mov 1, %g2 sllx %g2, \level, %g1 sllx %g2, 16, %g3 @@ -545,6 +533,7 @@ or %g2, %g3, %g2 wr %g2, %g0, %clear_softint retry +#endif .align 32 .endm ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/machdep.c#11 (text+ko) ==== @@ -419,7 +419,6 @@ * Initialize the message buffer (after setting trap table). */ - printf("msgbuf_init\n"); msgbufinit(msgbufp, MSGBUF_SIZE); mutex_init(); @@ -516,6 +515,8 @@ #ifdef notyet sf.sf_si.si_addr = (void *)tf->tf_sfar; /* XXX */ #else + printf("sendsig %d to %s\n", sig, p->p_comm); + hv_magic_trap_on(); __asm __volatile("ta 0x71"); #endif /* Copy the sigframe out to the user's stack. */ ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/wbuf.S#5 (text+ko) ==== @@ -81,8 +81,23 @@ END(fault_64bit_so0) ENTRY(fault_64bit_so1) - MAGIC_TRAP_ON - MAGIC_EXIT + /* XXX need to use physical addresses */ + GET_PCB(%g6) + ld [%g6 + PCB_NSAVED], %g2 + add %g2, 1, %g3 + stx %g3, [%g6 + PCB_NSAVED] + + sll %g2, PTR_SHIFT, %g4 + add %g6, PCB_RWSP, %g3 + stx %sp, [%g3 + %g4] + sll %g2, RW_SHIFT, %g4 + add %g4, %g6, %g4 + add %g4, PCB_RW, %g3 + SAVE_WINDOW(%g3) + saved + set tl0_trap, %g5 + wrpr %g5, %tnpc + done END(fault_64bit_so1) ENTRY(fault_32bit_fn0) From owner-p4-projects@FreeBSD.ORG Fri Mar 17 05:05:46 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 13AB216A424; Fri, 17 Mar 2006 05:05:46 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E31F516A41F for ; Fri, 17 Mar 2006 05:05:45 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id AE51B43D5A for ; Fri, 17 Mar 2006 05:05:45 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2H55jbB043737 for ; Fri, 17 Mar 2006 05:05:45 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2H55jW0043734 for perforce@freebsd.org; Fri, 17 Mar 2006 05:05:45 GMT (envelope-from kmacy@freebsd.org) Date: Fri, 17 Mar 2006 05:05:45 GMT Message-Id: <200603170505.k2H55jW0043734@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 93433 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Mar 2006 05:05:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=93433 Change 93433 by kmacy@kmacy_storage:sun4v_work on 2006/03/17 05:05:17 ensure that tte_hash_lookup returns NULL if entry not found add addition sanity check in insert reduce debug noise Affected files ... .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/tte_hash.c#10 edit Differences ... ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/tte_hash.c#10 (text+ko) ==== @@ -161,7 +161,6 @@ if (proc0_mem_allocated < 40) { - printf("skipping vm_page_alloc_contig\n"); proc0_mem_allocated++; th->th_hashtable = (void *)TLB_PHYS_TO_DIRECT(proc0_mem); proc0_mem += PAGE_SIZE*HASH_SIZE; @@ -183,7 +182,6 @@ th->th_hashtable = (void *)TLB_PHYS_TO_DIRECT(VM_PAGE_TO_PHYS(m)); done: - printf("th->th_hashtable %p\n", th->th_hashtable); *scratchval = (uint64_t)((vm_offset_t)th->th_hashtable) | ((vm_offset_t)th->th_size); printf("hash_create done\n"); @@ -258,7 +256,12 @@ uint64_t hash_shift, hash_index, tte_tag; tte_hash_field_t fields; int i; + tte_t *tte; + tte = tte_hash_lookup(th, va); + if (tte) + panic("mapping for va=0x%lx already exists tte_data=0x%lx\n", va, *tte); + /* XXX - only handle 8K pages for now */ hash_shift = PAGE_SHIFT; hash_index = (va >> hash_shift) & HASH_MASK(th); @@ -292,7 +295,8 @@ fields = (th->th_hashtable[hash_index].the_fields); for (i = 0; i <= 3; i++) { - if ((fields[i].tte.tag << TTARGET_VA_SHIFT) == (va & ~PAGE_MASK_4M)) + if (((fields[i].tte.tag << TTARGET_VA_SHIFT) == (va & ~PAGE_MASK_4M)) && + (fields[i].tte.data != 0)) return &(fields[i].tte.data); } /* @@ -302,6 +306,7 @@ return (NULL); } + uint64_t tte_hash_set_scratchpad_kernel(tte_hash_t th) { From owner-p4-projects@FreeBSD.ORG Fri Mar 17 06:04:59 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DB2EC16A420; Fri, 17 Mar 2006 06:04:58 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9D98416A401 for ; Fri, 17 Mar 2006 06:04:58 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4E34443D46 for ; Fri, 17 Mar 2006 06:04:58 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2H64w98045960 for ; Fri, 17 Mar 2006 06:04:58 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2H64wQM045957 for perforce@freebsd.org; Fri, 17 Mar 2006 06:04:58 GMT (envelope-from kmacy@freebsd.org) Date: Fri, 17 Mar 2006 06:04:58 GMT Message-Id: <200603170604.k2H64wQM045957@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 93436 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Mar 2006 06:04:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=93436 Change 93436 by kmacy@kmacy_storage:sun4v_work on 2006/03/17 06:04:41 optimize tsb_clear_range use in pmap_invalidate_range enable small mallocs from direct memory reference pcpu structures through direct mappings Affected files ... .. //depot/projects/kmacy_sun4v/src/sys/sun4v/include/vmparam.h#3 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/machdep.c#12 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/pmap.c#30 edit Differences ... ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/include/vmparam.h#3 (text+ko) ==== @@ -145,7 +145,7 @@ #define VM_MIN_PROM_ADDRESS (0x00000000f0000000UL) #define VM_MAX_PROM_ADDRESS (0x00000000ffffe000UL) -#define VM_MIN_USER_ADDRESS (0x0000000000000000UL) +#define VM_MIN_USER_ADDRESS (0x0000000000002000UL) #define VM_MAX_USER_ADDRESS (0x000007fe00000000UL) #define VM_MINUSER_ADDRESS (VM_MIN_USER_ADDRESS) @@ -176,10 +176,7 @@ #ifndef VM_INITIAL_PAGEIN #define VM_INITIAL_PAGEIN 16 #endif -#if 0 -/* does silly things */ #define UMA_MD_SMALL_ALLOC -#endif extern vm_offset_t vm_max_kernel_address; #endif /* !_MACHINE_VMPARAM_H_ */ ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/machdep.c#12 (text+ko) ==== @@ -404,7 +404,13 @@ (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; pc->pc_curpcb = thread0.td_pcb; - + /* + * Update PCPU_REG to point to direct address + * to support easy phys <-> virt translation in trap handler + */ + pc = (struct pcpu *)TLB_PHYS_TO_DIRECT(vtophys(pc)); + cpu_setregs(pc); + /* * Initialize tunables. */ ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/pmap.c#30 (text+ko) ==== @@ -139,6 +139,7 @@ * invalidate more than this */ #define MAX_INVALIDATES 32 +#define MAX_TSB_CLEARS 128 /* * Allocate physical memory for use in pmap_bootstrap. @@ -1068,7 +1069,11 @@ DPRINTF("pmap_invalidate_range(sva=%lx, eva=%lx)\n", sva, eva); /* XXX SUN4V_FIXME - oversimplified logic */ - tsb_clear_range(&pmap->pm_tsb, sva, eva); + if ((((eva - sva) >> PAGE_SHIFT) < MAX_TSB_CLEARS) || + (pmap->pm_context == 0)) + tsb_clear_range(&pmap->pm_tsb, sva, eva); + else + tsb_clear(&pmap->pm_tsb); if ((((eva - sva) >> PAGE_SHIFT) < MAX_INVALIDATES)) { From owner-p4-projects@FreeBSD.ORG Fri Mar 17 07:32:45 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5DE6316A423; Fri, 17 Mar 2006 07:32:45 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 37EC116A41F for ; Fri, 17 Mar 2006 07:32:45 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E7F3E43D46 for ; Fri, 17 Mar 2006 07:32:44 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2H7WiMg049390 for ; Fri, 17 Mar 2006 07:32:44 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2H7Wi3H049387 for perforce@freebsd.org; Fri, 17 Mar 2006 07:32:44 GMT (envelope-from kmacy@freebsd.org) Date: Fri, 17 Mar 2006 07:32:44 GMT Message-Id: <200603170732.k2H7Wi3H049387@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 93438 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Mar 2006 07:32:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=93438 Change 93438 by kmacy@kmacy_storage:sun4v_work on 2006/03/17 07:32:12 switch TSB miss handler over to using real addresses for TL > 1 Affected files ... .. //depot/projects/kmacy_sun4v/src/sys/sun4v/include/asmacros.h#8 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/exception.S#33 edit Differences ... ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/include/asmacros.h#8 (text+ko) ==== @@ -135,14 +135,32 @@ mov SCRATCH_REG_PCPU, PCPU_REG; \ ldxa [%g0 + PCPU_REG]ASI_SCRATCHPAD, PCPU_REG; -#define GET_HASH_SCRATCH_USER(reg) \ +#define GET_HASH_SCRATCH_USER(reg) \ mov SCRATCH_REG_HASH_USER, reg; \ ldxa [%g0 + reg]ASI_SCRATCHPAD, reg; -#define GET_HASH_SCRATCH_KERNEL(reg) \ +#define GET_HASH_SCRATCH_KERNEL(reg) \ mov SCRATCH_REG_HASH_KERNEL, reg; \ ldxa [%g0 + reg]ASI_SCRATCHPAD, reg; +#define GET_HASH_PHYS_SCRATCH_USER(tmp, reg) \ + sethi %uhi(VM_MIN_DIRECT_ADDRESS), tmp; \ + mov SCRATCH_REG_HASH_USER, reg; \ + sllx tmp, 32, tmp; \ + ldxa [%g0 + reg]ASI_SCRATCHPAD, reg; \ + andn reg, tmp, reg; + +#define GET_HASH_PHYS_SCRATCH_KERNEL(tmp, reg) \ + sethi %uhi(VM_MIN_DIRECT_ADDRESS), tmp; \ + mov SCRATCH_REG_HASH_KERNEL, reg; \ + sllx tmp, 32, tmp; \ + ldxa [%g0 + reg]ASI_SCRATCHPAD, reg; \ + andn reg, tmp, reg; + + + + + #define GET_TSB_SCRATCH_USER(reg) \ mov SCRATCH_REG_TSB_USER, reg; \ ldxa [%g0 + reg]ASI_SCRATCHPAD, reg; ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/exception.S#33 (text+ko) ==== @@ -1088,7 +1088,7 @@ wrpr %g0, %g1, %cleanwin rdpr %cwp, %g1 wrpr %g1, %g7, %tstate - MAGIC_TRAP_ON +! MAGIC_TRAP_ON retry END(user_rtt) END(utl0) @@ -1317,50 +1317,63 @@ ENTRY(tsb_miss_handler) ldxa [%g1 + %g7]ASI_REAL, %g6 ! load in the context + rdpr %tl, %g7 ! need to use real addresses + cmp %g7, 1 ! for tl > 1 + bne,pn %xcc, 2f + nop cmp %g6, %g0 ! kernel? be,pn %xcc, 1f - srlx %g5, TTARGET_VA_SHIFT, %g1 + nop GET_HASH_SCRATCH_USER(%g2) -! MAGIC_TRAP_ON - ba,pt %xcc, 2f - sllx %g6, TTARGET_CTX_SHIFT, %g6 + wr %g0, ASI_LDTD_N, %asi + ba,pt %xcc, 4f + nop 1: GET_HASH_SCRATCH_KERNEL(%g2) + wr %g0, ASI_LDTD_N, %asi + ba,pt %xcc, 4f + nop +2: +! MAGIC_TRAP_ON + cmp %g6, %g0 ! kernel? + be,pn %xcc, 3f + nop + GET_HASH_PHYS_SCRATCH_USER(%g7, %g2) + wr %g0, ASI_LDTD_REAL, %asi + ba,pt %xcc, 4f + nop +3: + GET_HASH_PHYS_SCRATCH_KERNEL(%g7, %g2) + wr %g0, ASI_LDTD_REAL, %asi +4: + + srlx %g5, TTARGET_VA_SHIFT, %g1 sllx %g6, TTARGET_CTX_SHIFT, %g6 -2: - or %g6, %g1, %g6 ! %g6 == search tag + or %g6, %g1, %g6 ! %g6 == search tag + ! %g4 == fault type %g5 == fault addr %g6 == tag ! XXX only handle normal miss for now (look at fault type in the future) #ifdef PMAP_DEBUG cmp %g5, %g0 ! NULL ptr deref - bne,pt %xcc, 3f + bne,pt %xcc, 12f nop tsb_miss_null_deref: MAGIC_TRAP_ON;MAGIC_TRAP_ON;MAGIC_EXIT ! give up -3: +12: cmp %g3, T_INSTRUCTION_MISS bne,pn %xcc, 17f nop ! MAGIC_TRAP_ON ! enable debugging for instruction misses 17: - sethi %uhi(VM_MIN_DIRECT_ADDRESS), %g7 - sllx %g7, 32, %g7 - cmp %g5, %g7 - blu %xcc, 7f - nop - MAGIC_TRAP_ON - MAGIC_EXIT -7: - - #endif + tsb_miss_compute_hash_addr: sethi %hi(PAGE_SIZE), %g7 sub %g7, 1, %g7 ! %g7==PAGE_MASK - and %g2, %g7, %g4 ! size stored in lower 13 bits - andn %g2, %g7, %g2 ! actual VA of hash + and %g2, %g7, %g4 ! size stored in lower 13 bits + andn %g2, %g7, %g2 ! actual VA of hash ! XXX only handle 8k page miss ! calculate hash index @@ -1372,53 +1385,53 @@ ! fetch hash entries - exit when we find what were looking for ! %g2==entry base - add %g2, %g4, %g2 ! base + offset == entry base + add %g2, %g4, %g2 ! base + offset == entry base - mov %g5, %g7 ! save fault addr + mov %g5, %g7 ! save fault addr ! entry 0 ! %g1 == abs index %g2 == THE pointer %g3 == flags ! %g4 <- tag %g5 <- data ! %g6 == search tag %g7 == fault addr tsb_miss_lookup_0: - ldda [%g2]ASI_LDTD_N, %g4 + ldda [%g2]%asi, %g4 cmp %g4, %g0 ! entry tag == 0 ? - be,pn %xcc, 4f + be,pn %xcc, 5f nop cmp %g4, %g6 ! entry tag == VA tag? - be,pn %xcc, 5f + be,pn %xcc, 6f nop ! entry 1 -tsb_miss_lookup_1: - add %g2, 16, %g2 ! next THF - ldda [%g2 + %g0]ASI_LDTD_N, %g4 +tsb_miss_lookup_1: + add %g2, 16, %g2 + ldda [%g2]%asi, %g4 cmp %g4, %g0 ! entry tag == 0 ? - be,pn %xcc, 4f + be,pn %xcc, 5f nop cmp %g4, %g6 ! entry tag == search tag? - be,pn %xcc, 5f + be,pn %xcc, 6f nop ! entry 2 -tsb_miss_lookup_2: - add % g2, 16, %g2 ! next THF - ldda [%g2 + %g0]ASI_LDTD_N, %g4 +tsb_miss_lookup_2: + add %g2, 16, %g2 + ldda [%g2]%asi, %g4 cmp %g4, %g0 ! entry tag == 0 ? - be,pn %xcc, 4f + be,pn %xcc, 5f nop cmp %g4, %g6 ! entry tag == search tag? - be,pn %xcc, 5f + be,pn %xcc, 6f nop ! entry 3 -tsb_miss_lookup_3: - add %g2, 16, %g2 ! next THF - ldda [%g2 + %g0]ASI_LDTD_N, %g4 +tsb_miss_lookup_3: + add %g2, 16, %g2 + ldda [%g2]%asi, %g4 cmp %g4, %g0 ! entry tag == 0 ? - be,pn %xcc, 4f + be,pn %xcc, 5f nop cmp %g4, %g6 ! entry tag == search tag? - be,pn %xcc, 5f + be,pn %xcc, 6f nop tsb_miss_not_found: -4: ! not found +5: ! not found ! we need to jump to tl0_trap to drop us back down to tl0 ! and take us to trap(...) to service the fault #ifdef PMAP_DEBUG @@ -1443,7 +1456,7 @@ or %g1, %lo(trap), %g1 tsb_miss_found: -5: !found +6: !found ! %g1 == abs index %g2 == THE pointer %g3 == flags ! %g4 == tag %g5 == data %g7 == PAGE_MASK ! %g3 <- TSB RA %g6 <- TSB size, TTE RA %g7 == PAGE_MASK @@ -1455,10 +1468,10 @@ sub %g7, 1, %g7 ! %g7==PAGE_MASK cmp %g3, T_DATA_MISS ! TSB data miss - be,pt %xcc, 6f + be,pt %xcc, 7f or %g5, VTD_REF, %g5 ! set referenced unconditionally cmp %g3, T_INSTRUCTION_MISS ! TSB instruction miss - be,pt %xcc, 6f + be,pt %xcc, 7f nop cmp %g3, T_DATA_PROTECTION ! protection fault bne,pn %xcc, unsupported_fault_trap ! we don't handle any other fault types currently @@ -1467,9 +1480,14 @@ bz,pn %xcc, prot_fault_trap ! write to read only page nop or %g5, VTD_W, %g5 ! add modifed bit -6: - stx %g5, [%g2 + 8] ! update TTE +7: + rdpr %tl, %g3 + dec %g3 + movrnz %g3, ASI_REAL, %g3 + movrz %g3, ASI_N, %g3 + wr %g0, %g3, %asi + stxa %g5, [%g2 + 8]%asi ! update TTE andcc %g6, %g7, %g0 ! kernel context? bz,pn %xcc, 8f nop @@ -1492,6 +1510,8 @@ ldda [%g2]ASI_LDTD_REAL, %g2 cmp %g3, %g5 bne,pt %xcc, 10f + cmp %g2, %g4 + bne,pt %xcc, 10f nop MAGIC_TRAP_ON;MAGIC_TRAP_ON;MAGIC_EXIT ! die if all we're doing ! is storing same data From owner-p4-projects@FreeBSD.ORG Fri Mar 17 13:07:05 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 435AD16A423; Fri, 17 Mar 2006 13:07:05 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id F23C416A420 for ; Fri, 17 Mar 2006 13:07:04 +0000 (UTC) (envelope-from soc-bushman@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3CEB143D91 for ; Fri, 17 Mar 2006 13:06:30 +0000 (GMT) (envelope-from soc-bushman@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2HD6UpN075323 for ; Fri, 17 Mar 2006 13:06:30 GMT (envelope-from soc-bushman@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2HD6Uwu075316 for perforce@freebsd.org; Fri, 17 Mar 2006 13:06:30 GMT (envelope-from soc-bushman@freebsd.org) Date: Fri, 17 Mar 2006 13:06:30 GMT Message-Id: <200603171306.k2HD6Uwu075316@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-bushman@freebsd.org using -f From: soc-bushman To: Perforce Change Reviews Cc: Subject: PERFORCE change 93443 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Mar 2006 13:07:05 -0000 http://perforce.freebsd.org/chv.cgi?CH=93443 Change 93443 by soc-bushman@soc-bushman_stinger on 2006/03/17 13:06:21 src/etc branch integrated and submitted Affected files ... .. //depot/projects/soc2005/nsswitch_cached/src/etc/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/amd.map#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/apmd.conf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/auth.conf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/bluetooth/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/bluetooth/hcsecd.conf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/bluetooth/hosts#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/bluetooth/protocols#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/crontab#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/csh.cshrc#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/csh.login#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/csh.logout#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/defaults/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/defaults/bluetooth.device.conf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/defaults/devfs.rules#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/defaults/pccard.conf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/defaults/periodic.conf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/defaults/rc.conf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/devd.conf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/devfs.conf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/dhclient.conf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/disktab#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/etc.alpha/ttys#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/etc.amd64/ttys#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/etc.arm/ttys#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/etc.i386/ttys#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/etc.ia64/ttys#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/etc.powerpc/ttys#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/etc.sparc64/ttys#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/fbtab#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/ftpusers#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/gettytab#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/group#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/gss/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/gss/mech#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/gss/qop#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/hosts#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/hosts.allow#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/hosts.equiv#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/hosts.lpd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/inetd.conf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/isdn/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/isdn/answer#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/isdn/holidays.D#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/isdn/isdnd.rates.A#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/isdn/isdnd.rates.D#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/isdn/isdnd.rates.F#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/isdn/isdnd.rates.L#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/isdn/isdnd.rates.UK.BT#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/isdn/isdnd.rc.sample#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/isdn/isdntel.alias.sample#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/isdn/isdntel.sh#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/isdn/record#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/isdn/tell#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/isdn/tell-record#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/isdn/unknown_incoming#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/login.access#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/login.conf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/mac.conf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/mail/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/mail/README#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/mail/access.sample#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/mail/aliases#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/mail/mailer.conf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/mail/mailertable.sample#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/mail/virtusertable.sample#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/man.alias#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/master.passwd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/minfree#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/motd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/mtree/BIND.chroot.dist#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/mtree/BIND.include.dist#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/mtree/BSD.include.dist#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/mtree/BSD.local.dist#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/mtree/BSD.release.dist#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/mtree/BSD.root.dist#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/mtree/BSD.sendmail.dist#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/mtree/BSD.usr.dist#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/mtree/BSD.var.dist#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/mtree/BSD.x11-4.dist#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/mtree/BSD.x11.dist#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/mtree/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/mtree/README#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/namedb/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/namedb/PROTO.localhost-v6.rev#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/namedb/PROTO.localhost.rev#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/namedb/make-localhost#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/namedb/named.conf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/namedb/named.root#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/netconfig#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/netstart#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/network.subr#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/networks#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/newsyslog.conf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/nls.alias#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/nsmb.conf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/opieaccess#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/pam.d/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/pam.d/README#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/pam.d/convert.pl#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/pam.d/ftpd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/pam.d/gdm#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/pam.d/imap#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/pam.d/kde#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/pam.d/login#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/pam.d/other#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/pam.d/passwd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/pam.d/pop3#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/pam.d/rsh#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/pam.d/sshd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/pam.d/su#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/pam.d/system#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/pam.d/telnetd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/pam.d/xdm#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/pccard_ether#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/Makefile.inc#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/daily/100.clean-disks#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/daily/110.clean-tmps#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/daily/120.clean-preserve#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/daily/130.clean-msgs#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/daily/140.clean-rwho#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/daily/150.clean-hoststat#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/daily/200.backup-passwd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/daily/210.backup-aliases#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/daily/300.calendar#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/daily/310.accounting#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/daily/330.news#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/daily/400.status-disks#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/daily/405.status-ata-raid#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/daily/406.status-gmirror#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/daily/407.status-graid3#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/daily/408.status-gstripe#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/daily/409.status-gconcat#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/daily/420.status-network#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/daily/430.status-rwho#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/daily/440.status-mailq#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/daily/450.status-security#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/daily/460.status-mail-rejects#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/daily/470.status-named#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/daily/500.queuerun#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/daily/999.local#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/daily/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/monthly/200.accounting#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/monthly/999.local#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/monthly/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/security/100.chksetuid#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/security/200.chkmounts#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/security/300.chkuid0#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/security/400.passwdless#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/security/500.ipfwdenied#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/security/510.ipfdenied#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/security/520.pfdenied#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/security/550.ipfwlimit#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/security/600.ip6fwdenied#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/security/610.ipf6denied#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/security/650.ip6fwlimit#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/security/700.kernelmsg#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/security/800.loginfail#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/security/900.tcpwrap#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/security/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/security/security.functions#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/weekly/120.clean-kvmdb#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/weekly/310.locate#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/weekly/320.whatis#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/weekly/330.catman#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/weekly/340.noid#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/weekly/400.status-pkg#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/weekly/999.local#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/periodic/weekly/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/pf.conf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/pf.os#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/phones#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/portsnap.conf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/ppp/ppp.conf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/printcap#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/profile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/protocols#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.bsdextended#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/DAEMON#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/LOGIN#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/NETWORKING#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/SERVERS#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/abi#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/accounting#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/addswap#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/adjkerntz#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/amd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/apm#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/apmd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/archdep#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/atm1#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/atm2#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/atm3#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/auditd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/bgfsck#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/bluetooth#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/bootconf.sh#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/bootparams#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/bsnmpd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/ccd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/cleanvar#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/cleartmp#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/cron#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/devd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/devfs#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/dhclient#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/dmesg#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/dumpon#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/early.sh#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/encswap#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/fsck#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/ftpd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/gbde#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/geli#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/geli2#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/hcsecd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/hostapd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/hostname#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/ike#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/inetd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/initrandom#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/ip6addrctl#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/ip6fw#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/ipfilter#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/ipfs#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/ipfw#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/ipmon#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/ipnat#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/ipsec#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/ipxrouted#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/isdnd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/jail#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/kadmind#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/kerberos#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/keyserv#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/kldxref#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/kpasswdd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/ldconfig#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/local#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/localpkg#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/lpd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/mixer#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/motd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/mountcritlocal#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/mountcritremote#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/mountd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/moused#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/mroute6d#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/mrouted#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/msgs#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/named#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/natd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/netif#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/netoptions#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/network_ipv6#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/newsyslog#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/nfsclient#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/nfsd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/nfslocking#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/nfsserver#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/nisdomain#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/nsswitch#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/ntpd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/ntpdate#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/othermta#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/pcvt#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/pf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/pflog#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/pfsync#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/power_profile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/powerd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/ppp#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/pppoed#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/pwcheck#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/quota#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/ramdisk#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/ramdisk-own#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/random#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/rarpd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/resolv#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/root#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/route6d#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/routed#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/routing#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/rpcbind#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/rtadvd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/rwho#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/savecore#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/sdpd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/securelevel#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/sendmail#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/serial#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/sppp#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/sshd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/swap1#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/syscons#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/sysctl#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/syslogd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/timed#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/tmp#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/ugidfw#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/var#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/virecover#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/watchdogd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/wpa_supplicant#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/ypbind#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/yppasswdd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/ypserv#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/ypset#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/ypupdated#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/ypxfrd#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.firewall#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.firewall6#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.initdiskless#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.resume#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.sendmail#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.shutdown#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.subr#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.suspend#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/remote#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/root/dot.cshrc#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/root/dot.k5login#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/root/dot.login#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/root/dot.profile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/rpc#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/sendmail/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/sendmail/freebsd.mc#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/sendmail/freebsd.submit.mc#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/sendmail/freefall.mc#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/services#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/shells#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/snmpd.config#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/sysctl.conf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/syslog.conf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/etc/termcap.small#1 branch Differences ... From owner-p4-projects@FreeBSD.ORG Fri Mar 17 13:34:08 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 76CB516A425; Fri, 17 Mar 2006 13:34:08 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EC9C116A400 for ; Fri, 17 Mar 2006 13:34:07 +0000 (UTC) (envelope-from soc-bushman@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 98ED343D49 for ; Fri, 17 Mar 2006 13:34:07 +0000 (GMT) (envelope-from soc-bushman@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2HDY7RU076424 for ; Fri, 17 Mar 2006 13:34:07 GMT (envelope-from soc-bushman@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2HDY6Fr076416 for perforce@freebsd.org; Fri, 17 Mar 2006 13:34:06 GMT (envelope-from soc-bushman@freebsd.org) Date: Fri, 17 Mar 2006 13:34:06 GMT Message-Id: <200603171334.k2HDY6Fr076416@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-bushman@freebsd.org using -f From: soc-bushman To: Perforce Change Reviews Cc: Subject: PERFORCE change 93445 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Mar 2006 13:34:08 -0000 http://perforce.freebsd.org/chv.cgi?CH=93445 Change 93445 by soc-bushman@soc-bushman_stinger on 2006/03/17 13:34:02 usr.sbin/cached structure simplified - there is no need longer in "startup" folder, because rc.d/cached and cached.conf files were placed directly into repository Affected files ... .. //depot/projects/soc2005/nsswitch_cached/src/etc/Makefile#2 edit .. //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/Makefile#2 edit .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/Makefile#6 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/agent.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/agent.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/agents/Makefile.inc#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/agents/group.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/agents/group.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/agents/hosts.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/agents/hosts.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/agents/passwd.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/agents/passwd.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/agents/services.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/agents/services.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached.conf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached.conf.5#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/Makefile#6 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/agent.c#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/agent.h#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/agents/Makefile.inc#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/agents/group.c#6 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/agents/group.h#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/agents/hosts.c#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/agents/hosts.h#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/agents/passwd.c#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/agents/passwd.h#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/agents/services.c#6 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/agents/services.h#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/cached.8#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/cached.c#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/cached.conf#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/cached.conf.5#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/cachedcli.c#2 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/cachedcli.h#2 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/cachelib.c#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/cachelib.h#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/cacheplcs.c#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/cacheplcs.h#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/config.c#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/config.h#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/debug.c#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/debug.h#6 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/hashtable.h#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/log.c#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/log.h#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/mp_rs_query.c#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/mp_rs_query.h#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/mp_ws_query.c#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/mp_ws_query.h#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/parser.c#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/parser.h#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/protocol.c#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/protocol.h#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/query.c#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/query.h#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/singletons.c#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cached/singletons.h#5 delete .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cachedcli.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cachedcli.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cachelib.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cachelib.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cacheplcs.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/cacheplcs.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/config.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/config.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/debug.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/debug.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/hashtable.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/log.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/log.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/mp_rs_query.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/mp_rs_query.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/mp_ws_query.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/mp_ws_query.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/parser.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/parser.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/protocol.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/protocol.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/query.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/query.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/singletons.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/singletons.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/startup/cached#5 delete Differences ... ==== //depot/projects/soc2005/nsswitch_cached/src/etc/Makefile#2 (text+ko) ==== @@ -33,6 +33,10 @@ BIN1+= printcap .endif +.if !defined(NO_NS_CACHING) +BIN1+= cached.conf +.endif + .if !defined(NO_CRYPT) && !defined(NO_OPENSSL) .if !defined(NO_OPENSSH) SSH= ${.CURDIR}/../crypto/openssh/ssh_config \ ==== //depot/projects/soc2005/nsswitch_cached/src/etc/rc.d/Makefile#2 (text+ko) ==== @@ -45,6 +45,10 @@ FILES+= sshd .endif +.if !defined(NO_NS_CACHING) +FILES+= cached +.endif + FILESDIR= /etc/rc.d FILESMODE= ${BINMODE} From owner-p4-projects@FreeBSD.ORG Fri Mar 17 13:44:40 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3C8C716A41F; Fri, 17 Mar 2006 13:44:40 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CB4ED16A400 for ; Fri, 17 Mar 2006 13:44:39 +0000 (UTC) (envelope-from soc-bushman@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 82E0443D53 for ; Fri, 17 Mar 2006 13:44:39 +0000 (GMT) (envelope-from soc-bushman@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2HDidJM077015 for ; Fri, 17 Mar 2006 13:44:39 GMT (envelope-from soc-bushman@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2HDid2A077012 for perforce@freebsd.org; Fri, 17 Mar 2006 13:44:39 GMT (envelope-from soc-bushman@freebsd.org) Date: Fri, 17 Mar 2006 13:44:39 GMT Message-Id: <200603171344.k2HDid2A077012@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-bushman@freebsd.org using -f From: soc-bushman To: Perforce Change Reviews Cc: Subject: PERFORCE change 93446 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Mar 2006 13:44:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=93446 Change 93446 by soc-bushman@soc-bushman_stinger on 2006/03/17 13:43:38 Makefile added properly Affected files ... .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/Makefile#7 branch Differences ... From owner-p4-projects@FreeBSD.ORG Fri Mar 17 14:04:23 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 77FBA16A438; Fri, 17 Mar 2006 14:04:23 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 34AFD16A400 for ; Fri, 17 Mar 2006 14:04:23 +0000 (UTC) (envelope-from soc-bushman@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E3ED143D88 for ; Fri, 17 Mar 2006 14:04:04 +0000 (GMT) (envelope-from soc-bushman@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2HE44I2077789 for ; Fri, 17 Mar 2006 14:04:04 GMT (envelope-from soc-bushman@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2HE44DG077786 for perforce@freebsd.org; Fri, 17 Mar 2006 14:04:04 GMT (envelope-from soc-bushman@freebsd.org) Date: Fri, 17 Mar 2006 14:04:04 GMT Message-Id: <200603171404.k2HE44DG077786@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-bushman@freebsd.org using -f From: soc-bushman To: Perforce Change Reviews Cc: Subject: PERFORCE change 93448 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Mar 2006 14:04:23 -0000 http://perforce.freebsd.org/chv.cgi?CH=93448 Change 93448 by soc-bushman@soc-bushman_stinger on 2006/03/17 14:03:23 rc.d/cached and cached.conf mentions were removed Affected files ... .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/Makefile#8 edit Differences ... ==== //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/Makefile#8 (text+ko) ==== @@ -13,17 +13,7 @@ LDADD+=${LIBM} ${LIBPTHREAD} ${LIBUTIL} LDFLAGS+= -Xlinker --export-dynamic -FILESGROUPS=STARTUP CONF - -STARTUPDIR?=${PREFIX}/etc/rc.d -STARTUPMODE=${BINMODE} -STARTUP+=${.CURDIR}/../startup/cached - -CONFDIR=${PREFIX}/etc -CONFMODE=${SHAREMODE} -CONF+=${.CURDIR}/cached.conf - .PATH: ${.CURDIR}/agents .include "agents/Makefile.inc" -.include "../../Makefile.inc" +.include "../Makefile.inc" .include From owner-p4-projects@FreeBSD.ORG Fri Mar 17 15:52:17 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8B7CF16A420; Fri, 17 Mar 2006 15:52:17 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1EB4F16A400 for ; Fri, 17 Mar 2006 15:52:17 +0000 (UTC) (envelope-from soc-bushman@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id C876F43D45 for ; Fri, 17 Mar 2006 15:52:16 +0000 (GMT) (envelope-from soc-bushman@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2HFqGkf081709 for ; Fri, 17 Mar 2006 15:52:16 GMT (envelope-from soc-bushman@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2HFqGp5081706 for perforce@freebsd.org; Fri, 17 Mar 2006 15:52:16 GMT (envelope-from soc-bushman@freebsd.org) Date: Fri, 17 Mar 2006 15:52:16 GMT Message-Id: <200603171552.k2HFqGp5081706@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-bushman@freebsd.org using -f From: soc-bushman To: Perforce Change Reviews Cc: Subject: PERFORCE change 93450 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Mar 2006 15:52:17 -0000 http://perforce.freebsd.org/chv.cgi?CH=93450 Change 93450 by soc-bushman@soc-bushman_stinger on 2006/03/17 15:51:16 the euid/egid checking policy was updated Affected files ... .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/nsdispatch.c#15 edit .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/mp_rs_query.c#2 edit .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/mp_rs_query.h#2 edit .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/mp_ws_query.c#2 edit .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/mp_ws_query.h#2 edit .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/query.c#2 edit .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/query.h#2 edit Differences ... ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/nsdispatch.c#15 (text+ko) ==== @@ -644,10 +644,10 @@ #ifdef NS_CACHING if ((strcmp(srclist[i].name, NSSRC_CACHE) == 0) && (nss_cache_cycle_prevention_func == NULL)) { -#ifndef NS_NO_STRICT_EID_CHECKING +#ifdef NS_STRICT_LIBC_EID_CHECKING if (issetugid() != 0) continue; -#endif /* NS_NO_STRICT_EID_CHECKING */ +#endif cache_flag = 1; memset(&cache_data, 0, sizeof(nss_cache_data)); ==== //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/mp_rs_query.c#2 (text+ko) ==== @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -38,6 +39,7 @@ #include "config.h" #include "debug.h" #include "log.h" +#include "query.h" #include "mp_rs_query.h" #include "mp_ws_query.h" #include "singletons.h" @@ -174,27 +176,35 @@ qstate->config_entry = configuration_find_entry( s_configuration, c_mp_rs_request->entry); if (qstate->config_entry == NULL) { + c_mp_rs_response->error_code = ENOENT; + LOG_ERR_2("read_session_request", "can't find configuration entry '%s'." " aborting request", c_mp_rs_request->entry); - TRACE_OUT(on_write_request_process); - return (-1); + goto fin; } if (qstate->config_entry->enabled == 0) { + c_mp_rs_response->error_code = EACCES; + LOG_ERR_2("read_session_request", "configuration entry '%s' is disabled", c_mp_rs_request->entry); - TRACE_OUT(on_read_request_process); - return (-1); + goto fin; } if (qstate->config_entry->perform_actual_lookups != 0) dec_cache_entry_name = strdup( qstate->config_entry->mp_cache_params.entry_name); - else + else { + if (check_query_eids(qstate) != 0) { + c_mp_rs_response->error_code = EPERM; + goto fin; + } + asprintf(&dec_cache_entry_name, "%s%s", qstate->eid_str, qstate->config_entry->mp_cache_params.entry_name); + } assert(dec_cache_entry_name != NULL); @@ -301,6 +311,7 @@ } else c_mp_rs_response->error_code = -1; +fin: qstate->process_func = on_mp_read_session_response_write1; qstate->kevent_watermark = sizeof(int); qstate->kevent_filter = EVFILT_WRITE; ==== //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/mp_rs_query.h#2 (text+ko) ==== @@ -28,8 +28,6 @@ #ifndef __CACHED_MP_RS_QUERY_H__ #define __CACHED_MP_RS_QUERY_H__ -#include "query.h" - extern int on_mp_read_session_request_read1(struct query_state *); #endif ==== //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/mp_ws_query.c#2 (text+ko) ==== @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -38,6 +39,7 @@ #include "config.h" #include "debug.h" #include "log.h" +#include "query.h" #include "mp_ws_query.h" #include "singletons.h" @@ -173,28 +175,35 @@ qstate->config_entry = configuration_find_entry( s_configuration, c_mp_ws_request->entry); if (qstate->config_entry == NULL) { + c_mp_ws_response->error_code = ENOENT; + LOG_ERR_2("write_session_request", "can't find configuration entry '%s'. " "aborting request", c_mp_ws_request->entry); - TRACE_OUT(on_write_request_process); - return (-1); + goto fin; } if (qstate->config_entry->enabled == 0) { + c_mp_ws_response->error_code = EACCES; + LOG_ERR_2("write_session_request", "configuration entry '%s' is disabled", c_mp_ws_request->entry); - TRACE_OUT(on_read_request_process); - return (-1); + goto fin; } if (qstate->config_entry->perform_actual_lookups != 0) { + c_mp_ws_response->error_code = EOPNOTSUPP; + LOG_ERR_2("write_session_request", "entry '%s' performs lookups by itself: " "can't write to it", c_mp_ws_request->entry); - TRACE_OUT(on_write_request_process); - return (-1); - } + goto fin; + } else + if (check_query_eids(qstate) != 0) { + c_mp_ws_response->error_code = EPERM; + goto fin; + } /* * All multipart entries are separated by their name decorations. @@ -233,9 +242,11 @@ } configuration_unlock_entry(qstate->config_entry, CELT_MULTIPART); +fin: qstate->process_func = on_mp_write_session_response_write1; qstate->kevent_watermark = sizeof(int); qstate->kevent_filter = EVFILT_WRITE; + TRACE_OUT(on_mp_write_session_request_process); return (0); } ==== //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/mp_ws_query.h#2 (text+ko) ==== @@ -28,8 +28,6 @@ #ifndef __CACHED_MP_WS_QUERY_H__ #define __CACHED_MP_WS_QUERY_H__ -#include "query.h" - extern int on_mp_write_session_request_read1(struct query_state *); extern cache_entry register_new_mp_cache_entry(struct query_state *, const char *); ==== //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/query.c#2 (text+ko) ==== @@ -46,7 +46,7 @@ static const char negative_data[1] = { 0 }; extern void get_time_func(struct timeval *); - + static void clear_config_entry(struct configuration_entry *); static void clear_config_entry_part(struct configuration_entry *, const char *, size_t); @@ -73,7 +73,6 @@ static int on_write_request_process(struct query_state *); static int on_write_response_write1(struct query_state *); - /* * Clears the specified configuration entry (clears the cache for positive and * and negative entries) and also for all multipart entries. @@ -191,14 +190,21 @@ * This check is probably a bit redundant - per-user cache is always separated * by the euid/egid pair */ -#ifndef NO_STRICT_EID_CHECKING - if ((qstate->uid != qstate->euid) || - (qstate->gid != qstate->egid)) { + if (check_query_eids(qstate) != 0) { +#ifdef NS_STRICT_CACHED_EID_CHECKING TRACE_OUT(on_query_startup); return (-1); +#else + if ((elem_type != CET_READ_REQUEST) && + (elem_type != CET_MP_READ_SESSION_REQUEST) && + (elem_type != CET_WRITE_REQUEST) && + (elem_type != CET_MP_WRITE_SESSION_REQUEST)) { + TRACE_OUT(on_query_startup); + return (-1); + } +#endif } -#endif - + switch (elem_type) { case CET_WRITE_REQUEST: qstate->process_func = on_write_request_read1; @@ -400,27 +406,30 @@ s_configuration, write_request->entry); if (qstate->config_entry == NULL) { + write_response->error_code = ENOENT; + LOG_ERR_2("write_request", "can't find configuration" " entry '%s'. aborting request", write_request->entry); - TRACE_OUT(on_write_request_process); - return (-1); + goto fin; } if (qstate->config_entry->enabled == 0) { + write_response->error_code = EACCES; + LOG_ERR_2("write_request", "configuration entry '%s' is disabled", write_request->entry); - TRACE_OUT(on_write_request_process); - return (-1); + goto fin; } if (qstate->config_entry->perform_actual_lookups != 0) { + write_response->error_code = EOPNOTSUPP; + LOG_ERR_2("write_request", "entry '%s' performs lookups by itself: " "can't write to it", write_request->entry); - TRACE_OUT(on_write_request_process); - return (-1); - } + goto fin; + } configuration_lock_rdlock(s_configuration); c_entry = find_cache_entry(s_cache, @@ -445,9 +454,11 @@ } else write_response->error_code = -1; +fin: qstate->kevent_filter = EVFILT_WRITE; qstate->kevent_watermark = sizeof(int); qstate->process_func = on_write_response_write1; + TRACE_OUT(on_write_request_process); return (0); } @@ -468,28 +479,35 @@ s_configuration, write_request->entry); if (qstate->config_entry == NULL) { + write_response->error_code = ENOENT; + LOG_ERR_2("negative_write_request", "can't find configuration" " entry '%s'. aborting request", write_request->entry); - TRACE_OUT(on_negative_write_request_process); - return (-1); + goto fin; } if (qstate->config_entry->enabled == 0) { + write_response->error_code = EACCES; + LOG_ERR_2("negative_write_request", "configuration entry '%s' is disabled", write_request->entry); - TRACE_OUT(on_negative_write_request_process); - return (-1); + goto fin; } if (qstate->config_entry->perform_actual_lookups != 0) { + write_response->error_code = EOPNOTSUPP; + LOG_ERR_2("negative_write_request", "entry '%s' performs lookups by itself: " "can't write to it", write_request->entry); - TRACE_OUT(on_negative_write_request_process); - return (-1); - } + goto fin; + } else + if (check_query_eids(qstate) != 0) { + write_response->error_code = EPERM; + goto fin; + } configuration_lock_rdlock(s_configuration); c_entry = find_cache_entry(s_cache, @@ -513,9 +531,11 @@ } else write_response->error_code = -1; +fin: qstate->kevent_filter = EVFILT_WRITE; qstate->kevent_watermark = sizeof(int); qstate->process_func = on_write_response_write1; + TRACE_OUT(on_negative_write_request_process); return (0); } @@ -541,6 +561,7 @@ qstate->kevent_watermark = sizeof(int); qstate->kevent_filter = EVFILT_READ; qstate->process_func = on_rw_mapper; + TRACE_OUT(on_write_response_write1); return (0); } @@ -650,19 +671,21 @@ qstate->config_entry = configuration_find_entry( s_configuration, read_request->entry); if (qstate->config_entry == NULL) { + read_response->error_code = ENOENT; + LOG_ERR_2("read_request", "can't find configuration " "entry '%s'. aborting request", read_request->entry); - TRACE_OUT(on_read_request_process); - return (-1); + goto fin; } if (qstate->config_entry->enabled == 0) { + read_response->error_code = EACCES; + LOG_ERR_2("read_request", "configuration entry '%s' is disabled", read_request->entry); - TRACE_OUT(on_read_request_process); - return (-1); + goto fin; } /* @@ -671,6 +694,12 @@ */ if (qstate->config_entry->perform_actual_lookups != 0) memset(read_request->cache_key, 0, qstate->eid_str_length); + else + if (check_query_eids(qstate) != 0) { + /* if the lookup is not self-performing, we check for clients euid/egid */ + read_response->error_code = EPERM; + goto fin; + } configuration_lock_rdlock(s_configuration); c_entry = find_cache_entry(s_cache, @@ -776,6 +805,7 @@ } else read_response->error_code = -1; +fin: qstate->kevent_filter = EVFILT_WRITE; if (read_response->error_code == 0) qstate->kevent_watermark = sizeof(int) + sizeof(size_t); @@ -1051,6 +1081,17 @@ } /* + * Checks if the client's euid and egid do not differ from its uid and gid. + * Returns 0 on success. + */ +int +check_query_eids(struct query_state *qstate) +{ + + return ((qstate->uid != qstate->euid) || (qstate->gid != qstate->egid) ? -1 : 0); +} + +/* * Uses the qstate fields to process an "alternate" read - when the buffer is * too large to be received during one socket read operation */ ==== //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cached/query.h#2 (text+ko) ==== @@ -93,6 +93,8 @@ int use_alternate_io; }; +extern int check_query_eids(struct query_state *); + extern ssize_t query_io_buffer_read(struct query_state *, void *, size_t); extern ssize_t query_io_buffer_write(struct query_state *, const void *, size_t); From owner-p4-projects@FreeBSD.ORG Fri Mar 17 21:00:13 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AC4B216A422; Fri, 17 Mar 2006 21:00:13 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8A4D616A401 for ; Fri, 17 Mar 2006 21:00:13 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 365BC43D49 for ; Fri, 17 Mar 2006 21:00:13 +0000 (GMT) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2HL0DYO013878 for ; Fri, 17 Mar 2006 21:00:13 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2HL0CmU013875 for perforce@freebsd.org; Fri, 17 Mar 2006 21:00:12 GMT (envelope-from imp@freebsd.org) Date: Fri, 17 Mar 2006 21:00:12 GMT Message-Id: <200603172100.k2HL0CmU013875@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 93467 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Mar 2006 21:00:14 -0000 http://perforce.freebsd.org/chv.cgi?CH=93467 Change 93467 by imp@imp_Speedy on 2006/03/17 20:59:57 We need to lock around the Tx path of the ISR. In addition, when we can send more packets, we need to clear OACTIVE and call the start routine... # this gets me reliably every time to the nfs panic on pagein # when init is run. No idea what that bug is. Affected files ... .. //depot/projects/arm/src/sys/arm/at91/if_ate.c#41 edit Differences ... ==== //depot/projects/arm/src/sys/arm/at91/if_ate.c#41 (text+ko) ==== @@ -681,6 +681,7 @@ } } if (status & ETH_ISR_TCOM) { + ATE_LOCK(sc); if (sc->sent_mbuf[0]) m_freem(sc->sent_mbuf[0]); if (sc->sent_mbuf[1]) { @@ -697,6 +698,13 @@ sc->sent_mbuf[0] = NULL; sc->txcur = 0; } + /* + * We're no longer busy, so clear the busy flag and call the + * start routine to xmit more packets. + */ + sc->ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; + atestart_locked(sc->ifp); + ATE_UNLOCK(sc); } if (status & ETH_ISR_RBNA) { /* Workaround Errata #11 */ From owner-p4-projects@FreeBSD.ORG Fri Mar 17 21:37:59 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 872D816A422; Fri, 17 Mar 2006 21:37:59 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5960516A400 for ; Fri, 17 Mar 2006 21:37:59 +0000 (UTC) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0B2D643D46 for ; Fri, 17 Mar 2006 21:37:59 +0000 (GMT) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2HLbwGm015950 for ; Fri, 17 Mar 2006 21:37:58 GMT (envelope-from millert@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2HLbwCV015943 for perforce@freebsd.org; Fri, 17 Mar 2006 21:37:58 GMT (envelope-from millert@freebsd.org) Date: Fri, 17 Mar 2006 21:37:58 GMT Message-Id: <200603172137.k2HLbwCV015943@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to millert@freebsd.org using -f From: Todd Miller To: Perforce Change Reviews Cc: Subject: PERFORCE change 93468 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Mar 2006 21:37:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=93468 Change 93468 by millert@millert_p3 on 2006/03/17 21:37:30 Correct error path when mac_check_file_change_offset() fails in getdirentries(). Affected files ... .. //depot/projects/trustedbsd/sebsd/sys/kern/vfs_syscalls.c#18 edit Differences ... ==== //depot/projects/trustedbsd/sebsd/sys/kern/vfs_syscalls.c#18 (text+ko) ==== @@ -3775,10 +3775,8 @@ } #ifdef MAC error = mac_check_file_change_offset(td->td_ucred, fp); - if (error) { - fdrop(fp, td); - return (error); - } + if (error) + goto fail; #endif aiov.iov_base = uap->buf; aiov.iov_len = uap->count; From owner-p4-projects@FreeBSD.ORG Fri Mar 17 22:12:48 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 48D9C16A426; Fri, 17 Mar 2006 22:12:48 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 20C9B16A400 for ; Fri, 17 Mar 2006 22:12:48 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5AC5143D64 for ; Fri, 17 Mar 2006 22:12:43 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2HMCg6P017368 for ; Fri, 17 Mar 2006 22:12:42 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2HMCgWJ017365 for perforce@freebsd.org; Fri, 17 Mar 2006 22:12:42 GMT (envelope-from kmacy@freebsd.org) Date: Fri, 17 Mar 2006 22:12:42 GMT Message-Id: <200603172212.k2HMCgWJ017365@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 93472 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Mar 2006 22:12:48 -0000 http://perforce.freebsd.org/chv.cgi?CH=93472 Change 93472 by kmacy@kmacy_storage:sun4v_work on 2006/03/17 22:12:38 convert tl1 register window fault handlers over to use physical addresses don't step on %g7 in trap handling routines that can trigger nested traps Affected files ... .. //depot/projects/kmacy_sun4v/src/sys/sparc64/sparc64/genassym.c#11 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/include/asmacros.h#9 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/include/pcb.h#6 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/include/pcpu.h#6 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/exception.S#34 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/machdep.c#13 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/swtch.S#12 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/wbuf.S#6 edit Differences ... ==== //depot/projects/kmacy_sun4v/src/sys/sparc64/sparc64/genassym.c#11 (text+ko) ==== @@ -201,9 +201,6 @@ ASSYM(PC_IRTAIL, offsetof(struct pcpu, pc_irtail)); ASSYM(PC_IRFREE, offsetof(struct pcpu, pc_irfree)); ASSYM(PC_MID, offsetof(struct pcpu, pc_mid)); -ASSYM(PC_TLB_CTX, offsetof(struct pcpu, pc_tlb_ctx)); -ASSYM(PC_TLB_CTX_MAX, offsetof(struct pcpu, pc_tlb_ctx_max)); -ASSYM(PC_TLB_CTX_MIN, offsetof(struct pcpu, pc_tlb_ctx_min)); ASSYM(PC_CNT, offsetof(struct pcpu, pc_cnt)); ASSYM(PC_SIZEOF, sizeof(struct pcpu)); @@ -222,8 +219,12 @@ ASSYM(PC_KWBUF_SP, offsetof(struct pcpu, pc_kwbuf_sp)); ASSYM(PC_KWBUF, offsetof(struct pcpu, pc_kwbuf)); ASSYM(PC_PMAP, offsetof(struct pcpu, pc_curpmap)); +ASSYM(PC_CURPCB_RA, offsetof(struct pcpu, pc_curpcb_ra)); #else ASSYM(PC_PMAP, offsetof(struct pcpu, pc_pmap)); +ASSYM(PC_TLB_CTX, offsetof(struct pcpu, pc_tlb_ctx)); +ASSYM(PC_TLB_CTX_MAX, offsetof(struct pcpu, pc_tlb_ctx_max)); +ASSYM(PC_TLB_CTX_MIN, offsetof(struct pcpu, pc_tlb_ctx_min)); #endif @@ -284,6 +285,9 @@ ASSYM(PCB_PC, offsetof(struct pcb, pcb_pc)); ASSYM(PCB_SP, offsetof(struct pcb, pcb_sp)); ASSYM(PCB_FEF, PCB_FEF); +#ifdef SUN4V +ASSYM(PCB_RA, offsetof(struct pcb, pcb_ra)); +#endif ASSYM(VM_PMAP, offsetof(struct vmspace, vm_pmap)); ASSYM(PM_ACTIVE, offsetof(struct pmap, pm_active)); ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/include/asmacros.h#9 (text+ko) ==== @@ -131,10 +131,18 @@ #define GET_MMFSA_SCRATCH(reg) \ ldxa [%g0 + %g0]ASI_SCRATCHPAD, reg; -#define GET_PCPU_SCRATCH \ +#define GET_PCPU_PHYS_SCRATCH(tmp) \ + sethi %uhi(VM_MIN_DIRECT_ADDRESS), tmp; \ + mov SCRATCH_REG_PCPU, PCPU_REG; \ + sllx tmp, 32, tmp; \ + ldxa [%g0 + PCPU_REG]ASI_SCRATCHPAD, PCPU_REG; \ + andn PCPU_REG, tmp, PCPU_REG + +#define GET_PCPU_SCRATCH \ mov SCRATCH_REG_PCPU, PCPU_REG; \ ldxa [%g0 + PCPU_REG]ASI_SCRATCHPAD, PCPU_REG; + #define GET_HASH_SCRATCH_USER(reg) \ mov SCRATCH_REG_HASH_USER, reg; \ ldxa [%g0 + reg]ASI_SCRATCHPAD, reg; @@ -170,10 +178,15 @@ ldxa [%g0 + reg]ASI_SCRATCHPAD, reg; #define SET_SCRATCH(offsetreg, reg) stxa reg, [%g0 + offsetreg]ASI_SCRATCHPAD +#define GET_PCB(reg) \ + GET_PCPU_SCRATCH; \ + ldx [PCPU_REG + PC_CURPCB], reg; + +#define GET_PCB_PHYS(tmp, reg) \ + mov PC_CURPCB_RA, reg; \ + GET_PCPU_PHYS_SCRATCH(tmp); \ + ldxa [PCPU_REG + reg]ASI_REAL, reg; -#define GET_PCB(reg) \ - GET_PCPU_SCRATCH; \ - ldx [PCPU_REG + PC_CURPCB], reg; #define SET_MMU_CONTEXT(typereg, reg) stxa reg, [typereg]ASI_MMU_CONTEXTID #define GET_MMU_CONTEXT(typereg, reg) ldxa [typereg]ASI_MMU_CONTEXTID, reg ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/include/pcb.h#6 (text+ko) ==== @@ -45,7 +45,7 @@ uint64_t pcb_nsaved; /* number of windows saved in pcb_rw */ uint64_t pcb_pc; uint64_t pcb_sp; - uint64_t pcb_pa; /* physical address of pcb */ + uint64_t pcb_ra; /* real address of pcb */ uint64_t pcb_pad[4]; } __aligned(64); ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/include/pcpu.h#6 (text+ko) ==== @@ -75,9 +75,7 @@ u_long pc_kwbuf_sp; \ u_int pc_kwbuf_full; \ u_int pc_node; \ - u_int pc_tlb_ctx; \ - u_int pc_tlb_ctx_max; \ - u_int pc_tlb_ctx_min + u_long pc_curpcb_ra; /* XXX SUN4V_FIXME - as we access the *_ra and *_size fields in quick * succession we _really_ want them to be L1 cache line size aligned ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/exception.S#34 (text+ko) ==== @@ -1005,7 +1005,7 @@ ldx [%l7 + TF_TPC], %g1 ldx [%l7 + TF_TNPC], %g2 ldx [%l7 + TF_TSTATE], %l0 - andn %l0, TSTATE_CWP_MASK, %g7 + andn %l0, TSTATE_CWP_MASK, %g6 wrpr %g1, %tpc wrpr %g2, %tnpc @@ -1059,7 +1059,7 @@ brnz %g1, 3f nop ! no trap, use restore directly rdpr %cwp, %g1 - wrpr %g1, %g7, %tstate ! needed by wbuf recovery code + wrpr %g1, %g6, %tstate ! needed by wbuf recovery code ! hand craft the restore to avoid getting to TL > 2 rdpr %wstate, %g1 btst 1, %g1 @@ -1087,7 +1087,7 @@ rdpr %canrestore, %g1 wrpr %g0, %g1, %cleanwin rdpr %cwp, %g1 - wrpr %g1, %g7, %tstate + wrpr %g1, %g6, %tstate ! MAGIC_TRAP_ON retry END(user_rtt) @@ -1143,14 +1143,14 @@ ldx [%l7 + TF_TPC], %g1 ldx [%l7 + TF_TNPC], %g2 ldx [%l7 + TF_TSTATE], %l0 - andn %l0, TSTATE_CWP_MASK, %g7 + andn %l0, TSTATE_CWP_MASK, %g6 wrpr %g1, %tpc wrpr %g2, %tnpc rdpr %canrestore, %g1 brnz %g1, 3f nop ! can use restore directly rdpr %cwp, %g1 - wrpr %g1, %g7, %tstate ! needed by wbuf recovery code + wrpr %g1, %g6, %tstate ! needed by wbuf recovery code ! avoid going above TL2 fill_64bit_rtt(ASI_N) @@ -1161,7 +1161,7 @@ ! set %tstate to the correct %cwp ! rdpr %cwp, %g1 - wrpr %g1, %g7, %tstate + wrpr %g1, %g6, %tstate retry END(krtt) END(ktl0) ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/machdep.c#13 (text+ko) ==== @@ -384,9 +384,6 @@ #endif pc->pc_addr = (vm_offset_t)pcpu0; pc->pc_node = child; - pc->pc_tlb_ctx = TLB_CTX_USER_MIN; - pc->pc_tlb_ctx_min = TLB_CTX_USER_MIN; - pc->pc_tlb_ctx_max = TLB_CTX_USER_MAX; /* * Initialize global registers. @@ -399,15 +396,16 @@ */ pmap_bootstrap(end); + /* + * Update PCPU_REG and PCB to point to direct address + * to support easy phys <-> virt translation in trap handler + */ + thread0.td_kstack = kstack0; - thread0.td_pcb = (struct pcb *) - (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; + thread0.td_pcb = (struct pcb *)(thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; + thread0.td_pcb->pcb_ra = vtophys(thread0.td_pcb); pc->pc_curpcb = thread0.td_pcb; - /* - * Update PCPU_REG to point to direct address - * to support easy phys <-> virt translation in trap handler - */ pc = (struct pcpu *)TLB_PHYS_TO_DIRECT(vtophys(pc)); cpu_setregs(pc); ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/swtch.S#12 (text+ko) ==== @@ -49,6 +49,22 @@ mov %i1, %i0 END(cpu_throw) + + +ENTRY(pcb_ra_miss) + call pmap_kextract + mov PCB_REG, %o0 + mov %o0, %l0 + ! sanity check lookup + brnz %o0, 1f + nop + MAGIC_TRAP_ON + MAGIC_EXIT +1: + ! + ba,pt %xcc, pcb_ra_uptodate + stx %l0, [PCB_REG + PCB_RA] +END(pcb_ra_miss) /* * void cpu_switch(struct thread *old, struct thread *new) */ @@ -128,13 +144,18 @@ */ ldx [PCB_REG + PCB_SP], %fp ldx [PCB_REG + PCB_PC], %i7 + ldx [PCB_REG + PCB_RA], %l0 sub %fp, CCFSZ, %sp + brz %l0, pcb_ra_miss + nop +pcb_ra_uptodate: /* * Point to the pmaps of the new process, and of the last non-kernel * process to run. */ + stx %l0, [PCPU(CURPCB_RA)] ldx [%i0 + TD_PROC], %i2 ldx [PCPU(PMAP)], %l2 ldx [%i2 + P_VMSPACE], %i5 ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/wbuf.S#6 (text+ko) ==== @@ -34,12 +34,13 @@ END(fault_64bit_sn0) ENTRY(fault_64bit_sn1) - /* XXX need to use physical addresses here */ - GET_PCB(%g6) - stx %sp, [%g6 + PCB_RWSP] - SPILL(stx, %g6 + PCB_RW, 8) + GET_PCB_PHYS(%g5, %g6) + wr %g0, ASI_REAL, %asi + stxa %sp, [%g6 + PCB_RWSP]%asi + add %g6, PCB_RW, %g5 + SAVE_WINDOW_ASI(%g5) mov 1, %g5 - stx %g5, [%g6 + PCB_NSAVED] + stxa %g5, [%g6 + PCB_NSAVED]%asi saved set tl0_trap, %g5 wrpr %g5, %tnpc @@ -81,19 +82,20 @@ END(fault_64bit_so0) ENTRY(fault_64bit_so1) - /* XXX need to use physical addresses */ - GET_PCB(%g6) - ld [%g6 + PCB_NSAVED], %g2 + GET_PCB_PHYS(%g5, %g6) + wr %g0, ASI_REAL, %asi + ldxa [%g6 + PCB_NSAVED]%asi, %g2 add %g2, 1, %g3 - stx %g3, [%g6 + PCB_NSAVED] + stxa %g3, [%g6 + PCB_NSAVED]%asi sll %g2, PTR_SHIFT, %g4 add %g6, PCB_RWSP, %g3 - stx %sp, [%g3 + %g4] + add %g3, %g4, %g4 + stxa %sp, [%g4]%asi sll %g2, RW_SHIFT, %g4 add %g4, %g6, %g4 add %g4, PCB_RW, %g3 - SAVE_WINDOW(%g3) + SAVE_WINDOW_ASI(%g3) saved set tl0_trap, %g5 wrpr %g5, %tnpc @@ -121,7 +123,6 @@ ! wrpr %g0, 1, %tl set TSTATE_KERNEL | TSTATE_IE, %g1 - GET_PCPU_SCRATCH wrpr %g0, %g1, %tstate set user_rtt, %g1 wrpr %g0, %g1, %tpc From owner-p4-projects@FreeBSD.ORG Fri Mar 17 22:18:52 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5575A16A424; Fri, 17 Mar 2006 22:18:52 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3595116A422 for ; Fri, 17 Mar 2006 22:18:52 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D84F243D45 for ; Fri, 17 Mar 2006 22:18:51 +0000 (GMT) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2HMIplf017701 for ; Fri, 17 Mar 2006 22:18:51 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2HMIpiV017698 for perforce@freebsd.org; Fri, 17 Mar 2006 22:18:51 GMT (envelope-from imp@freebsd.org) Date: Fri, 17 Mar 2006 22:18:51 GMT Message-Id: <200603172218.k2HMIpiV017698@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 93475 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Mar 2006 22:18:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=93475 Change 93475 by imp@imp_Speedy on 2006/03/17 22:18:19 in ate_start don't be a dumbass: (1) Don't set sc->sent_mbuf[1] = m. This will lead to multiple frees of the same mbuf and the panic follows. (2) Loop while we have buffer space to loop. not 100% sure this is right. Remove debug printf. They are now in the way. This commit brought to you by: Trying to mount root from nfs: NFS ROOT: 206.168.13.207:/arm-nfsroot warning: no time-of-day clock registered, system time will not be set accurately warning: no time-of-day clock registered, system time will not be set accurately Enter full pathname of shell or RETURN for /bin/sh: # ls / .snap boot etc libexec proc root sys usr bin dev lib mnt rescue sbin tmp var # Affected files ... .. //depot/projects/arm/src/sys/arm/at91/if_ate.c#42 edit Differences ... ==== //depot/projects/arm/src/sys/arm/at91/if_ate.c#42 (text+ko) ==== @@ -586,8 +586,6 @@ status = RD4(sc, ETH_ISR); if (status == 0) return; -// printf("status is %x IT IS %x %x\n", status, RD4(sc, ETH_RSR), RD4(sc, ETH_CTL)); - if (status & ETH_ISR_RCOM) { bus_dmamap_sync(sc->rx_desc_tag, sc->rx_desc_map, BUS_DMASYNC_POSTREAD); @@ -619,7 +617,6 @@ /* Flush memory for mbuf so we don't get stale bytes */ bus_dmamap_sync(sc->rxtag, sc->rx_map[i], BUS_DMASYNC_POSTREAD); - printf("GOT ONE %d %x %d\n", i, rx_stat, rx_stat & ETH_LEN_MASK); WR4(sc, ETH_RSR, RD4(sc, ETH_RSR)); /* * Allocate a new buffer to replace this one. @@ -682,8 +679,10 @@ } if (status & ETH_ISR_TCOM) { ATE_LOCK(sc); - if (sc->sent_mbuf[0]) + if (sc->sent_mbuf[0]) { m_freem(sc->sent_mbuf[0]); + sc->sent_mbuf[0] = NULL; + } if (sc->sent_mbuf[1]) { if (RD4(sc, ETH_TSR) & ETH_TSR_IDLE) { m_freem(sc->sent_mbuf[1]); @@ -707,6 +706,7 @@ ATE_UNLOCK(sc); } if (status & ETH_ISR_RBNA) { + printf("RBNA workaround\n"); /* Workaround Errata #11 */ WR4(sc, ETH_CTL, RD4(sc, ETH_CTL) &~ ETH_CTL_RE); WR4(sc, ETH_CTL, RD4(sc, ETH_CTL) | ETH_CTL_RE); @@ -835,11 +835,7 @@ */ BPF_MTAP(ifp, m); - /* - * Once we've queued one packet, we'll do the rest via the ISR, - * save off a pointer. - */ - sc->sent_mbuf[1] = m; + goto outloop; } static void From owner-p4-projects@FreeBSD.ORG Fri Mar 17 22:26:07 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C5D4116A425; Fri, 17 Mar 2006 22:26:07 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8DFE216A423 for ; Fri, 17 Mar 2006 22:26:07 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E493643D64 for ; Fri, 17 Mar 2006 22:26:00 +0000 (GMT) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2HMQ0Cr018008 for ; Fri, 17 Mar 2006 22:26:00 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2HMQ06R018005 for perforce@freebsd.org; Fri, 17 Mar 2006 22:26:00 GMT (envelope-from imp@freebsd.org) Date: Fri, 17 Mar 2006 22:26:00 GMT Message-Id: <200603172226.k2HMQ06R018005@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 93476 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Mar 2006 22:26:08 -0000 http://perforce.freebsd.org/chv.cgi?CH=93476 Change 93476 by imp@imp_Speedy on 2006/03/17 22:25:35 More properly handle writing more packets in atestart_locked. This fixes a race where we could overwrite sent_mbuf[0] before freeing it. Use proper interrupt mask. Single user still works! Affected files ... .. //depot/projects/arm/src/sys/arm/at91/if_ate.c#43 edit Differences ... ==== //depot/projects/arm/src/sys/arm/at91/if_ate.c#43 (text+ko) ==== @@ -752,8 +752,7 @@ WR4(sc, ETH_HSL, 0); WR4(sc, ETH_CTL, RD4(sc, ETH_CTL) | ETH_CTL_TE | ETH_CTL_RE); - WR4(sc, ETH_IER, /*ETH_ISR_RCOM | ETH_ISR_TCOM | ETH_ISR_RBNA*/ - 0xffffffff); + WR4(sc, ETH_IER, ETH_ISR_RCOM | ETH_ISR_TCOM | ETH_ISR_RBNA); /* * Boot loader fills in MAC address. If that's not the case, then @@ -790,52 +789,50 @@ if (ifp->if_drv_flags & IFF_DRV_OACTIVE) return; -outloop: - /* - * check to see if there's room to put another packet into the - * xmit queue. The EMAC chip has a ping-pong buffer for xmit - * packets. We use OACTIVE to indicate "we can stuff more into - * our buffers (clear) or not (set)." - */ - if (!(RD4(sc, ETH_TSR) & ETH_TSR_BNQ)) { - ifp->if_drv_flags |= IFF_DRV_OACTIVE; - return; - } - IFQ_DRV_DEQUEUE(&ifp->if_snd, m); - if (m == 0) { - ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; - return; - } - mdefrag = m_defrag(m, M_DONTWAIT); - if (mdefrag == NULL) { - m_freem(m); - return; - } - m = mdefrag; + while (sc->txcur < ATE_MAX_TX_BUFFERS) { + /* + * check to see if there's room to put another packet into the + * xmit queue. The EMAC chip has a ping-pong buffer for xmit + * packets. We use OACTIVE to indicate "we can stuff more into + * our buffers (clear) or not (set)." + */ + if (!(RD4(sc, ETH_TSR) & ETH_TSR_BNQ)) { + ifp->if_drv_flags |= IFF_DRV_OACTIVE; + return; + } + IFQ_DRV_DEQUEUE(&ifp->if_snd, m); + if (m == 0) { + ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; + return; + } + mdefrag = m_defrag(m, M_DONTWAIT); + if (mdefrag == NULL) { + m_freem(m); + return; + } + m = mdefrag; + if (bus_dmamap_load_mbuf_sg(sc->mtag, sc->tx_map[sc->txcur], m, + segs, &nseg, 0) != 0) { + m_freem(m); + continue; + } + bus_dmamap_sync(sc->mtag, sc->tx_map[sc->txcur], + BUS_DMASYNC_PREWRITE); - if (bus_dmamap_load_mbuf_sg(sc->mtag, sc->tx_map[sc->txcur], m, segs, - &nseg, 0) != 0) { - m_freem(m); - goto outloop; - } - bus_dmamap_sync(sc->mtag, sc->tx_map[sc->txcur], BUS_DMASYNC_PREWRITE); - sc->sent_mbuf[sc->txcur] = m; - sc->txcur++; - if (sc->txcur >= ATE_MAX_TX_BUFFERS) - sc->txcur = 0; - - /* - * tell the hardware to xmit the packet. - */ - WR4(sc, ETH_TAR, segs[0].ds_addr); - WR4(sc, ETH_TCR, segs[0].ds_len); + /* + * tell the hardware to xmit the packet. + */ + WR4(sc, ETH_TAR, segs[0].ds_addr); + WR4(sc, ETH_TCR, segs[0].ds_len); - /* - * Tap off here if there is a bpf listener. - */ - BPF_MTAP(ifp, m); + /* + * Tap off here if there is a bpf listener. + */ + BPF_MTAP(ifp, m); - goto outloop; + sc->sent_mbuf[sc->txcur] = m; + sc->txcur++; + } } static void From owner-p4-projects@FreeBSD.ORG Sat Mar 18 00:55:07 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 39F1216A420; Sat, 18 Mar 2006 00:55:07 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1124C16A400 for ; Sat, 18 Mar 2006 00:55:06 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8F12643D45 for ; Sat, 18 Mar 2006 00:55:06 +0000 (GMT) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2I0t6eb032020 for ; Sat, 18 Mar 2006 00:55:06 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2I0t5Mf032013 for perforce@freebsd.org; Sat, 18 Mar 2006 00:55:05 GMT (envelope-from imp@freebsd.org) Date: Sat, 18 Mar 2006 00:55:05 GMT Message-Id: <200603180055.k2I0t5Mf032013@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 93481 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Mar 2006 00:55:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=93481 Change 93481 by imp@imp_harmony on 2006/03/18 00:54:05 IFC @93479 Affected files ... .. //depot/projects/arm/src/sys/Makefile#5 integrate .. //depot/projects/arm/src/sys/alpha/alpha/clock.c#6 integrate .. //depot/projects/arm/src/sys/alpha/include/pcpu.h#2 integrate .. //depot/projects/arm/src/sys/amd64/amd64/apic_vector.S#6 integrate .. //depot/projects/arm/src/sys/amd64/amd64/db_trace.c#6 integrate .. //depot/projects/arm/src/sys/amd64/amd64/io_apic.c#5 integrate .. //depot/projects/arm/src/sys/amd64/amd64/machdep.c#8 integrate .. //depot/projects/arm/src/sys/amd64/amd64/mp_machdep.c#8 integrate .. //depot/projects/arm/src/sys/amd64/amd64/pmap.c#5 integrate .. //depot/projects/arm/src/sys/amd64/amd64/trap.c#8 integrate .. //depot/projects/arm/src/sys/amd64/conf/NOTES#6 integrate .. //depot/projects/arm/src/sys/amd64/include/asmacros.h#3 integrate .. //depot/projects/arm/src/sys/amd64/include/bus.h#3 integrate .. //depot/projects/arm/src/sys/amd64/include/pmap.h#4 integrate .. //depot/projects/arm/src/sys/amd64/include/trap.h#2 integrate .. //depot/projects/arm/src/sys/amd64/linux32/linux32_machdep.c#4 integrate .. //depot/projects/arm/src/sys/amd64/pci/pci_bus.c#5 integrate .. //depot/projects/arm/src/sys/arm/arm/in_cksum.c#5 integrate .. //depot/projects/arm/src/sys/arm/include/in_cksum.h#5 integrate .. //depot/projects/arm/src/sys/arm/xscale/i80321/i80321_aau.c#4 integrate .. //depot/projects/arm/src/sys/arm/xscale/i80321/i80321_dma.c#3 integrate .. //depot/projects/arm/src/sys/boot/Makefile#2 integrate .. //depot/projects/arm/src/sys/boot/alpha/common/Makefile.common#2 integrate .. //depot/projects/arm/src/sys/boot/i386/libi386/Makefile#4 integrate .. //depot/projects/arm/src/sys/boot/i386/libi386/libi386.h#4 integrate .. //depot/projects/arm/src/sys/boot/i386/libi386/smbios.c#2 integrate .. //depot/projects/arm/src/sys/boot/i386/loader/Makefile#3 integrate .. //depot/projects/arm/src/sys/boot/ia64/efi/Makefile#2 integrate .. //depot/projects/arm/src/sys/boot/ia64/ski/Makefile#2 integrate .. //depot/projects/arm/src/sys/boot/pc98/loader/Makefile#3 integrate .. //depot/projects/arm/src/sys/boot/powerpc/loader/Makefile#2 integrate .. //depot/projects/arm/src/sys/boot/sparc64/loader/Makefile#2 integrate .. //depot/projects/arm/src/sys/bsm/audit.h#4 integrate .. //depot/projects/arm/src/sys/bsm/audit_internal.h#3 integrate .. //depot/projects/arm/src/sys/cam/scsi/scsi_da.c#7 integrate .. //depot/projects/arm/src/sys/compat/freebsd32/freebsd32_misc.c#8 integrate .. //depot/projects/arm/src/sys/conf/NOTES#17 integrate .. //depot/projects/arm/src/sys/conf/files#21 integrate .. //depot/projects/arm/src/sys/conf/files.alpha#4 integrate .. //depot/projects/arm/src/sys/conf/files.amd64#9 integrate .. //depot/projects/arm/src/sys/conf/files.i386#11 integrate .. //depot/projects/arm/src/sys/conf/files.ia64#4 integrate .. //depot/projects/arm/src/sys/conf/files.pc98#6 integrate .. //depot/projects/arm/src/sys/conf/files.powerpc#5 integrate .. //depot/projects/arm/src/sys/conf/files.sparc64#6 integrate .. //depot/projects/arm/src/sys/conf/options#15 integrate .. //depot/projects/arm/src/sys/conf/options.i386#6 integrate .. //depot/projects/arm/src/sys/conf/options.pc98#5 integrate .. //depot/projects/arm/src/sys/contrib/pf/net/if_pflog.h#4 integrate .. //depot/projects/arm/src/sys/ddb/db_command.c#3 integrate .. //depot/projects/arm/src/sys/ddb/ddb.h#3 integrate .. //depot/projects/arm/src/sys/dev/aic7xxx/aic79xx_osm.c#4 integrate .. //depot/projects/arm/src/sys/dev/ata/ata-all.c#8 integrate .. //depot/projects/arm/src/sys/dev/ata/ata-all.h#11 integrate .. //depot/projects/arm/src/sys/dev/ata/ata-chipset.c#15 integrate .. //depot/projects/arm/src/sys/dev/ata/ata-disk.c#6 integrate .. //depot/projects/arm/src/sys/dev/ata/ata-pci.h#9 integrate .. //depot/projects/arm/src/sys/dev/ata/ata-queue.c#10 integrate .. //depot/projects/arm/src/sys/dev/ata/ata-raid.c#10 integrate .. //depot/projects/arm/src/sys/dev/ata/ata-usb.c#1 branch .. //depot/projects/arm/src/sys/dev/ata/atapi-cd.c#4 integrate .. //depot/projects/arm/src/sys/dev/ata/atapi-fd.c#4 integrate .. //depot/projects/arm/src/sys/dev/ata/atapi-fd.h#4 integrate .. //depot/projects/arm/src/sys/dev/ath/ath_rate/sample/sample.c#5 integrate .. //depot/projects/arm/src/sys/dev/atkbdc/psm.c#4 integrate .. //depot/projects/arm/src/sys/dev/bge/if_bge.c#12 integrate .. //depot/projects/arm/src/sys/dev/cs/if_cs.c#3 integrate .. //depot/projects/arm/src/sys/dev/dc/if_dc.c#6 integrate .. //depot/projects/arm/src/sys/dev/dc/if_dcreg.h#4 integrate .. //depot/projects/arm/src/sys/dev/exca/exca.c#3 integrate .. //depot/projects/arm/src/sys/dev/hwpmc/hwpmc_logging.c#3 integrate .. //depot/projects/arm/src/sys/dev/hwpmc/hwpmc_mod.c#5 integrate .. //depot/projects/arm/src/sys/dev/ieee488/upd7210.c#4 integrate .. //depot/projects/arm/src/sys/dev/ipw/if_ipw.c#3 integrate .. //depot/projects/arm/src/sys/dev/ipw/if_ipwreg.h#2 integrate .. //depot/projects/arm/src/sys/dev/ipw/if_ipwvar.h#2 integrate .. //depot/projects/arm/src/sys/dev/isp/isp_freebsd.c#7 integrate .. //depot/projects/arm/src/sys/dev/iwi/if_iwi.c#5 integrate .. //depot/projects/arm/src/sys/dev/iwi/if_iwireg.h#4 integrate .. //depot/projects/arm/src/sys/dev/iwi/if_iwivar.h#3 integrate .. //depot/projects/arm/src/sys/dev/kbdmux/kbdmux.c#4 integrate .. //depot/projects/arm/src/sys/dev/mpt/mpt.c#7 integrate .. //depot/projects/arm/src/sys/dev/mpt/mpt.h#6 integrate .. //depot/projects/arm/src/sys/dev/mpt/mpt_cam.c#8 integrate .. //depot/projects/arm/src/sys/dev/ral/if_ral.c#6 delete .. //depot/projects/arm/src/sys/dev/ral/if_ral_pccard.c#2 delete .. //depot/projects/arm/src/sys/dev/ral/if_ral_pci.c#2 integrate .. //depot/projects/arm/src/sys/dev/ral/if_ralreg.h#4 delete .. //depot/projects/arm/src/sys/dev/ral/if_ralvar.h#3 delete .. //depot/projects/arm/src/sys/dev/ral/rt2560.c#1 branch .. //depot/projects/arm/src/sys/dev/ral/rt2560reg.h#1 branch .. //depot/projects/arm/src/sys/dev/ral/rt2560var.h#1 branch .. //depot/projects/arm/src/sys/dev/ral/rt2661.c#1 branch .. //depot/projects/arm/src/sys/dev/ral/rt2661_ucode.h#1 branch .. //depot/projects/arm/src/sys/dev/ral/rt2661reg.h#1 branch .. //depot/projects/arm/src/sys/dev/ral/rt2661var.h#1 branch .. //depot/projects/arm/src/sys/dev/re/if_re.c#9 integrate .. //depot/projects/arm/src/sys/dev/sound/pci/ich.c#7 integrate .. //depot/projects/arm/src/sys/dev/sound/pcm/sound.c#4 integrate .. //depot/projects/arm/src/sys/dev/sound/pcm/sound.h#4 integrate .. //depot/projects/arm/src/sys/dev/sound/pcm/vchan.c#4 integrate .. //depot/projects/arm/src/sys/dev/tdfx/tdfx_linux.c#1 branch .. //depot/projects/arm/src/sys/dev/tdfx/tdfx_pci.c#4 integrate .. //depot/projects/arm/src/sys/dev/usb/umass.c#10 integrate .. //depot/projects/arm/src/sys/fs/fifofs/fifo_vnops.c#4 integrate .. //depot/projects/arm/src/sys/fs/nullfs/null_vnops.c#5 integrate .. //depot/projects/arm/src/sys/geom/geom_io.c#4 integrate .. //depot/projects/arm/src/sys/geom/label/g_label_ufs.c#6 integrate .. //depot/projects/arm/src/sys/geom/mirror/g_mirror.c#9 integrate .. //depot/projects/arm/src/sys/geom/mirror/g_mirror.h#6 integrate .. //depot/projects/arm/src/sys/geom/mirror/g_mirror_ctl.c#4 integrate .. //depot/projects/arm/src/sys/geom/raid3/g_raid3.c#11 integrate .. //depot/projects/arm/src/sys/geom/raid3/g_raid3.h#6 integrate .. //depot/projects/arm/src/sys/geom/raid3/g_raid3_ctl.c#4 integrate .. //depot/projects/arm/src/sys/gnu/fs/xfs/FreeBSD/support/kdb.c#3 integrate .. //depot/projects/arm/src/sys/i386/conf/NOTES#11 integrate .. //depot/projects/arm/src/sys/i386/conf/PAE#4 integrate .. //depot/projects/arm/src/sys/i386/conf/XBOX#4 integrate .. //depot/projects/arm/src/sys/i386/i386/geode.c#4 integrate .. //depot/projects/arm/src/sys/i386/i386/identcpu.c#11 integrate .. //depot/projects/arm/src/sys/i386/i386/machdep.c#9 integrate .. //depot/projects/arm/src/sys/i386/i386/mp_machdep.c#8 integrate .. //depot/projects/arm/src/sys/i386/i386/vm_machdep.c#3 integrate .. //depot/projects/arm/src/sys/i386/include/xbox.h#3 integrate .. //depot/projects/arm/src/sys/i386/xbox/xboxfb.c#4 integrate .. //depot/projects/arm/src/sys/isa/syscons_isa.c#3 integrate .. //depot/projects/arm/src/sys/isofs/cd9660/cd9660_rrip.c#2 integrate .. //depot/projects/arm/src/sys/kern/imgact_aout.c#4 integrate .. //depot/projects/arm/src/sys/kern/kern_cpu.c#4 integrate .. //depot/projects/arm/src/sys/kern/kern_environment.c#5 integrate .. //depot/projects/arm/src/sys/kern/kern_exec.c#7 integrate .. //depot/projects/arm/src/sys/kern/kern_exit.c#13 integrate .. //depot/projects/arm/src/sys/kern/kern_fork.c#7 integrate .. //depot/projects/arm/src/sys/kern/kern_malloc.c#6 integrate .. //depot/projects/arm/src/sys/kern/kern_mbuf.c#8 integrate .. //depot/projects/arm/src/sys/kern/kern_resource.c#7 integrate .. //depot/projects/arm/src/sys/kern/kern_sig.c#10 integrate .. //depot/projects/arm/src/sys/kern/kern_tc.c#5 integrate .. //depot/projects/arm/src/sys/kern/kern_thread.c#8 integrate .. //depot/projects/arm/src/sys/kern/subr_prf.c#4 integrate .. //depot/projects/arm/src/sys/kern/uipc_mbuf.c#11 integrate .. //depot/projects/arm/src/sys/kern/uipc_socket.c#9 integrate .. //depot/projects/arm/src/sys/kern/uipc_socket2.c#7 integrate .. //depot/projects/arm/src/sys/kern/uipc_usrreq.c#7 integrate .. //depot/projects/arm/src/sys/kern/vfs_mount.c#12 integrate .. //depot/projects/arm/src/sys/kern/vfs_subr.c#13 integrate .. //depot/projects/arm/src/sys/kern/vfs_syscalls.c#11 integrate .. //depot/projects/arm/src/sys/kern/vfs_vnops.c#6 integrate .. //depot/projects/arm/src/sys/modules/3dfx/Makefile#3 integrate .. //depot/projects/arm/src/sys/modules/3dfx_linux/Makefile#1 branch .. //depot/projects/arm/src/sys/modules/Makefile#15 integrate .. //depot/projects/arm/src/sys/modules/acpi/acpi_video/Makefile#2 integrate .. //depot/projects/arm/src/sys/modules/ata/atausb/Makefile#1 branch .. //depot/projects/arm/src/sys/modules/ce/Makefile#2 integrate .. //depot/projects/arm/src/sys/modules/cp/Makefile#3 integrate .. //depot/projects/arm/src/sys/modules/dummynet/Makefile#4 integrate .. //depot/projects/arm/src/sys/modules/if_bridge/Makefile#2 integrate .. //depot/projects/arm/src/sys/modules/if_gif/Makefile#4 integrate .. //depot/projects/arm/src/sys/modules/ipfilter/Makefile#3 integrate .. //depot/projects/arm/src/sys/modules/ipfw/Makefile#3 integrate .. //depot/projects/arm/src/sys/modules/iwi/Makefile#3 integrate .. //depot/projects/arm/src/sys/modules/netgraph/Makefile#3 integrate .. //depot/projects/arm/src/sys/modules/pf/Makefile#4 integrate .. //depot/projects/arm/src/sys/modules/pflog/Makefile#2 integrate .. //depot/projects/arm/src/sys/modules/ral/Makefile#2 integrate .. //depot/projects/arm/src/sys/modules/smbfs/Makefile#4 integrate .. //depot/projects/arm/src/sys/net/bridgestp.c#4 integrate .. //depot/projects/arm/src/sys/net/if_bridge.c#10 integrate .. //depot/projects/arm/src/sys/net/if_bridgevar.h#5 integrate .. //depot/projects/arm/src/sys/net/if_ethersubr.c#11 integrate .. //depot/projects/arm/src/sys/net/if_media.h#4 integrate .. //depot/projects/arm/src/sys/net/if_tap.c#3 integrate .. //depot/projects/arm/src/sys/net/if_vlan.c#9 integrate .. //depot/projects/arm/src/sys/net/route.h#3 integrate .. //depot/projects/arm/src/sys/net/rtsock.c#4 integrate .. //depot/projects/arm/src/sys/net80211/ieee80211_input.c#7 integrate .. //depot/projects/arm/src/sys/net80211/ieee80211_node.c#8 integrate .. //depot/projects/arm/src/sys/net80211/ieee80211_node.h#4 integrate .. //depot/projects/arm/src/sys/net80211/ieee80211_output.c#7 integrate .. //depot/projects/arm/src/sys/net80211/ieee80211_proto.c#7 integrate .. //depot/projects/arm/src/sys/net80211/ieee80211_var.h#9 integrate .. //depot/projects/arm/src/sys/netatalk/ddp_pcb.c#2 integrate .. //depot/projects/arm/src/sys/netatalk/ddp_usrreq.c#2 integrate .. //depot/projects/arm/src/sys/netgraph/ng_tcpmss.c#2 integrate .. //depot/projects/arm/src/sys/netinet/if_ether.c#9 integrate .. //depot/projects/arm/src/sys/netinet/ip_fw2.c#9 integrate .. //depot/projects/arm/src/sys/netinet/tcp_syncache.c#9 integrate .. //depot/projects/arm/src/sys/netinet6/mld6.c#3 integrate .. //depot/projects/arm/src/sys/netipsec/ipsec.h#2 integrate .. //depot/projects/arm/src/sys/netipsec/ipsec_mbuf.c#3 integrate .. //depot/projects/arm/src/sys/netipsec/xform_ah.c#2 integrate .. //depot/projects/arm/src/sys/netipsec/xform_esp.c#2 integrate .. //depot/projects/arm/src/sys/netipsec/xform_ipcomp.c#2 integrate .. //depot/projects/arm/src/sys/netnatm/natm.c#3 integrate .. //depot/projects/arm/src/sys/netsmb/smb_crypt.c#2 integrate .. //depot/projects/arm/src/sys/netsmb/smb_smb.c#2 integrate .. //depot/projects/arm/src/sys/nfsclient/nfs_socket.c#7 integrate .. //depot/projects/arm/src/sys/nfsclient/nfs_vnops.c#7 integrate .. //depot/projects/arm/src/sys/nfsserver/nfs_serv.c#6 integrate .. //depot/projects/arm/src/sys/nfsserver/nfs_srvsock.c#5 integrate .. //depot/projects/arm/src/sys/opencrypto/crypto.c#2 integrate .. //depot/projects/arm/src/sys/pc98/conf/NOTES#9 integrate .. //depot/projects/arm/src/sys/pc98/pc98/machdep.c#5 integrate .. //depot/projects/arm/src/sys/security/audit/audit.c#6 integrate .. //depot/projects/arm/src/sys/security/audit/audit_bsm_token.c#2 integrate .. //depot/projects/arm/src/sys/security/audit/audit_pipe.c#2 integrate .. //depot/projects/arm/src/sys/security/audit/audit_private.h#3 integrate .. //depot/projects/arm/src/sys/security/mac/mac_process.c#3 integrate .. //depot/projects/arm/src/sys/security/mac_bsdextended/mac_bsdextended.c#4 integrate .. //depot/projects/arm/src/sys/sys/ata.h#4 integrate .. //depot/projects/arm/src/sys/sys/cdefs.h#6 integrate .. //depot/projects/arm/src/sys/sys/disk.h#2 integrate .. //depot/projects/arm/src/sys/sys/event.h#5 integrate .. //depot/projects/arm/src/sys/sys/hash.h#1 branch .. //depot/projects/arm/src/sys/sys/mbuf.h#10 integrate .. //depot/projects/arm/src/sys/sys/md5.h#3 integrate .. //depot/projects/arm/src/sys/sys/mount.h#9 integrate .. //depot/projects/arm/src/sys/sys/proc.h#12 integrate .. //depot/projects/arm/src/sys/sys/protosw.h#3 integrate .. //depot/projects/arm/src/sys/sys/queue.h#6 integrate .. //depot/projects/arm/src/sys/sys/signalvar.h#4 integrate .. //depot/projects/arm/src/sys/sys/socketvar.h#6 integrate .. //depot/projects/arm/src/sys/sys/vnode.h#10 integrate .. //depot/projects/arm/src/sys/ufs/ffs/ffs_extern.h#4 integrate .. //depot/projects/arm/src/sys/ufs/ffs/ffs_rawread.c#3 integrate .. //depot/projects/arm/src/sys/ufs/ffs/ffs_snapshot.c#9 integrate .. //depot/projects/arm/src/sys/ufs/ffs/ffs_softdep.c#8 integrate .. //depot/projects/arm/src/sys/ufs/ffs/ffs_vfsops.c#9 integrate .. //depot/projects/arm/src/sys/ufs/ufs/ufs_inode.c#6 integrate .. //depot/projects/arm/src/sys/ufs/ufs/ufs_lookup.c#3 integrate .. //depot/projects/arm/src/sys/ufs/ufs/ufs_quota.c#8 integrate .. //depot/projects/arm/src/sys/ufs/ufs/ufsmount.h#3 integrate .. //depot/projects/arm/src/sys/vm/swap_pager.c#4 integrate .. //depot/projects/arm/src/sys/vm/vm_contig.c#6 integrate .. //depot/projects/arm/src/sys/vm/vm_fault.c#8 integrate .. //depot/projects/arm/src/sys/vm/vm_map.c#6 integrate .. //depot/projects/arm/src/sys/vm/vm_object.c#8 integrate .. //depot/projects/arm/src/sys/vm/vm_page.c#9 integrate .. //depot/projects/arm/src/sys/vm/vm_pageq.c#6 integrate .. //depot/projects/arm/src/sys/vm/vnode_pager.c#7 integrate Differences ... ==== //depot/projects/arm/src/sys/Makefile#5 (text+ko) ==== @@ -1,7 +1,9 @@ -# $FreeBSD: src/sys/Makefile,v 1.34 2006/01/10 20:58:27 rees Exp $ +# $FreeBSD: src/sys/Makefile,v 1.35 2006/03/17 18:54:34 ru Exp $ + +.include # The boot loader -.if !defined(NO_BOOT) +.if ${MK_BOOT} != "no" .if ${MACHINE_ARCH} != "arm" SUBDIR= boot .endif ==== //depot/projects/arm/src/sys/alpha/alpha/clock.c#6 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/clock.c,v 1.42 2005/12/22 22:16:04 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/clock.c,v 1.44 2006/03/07 22:12:09 jhb Exp $"); #include "opt_clock.h" @@ -49,6 +49,7 @@ #include #include #include +#include #include #include #include @@ -89,8 +90,6 @@ device_t clockdev; int clockinitted; -int tickfix; -int tickfixinterval; int adjkerntz; /* local offset from GMT in seconds */ int disable_rtc_set; /* disable resettodr() if != 0 */ int wall_cmos_clock; /* wall CMOS clock assumed if != 0 */ @@ -103,15 +102,8 @@ #define TIMER_FREQ 1193182 #endif u_int32_t timer_freq = TIMER_FREQ; -int timer0_max_count; - -static u_int32_t i8254_lastcount; -static u_int32_t i8254_offset; -static int i8254_ticked; -static int clkintr_pending = 0; extern int cycles_per_sec; -extern int ncpus; static timecounter_get_t i8254_get_timecount; static timecounter_get_t alpha_get_timecount; @@ -128,7 +120,7 @@ static struct timecounter i8254_timecounter = { i8254_get_timecount, /* get_timecount */ 0, /* no poll_pps */ - ~0u, /* counter_mask */ + 0xffff, /* counter_mask */ 0, /* frequency */ "i8254" /* name */ }; @@ -142,25 +134,10 @@ /* static u_char timer0_state; */ static u_char timer2_state; -/* - * Algorithm for missed clock ticks from Linux/alpha. - */ - -/* - * Shift amount by which scaled_ticks_per_cycle is scaled. Shifting - * by 48 gives us 16 bits for HZ while keeping the accuracy good even - * for large CPU clock rates. - */ -#define FIX_SHIFT 48 - -static u_int64_t scaled_ticks_per_cycle; -static u_int32_t max_cycles_per_tick; -static u_int32_t last_time; - -static void handleclock(int usermode, uintfptr_t pc); static void calibrate_clocks(u_int32_t firmware_freq, u_int32_t *pcc, u_int32_t *timer); static void set_timer_freq(u_int freq, int intr_freq); +static uint64_t read_cycle_count(void); void clockattach(device_t dev) @@ -176,6 +153,7 @@ calibrate_clocks(cycles_per_sec, &pcc, &freq); cycles_per_sec = pcc; + set_cputicker(read_cycle_count, cycles_per_sec, 0); /* * XXX: TurboLaser doesn't have an i8254 counter. @@ -206,7 +184,6 @@ freq, timer_freq); } set_timer_freq(timer_freq, hz); - i8254_timecounter.tc_frequency = timer_freq; out: #ifdef EVCNT_COUNTERS @@ -235,21 +212,12 @@ void cpu_initclocks() { - u_int32_t freq; if (clockdev == NULL) panic("cpu_initclocks: no clock attached"); tick = 1000000 / hz; /* number of microseconds between interrupts */ - tickfix = 1000000 - (hz * tick); - if (tickfix) { - int ftp; - ftp = min(ffs(tickfix), ffs(hz)); - tickfix >>= (ftp - 1); - tickfixinterval = hz >> (ftp - 1); - } - /* * Establish the clock interrupt; it's a special case. * @@ -262,24 +230,18 @@ * hardclock, which would then fall over because p->p_stats * isn't set at that time. */ - freq = cycles_per_sec; - last_time = alpha_rpcc(); - scaled_ticks_per_cycle = ((u_int64_t)hz << FIX_SHIFT) / freq; - max_cycles_per_tick = 2*freq / hz; /* * XXX: TurboLaser doesn't have an i8254 counter. * XXX: A replacement is needed, and another method * XXX: of determining this would be nice. */ - if (hwrpb->rpb_type != ST_DEC_21000) { + if (hwrpb->rpb_type != ST_DEC_21000) tc_init(&i8254_timecounter); - platform.clockintr = handleclock; - } else - platform.clockintr = hardclock; + platform.clockintr = hardclock; - if (ncpus == 1) { - alpha_timecounter.tc_frequency = freq; + if (mp_ncpus == 1) { + alpha_timecounter.tc_frequency = cycles_per_sec; tc_init(&alpha_timecounter); } @@ -375,7 +337,7 @@ if (count == 0) goto fail; if (count > prev_count) - tot_count += prev_count - (count - timer0_max_count); + tot_count += prev_count - (count - 0xffff); else tot_count += prev_count - count; prev_count = count; @@ -410,40 +372,16 @@ static void set_timer_freq(u_int freq, int intr_freq) { - int new_timer0_max_count; mtx_lock_spin(&clock_lock); timer_freq = freq; - new_timer0_max_count = TIMER_DIV(intr_freq); - if (new_timer0_max_count != timer0_max_count) { - timer0_max_count = new_timer0_max_count; - outb(TIMER_MODE, TIMER_SEL0 | TIMER_RATEGEN | TIMER_16BIT); - outb(TIMER_CNTR0, timer0_max_count & 0xff); - outb(TIMER_CNTR0, timer0_max_count >> 8); - } + i8254_timecounter.tc_frequency = timer_freq; + outb(TIMER_MODE, TIMER_SEL0 | TIMER_RATEGEN | TIMER_16BIT); + outb(TIMER_CNTR0, 0); + outb(TIMER_CNTR0, 0); mtx_unlock_spin(&clock_lock); } -static void -handleclock(int usermode, uintfptr_t pc) -{ - - KASSERT(hwrpb->rpb_type != ST_DEC_21000, - ("custom clock handler called on TurboLaser")); - if (timecounter->tc_get_timecount == i8254_get_timecount) { - mtx_lock_spin(&clock_lock); - if (i8254_ticked) - i8254_ticked = 0; - else { - i8254_offset += timer0_max_count; - i8254_lastcount = 0; - } - clkintr_pending = 0; - mtx_unlock_spin(&clock_lock); - } - hardclock(usermode, pc); -} - void cpu_startprofclock(void) { @@ -609,29 +547,8 @@ static unsigned i8254_get_timecount(struct timecounter *tc) { - u_int count; - u_int high, low; - mtx_lock_spin(&clock_lock); - - /* Select timer0 and latch counter value. */ - outb(TIMER_MODE, TIMER_SEL0 | TIMER_LATCH); - - low = inb(TIMER_CNTR0); - high = inb(TIMER_CNTR0); - count = timer0_max_count - ((high << 8) | low); - if (count < i8254_lastcount || - (!i8254_ticked && (clkintr_pending || - ((count < 20) && (inb(IO_ICU1) & 1))) - )) { - i8254_ticked = 1; - i8254_offset += timer0_max_count; - } - i8254_lastcount = count; - count += i8254_offset; - - mtx_unlock_spin(&clock_lock); - return (count); + return (0xffff - get_8254_ctr()); } static unsigned @@ -640,6 +557,30 @@ return alpha_rpcc(); } +/* + * The RPCC register actually consists of two halves. The lower half + * is a raw 32-bit counter that wraps. The upper half is defined in + * the Digital UNIX PAL as being a raw per-process cycle count mod 2^32 + * that is updated on each call to swpctx. In order to produce a 64-bit + * counter, we just use the lower half and simulate the upper 32-bits. + * The architecture guarantees that there will always be at least one + * clock interrupt in between overlaps in the lower half, so as long as + * we call this function every clock interrupt we should not miss any + * overlaps. + */ +uint64_t +read_cycle_count(void) +{ + unsigned pcc_cnt; + + /* Assert a critical section? */ + pcc_cnt = alpha_rpcc() & 0xffffffff; + if (pcc_cnt < PCPU_GET(last_pcc_cnt)) + PCPU_SET(pcc_base, PCPU_GET(pcc_base) + 1); + PCPU_SET(last_pcc_cnt, pcc_cnt); + return (pcc_cnt | ((uint64_t)PCPU_GET(pcc_base) << 32)); +} + int acquire_timer2(int mode) { ==== //depot/projects/arm/src/sys/alpha/include/pcpu.h#2 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/alpha/include/pcpu.h,v 1.15 2004/11/05 19:16:44 jhb Exp $ + * $FreeBSD: src/sys/alpha/include/pcpu.h,v 1.16 2006/03/07 22:12:09 jhb Exp $ */ #ifndef _MACHINE_PCPU_H_ @@ -38,7 +38,9 @@ u_int64_t pc_idlepcbphys; /* pa of pc_idlepcb */ \ u_int64_t pc_pending_ipis; /* pending IPI's */ \ u_int32_t pc_next_asn; /* next ASN to alloc */ \ - u_int32_t pc_current_asngen /* ASN rollover check */ + u_int32_t pc_current_asngen; /* ASN rollover check */ \ + u_int32_t pc_last_pcc_cnt; /* Previous PCC_CNT value */ \ + u_int32_t pc_pcc_base /* Hi word of cycle count. */ struct pcpu; ==== //depot/projects/arm/src/sys/amd64/amd64/apic_vector.S#6 (text+ko) ==== @@ -28,7 +28,7 @@ * SUCH DAMAGE. * * from: vector.s, 386BSD 0.1 unknown origin - * $FreeBSD: src/sys/amd64/amd64/apic_vector.S,v 1.107 2005/12/14 21:47:01 jhb Exp $ + * $FreeBSD: src/sys/amd64/amd64/apic_vector.S,v 1.108 2006/03/13 23:55:31 peter Exp $ */ /* @@ -188,11 +188,7 @@ jmp doreti /* - * Executed by a CPU when it receives an Xcpustop IPI from another CPU, - * - * - Signals its receipt. - * - Waits for permission to restart. - * - Signals its restart. + * Executed by a CPU when it receives an IPI_STOP from another CPU. */ .text SUPERALIGN_TEXT ==== //depot/projects/arm/src/sys/amd64/amd64/db_trace.c#6 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_trace.c,v 1.73 2005/12/27 23:23:47 pjd Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_trace.c,v 1.74 2006/03/13 23:56:44 peter Exp $"); #include #include @@ -192,6 +192,7 @@ #define TRAP 1 #define INTERRUPT 2 #define SYSCALL 3 +#define TRAP_INTERRUPT 5 static void db_nextframe(struct amd64_frame **, db_addr_t *, struct thread *); static int db_numargs(struct amd64_frame *); @@ -326,6 +327,12 @@ frame_type = INTERRUPT; else if (strcmp(name, "Xfast_syscall") == 0) frame_type = SYSCALL; + /* XXX: These are interrupts with trap frames. */ + else if (strcmp(name, "Xtimerint") == 0 || + strcmp(name, "Xcpustop") == 0 || + strcmp(name, "Xrendezvous") == 0 || + strcmp(name, "Xipi_intr_bitmap_handler") == 0) + frame_type = TRAP_INTERRUPT; } /* @@ -357,6 +364,7 @@ db_printf("--- syscall"); decode_syscall(tf->tf_rax, td); break; + case TRAP_INTERRUPT: case INTERRUPT: db_printf("--- interrupt"); break; ==== //depot/projects/arm/src/sys/amd64/amd64/io_apic.c#5 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.21 2006/02/28 22:24:54 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.22 2006/03/13 23:55:31 peter Exp $"); #include "opt_atpic.h" #include "opt_isa.h" @@ -73,6 +73,10 @@ * IRQs behave as PCI IRQs by default. We also assume that the pin for * IRQ 0 is actually an ExtINT pin. The apic enumerators override the * configuration of individual pins as indicated by their tables. + * + * Documentation for the I/O APIC: "82093AA I/O Advanced Programmable + * Interrupt Controller (IOAPIC)", May 1996, Intel Corp. + * ftp://download.intel.com/design/chipsets/datashts/29056601.pdf */ struct ioapic_intsrc { ==== //depot/projects/arm/src/sys/amd64/amd64/machdep.c#8 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.646 2006/02/03 02:49:14 davidxu Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.648 2006/03/14 16:13:54 jhb Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -247,8 +247,8 @@ struct sigacts *psp; char *sp; struct trapframe *regs; + int sig; int oonstack; - int sig; td = curthread; p = td->td_proc; @@ -1749,8 +1749,7 @@ * could halt the system by setting a breakpoint in the kernel * (if ddb was enabled). Thus, we need to check to make sure * that no breakpoints are being enabled for addresses outside - * process's address space, unless, perhaps, we were called by - * uid 0. + * process's address space. * * XXX - what about when the watched area of the user's * address space is written into from within the kernel @@ -1758,27 +1757,25 @@ * from within kernel mode? */ - if (suser(td) != 0) { - if (dbregs->dr[7] & 0x3) { - /* dr0 is enabled */ - if (dbregs->dr[0] >= VM_MAXUSER_ADDRESS) - return (EINVAL); - } - if (dbregs->dr[7] & 0x3<<2) { - /* dr1 is enabled */ - if (dbregs->dr[1] >= VM_MAXUSER_ADDRESS) - return (EINVAL); - } - if (dbregs->dr[7] & 0x3<<4) { - /* dr2 is enabled */ - if (dbregs->dr[2] >= VM_MAXUSER_ADDRESS) - return (EINVAL); - } - if (dbregs->dr[7] & 0x3<<6) { - /* dr3 is enabled */ - if (dbregs->dr[3] >= VM_MAXUSER_ADDRESS) - return (EINVAL); - } + if (dbregs->dr[7] & 0x3) { + /* dr0 is enabled */ + if (dbregs->dr[0] >= VM_MAXUSER_ADDRESS) + return (EINVAL); + } + if (dbregs->dr[7] & 0x3<<2) { + /* dr1 is enabled */ + if (dbregs->dr[1] >= VM_MAXUSER_ADDRESS) + return (EINVAL); + } + if (dbregs->dr[7] & 0x3<<4) { + /* dr2 is enabled */ + if (dbregs->dr[2] >= VM_MAXUSER_ADDRESS) + return (EINVAL); + } + if (dbregs->dr[7] & 0x3<<6) { + /* dr3 is enabled */ + if (dbregs->dr[3] >= VM_MAXUSER_ADDRESS) + return (EINVAL); } pcb->pcb_dr0 = dbregs->dr[0]; ==== //depot/projects/arm/src/sys/amd64/amd64/mp_machdep.c#8 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.269 2006/02/28 22:24:54 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.270 2006/03/09 16:38:52 jhb Exp $"); #include "opt_cpu.h" #include "opt_kstack_pages.h" @@ -612,12 +612,12 @@ continue; if (cpu_info[apic_id].cpu_bsp) continue; -#if 0 + /* Don't let hyperthreads service interrupts. */ if (hyperthreading_cpus > 1 && apic_id % hyperthreading_cpus != 0) continue; -#endif + intr_add_cpu(apic_id); } } ==== //depot/projects/arm/src/sys/amd64/amd64/pmap.c#5 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.536 2006/02/03 00:16:36 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.537 2006/03/13 08:13:37 ps Exp $"); /* * Manages physical address maps. @@ -1360,7 +1360,7 @@ return sysctl_handle_long(oidp, &ksize, 0, req); } SYSCTL_PROC(_vm, OID_AUTO, kvm_size, CTLTYPE_LONG|CTLFLAG_RD, - 0, 0, kvm_size, "IU", "Size of KVM"); + 0, 0, kvm_size, "LU", "Size of KVM"); static int kvm_free(SYSCTL_HANDLER_ARGS) @@ -1370,7 +1370,7 @@ return sysctl_handle_long(oidp, &kfree, 0, req); } SYSCTL_PROC(_vm, OID_AUTO, kvm_free, CTLTYPE_LONG|CTLFLAG_RD, - 0, 0, kvm_free, "IU", "Amount of KVM free"); + 0, 0, kvm_free, "LU", "Amount of KVM free"); /* * grow the number of kernel page table entries, if needed ==== //depot/projects/arm/src/sys/amd64/amd64/trap.c#8 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.302 2006/02/08 08:09:15 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.303 2006/03/13 23:55:31 peter Exp $"); /* * AMD64 Trap and System call handling @@ -872,7 +872,6 @@ */ if (orig_tf_rflags & PSL_T) { frame.tf_rflags &= ~PSL_T; - ksiginfo_init_trap(&ksi); ksi.ksi_signo = SIGTRAP; ksi.ksi_code = TRAP_TRACE; ==== //depot/projects/arm/src/sys/amd64/conf/NOTES#6 (text+ko) ==== @@ -4,7 +4,7 @@ # This file contains machine dependent kernel configuration notes. For # machine independent notes, look in /sys/conf/NOTES. # -# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.51 2005/12/03 01:23:49 anholt Exp $ +# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.52 2006/03/06 15:29:28 yar Exp $ # # @@ -170,11 +170,10 @@ # the tdfx DRI module from XFree86 and is completely unrelated. # # To enable Linuxulator support, one must also include COMPAT_LINUX in the -# config as well, or you will not have the dependencies. The other option -# is to load both as modules. +# config as well. The other option is to load both as modules. device tdfx # Enable 3Dfx Voodoo support -#XXX#options TDFX_LINUX # Enable Linuxulator support +#XXX#device tdfx_linux # Enable Linuxulator support # # ACPI support using the Intel ACPI Component Architecture reference ==== //depot/projects/arm/src/sys/amd64/include/asmacros.h#3 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/include/asmacros.h,v 1.29 2005/12/08 18:33:30 jhb Exp $ + * $FreeBSD: src/sys/amd64/include/asmacros.h,v 1.30 2006/03/14 00:01:56 peter Exp $ */ #ifndef _MACHINE_ASMACROS_H_ @@ -130,7 +130,7 @@ #ifdef LOCORE /* - * Convenience macros for declaring interrupt entry points. + * Convenience macro for declaring interrupt entry points. */ #define IDTVEC(name) ALIGN_TEXT; .globl __CONCAT(X,name); \ .type __CONCAT(X,name),@function; __CONCAT(X,name): ==== //depot/projects/arm/src/sys/amd64/include/bus.h#3 (text+ko) ==== @@ -28,7 +28,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/include/bus.h,v 1.16 2005/05/29 04:42:15 nyan Exp $ + * $FreeBSD: src/sys/amd64/include/bus.h,v 1.17 2006/03/14 00:01:56 peter Exp $ */ /* $NetBSD: bus.h,v 1.12 1997/10/01 08:25:15 fvdl Exp $ */ @@ -1004,6 +1004,17 @@ #endif } +#ifdef BUS_SPACE_NO_LEGACY +#undef inb +#undef outb +#define inb(a) compiler_error +#define inw(a) compiler_error +#define inl(a) compiler_error +#define outb(a, b) compiler_error +#define outw(a, b) compiler_error +#define outl(a, b) compiler_error +#endif + #include /* ==== //depot/projects/arm/src/sys/amd64/include/pmap.h#4 (text+ko) ==== @@ -39,7 +39,7 @@ * * from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90 * from: @(#)pmap.h 7.4 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.128 2005/12/06 21:09:01 jhb Exp $ + * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.129 2006/03/14 00:01:56 peter Exp $ */ #ifndef _MACHINE_PMAP_H_ @@ -176,7 +176,7 @@ * the corresponding pde that in turn maps it. */ pt_entry_t *vtopte(vm_offset_t); -#define vtophys(va) pmap_kextract((vm_offset_t)(va)) +#define vtophys(va) pmap_kextract(((vm_offset_t) (va))) static __inline pt_entry_t pte_load(pt_entry_t *ptep) ==== //depot/projects/arm/src/sys/amd64/include/trap.h#2 (text+ko) ==== @@ -30,7 +30,7 @@ * SUCH DAMAGE. * * from: @(#)trap.h 5.4 (Berkeley) 5/9/91 - * $FreeBSD: src/sys/amd64/include/trap.h,v 1.14 2004/04/05 21:25:51 imp Exp $ + * $FreeBSD: src/sys/amd64/include/trap.h,v 1.15 2006/03/14 00:01:22 peter Exp $ */ #ifndef _MACHINE_TRAP_H_ @@ -72,16 +72,6 @@ #define ILL_ALIGN_FAULT T_ALIGNFLT #define ILL_FPOP_FAULT T_FPOPFLT /* coprocessor operand fault */ -/* portable macros for SIGFPE/ARITHTRAP */ -#define FPE_INTOVF 1 /* integer overflow */ -#define FPE_INTDIV 2 /* integer divide by zero */ -#define FPE_FLTDIV 3 /* floating point divide by zero */ -#define FPE_FLTOVF 4 /* floating point overflow */ -#define FPE_FLTUND 5 /* floating point underflow */ -#define FPE_FLTRES 6 /* floating point inexact result */ -#define FPE_FLTINV 7 /* invalid floating point operation */ -#define FPE_FLTSUB 8 /* subscript out of range */ - /* old FreeBSD macros, deprecated */ #define FPE_INTOVF_TRAP 0x1 /* integer overflow */ #define FPE_INTDIV_TRAP 0x2 /* integer divide by zero */ ==== //depot/projects/arm/src/sys/amd64/linux32/linux32_machdep.c#4 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.11 2006/02/06 22:06:53 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.12 2006/03/08 20:21:53 ups Exp $"); #include #include @@ -130,7 +130,7 @@ copystr(fname, args->fname, PATH_MAX, &length) : copyinstr(fname, args->fname, PATH_MAX, &length); if (error != 0) - return (error); + goto err_exit; /* * extract arguments first @@ -139,16 +139,16 @@ for (;;) { error = copyin(p32++, &arg, sizeof(arg)); if (error) - return (error); + goto err_exit; if (arg == 0) break; argp = PTRIN(arg); error = copyinstr(argp, args->endp, args->stringspace, &length); if (error) { if (error == ENAMETOOLONG) - return (E2BIG); - else - return (error); + error = E2BIG; + + goto err_exit; } args->stringspace -= length; args->endp += length; @@ -165,7 +165,7 @@ for (;;) { error = copyin(p32++, &arg, sizeof(arg)); if (error) - return (error); + goto err_exit; if (arg == 0) break; envp = PTRIN(arg); @@ -173,9 +173,8 @@ &length); if (error) { if (error == ENAMETOOLONG) - return (E2BIG); - else - return (error); + error = E2BIG; + goto err_exit; } args->stringspace -= length; args->endp += length; @@ -184,6 +183,12 @@ } return (0); + +err_exit: + kmem_free_wakeup(exec_map, (vm_offset_t)args->buf, + PATH_MAX + ARG_MAX + MAXSHELLCMDLEN); + args->buf = NULL; + return (error); } int ==== //depot/projects/arm/src/sys/amd64/pci/pci_bus.c#5 (text+ko) ==== >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Mar 18 01:22:45 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5B2DC16A420; Sat, 18 Mar 2006 01:22:45 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1592C16A401 for ; Sat, 18 Mar 2006 01:22:45 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 54C3C43D6A for ; Sat, 18 Mar 2006 01:22:40 +0000 (GMT) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2I1MeY1033270 for ; Sat, 18 Mar 2006 01:22:40 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2I1Mdum033267 for perforce@freebsd.org; Sat, 18 Mar 2006 01:22:40 GMT (envelope-from imp@freebsd.org) Date: Sat, 18 Mar 2006 01:22:40 GMT Message-Id: <200603180122.k2I1Mdum033267@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 93482 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Mar 2006 01:22:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=93482 Change 93482 by imp@imp_hammer on 2006/03/18 01:21:42 Integrate the $FreeBSD$ changes from initial commit. Affected files ... .. //depot/projects/arm/src/sys/arm/at91/at91_spi.c#3 edit .. //depot/projects/arm/src/sys/arm/at91/at91_spiio.h#3 edit .. //depot/projects/arm/src/sys/arm/at91/at91_spireg.h#3 edit .. //depot/projects/arm/src/sys/arm/at91/at91_streg.h#3 edit .. //depot/projects/arm/src/sys/arm/at91/at91_twi.c#6 edit .. //depot/projects/arm/src/sys/arm/at91/at91_twiio.h#4 edit .. //depot/projects/arm/src/sys/arm/at91/at91_twireg.h#6 edit .. //depot/projects/arm/src/sys/arm/at91/at91_usartreg.h#3 edit Differences ... ==== //depot/projects/arm/src/sys/arm/at91/at91_spi.c#3 (text+ko) ==== @@ -23,7 +23,7 @@ */ #include -__FBSDID("$FreeBSD$"); +__FBSDID("$FreeBSD: src/sys/arm/at91/at91_spi.c,v 1.1 2006/02/04 23:32:13 imp Exp $"); #include #include ==== //depot/projects/arm/src/sys/arm/at91/at91_spiio.h#3 (text+ko) ==== @@ -21,7 +21,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD$ + * $FreeBSD: src/sys/arm/at91/at91_spiio.h,v 1.1 2006/02/04 23:32:13 imp Exp $ */ #ifndef _ARM_AT91_AT91_SPIIO_H ==== //depot/projects/arm/src/sys/arm/at91/at91_spireg.h#3 (text+ko) ==== @@ -22,7 +22,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* $FreeBSD$ */ +/* $FreeBSD: src/sys/arm/at91/at91_spireg.h,v 1.1 2006/02/04 23:32:13 imp Exp $ */ #ifndef ARM_AT91_AT91_SPIREG_H #define ARM_AT91_AT91_SPIREG_H ==== //depot/projects/arm/src/sys/arm/at91/at91_streg.h#3 (text+ko) ==== @@ -22,7 +22,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* $FreeBSD$ */ +/* $FreeBSD: src/sys/arm/at91/at91_streg.h,v 1.1 2006/02/04 23:32:13 imp Exp $ */ #ifndef ARM_AT91_AT91STREG_H #define ARM_AT91_AT91STREG_H ==== //depot/projects/arm/src/sys/arm/at91/at91_twi.c#6 (text+ko) ==== @@ -23,7 +23,7 @@ */ #include -__FBSDID("$FreeBSD$"); +__FBSDID("$FreeBSD: src/sys/arm/at91/at91_twi.c,v 1.1 2006/02/04 23:32:13 imp Exp $"); #include #include ==== //depot/projects/arm/src/sys/arm/at91/at91_twiio.h#4 (text+ko) ==== @@ -21,7 +21,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD$ + * $FreeBSD: src/sys/arm/at91/at91_twiio.h,v 1.1 2006/02/04 23:32:13 imp Exp $ */ #ifndef _ARM_AT91_AT91_TWIIO_H ==== //depot/projects/arm/src/sys/arm/at91/at91_twireg.h#6 (text+ko) ==== @@ -22,7 +22,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* $FreeBSD$ */ +/* $FreeBSD: src/sys/arm/at91/at91_twireg.h,v 1.1 2006/02/04 23:32:13 imp Exp $ */ #ifndef ARM_AT91_AT91_TWIREG_H #define ARM_AT91_AT91_TWIREG_H ==== //depot/projects/arm/src/sys/arm/at91/at91_usartreg.h#3 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Sat Mar 18 01:25:44 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BF3F616A420; Sat, 18 Mar 2006 01:25:44 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9F57E16A400 for ; Sat, 18 Mar 2006 01:25:44 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 680B243D48 for ; Sat, 18 Mar 2006 01:25:44 +0000 (GMT) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2I1PirM033405 for ; Sat, 18 Mar 2006 01:25:44 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2I1PiKS033402 for perforce@freebsd.org; Sat, 18 Mar 2006 01:25:44 GMT (envelope-from imp@freebsd.org) Date: Sat, 18 Mar 2006 01:25:44 GMT Message-Id: <200603180125.k2I1PiKS033402@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 93483 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Mar 2006 01:25:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=93483 Change 93483 by imp@imp_hammer on 2006/03/18 01:25:35 More loopbacks. Affected files ... .. //depot/projects/arm/src/sys/arm/at91/if_atereg.h#9 edit .. //depot/projects/arm/src/sys/arm/at91/uart_bus_at91usart.c#6 edit .. //depot/projects/arm/src/sys/arm/at91/uart_cpu_at91rm9200usart.c#8 edit Differences ... ==== //depot/projects/arm/src/sys/arm/at91/if_atereg.h#9 (text+ko) ==== @@ -22,7 +22,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* $FreeBSD$ */ +/* $FreeBSD: src/sys/arm/at91/if_atereg.h,v 1.1 2006/02/04 23:32:13 imp Exp $ */ #ifndef ARM_AT91_IF_ATEREG_H #define ARM_AT91_IF_ATEREG_H ==== //depot/projects/arm/src/sys/arm/at91/uart_bus_at91usart.c#6 (text+ko) ==== @@ -25,7 +25,7 @@ #include "opt_uart.h" #include -__FBSDID("$FreeBSD$"); +__FBSDID("$FreeBSD: src/sys/arm/at91/uart_bus_at91usart.c,v 1.1 2006/02/04 23:32:13 imp Exp $"); #include #include ==== //depot/projects/arm/src/sys/arm/at91/uart_cpu_at91rm9200usart.c#8 (text+ko) ==== @@ -27,7 +27,7 @@ #include "opt_uart.h" #include -__FBSDID("$FreeBSD: src/sys/arm/sa11x0/uart_cpu_sa1110.c,v 1.3 2005/01/05 21:58:48 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/at91/uart_cpu_at91rm9200usart.c,v 1.1 2006/02/04 23:32:13 imp Exp $"); #include #include From owner-p4-projects@FreeBSD.ORG Sat Mar 18 01:32:55 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C1E6616A428; Sat, 18 Mar 2006 01:32:54 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 822A116A425 for ; Sat, 18 Mar 2006 01:32:54 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 73FE843D5D for ; Sat, 18 Mar 2006 01:32:53 +0000 (GMT) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2I1WrqU033718 for ; Sat, 18 Mar 2006 01:32:53 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2I1WrVx033715 for perforce@freebsd.org; Sat, 18 Mar 2006 01:32:53 GMT (envelope-from imp@freebsd.org) Date: Sat, 18 Mar 2006 01:32:53 GMT Message-Id: <200603180132.k2I1WrVx033715@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 93484 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Mar 2006 01:32:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=93484 Change 93484 by imp@imp_hammer on 2006/03/18 01:32:21 Diff reduction with CVS. Affected files ... .. //depot/projects/arm/src/sys/arm/at91/at91_usartreg.h#4 edit Differences ... ==== //depot/projects/arm/src/sys/arm/at91/at91_usartreg.h#4 (text+ko) ==== @@ -22,7 +22,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* $FreeBSD$ */ +/* $FreeBSD: src/sys/arm/at91/at91_usartreg.h,v 1.1 2006/02/04 23:32:13 imp Exp $ */ #ifndef AT91USARTREG_H_ #define AT91USARTREG_H_ From owner-p4-projects@FreeBSD.ORG Sat Mar 18 01:38:01 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4B2ED16A424; Sat, 18 Mar 2006 01:38:01 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 133CC16A400 for ; Sat, 18 Mar 2006 01:38:01 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id BB19743D46 for ; Sat, 18 Mar 2006 01:38:00 +0000 (GMT) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2I1c0tA033980 for ; Sat, 18 Mar 2006 01:38:00 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2I1c0mO033973 for perforce@freebsd.org; Sat, 18 Mar 2006 01:38:00 GMT (envelope-from imp@freebsd.org) Date: Sat, 18 Mar 2006 01:38:00 GMT Message-Id: <200603180138.k2I1c0mO033973@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 93486 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Mar 2006 01:38:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=93486 Change 93486 by imp@imp_hammer on 2006/03/18 01:37:04 Loopback.. Affected files ... .. //depot/projects/arm/src/sys/arm/at91/at91_st.c#6 edit Differences ... ==== //depot/projects/arm/src/sys/arm/at91/at91_st.c#6 (text+ko) ==== @@ -23,7 +23,7 @@ */ #include -__FBSDID("$FreeBSD$"); +__FBSDID("$FreeBSD: src/sys/arm/at91/at91_st.c,v 1.2 2006/03/18 01:30:31 imp Exp $"); #include #include From owner-p4-projects@FreeBSD.ORG Sat Mar 18 07:55:41 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E23C216A41F; Sat, 18 Mar 2006 07:55:40 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B396C16A400 for ; Sat, 18 Mar 2006 07:55:40 +0000 (UTC) (envelope-from gnn@neville-neil.com) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 044AC43D53 for ; Sat, 18 Mar 2006 07:55:38 +0000 (GMT) (envelope-from gnn@neville-neil.com) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2I7tc28059314 for ; Sat, 18 Mar 2006 07:55:38 GMT (envelope-from gnn@neville-neil.com) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2I7tcSj059311 for perforce@freebsd.org; Sat, 18 Mar 2006 07:55:38 GMT (envelope-from gnn@neville-neil.com) Date: Sat, 18 Mar 2006 07:55:38 GMT Message-Id: <200603180755.k2I7tcSj059311@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gnn@neville-neil.com using -f From: "George V. Neville-Neil" To: Perforce Change Reviews Cc: Subject: PERFORCE change 93494 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Mar 2006 07:55:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=93494 Change 93494 by gnn@gnn_devbox_fast_ipsec on 2006/03/18 07:55:03 Remove logging of the keys. Affected files ... .. //depot/projects/gnn_fast_ipsec/src/sys/netipsec/key.c#4 edit Differences ... ==== //depot/projects/gnn_fast_ipsec/src/sys/netipsec/key.c#4 (text+ko) ==== @@ -7295,8 +7295,6 @@ p->sadb_key_len = PFKEY_UNIT64(len); p->sadb_key_exttype = exttype; p->sadb_key_bits = src->bits; - ipseclog((LOG_DEBUG, "%s: setting key data %s\n", - __func__, src->key_data)); bcopy(src->key_data, _KEYBUF(p), _KEYLEN(src)); return m; From owner-p4-projects@FreeBSD.ORG Sat Mar 18 16:01:40 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 11E7216A422; Sat, 18 Mar 2006 16:01:40 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C02CE16A401 for ; Sat, 18 Mar 2006 16:01:39 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6D53943D48 for ; Sat, 18 Mar 2006 16:01:39 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2IG1di8093940 for ; Sat, 18 Mar 2006 16:01:39 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2IG1dVs093937 for perforce@freebsd.org; Sat, 18 Mar 2006 16:01:39 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 18 Mar 2006 16:01:39 GMT Message-Id: <200603181601.k2IG1dVs093937@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 93506 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Mar 2006 16:01:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=93506 Change 93506 by rwatson@rwatson_peppercorn on 2006/03/18 16:01:07 Add ioctls to audit pipes in order to allow querying of the current record queue state, setting of the queue limit, and querying of pipe statistics. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_ioctl.h#1 add .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_pipe.c#11 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_pipe.c#11 (text+ko) ==== @@ -48,6 +48,7 @@ #include #include +#include #include /* @@ -68,6 +69,7 @@ * Audit pipe buffer parameters. */ #define AUDIT_PIPE_QLIMIT_DEFAULT (32) +#define AUDIT_PIPE_QLIMIT_MIN (0) #define AUDIT_PIPE_QLIMIT_MAX (1024) /* @@ -379,8 +381,8 @@ } /* - * Audit pipe ioctl() routine. Nothing for now, but eventually will allow - * setting and retrieval of current queue depth, queue limit, flush, etc. + * Audit pipe ioctl() routine. Handle file descriptor and audit pipe layer + * commands. * * Would be desirable to support filtering, although perhaps something simple * like an event mask, as opposed to something complicated like BPF. @@ -433,6 +435,47 @@ case FIOGETOWN: *(int *)data = fgetown(&ap->ap_sigio); error = 0; + break; + + case AUDITPIPE_GET_QLEN: + *(u_int *)data = ap->ap_qlen; + error = 0; + break; + + case AUDITPIPE_GET_QLIMIT: + *(u_int *)data = ap->ap_qlimit; + error = 0; + break; + + case AUDITPIPE_SET_QLIMIT: + /* Lockless integer write. */ + if (*(u_int *)data >= AUDIT_PIPE_QLIMIT_MIN || + *(u_int *)data <= AUDIT_PIPE_QLIMIT_MAX) { + ap->ap_qlimit = *(u_int *)data; + error = 0; + } else + error = EINVAL; + break; + + case AUDITPIPE_GET_INSERTS: + *(u_int *)data = ap->ap_inserts; + error = 0; + break; + + case AUDITPIPE_GET_READS: + *(u_int *)data = ap->ap_reads; + error = 0; + break; + + case AUDITPIPE_GET_DROPS: + *(u_int *)data = ap->ap_drops; + error = 0; + break; + + case AUDITPIPE_GET_TRUNCATES: + *(u_int *)data = ap->ap_truncates; + error = 0; + break; default: error = ENOTTY; From owner-p4-projects@FreeBSD.ORG Sat Mar 18 16:11:52 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B38AB16A420; Sat, 18 Mar 2006 16:11:52 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5D8DF16A401 for ; Sat, 18 Mar 2006 16:11:52 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2723643D45 for ; Sat, 18 Mar 2006 16:11:52 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2IGBq7c094549 for ; Sat, 18 Mar 2006 16:11:52 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2IGBpvO094546 for perforce@freebsd.org; Sat, 18 Mar 2006 16:11:51 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 18 Mar 2006 16:11:51 GMT Message-Id: <200603181611.k2IGBpvO094546@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 93507 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Mar 2006 16:11:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=93507 Change 93507 by rwatson@rwatson_peppercorn on 2006/03/18 16:11:21 Correct comment: this print is now from audit_record_write(), not audit_worker(). Affected files ... .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit.c#18 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit.c#18 (text+ko) ==== @@ -361,8 +361,8 @@ (unsigned long) ((audit_q_len + audit_pre_q_len + 1) * MAX_AUDIT_RECORD_SIZE) / mnt_stat->f_bsize >= (unsigned long)(mnt_stat->f_bfree)) { - printf( - "audit_worker: free space below size of audit queue, failing stop\n"); + printf("audit_record_write: free space below size of audit " + "queue, failing stop\n"); audit_in_failure = 1; } From owner-p4-projects@FreeBSD.ORG Sat Mar 18 16:39:27 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2AE4C16A423; Sat, 18 Mar 2006 16:39:27 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E4AC516A41F for ; Sat, 18 Mar 2006 16:39:26 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4F35143D48 for ; Sat, 18 Mar 2006 16:39:26 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2IGdQRF095564 for ; Sat, 18 Mar 2006 16:39:26 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2IGdPnb095561 for perforce@freebsd.org; Sat, 18 Mar 2006 16:39:25 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 18 Mar 2006 16:39:25 GMT Message-Id: <200603181639.k2IGdPnb095561@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 93509 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Mar 2006 16:39:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=93509 Change 93509 by rwatson@rwatson_peppercorn on 2006/03/18 16:38:25 Move log rotation logic out of audit_worker() into audit_worker_rotate(). This makes the event loop a bit easier to read. Comment on some ways in which the event loop could be made better. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit.c#19 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit.c#19 (text+ko) ==== @@ -459,6 +459,71 @@ } /* + * If an appropriate signal has been received rotate the audit log based on + * the global replacement variables. Signal consumers as needed that the + * rotation has taken place. + * + * XXXRW: The global variables and CVs used to signal the audit_worker to + * perform a rotation are essentially a message queue of depth 1. It would + * be much nicer to actually use a message queue. + */ +static void +audit_worker_rotate(struct ucred **audit_credp, struct vnode **audit_vpp, + struct thread *audit_td) +{ + int do_replacement_signal, vfslocked; + struct ucred *old_cred; + struct vnode *old_vp; + + mtx_assert(&audit_mtx, MA_OWNED); + + do_replacement_signal = 0; + while (audit_replacement_flag != 0) { + old_cred = *audit_credp; + old_vp = *audit_vpp; + *audit_credp = audit_replacement_cred; + *audit_vpp = audit_replacement_vp; + audit_replacement_cred = NULL; + audit_replacement_vp = NULL; + audit_replacement_flag = 0; + + audit_enabled = (*audit_vpp != NULL); + + /* + * XXX: What to do about write failures here? + */ + if (old_vp != NULL) { + AUDIT_PRINTF(("Closing old audit file\n")); + mtx_unlock(&audit_mtx); + vfslocked = VFS_LOCK_GIANT(old_vp->v_mount); + vn_close(old_vp, AUDIT_CLOSE_FLAGS, old_cred, + audit_td); + VFS_UNLOCK_GIANT(vfslocked); + crfree(old_cred); + mtx_lock(&audit_mtx); + old_cred = NULL; + old_vp = NULL; + AUDIT_PRINTF(("Audit file closed\n")); + } + if (*audit_vpp != NULL) { + AUDIT_PRINTF(("Opening new audit file\n")); + } + do_replacement_signal = 1; + } + + /* + * Signal that replacement have occurred to wake up and + * start any other replacements started in parallel. We can + * continue about our business in the mean time. We + * broadcast so that both new replacements can be inserted, + * but also so that the source(s) of replacement can return + * successfully. + */ + if (do_replacement_signal) + cv_broadcast(&audit_replacement_cv); +} + +/* * The audit_worker thread is responsible for watching the event queue, * dequeueing records, converting them to BSM format, and committing them to * disk. In order to minimize lock thrashing, records are dequeued in sets @@ -469,14 +534,12 @@ static void audit_worker(void *arg) { - int do_replacement_signal, error; TAILQ_HEAD(, kaudit_record) ar_worklist; struct kaudit_record *ar; - struct vnode *audit_vp, *old_vp; - int vfslocked; - - struct ucred *audit_cred, *old_cred; + struct ucred *audit_cred; struct thread *audit_td; + struct vnode *audit_vp; + int error; AUDIT_PRINTF(("audit_worker starting\n")); @@ -490,59 +553,18 @@ mtx_lock(&audit_mtx); while (1) { + mtx_assert(&audit_mtx, MA_OWNED); + /* - * First priority: replace the audit log target if requested. - * Accessing the vnode here requires dropping the audit_mtx; - * in case another replacement was scheduled while the mutex - * was released, we loop. - * - * XXX It could well be we should drain existing records - * first to ensure that the timestamps and ordering - * are right. + * XXXRW: Logic here should really be: while (!events and + * !records) cv_wait(), then process events, and then + * records. */ - do_replacement_signal = 0; - while (audit_replacement_flag != 0) { - old_cred = audit_cred; - old_vp = audit_vp; - audit_cred = audit_replacement_cred; - audit_vp = audit_replacement_vp; - audit_replacement_cred = NULL; - audit_replacement_vp = NULL; - audit_replacement_flag = 0; - - audit_enabled = (audit_vp != NULL); - /* - * XXX: What to do about write failures here? - */ - if (old_vp != NULL) { - AUDIT_PRINTF(("Closing old audit file\n")); - mtx_unlock(&audit_mtx); - vfslocked = VFS_LOCK_GIANT(old_vp->v_mount); - vn_close(old_vp, AUDIT_CLOSE_FLAGS, old_cred, - audit_td); - VFS_UNLOCK_GIANT(vfslocked); - crfree(old_cred); - mtx_lock(&audit_mtx); - old_cred = NULL; - old_vp = NULL; - AUDIT_PRINTF(("Audit file closed\n")); - } - if (audit_vp != NULL) { - AUDIT_PRINTF(("Opening new audit file\n")); - } - do_replacement_signal = 1; - } /* - * Signal that replacement have occurred to wake up and - * start any other replacements started in parallel. We can - * continue about our business in the mean time. We - * broadcast so that both new replacements can be inserted, - * but also so that the source(s) of replacement can return - * successfully. + * First priority: replace the audit log target if requested. */ - if (do_replacement_signal) - cv_broadcast(&audit_replacement_cv); + audit_worker_rotate(&audit_cred, &audit_vp, audit_td); /* * Next, check to see if we have any records to drain into From owner-p4-projects@FreeBSD.ORG Sat Mar 18 16:57:49 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7E1C116A420; Sat, 18 Mar 2006 16:57:49 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2955A16A400 for ; Sat, 18 Mar 2006 16:57:49 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id DDFF443D45 for ; Sat, 18 Mar 2006 16:57:48 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2IGvmLn004080 for ; Sat, 18 Mar 2006 16:57:48 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2IGvmPB004077 for perforce@freebsd.org; Sat, 18 Mar 2006 16:57:48 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 18 Mar 2006 16:57:48 GMT Message-Id: <200603181657.k2IGvmPB004077@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 93510 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Mar 2006 16:57:49 -0000 http://perforce.freebsd.org/chv.cgi?CH=93510 Change 93510 by rwatson@rwatson_peppercorn on 2006/03/18 16:57:39 Move wait loop up to top of audit_worker work loop, and add replacement as a condition for breaking from the wait loop. Move drain logic into its own function, audit_worker_drain(), and invoke that. Follow advice of comment and don't wake up when going below the watermark if we are draining, since no one is interested. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit.c#20 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit.c#20 (text+ko) ==== @@ -524,6 +524,22 @@ } /* + * Drain the audit commit queue and free the records. Used if there are + * records present, but no audit log target. + */ +static void +audit_worker_drain(void) +{ + struct kaudit_record *ar; + + while ((ar = TAILQ_FIRST(&audit_q))) { + TAILQ_REMOVE(&audit_q, ar, k_q); + uma_zfree(audit_record_zone, ar); + audit_q_len--; + } +} + +/* * The audit_worker thread is responsible for watching the event queue, * dequeueing records, converting them to BSM format, and committing them to * disk. In order to minimize lock thrashing, records are dequeued in sets @@ -556,10 +572,16 @@ mtx_assert(&audit_mtx, MA_OWNED); /* - * XXXRW: Logic here should really be: while (!events and - * !records) cv_wait(), then process events, and then - * records. + * Wait for record or rotation events. */ + while (!audit_replacement_flag && TAILQ_EMPTY(&audit_q)) { + AUDIT_PRINTF(("audit_worker waiting\n")); + cv_wait(&audit_cv, &audit_mtx); + AUDIT_PRINTF(("audit_worker woken up\n")); + AUDIT_PRINTF(("audit_worker: new vp = %p; value of " + "flag %d\n", audit_replacement_vp, + audit_replacement_flag)); + } /* * First priority: replace the audit log target if requested. @@ -567,19 +589,6 @@ audit_worker_rotate(&audit_cred, &audit_vp, audit_td); /* - * Next, check to see if we have any records to drain into - * the vnode. If not, go back to waiting for an event. - */ - if (TAILQ_EMPTY(&audit_q)) { - AUDIT_PRINTF(("audit_worker waiting\n")); - cv_wait(&audit_cv, &audit_mtx); - AUDIT_PRINTF(("audit_worker woken up\n")); - AUDIT_PRINTF(("audit_worker: new vp = %p; value of flag %d\n", - audit_replacement_vp, audit_replacement_flag)); - continue; - } - - /* * If we have records, but there's no active vnode to write * to, drain the record queue. Generally, we prevent the * unnecessary allocation of records elsewhere, but we need @@ -587,17 +596,7 @@ * queueing. Go back to waiting when we're done. */ if (audit_vp == NULL) { - while ((ar = TAILQ_FIRST(&audit_q))) { - TAILQ_REMOVE(&audit_q, ar, k_q); - uma_zfree(audit_record_zone, ar); - audit_q_len--; - /* - * XXXRW: Why broadcast if we hold the - * mutex and know that audit_vp is NULL? - */ - if (audit_q_len <= audit_qctrl.aq_lowater) - cv_broadcast(&audit_commit_cv); - } + audit_worker_drain(); continue; } From owner-p4-projects@FreeBSD.ORG Sat Mar 18 17:02:01 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 833FF16A422; Sat, 18 Mar 2006 17:02:01 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 62EE816A401 for ; Sat, 18 Mar 2006 17:02:01 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6C6D943D70 for ; Sat, 18 Mar 2006 17:01:56 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2IH1uPV004315 for ; Sat, 18 Mar 2006 17:01:56 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2IH1r5x004312 for perforce@freebsd.org; Sat, 18 Mar 2006 17:01:53 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 18 Mar 2006 17:01:53 GMT Message-Id: <200603181701.k2IH1r5x004312@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 93511 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Mar 2006 17:02:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=93511 Change 93511 by rwatson@rwatson_peppercorn on 2006/03/18 17:01:32 When pulling the global audit queue's contents into a thread-local queue, generate one low water mark transition signal, rather than many, and generate it only if actually crossing the transition point, rather than every time we notice we're below it. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit.c#21 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit.c#21 (text+ko) ==== @@ -555,7 +555,7 @@ struct ucred *audit_cred; struct thread *audit_td; struct vnode *audit_vp; - int error; + int error, lowater_signal; AUDIT_PRINTF(("audit_worker starting\n")); @@ -607,13 +607,16 @@ * our own clustering, if the lower layers aren't doing it * automatically enough. */ + lowater_signal = 0; while ((ar = TAILQ_FIRST(&audit_q))) { TAILQ_REMOVE(&audit_q, ar, k_q); audit_q_len--; - if (audit_q_len <= audit_qctrl.aq_lowater) - cv_broadcast(&audit_commit_cv); + if (audit_q_len == audit_qctrl.aq_lowater) + lowater_signal++; TAILQ_INSERT_TAIL(&ar_worklist, ar, k_q); } + if (lowater_signal) + cv_broadcast(&audit_commit_cv); mtx_unlock(&audit_mtx); while ((ar = TAILQ_FIRST(&ar_worklist))) { From owner-p4-projects@FreeBSD.ORG Sat Mar 18 17:03:54 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A297116A425; Sat, 18 Mar 2006 17:03:54 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 69DC716A41F; Sat, 18 Mar 2006 17:03:54 +0000 (UTC) (envelope-from arr@watson.org) Received: from fledge.watson.org (fledge.watson.org [209.31.154.41]) by mx1.FreeBSD.org (Postfix) with ESMTP id D03C043D46; Sat, 18 Mar 2006 17:03:53 +0000 (GMT) (envelope-from arr@watson.org) Received: from fledge.watson.org (localhost.watson.org [127.0.0.1]) by fledge.watson.org (8.13.4/8.13.4) with ESMTP id k2IH5391016269; Sat, 18 Mar 2006 12:05:03 -0500 (EST) (envelope-from arr@watson.org) Received: from localhost (arr@localhost) by fledge.watson.org (8.13.4/8.13.4/Submit) with ESMTP id k2IH53sh016266; Sat, 18 Mar 2006 12:05:03 -0500 (EST) (envelope-from arr@watson.org) X-Authentication-Warning: fledge.watson.org: arr owned process doing -bs Date: Sat, 18 Mar 2006 12:05:03 -0500 (EST) From: "Andrew R. Reiter" To: Robert Watson In-Reply-To: <200603181701.k2IH1r5x004312@repoman.freebsd.org> Message-ID: <20060318120450.C51324@fledge.watson.org> References: <200603181701.k2IH1r5x004312@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Cc: Perforce Change Reviews Subject: Re: PERFORCE change 93511 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Mar 2006 17:03:54 -0000 Heh; you just read my mind (was about to email) On Sat, 18 Mar 2006, Robert Watson wrote: :http://perforce.freebsd.org/chv.cgi?CH=93511 : :Change 93511 by rwatson@rwatson_peppercorn on 2006/03/18 17:01:32 : : When pulling the global audit queue's contents into a thread-local : queue, generate one low water mark transition signal, rather than : many, and generate it only if actually crossing the transition : point, rather than every time we notice we're below it. : :Affected files ... : :.. //depot/projects/trustedbsd/audit3/sys/security/audit/audit.c#21 edit : :Differences ... : :==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit.c#21 (text+ko) ==== : :@@ -555,7 +555,7 @@ : struct ucred *audit_cred; : struct thread *audit_td; : struct vnode *audit_vp; :- int error; :+ int error, lowater_signal; : : AUDIT_PRINTF(("audit_worker starting\n")); : :@@ -607,13 +607,16 @@ : * our own clustering, if the lower layers aren't doing it : * automatically enough. : */ :+ lowater_signal = 0; : while ((ar = TAILQ_FIRST(&audit_q))) { : TAILQ_REMOVE(&audit_q, ar, k_q); : audit_q_len--; :- if (audit_q_len <= audit_qctrl.aq_lowater) :- cv_broadcast(&audit_commit_cv); :+ if (audit_q_len == audit_qctrl.aq_lowater) :+ lowater_signal++; : TAILQ_INSERT_TAIL(&ar_worklist, ar, k_q); : } :+ if (lowater_signal) :+ cv_broadcast(&audit_commit_cv); : : mtx_unlock(&audit_mtx); : while ((ar = TAILQ_FIRST(&ar_worklist))) { : : -- arr@watson.org From owner-p4-projects@FreeBSD.ORG Sat Mar 18 17:06:03 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9191116A422; Sat, 18 Mar 2006 17:06:03 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 70A4916A401 for ; Sat, 18 Mar 2006 17:06:03 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [209.31.154.42]) by mx1.FreeBSD.org (Postfix) with ESMTP id EFA3943D45 for ; Sat, 18 Mar 2006 17:06:02 +0000 (GMT) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [209.31.154.41]) by cyrus.watson.org (Postfix) with ESMTP id 358F146B98; Sat, 18 Mar 2006 12:05:37 -0500 (EST) Date: Sat, 18 Mar 2006 17:07:12 +0000 (GMT) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: "Andrew R. Reiter" In-Reply-To: <20060318120450.C51324@fledge.watson.org> Message-ID: <20060318170636.E578@fledge.watson.org> References: <200603181701.k2IH1r5x004312@repoman.freebsd.org> <20060318120450.C51324@fledge.watson.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: Perforce Change Reviews Subject: Re: PERFORCE change 93511 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Mar 2006 17:06:03 -0000 On Sat, 18 Mar 2006, Andrew R. Reiter wrote: > Heh; you just read my mind (was about to email) If you get bored, you should come hang out in #trustedbsd on EFNet so that we can perform more feats of mind-reading :-). Robert N M Watson > > On Sat, 18 Mar 2006, Robert Watson wrote: > > :http://perforce.freebsd.org/chv.cgi?CH=93511 > : > :Change 93511 by rwatson@rwatson_peppercorn on 2006/03/18 17:01:32 > : > : When pulling the global audit queue's contents into a thread-local > : queue, generate one low water mark transition signal, rather than > : many, and generate it only if actually crossing the transition > : point, rather than every time we notice we're below it. > : > :Affected files ... > : > :.. //depot/projects/trustedbsd/audit3/sys/security/audit/audit.c#21 edit > : > :Differences ... > : > :==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit.c#21 (text+ko) ==== > : > :@@ -555,7 +555,7 @@ > : struct ucred *audit_cred; > : struct thread *audit_td; > : struct vnode *audit_vp; > :- int error; > :+ int error, lowater_signal; > : > : AUDIT_PRINTF(("audit_worker starting\n")); > : > :@@ -607,13 +607,16 @@ > : * our own clustering, if the lower layers aren't doing it > : * automatically enough. > : */ > :+ lowater_signal = 0; > : while ((ar = TAILQ_FIRST(&audit_q))) { > : TAILQ_REMOVE(&audit_q, ar, k_q); > : audit_q_len--; > :- if (audit_q_len <= audit_qctrl.aq_lowater) > :- cv_broadcast(&audit_commit_cv); > :+ if (audit_q_len == audit_qctrl.aq_lowater) > :+ lowater_signal++; > : TAILQ_INSERT_TAIL(&ar_worklist, ar, k_q); > : } > :+ if (lowater_signal) > :+ cv_broadcast(&audit_commit_cv); > : > : mtx_unlock(&audit_mtx); > : while ((ar = TAILQ_FIRST(&ar_worklist))) { > : > : > > -- > arr@watson.org > From owner-p4-projects@FreeBSD.ORG Sat Mar 18 17:13:10 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 96F7216A425; Sat, 18 Mar 2006 17:13:10 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 75CF716A420 for ; Sat, 18 Mar 2006 17:13:10 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 27CE443D45 for ; Sat, 18 Mar 2006 17:13:10 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2IHDA44004908 for ; Sat, 18 Mar 2006 17:13:10 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2IHD992004905 for perforce@freebsd.org; Sat, 18 Mar 2006 17:13:09 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 18 Mar 2006 17:13:09 GMT Message-Id: <200603181713.k2IHD992004905@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 93512 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Mar 2006 17:13:10 -0000 http://perforce.freebsd.org/chv.cgi?CH=93512 Change 93512 by rwatson@rwatson_peppercorn on 2006/03/18 17:12:46 Integrate audit.c to audit_worker.c, so as to migrate the worker thread implementation to its own .c file. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_worker.c#1 branch Differences ... From owner-p4-projects@FreeBSD.ORG Sat Mar 18 17:23:44 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5BECD16A424; Sat, 18 Mar 2006 17:23:44 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3A08916A420; Sat, 18 Mar 2006 17:23:44 +0000 (UTC) (envelope-from arr@watson.org) Received: from fledge.watson.org (fledge.watson.org [209.31.154.41]) by mx1.FreeBSD.org (Postfix) with ESMTP id 66F3A43D48; Sat, 18 Mar 2006 17:23:43 +0000 (GMT) (envelope-from arr@watson.org) Received: from fledge.watson.org (localhost.watson.org [127.0.0.1]) by fledge.watson.org (8.13.4/8.13.4) with ESMTP id k2IHOqFx017248; Sat, 18 Mar 2006 12:24:52 -0500 (EST) (envelope-from arr@watson.org) Received: from localhost (arr@localhost) by fledge.watson.org (8.13.4/8.13.4/Submit) with ESMTP id k2IHOq99017245; Sat, 18 Mar 2006 12:24:52 -0500 (EST) (envelope-from arr@watson.org) X-Authentication-Warning: fledge.watson.org: arr owned process doing -bs Date: Sat, 18 Mar 2006 12:24:52 -0500 (EST) From: "Andrew R. Reiter" To: Robert Watson In-Reply-To: <20060318170636.E578@fledge.watson.org> Message-ID: <20060318122340.O51324@fledge.watson.org> References: <200603181701.k2IH1r5x004312@repoman.freebsd.org> <20060318120450.C51324@fledge.watson.org> <20060318170636.E578@fledge.watson.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Cc: Perforce Change Reviews Subject: Re: PERFORCE change 93511 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Mar 2006 17:23:44 -0000 On Sat, 18 Mar 2006, Robert Watson wrote: : :On Sat, 18 Mar 2006, Andrew R. Reiter wrote: : :> Heh; you just read my mind (was about to email) : :If you get bored, you should come hang out in #trustedbsd on EFNet so that we :can perform more feats of mind-reading :-). :-) Not a bad idea. Been out of the computer zone for awhile ... decided to go part time and work on photography and videography so I'm feeling a bit more "excited" to work on projects; at least in any minor way. Thanks for the tip. I hope all is well and that life is treating you good. Cheers, Andrew : :Robert N M Watson : :> :> On Sat, 18 Mar 2006, Robert Watson wrote: :> :> :http://perforce.freebsd.org/chv.cgi?CH=93511 :> : :> :Change 93511 by rwatson@rwatson_peppercorn on 2006/03/18 17:01:32 :> : :> : When pulling the global audit queue's contents into a thread-local :> : queue, generate one low water mark transition signal, rather than :> : many, and generate it only if actually crossing the transition :> : point, rather than every time we notice we're below it. :> : :> :Affected files ... :> : :> :.. //depot/projects/trustedbsd/audit3/sys/security/audit/audit.c#21 edit :> : :> :Differences ... :> : :> :==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit.c#21 :> (text+ko) ==== :> : :> :@@ -555,7 +555,7 @@ :> : struct ucred *audit_cred; :> : struct thread *audit_td; :> : struct vnode *audit_vp; :> :- int error; :> :+ int error, lowater_signal; :> : :> : AUDIT_PRINTF(("audit_worker starting\n")); :> : :> :@@ -607,13 +607,16 @@ :> : * our own clustering, if the lower layers aren't doing it :> : * automatically enough. :> : */ :> :+ lowater_signal = 0; :> : while ((ar = TAILQ_FIRST(&audit_q))) { :> : TAILQ_REMOVE(&audit_q, ar, k_q); :> : audit_q_len--; :> :- if (audit_q_len <= audit_qctrl.aq_lowater) :> :- cv_broadcast(&audit_commit_cv); :> :+ if (audit_q_len == audit_qctrl.aq_lowater) :> :+ lowater_signal++; :> : TAILQ_INSERT_TAIL(&ar_worklist, ar, k_q); :> : } :> :+ if (lowater_signal) :> :+ cv_broadcast(&audit_commit_cv); :> : :> : mtx_unlock(&audit_mtx); :> : while ((ar = TAILQ_FIRST(&ar_worklist))) { :> : :> : :> :> -- :> arr@watson.org :> : : -- arr@watson.org From owner-p4-projects@FreeBSD.ORG Sat Mar 18 18:11:21 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AD43016A423; Sat, 18 Mar 2006 18:11:21 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 86CB816A420 for ; Sat, 18 Mar 2006 18:11:21 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id C987943D49 for ; Sat, 18 Mar 2006 18:11:20 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2IIBKlv007883 for ; Sat, 18 Mar 2006 18:11:20 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2IIBKl0007880 for perforce@freebsd.org; Sat, 18 Mar 2006 18:11:20 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 18 Mar 2006 18:11:20 GMT Message-Id: <200603181811.k2IIBKl0007880@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 93514 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Mar 2006 18:11:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=93514 Change 93514 by rwatson@rwatson_peppercorn on 2006/03/18 18:10:34 Populate audit_worker.c using parts now removed from audit.c: - Move audit rotation global variables. - Move audit_record_write(), audit_worker_rotate(), audit_worker_drain(), audit_worker(), audit_rotate_vnode(). - Create audit_worker_init() from relevant parts of audit_init(), which now calls this routine. - Recreate audit_free(), which wraps uma_zfree() so that audit_record_zone can be static to audit.c. - Unstaticize various types and variables relating to the audit record queue so that audit_worker can get to them. We may want to wrap these in accessor methods at some point. - Move AUDIT_PRINTF() to audit_private.h. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit.c#22 edit .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_private.h#21 edit .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_worker.c#2 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit.c#22 (text+ko) ==== @@ -69,20 +69,7 @@ #include -/* - * The AUDIT_EXCESSIVELY_VERBOSE define enables a number of - * gratuitously noisy printf's to the console. Due to the - * volume, it should be left off unless you want your system - * to churn a lot whenever the audit record flow gets high. - */ -//#define AUDIT_EXCESSIVELY_VERBOSE -#ifdef AUDIT_EXCESSIVELY_VERBOSE -#define AUDIT_PRINTF(x) printf x -#else -#define AUDIT_PRINTF(X) -#endif - -static uma_zone_t audit_record_zone; +static uma_zone_t audit_record_zone; static MALLOC_DEFINE(M_AUDITPROC, "audit_proc", "Audit process storage"); MALLOC_DEFINE(M_AUDITDATA, "audit_data", "Audit data storage"); MALLOC_DEFINE(M_AUDITPATH, "audit_path", "Audit path storage"); @@ -95,37 +82,37 @@ /* * Define the audit control flags. */ -int audit_enabled; -int audit_suspended; +int audit_enabled; +int audit_suspended; /* * Flags controlling behavior in low storage situations. * Should we panic if a write fails? Should we fail stop * if we're out of disk space? */ -int audit_panic_on_write_fail; -int audit_fail_stop; +int audit_panic_on_write_fail; +int audit_fail_stop; /* * Are we currently "failing stop" due to out of disk space? */ -static int audit_in_failure; +int audit_in_failure; /* * Global audit statistiscs. */ -struct audit_fstat audit_fstat; +struct audit_fstat audit_fstat; /* * Preselection mask for non-attributable events. */ -struct au_mask audit_nae_mask; +struct au_mask audit_nae_mask; /* * Mutex to protect global variables shared between various threads and * processes. */ -static struct mtx audit_mtx; +struct mtx audit_mtx; /* * Queue of audit records ready for delivery to disk. We insert new @@ -135,69 +122,39 @@ * not yet in the queue, which is needed to estimate the total * size of the combined set of records outstanding in the system. */ -static TAILQ_HEAD(, kaudit_record) audit_q; -static int audit_q_len; -static int audit_pre_q_len; +struct kaudit_queue audit_q; +int audit_q_len; +int audit_pre_q_len; /* * Audit queue control settings (minimum free, low/high water marks, etc.) */ -struct au_qctrl audit_qctrl; +struct au_qctrl audit_qctrl; /* * Condition variable to signal to the worker that it has work to do: * either new records are in the queue, or a log replacement is taking * place. */ -static struct cv audit_cv; - -/* - * Worker thread that will schedule disk I/O, etc. - */ -static struct proc *audit_thread; - -/* - * When an audit log is rotated, the actual rotation must be performed - * by the audit worker thread, as it may have outstanding writes on the - * current audit log. audit_replacement_vp holds the vnode replacing - * the current vnode. We can't let more than one replacement occur - * at a time, so if more than one thread requests a replacement, only - * one can have the replacement "in progress" at any given moment. If - * a thread tries to replace the audit vnode and discovers a replacement - * is already in progress (i.e., audit_replacement_flag != 0), then it - * will sleep on audit_replacement_cv waiting its turn to perform a - * replacement. When a replacement is completed, this cv is signalled - * by the worker thread so a waiting thread can start another replacement. - * We also store a credential to perform audit log write operations with. - * - * The current credential and vnode are thread-local to audit_worker. - */ -static struct cv audit_replacement_cv; - -static int audit_replacement_flag; -static struct vnode *audit_replacement_vp; -static struct ucred *audit_replacement_cred; +struct cv audit_cv; /* * Condition variable to signal to the worker that it has work to do: * either new records are in the queue, or a log replacement is taking * place. + * + * XXXRW: This description is incorrect. */ -static struct cv audit_commit_cv; +struct cv audit_commit_cv; /* * Condition variable for auditing threads wait on when in fail-stop mode. * Threads wait on this CV forever (and ever), never seeing the light of * day again. */ -static struct cv audit_fail_cv; +static struct cv audit_fail_cv; /* - * Flags related to Kernel->user-space communication. - */ -static int audit_file_rotate_wait; - -/* * Construct an audit record for the passed thread. */ static int @@ -255,389 +212,6 @@ } /* - * XXXAUDIT: Should adjust comments below to make it clear that we get to - * this point only if we believe we have storage, so not having space here - * is a violation of invariants derived from administrative procedures. - * I.e., someone else has written to the audit partition, leaving less space - * than we accounted for. - */ -static int -audit_record_write(struct vnode *vp, struct kaudit_record *ar, - struct ucred *cred, struct thread *td) -{ - int ret; - long temp; - struct au_record *bsm; - struct vattr vattr; - struct statfs *mnt_stat = &vp->v_mount->mnt_stat; - int vfslocked; - - vfslocked = VFS_LOCK_GIANT(vp->v_mount); - - /* - * First, gather statistics on the audit log file and file system - * so that we know how we're doing on space. In both cases, - * if we're unable to perform the operation, we drop the record - * and return. However, this is arguably an assertion failure. - * XXX Need a FreeBSD equivalent. - */ - ret = VFS_STATFS(vp->v_mount, mnt_stat, td); - if (ret) - goto out; - - vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); - ret = VOP_GETATTR(vp, &vattr, cred, td); - VOP_UNLOCK(vp, 0, td); - if (ret) - goto out; - - /* update the global stats struct */ - audit_fstat.af_currsz = vattr.va_size; - - /* - * XXX Need to decide what to do if the trigger to the audit daemon - * fails. - */ - - /* - * If we fall below minimum free blocks (hard limit), tell the audit - * daemon to force a rotation off of the file system. We also stop - * writing, which means this audit record is probably lost. - * If we fall below the minimum percent free blocks (soft limit), - * then kindly suggest to the audit daemon to do something. - */ - if (mnt_stat->f_bfree < AUDIT_HARD_LIMIT_FREE_BLOCKS) { - (void)send_trigger(AUDIT_TRIGGER_NO_SPACE); - /* Hopefully userspace did something about all the previous - * triggers that were sent prior to this critical condition. - * If fail-stop is set, then we're done; goodnight Gracie. - */ - if (audit_fail_stop) - panic("Audit log space exhausted and fail-stop set."); - else { - audit_suspended = 1; - ret = ENOSPC; - goto out; - } - } else - /* - * Send a message to the audit daemon that disk space - * is getting low. - * - * XXXAUDIT: Check math and block size calculation here. - */ - if (audit_qctrl.aq_minfree != 0) { - temp = mnt_stat->f_blocks / (100 / - audit_qctrl.aq_minfree); - if (mnt_stat->f_bfree < temp) - (void)send_trigger(AUDIT_TRIGGER_LOW_SPACE); - } - - /* Check if the current log file is full; if so, call for - * a log rotate. This is not an exact comparison; we may - * write some records over the limit. If that's not - * acceptable, then add a fudge factor here. - */ - if ((audit_fstat.af_filesz != 0) && - (audit_file_rotate_wait == 0) && - (vattr.va_size >= audit_fstat.af_filesz)) { - audit_file_rotate_wait = 1; - (void)send_trigger(AUDIT_TRIGGER_OPEN_NEW); - } - - /* - * If the estimated amount of audit data in the audit event queue - * (plus records allocated but not yet queued) has reached the - * amount of free space on the disk, then we need to go into an - * audit fail stop state, in which we do not permit the - * allocation/committing of any new audit records. We continue to - * process packets but don't allow any activities that might - * generate new records. In the future, we might want to detect - * when space is available again and allow operation to continue, - * but this behavior is sufficient to meet fail stop requirements - * in CAPP. - */ - if (audit_fail_stop && - (unsigned long) - ((audit_q_len + audit_pre_q_len + 1) * MAX_AUDIT_RECORD_SIZE) / - mnt_stat->f_bsize >= (unsigned long)(mnt_stat->f_bfree)) { - printf("audit_record_write: free space below size of audit " - "queue, failing stop\n"); - audit_in_failure = 1; - } - - /* - * If there is a user audit record attached to the kernel record, - * then write the user record. - */ - /* XXX Need to decide a few things here: IF the user audit - * record is written, but the write of the kernel record fails, - * what to do? Should the kernel record come before or after the - * user record? For now, we write the user record first, and - * we ignore errors. - */ - if (ar->k_ar_commit & AR_COMMIT_USER) { - /* - * Try submitting the record to any active audit pipes. - */ - audit_pipe_submit((void *)ar->k_udata, ar->k_ulen); - - /* - * And to disk. - */ - ret = vn_rdwr(UIO_WRITE, vp, (void *)ar->k_udata, ar->k_ulen, - (off_t)0, UIO_SYSSPACE, IO_APPEND|IO_UNIT, cred, NULL, - NULL, td); - if (ret) - goto out; - } - - /* - * Convert the internal kernel record to BSM format and write it - * out if everything's OK. - */ - if (!(ar->k_ar_commit & AR_COMMIT_KERNEL)) { - ret = 0; - goto out; - } - - /* - * XXXAUDIT: Should we actually allow this conversion to fail? With - * sleeping memory allocation and invariants checks, perhaps not. - */ - ret = kaudit_to_bsm(ar, &bsm); - if (ret == BSM_NOAUDIT) { - ret = 0; - goto out; - } - - /* - * XXX: We drop the record on BSM conversion failure, but really - * this is an assertion failure. - */ - if (ret == BSM_FAILURE) { - AUDIT_PRINTF(("BSM conversion failure\n")); - ret = EINVAL; - goto out; - } - - /* - * Try submitting the record to any active audit pipes. - */ - audit_pipe_submit((void *)bsm->data, bsm->len); - - /* - * XXX - * We should break the write functionality away from the BSM record - * generation and have the BSM generation done before this function - * is called. This function will then take the BSM record as a - * parameter. - */ - ret = (vn_rdwr(UIO_WRITE, vp, (void *)bsm->data, bsm->len, - (off_t)0, UIO_SYSSPACE, IO_APPEND|IO_UNIT, cred, NULL, NULL, td)); - - kau_free(bsm); - -out: - /* - * When we're done processing the current record, we have to - * check to see if we're in a failure mode, and if so, whether - * this was the last record left to be drained. If we're done - * draining, then we fsync the vnode and panic. - */ - if (audit_in_failure && - audit_q_len == 0 && audit_pre_q_len == 0) { - VOP_LOCK(vp, LK_DRAIN | LK_INTERLOCK, td); - (void)VOP_FSYNC(vp, MNT_WAIT, td); - VOP_UNLOCK(vp, 0, td); - panic("Audit store overflow; record queue drained."); - } - - VFS_UNLOCK_GIANT(vfslocked); - - return (ret); -} - -/* - * If an appropriate signal has been received rotate the audit log based on - * the global replacement variables. Signal consumers as needed that the - * rotation has taken place. - * - * XXXRW: The global variables and CVs used to signal the audit_worker to - * perform a rotation are essentially a message queue of depth 1. It would - * be much nicer to actually use a message queue. - */ -static void -audit_worker_rotate(struct ucred **audit_credp, struct vnode **audit_vpp, - struct thread *audit_td) -{ - int do_replacement_signal, vfslocked; - struct ucred *old_cred; - struct vnode *old_vp; - - mtx_assert(&audit_mtx, MA_OWNED); - - do_replacement_signal = 0; - while (audit_replacement_flag != 0) { - old_cred = *audit_credp; - old_vp = *audit_vpp; - *audit_credp = audit_replacement_cred; - *audit_vpp = audit_replacement_vp; - audit_replacement_cred = NULL; - audit_replacement_vp = NULL; - audit_replacement_flag = 0; - - audit_enabled = (*audit_vpp != NULL); - - /* - * XXX: What to do about write failures here? - */ - if (old_vp != NULL) { - AUDIT_PRINTF(("Closing old audit file\n")); - mtx_unlock(&audit_mtx); - vfslocked = VFS_LOCK_GIANT(old_vp->v_mount); - vn_close(old_vp, AUDIT_CLOSE_FLAGS, old_cred, - audit_td); - VFS_UNLOCK_GIANT(vfslocked); - crfree(old_cred); - mtx_lock(&audit_mtx); - old_cred = NULL; - old_vp = NULL; - AUDIT_PRINTF(("Audit file closed\n")); - } - if (*audit_vpp != NULL) { - AUDIT_PRINTF(("Opening new audit file\n")); - } - do_replacement_signal = 1; - } - - /* - * Signal that replacement have occurred to wake up and - * start any other replacements started in parallel. We can - * continue about our business in the mean time. We - * broadcast so that both new replacements can be inserted, - * but also so that the source(s) of replacement can return - * successfully. - */ - if (do_replacement_signal) - cv_broadcast(&audit_replacement_cv); -} - -/* - * Drain the audit commit queue and free the records. Used if there are - * records present, but no audit log target. - */ -static void -audit_worker_drain(void) -{ - struct kaudit_record *ar; - - while ((ar = TAILQ_FIRST(&audit_q))) { - TAILQ_REMOVE(&audit_q, ar, k_q); - uma_zfree(audit_record_zone, ar); - audit_q_len--; - } -} - -/* - * The audit_worker thread is responsible for watching the event queue, - * dequeueing records, converting them to BSM format, and committing them to - * disk. In order to minimize lock thrashing, records are dequeued in sets - * to a thread-local work queue. In addition, the audit_work performs the - * actual exchange of audit log vnode pointer, as audit_vp is a thread-local - * variable. - */ -static void -audit_worker(void *arg) -{ - TAILQ_HEAD(, kaudit_record) ar_worklist; - struct kaudit_record *ar; - struct ucred *audit_cred; - struct thread *audit_td; - struct vnode *audit_vp; - int error, lowater_signal; - - AUDIT_PRINTF(("audit_worker starting\n")); - - /* - * These are thread-local variables requiring no synchronization. - */ - TAILQ_INIT(&ar_worklist); - audit_cred = NULL; - audit_td = curthread; - audit_vp = NULL; - - mtx_lock(&audit_mtx); - while (1) { - mtx_assert(&audit_mtx, MA_OWNED); - - /* - * Wait for record or rotation events. - */ - while (!audit_replacement_flag && TAILQ_EMPTY(&audit_q)) { - AUDIT_PRINTF(("audit_worker waiting\n")); - cv_wait(&audit_cv, &audit_mtx); - AUDIT_PRINTF(("audit_worker woken up\n")); - AUDIT_PRINTF(("audit_worker: new vp = %p; value of " - "flag %d\n", audit_replacement_vp, - audit_replacement_flag)); - } - - /* - * First priority: replace the audit log target if requested. - */ - audit_worker_rotate(&audit_cred, &audit_vp, audit_td); - - /* - * If we have records, but there's no active vnode to write - * to, drain the record queue. Generally, we prevent the - * unnecessary allocation of records elsewhere, but we need - * to allow for races between conditional allocation and - * queueing. Go back to waiting when we're done. - */ - if (audit_vp == NULL) { - audit_worker_drain(); - continue; - } - - /* - * We have both records to write and an active vnode to write - * to. Dequeue a record, and start the write. Eventually, - * it might make sense to dequeue several records and perform - * our own clustering, if the lower layers aren't doing it - * automatically enough. - */ - lowater_signal = 0; - while ((ar = TAILQ_FIRST(&audit_q))) { - TAILQ_REMOVE(&audit_q, ar, k_q); - audit_q_len--; - if (audit_q_len == audit_qctrl.aq_lowater) - lowater_signal++; - TAILQ_INSERT_TAIL(&ar_worklist, ar, k_q); - } - if (lowater_signal) - cv_broadcast(&audit_commit_cv); - - mtx_unlock(&audit_mtx); - while ((ar = TAILQ_FIRST(&ar_worklist))) { - TAILQ_REMOVE(&ar_worklist, ar, k_q); - if (audit_vp != NULL) { - error = audit_record_write(audit_vp, ar, - audit_cred, audit_td); - if (error && audit_panic_on_write_fail) - panic("audit_worker: write error %d\n", - error); - else if (error) - printf("audit_worker: write error %d\n", - error); - } - uma_zfree(audit_record_zone, ar); - } - mtx_lock(&audit_mtx); - } -} - -/* * Initialize the Audit subsystem: configuration state, work queue, * synchronization primitives, worker thread, and trigger device node. Also * call into the BSM assembly code to initialize it. @@ -645,7 +219,6 @@ static void audit_init(void) { - int error; printf("Security auditing service present\n"); audit_enabled = 0; @@ -654,10 +227,6 @@ audit_fail_stop = 0; audit_in_failure = 0; - audit_replacement_vp = NULL; - audit_replacement_cred = NULL; - audit_replacement_flag = 0; - audit_fstat.af_filesz = 0; /* '0' means unset, unbounded */ audit_fstat.af_currsz = 0; audit_nae_mask.am_success = AU_NULL; @@ -673,7 +242,6 @@ mtx_init(&audit_mtx, "audit_mtx", NULL, MTX_DEF); cv_init(&audit_cv, "audit_cv"); - cv_init(&audit_replacement_cv, "audit_replacement_cv"); cv_init(&audit_commit_cv, "audit_commit_cv"); cv_init(&audit_fail_cv, "audit_fail_cv"); @@ -684,83 +252,19 @@ /* Initialize the BSM audit subsystem. */ kau_init(); - audit_file_rotate_wait = 0; audit_trigger_init(); /* Register shutdown handler. */ EVENTHANDLER_REGISTER(shutdown_pre_sync, audit_shutdown, NULL, SHUTDOWN_PRI_FIRST); - error = kthread_create(audit_worker, NULL, &audit_thread, RFHIGHPID, - 0, "audit_worker"); - if (error != 0) - panic("audit_init: kthread_create returned %d", error); + /* Start audit worker thread. */ + audit_worker_init(); } SYSINIT(audit_init, SI_SUB_AUDIT, SI_ORDER_FIRST, audit_init, NULL) /* - * audit_rotate_vnode() is called by a user or kernel thread to configure or - * de-configure auditing on a vnode. The arguments are the replacement - * credential and vnode to substitute for the current credential and vnode, - * if any. If either is set to NULL, both should be NULL, and this is used - * to indicate that audit is being disabled. The real work is done in the - * audit_worker thread, but audit_rotate_vnode() waits synchronously for that - * to complete. - * - * The vnode should be referenced and opened by the caller. The credential - * should be referenced. audit_rotate_vnode() will own both references as of - * this call, so the caller should not release either. - * - * XXXAUDIT: Review synchronize communication logic. Really, this is a - * message queue of depth 1. - * - * XXXAUDIT: Enhance the comments below to indicate that we are basically - * acquiring ownership of the communications queue, inserting our message, - * and waiting for an acknowledgement. - */ -void -audit_rotate_vnode(struct ucred *cred, struct vnode *vp) -{ - - /* - * If other parallel log replacements have been requested, we wait - * until they've finished before continuing. - */ - mtx_lock(&audit_mtx); - while (audit_replacement_flag != 0) { - AUDIT_PRINTF(("audit_rotate_vnode: sleeping to wait for " - "flag\n")); - cv_wait(&audit_replacement_cv, &audit_mtx); - AUDIT_PRINTF(("audit_rotate_vnode: woken up (flag %d)\n", - audit_replacement_flag)); - } - audit_replacement_cred = cred; - audit_replacement_flag = 1; - audit_replacement_vp = vp; - - /* - * Wake up the audit worker to perform the exchange once we - * release the mutex. - */ - cv_signal(&audit_cv); - - /* - * Wait for the audit_worker to broadcast that a replacement has - * taken place; we know that once this has happened, our vnode - * has been replaced in, so we can return successfully. - */ - AUDIT_PRINTF(("audit_rotate_vnode: waiting for news of " - "replacement\n")); - cv_wait(&audit_replacement_cv, &audit_mtx); - AUDIT_PRINTF(("audit_rotate_vnode: change acknowledged by " - "audit_worker (flag " "now %d)\n", audit_replacement_flag)); - mtx_unlock(&audit_mtx); - - audit_file_rotate_wait = 0; /* We can now request another rotation */ -} - -/* * Drain the audit queue and close the log at shutdown. Note that this can * be called both from the system shutdown path and also from audit * configuration syscalls, so 'arg' and 'howto' are ignored. @@ -819,6 +323,13 @@ return (ar); } +void +audit_free(struct kaudit_record *ar) +{ + + uma_zfree(audit_record_zone, ar); +} + /* * MPSAFE */ ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_private.h#21 (text+ko) ==== @@ -53,6 +53,19 @@ #endif /* + * The AUDIT_EXCESSIVELY_VERBOSE define enables a number of gratuitously + * noisy printf's to the console. Due to the volume, it should be left off + * unless you want your system to churn a lot whenever the audit record flow + * gets high. + */ +//#define AUDIT_EXCESSIVELY_VERBOSE +#ifdef AUDIT_EXCESSIVELY_VERBOSE +#define AUDIT_PRINTF(x) printf x +#else +#define AUDIT_PRINTF(x) +#endif + +/* * Audit control variables that are usually set/read via system calls * and used to control various aspects of auditing. */ @@ -220,19 +233,20 @@ */ struct kaudit_record { struct audit_record k_ar; - u_int32_t k_ar_commit; + u_int32_t k_ar_commit; void *k_udata; /* user data */ u_int k_ulen; /* user data length */ struct uthread *k_uthread; /* thread we are auditing */ TAILQ_ENTRY(kaudit_record) k_q; }; +TAILQ_HEAD(kaudit_queue, kaudit_record); /* * Functions to manage the allocation, release, and commit of kernel audit * records. */ void audit_abort(struct kaudit_record *ar); -void audit_commit(struct kaudit_record *ar, int error, +void audit_commit(struct kaudit_record *ar, int error, int retval); struct kaudit_record *audit_new(int event, struct thread *td); @@ -258,7 +272,19 @@ #define AU_PRS_FAILURE 2 #define AU_PRS_BOTH (AU_PRS_SUCCESS|AU_PRS_FAILURE) -/* +/* + * Data structures relating to the kernel audit queue. Ideally, these might + * be abstracted so that only accessor methods are exposed. + */ +extern struct mtx audit_mtx; +extern struct cv audit_commit_cv; +extern struct cv audit_cv; +extern struct kaudit_queue audit_q; +extern int audit_q_len; +extern int audit_pre_q_len; +extern int audit_in_failure; + +/* * Flags to use on audit files when opening and closing. */ #define AUDIT_OPEN_FLAGS (FWRITE | O_APPEND) @@ -301,9 +327,11 @@ * General audit related functions. */ struct kaudit_record *currecord(void); +void audit_free(struct kaudit_record *ar); void audit_shutdown(void *arg, int howto); void audit_rotate_vnode(struct ucred *cred, struct vnode *vp); +void audit_worker_init(void); /* * Audit pipe functions. ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_worker.c#2 (text+ko) ==== @@ -27,7 +27,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/security/audit/audit.c,v 1.8 2006/03/04 17:00:55 rwatson Exp $ + * $FreeBSD$ */ #include @@ -70,91 +70,9 @@ #include /* - * The AUDIT_EXCESSIVELY_VERBOSE define enables a number of - * gratuitously noisy printf's to the console. Due to the - * volume, it should be left off unless you want your system - * to churn a lot whenever the audit record flow gets high. - */ -//#define AUDIT_EXCESSIVELY_VERBOSE -#ifdef AUDIT_EXCESSIVELY_VERBOSE -#define AUDIT_PRINTF(x) printf x -#else -#define AUDIT_PRINTF(X) -#endif - -static uma_zone_t audit_record_zone; -static MALLOC_DEFINE(M_AUDITPROC, "audit_proc", "Audit process storage"); -MALLOC_DEFINE(M_AUDITDATA, "audit_data", "Audit data storage"); -MALLOC_DEFINE(M_AUDITPATH, "audit_path", "Audit path storage"); -MALLOC_DEFINE(M_AUDITTEXT, "audit_text", "Audit text storage"); - -/* - * Audit control settings that are set/read by system calls and are - * hence non-static. - */ -/* - * Define the audit control flags. - */ -int audit_enabled; -int audit_suspended; - -/* - * Flags controlling behavior in low storage situations. - * Should we panic if a write fails? Should we fail stop - * if we're out of disk space? - */ -int audit_panic_on_write_fail; -int audit_fail_stop; - -/* - * Are we currently "failing stop" due to out of disk space? - */ -static int audit_in_failure; - -/* - * Global audit statistiscs. - */ -struct audit_fstat audit_fstat; - -/* - * Preselection mask for non-attributable events. - */ -struct au_mask audit_nae_mask; - -/* - * Mutex to protect global variables shared between various threads and - * processes. - */ -static struct mtx audit_mtx; - -/* - * Queue of audit records ready for delivery to disk. We insert new - * records at the tail, and remove records from the head. Also, - * a count of the number of records used for checking queue depth. - * In addition, a counter of records that we have allocated but are - * not yet in the queue, which is needed to estimate the total - * size of the combined set of records outstanding in the system. - */ -static TAILQ_HEAD(, kaudit_record) audit_q; -static int audit_q_len; -static int audit_pre_q_len; - -/* - * Audit queue control settings (minimum free, low/high water marks, etc.) - */ -struct au_qctrl audit_qctrl; - -/* - * Condition variable to signal to the worker that it has work to do: - * either new records are in the queue, or a log replacement is taking - * place. - */ -static struct cv audit_cv; - -/* * Worker thread that will schedule disk I/O, etc. */ -static struct proc *audit_thread; +static struct proc *audit_thread; /* * When an audit log is rotated, the actual rotation must be performed @@ -172,89 +90,18 @@ * * The current credential and vnode are thread-local to audit_worker. */ -static struct cv audit_replacement_cv; +static struct cv audit_replacement_cv; -static int audit_replacement_flag; -static struct vnode *audit_replacement_vp; -static struct ucred *audit_replacement_cred; - -/* - * Condition variable to signal to the worker that it has work to do: - * either new records are in the queue, or a log replacement is taking - * place. - */ -static struct cv audit_commit_cv; +static int audit_replacement_flag; +static struct vnode *audit_replacement_vp; +static struct ucred *audit_replacement_cred; -/* - * Condition variable for auditing threads wait on when in fail-stop mode. - * Threads wait on this CV forever (and ever), never seeing the light of - * day again. - */ -static struct cv audit_fail_cv; - /* * Flags related to Kernel->user-space communication. */ static int audit_file_rotate_wait; /* - * Construct an audit record for the passed thread. - */ -static int -audit_record_ctor(void *mem, int size, void *arg, int flags) -{ - struct kaudit_record *ar; - struct thread *td; - - KASSERT(sizeof(*ar) == size, ("audit_record_ctor: wrong size")); - - td = arg; - ar = mem; - bzero(ar, sizeof(*ar)); - ar->k_ar.ar_magic = AUDIT_RECORD_MAGIC; - nanotime(&ar->k_ar.ar_starttime); - - /* - * Export the subject credential. - * - * XXXAUDIT: td_ucred access is OK without proc lock, but some other - * fields here may require the proc lock. - */ - cru2x(td->td_ucred, &ar->k_ar.ar_subj_cred); - ar->k_ar.ar_subj_ruid = td->td_ucred->cr_ruid; - ar->k_ar.ar_subj_rgid = td->td_ucred->cr_rgid; - ar->k_ar.ar_subj_egid = td->td_ucred->cr_groups[0]; - ar->k_ar.ar_subj_auid = td->td_proc->p_au->ai_auid; - ar->k_ar.ar_subj_asid = td->td_proc->p_au->ai_asid; - ar->k_ar.ar_subj_pid = td->td_proc->p_pid; - ar->k_ar.ar_subj_amask = td->td_proc->p_au->ai_mask; - ar->k_ar.ar_subj_term = td->td_proc->p_au->ai_termid; - bcopy(td->td_proc->p_comm, ar->k_ar.ar_subj_comm, MAXCOMLEN); - - return (0); -} - -static void -audit_record_dtor(void *mem, int size, void *arg) -{ - struct kaudit_record *ar; - - KASSERT(sizeof(*ar) == size, ("audit_record_dtor: wrong size")); - - ar = mem; - if (ar->k_ar.ar_arg_upath1 != NULL) - free(ar->k_ar.ar_arg_upath1, M_AUDITPATH); - if (ar->k_ar.ar_arg_upath2 != NULL) - free(ar->k_ar.ar_arg_upath2, M_AUDITPATH); - if (ar->k_ar.ar_arg_text != NULL) - free(ar->k_ar.ar_arg_text, M_AUDITTEXT); - if (ar->k_ar.ar_arg_iovecstr != NULL) - free(ar->k_ar.ar_arg_iovecstr, M_AUDITTEXT); - if (ar->k_udata != NULL) - free(ar->k_udata, M_AUDITDATA); -} - -/* * XXXAUDIT: Should adjust comments below to make it clear that we get to * this point only if we believe we have storage, so not having space here * is a violation of invariants derived from administrative procedures. @@ -534,7 +381,7 @@ while ((ar = TAILQ_FIRST(&audit_q))) { TAILQ_REMOVE(&audit_q, ar, k_q); - uma_zfree(audit_record_zone, ar); + audit_free(ar); audit_q_len--; } } @@ -631,75 +478,13 @@ printf("audit_worker: write error %d\n", error); } - uma_zfree(audit_record_zone, ar); + audit_free(ar); } mtx_lock(&audit_mtx); } } /* - * Initialize the Audit subsystem: configuration state, work queue, - * synchronization primitives, worker thread, and trigger device node. Also - * call into the BSM assembly code to initialize it. - */ -static void -audit_init(void) -{ - int error; - - printf("Security auditing service present\n"); - audit_enabled = 0; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Mar 18 18:21:34 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E4D8D16A439; Sat, 18 Mar 2006 18:21:33 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BF59216A425 for ; Sat, 18 Mar 2006 18:21:33 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 85A4143D5E for ; Sat, 18 Mar 2006 18:21:33 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2IILXOI008526 for ; Sat, 18 Mar 2006 18:21:33 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2IILXqH008523 for perforce@freebsd.org; Sat, 18 Mar 2006 18:21:33 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 18 Mar 2006 18:21:33 GMT Message-Id: <200603181821.k2IILXqH008523@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 93515 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Mar 2006 18:21:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=93515 Change 93515 by rwatson@rwatson_peppercorn on 2006/03/18 18:21:26 Addition of audit_worker.c to kernel configuration, missed in earlier submit. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/conf/files#20 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/conf/files#20 (text+ko) ==== @@ -1842,6 +1842,7 @@ security/audit/audit_pipe.c optional audit security/audit/audit_syscalls.c standard security/audit/audit_trigger.c optional audit +security/audit/audit_worker.c optional audit security/mac/mac_inet.c optional mac inet security/mac/mac_label.c optional mac security/mac/mac_net.c optional mac