svn commit: r260365 - head/release/picobsd/build
Author: luigi Date: Mon Jan 6 08:09:19 2014 New Revision: 260365 URL: http://svnweb.freebsd.org/changeset/base/260365 Log: do not use capsicum when building picobsd images Modified: head/release/picobsd/build/picobsd Modified: head/release/picobsd/build/picobsd == --- head/release/picobsd/build/picobsd Mon Jan 6 05:00:58 2014 (r260364) +++ head/release/picobsd/build/picobsd Mon Jan 6 08:09:19 2014 (r260365) @@ -166,6 +166,7 @@ create_includes_and_libraries2() { # opt log create_includes_and_libraries2() for ${SRC} $1 if [ ${OSVERSION} -ge 60 ] ; then no=-DNO_CLEAN -DNO_PROFILE -DNO_GAMES -DNO_LIBC_R # WITHOUT_CDDL=1 + no=$no -DWITHOUT_CASPER no=$no -DMALLOC_PRODUCTION else no=-DNOCLEAN -DNOPROFILE -DNOGAMES -DNOLIBC_R ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r260161 - in head/sys/arm: arm include
2014/1/6 Ian Lepore i...@freebsd.org: On Wed, 2014-01-01 at 20:03 +, Zbigniew Bodek wrote: Author: zbb Date: Wed Jan 1 20:03:48 2014 New Revision: 260161 URL: http://svnweb.freebsd.org/changeset/base/260161 Log: Add polarity and level support to ARM GIC Add suport for setting triggering level and polarity in GIC. New function pointer was added to nexus which corresponds to the function which sets level/sense in the hardware (GIC). Submitted by: Wojciech Macek w...@semihalf.com Obtained from: Semihalf Modified: head/sys/arm/arm/gic.c head/sys/arm/arm/intr.c head/sys/arm/arm/nexus.c head/sys/arm/include/intr.h [...] Modified: head/sys/arm/include/intr.h == --- head/sys/arm/include/intr.h Wed Jan 1 19:38:15 2014 (r260160) +++ head/sys/arm/include/intr.h Wed Jan 1 20:03:48 2014 (r260161) @@ -68,6 +68,7 @@ #endif #include machine/psl.h +#include sys/bus.h int arm_get_next_irq(int); void arm_mask_irq(uintptr_t); @@ -77,6 +78,8 @@ void arm_setup_irqhandler(const char *, void *, int, int, void **); int arm_remove_irqhandler(int, void *); extern void (*arm_post_filter)(void *); +extern int (*arm_config_irq)(int irq, enum intr_trigger trig, +enum intr_polarity pol); void gic_init_secondary(void); It turns out that the new #include in this change is causing the current arm tinderbox failures. Enums can't have forward decls anymore, so the fix for this may not be easy. -- Ian I apologize. I must have missed that somehow. I was assured that patches are fine. Best regards zbb ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r260161 - in head/sys/arm: arm include
2014/1/6 Andreas Tobler andre...@freebsd.org: On 06.01.14 03:55, Ian Lepore wrote: On Wed, 2014-01-01 at 20:03 +, Zbigniew Bodek wrote: Author: zbb Date: Wed Jan 1 20:03:48 2014 New Revision: 260161 URL: http://svnweb.freebsd.org/changeset/base/260161 Log: Add polarity and level support to ARM GIC Add suport for setting triggering level and polarity in GIC. New function pointer was added to nexus which corresponds to the function which sets level/sense in the hardware (GIC). Submitted by: Wojciech Macek w...@semihalf.com Obtained from: Semihalf Modified: head/sys/arm/arm/gic.c head/sys/arm/arm/intr.c head/sys/arm/arm/nexus.c head/sys/arm/include/intr.h [...] Modified: head/sys/arm/include/intr.h == --- head/sys/arm/include/intr.h Wed Jan 1 19:38:15 2014 (r260160) +++ head/sys/arm/include/intr.h Wed Jan 1 20:03:48 2014 (r260161) @@ -68,6 +68,7 @@ #endif #include machine/psl.h +#include sys/bus.h int arm_get_next_irq(int); void arm_mask_irq(uintptr_t); @@ -77,6 +78,8 @@ void arm_setup_irqhandler(const char *, void *, int, int, void **); int arm_remove_irqhandler(int, void *); extern void (*arm_post_filter)(void *); +extern int (*arm_config_irq)(int irq, enum intr_trigger trig, +enum intr_polarity pol); void gic_init_secondary(void); It turns out that the new #include in this change is causing the current arm tinderbox failures. Enums can't have forward decls anymore, so the fix for this may not be easy. I posted my try to fix this here: http://lists.freebsd.org/pipermail/freebsd-current/2014-January/047694.html Rebuilt 260333 successfully with it. Andreas Hello. Thank you very much. Can this be committed or are there any objections? Best regards zbb ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r260367 - head/sys/rpc
Author: mav Date: Mon Jan 6 12:40:46 2014 New Revision: 260367 URL: http://svnweb.freebsd.org/changeset/base/260367 Log: Fix NULL dereference panic on UDP requests introduced in r260229. Modified: head/sys/rpc/svc.h Modified: head/sys/rpc/svc.h == --- head/sys/rpc/svc.h Mon Jan 6 12:28:35 2014(r260366) +++ head/sys/rpc/svc.h Mon Jan 6 12:40:46 2014(r260367) @@ -411,7 +411,7 @@ struct svc_req { (*(xprt)-xp_ops-xp_stat)(xprt) #define SVC_ACK(xprt, ack) \ - ((xprt)-xp_ops-xp_stat == NULL ? FALSE : \ + ((xprt)-xp_ops-xp_ack == NULL ? FALSE : \ ((ack) == NULL ? TRUE : (*(xprt)-xp_ops-xp_ack)((xprt), (ack #define SVC_REPLY(xprt, msg, addr, m, seq) \ ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r260368 - in head: share/man/man4 sys/dev/e1000 sys/dev/ixgbe sys/dev/netmap sys/net tools/tools/netmap
Author: luigi Date: Mon Jan 6 12:53:15 2014 New Revision: 260368 URL: http://svnweb.freebsd.org/changeset/base/260368 Log: It is 2014 and we have a new version of netmap. Most relevant features: - netmap emulation on any NIC, even those without native netmap support. On the ixgbe we have measured about 4Mpps/core/queue in this mode, which is still a lot more than with sockets/bpf. - seamless interconnection of VALE switch, NICs and host stack. If you disable accelerations on your NIC (say em0) ifconfig em0 -txcsum -txcsum you can use the VALE switch to connect the NIC and the host stack: vale-ctl -h valeXX:em0 allowing sharing the NIC with other netmap clients. - THE USER API HAS SLIGHTLY CHANGED (head/cur/tail pointers instead of pointers/count as before). This was unavoidable to support, in the future, multiple threads operating on the same rings. Netmap clients require very small source code changes to compile again. On the plus side, the new API should be easier to understand and the internals are a lot simpler. The manual page has been updated extensively to reflect the current features and give some examples. This is the result of work of several people including Giuseppe Lettieri, Vincenzo Maffione, Michio Honda and myself, and has been financially supported by EU projects CHANGE and OPENLAB, from NetApp University Research Fund, NEC, and of course the Universita` di Pisa. Modified: head/share/man/man4/netmap.4 head/sys/dev/e1000/if_em.c head/sys/dev/e1000/if_igb.c head/sys/dev/e1000/if_lem.c head/sys/dev/ixgbe/ixgbe.c head/sys/dev/netmap/if_em_netmap.h head/sys/dev/netmap/if_igb_netmap.h head/sys/dev/netmap/if_lem_netmap.h head/sys/dev/netmap/if_re_netmap.h head/sys/dev/netmap/ixgbe_netmap.h head/sys/dev/netmap/netmap.c head/sys/dev/netmap/netmap_freebsd.c head/sys/dev/netmap/netmap_generic.c head/sys/dev/netmap/netmap_kern.h head/sys/dev/netmap/netmap_mbq.c head/sys/dev/netmap/netmap_mbq.h head/sys/dev/netmap/netmap_mem2.c head/sys/dev/netmap/netmap_mem2.h head/sys/dev/netmap/netmap_vale.c head/sys/net/netmap.h head/sys/net/netmap_user.h head/tools/tools/netmap/bridge.c head/tools/tools/netmap/nm_util.c head/tools/tools/netmap/nm_util.h head/tools/tools/netmap/pcap.c head/tools/tools/netmap/pkt-gen.c head/tools/tools/netmap/vale-ctl.c Modified: head/share/man/man4/netmap.4 == --- head/share/man/man4/netmap.4Mon Jan 6 12:40:46 2014 (r260367) +++ head/share/man/man4/netmap.4Mon Jan 6 12:53:15 2014 (r260368) @@ -1,4 +1,4 @@ -.\ Copyright (c) 2011-2013 Matteo Landi, Luigi Rizzo, Universita` di Pisa +.\ Copyright (c) 2011-2014 Matteo Landi, Luigi Rizzo, Universita` di Pisa .\ All rights reserved. .\ .\ Redistribution and use in source and binary forms, with or without @@ -27,434 +27,546 @@ .\ .\ $FreeBSD$ .\ -.Dd October 18, 2013 +.Dd January 4, 2014 .Dt NETMAP 4 .Os .Sh NAME .Nm netmap .Nd a framework for fast packet I/O +.br +.Nm VALE +.Nd a fast VirtuAl Local Ethernet using the netmap API .Sh SYNOPSIS .Cd device netmap .Sh DESCRIPTION .Nm is a framework for extremely fast and efficient packet I/O -(reaching 14.88 Mpps with a single core at less than 1 GHz) for both userspace and kernel clients. -Userspace clients can use the netmap API -to send and receive raw packets through physical interfaces -or ports of the -.Xr VALE 4 -switch. -.Pp -.Nm VALE -is a very fast (reaching 20 Mpps per port) -and modular software switch, -implemented within the kernel, which can interconnect -virtual ports, physical devices, and the native host stack. -.Pp -.Nm -uses a memory mapped region to share packet buffers, -descriptors and queues with the kernel. -Simple -.Pa ioctl()s -are used to bind interfaces/ports to file descriptors and -implement non-blocking I/O, whereas blocking I/O uses -.Pa select()/poll() . +It runs on FreeBSD and Linux, +and includes +.Nm VALE , +a very fast and modular in-kernel software switch/dataplane. +.Pp .Nm -can exploit the parallelism in multiqueue devices and -multicore systems. +and +.Nm VALE +are one order of magnitude faster than sockets, bpf or +native switches based on +.Xr tun/tap 4 , +reaching 14.88 Mpps with much less than one core on a 10 Gbit NIC, +and 20 Mpps per core for VALE ports. +.Pp +Userspace clients can dynamically switch NICs into +.Nm +mode and send and receive raw packets through +memory mapped buffers. +A selectable file descriptor supports +synchronization and blocking I/O. +.Pp +Similarly, +.Nm VALE +can dynamically create switch instances and ports, +providing high speed packet I/O between processes, +virtual machines, NICs and the host stack. .Pp -For the best performance, +For best performance, .Nm requires explicit support in device drivers; -a generic
Re: svn commit: r260161 - in head/sys/arm: arm include
On Mon, 2014-01-06 at 13:07 +0100, Zbigniew Bodek wrote: 2014/1/6 Andreas Tobler andre...@freebsd.org: On 06.01.14 03:55, Ian Lepore wrote: On Wed, 2014-01-01 at 20:03 +, Zbigniew Bodek wrote: Author: zbb Date: Wed Jan 1 20:03:48 2014 New Revision: 260161 URL: http://svnweb.freebsd.org/changeset/base/260161 Log: Add polarity and level support to ARM GIC Add suport for setting triggering level and polarity in GIC. New function pointer was added to nexus which corresponds to the function which sets level/sense in the hardware (GIC). Submitted by: Wojciech Macek w...@semihalf.com Obtained from: Semihalf Modified: head/sys/arm/arm/gic.c head/sys/arm/arm/intr.c head/sys/arm/arm/nexus.c head/sys/arm/include/intr.h [...] Modified: head/sys/arm/include/intr.h == --- head/sys/arm/include/intr.h Wed Jan 1 19:38:15 2014 (r260160) +++ head/sys/arm/include/intr.h Wed Jan 1 20:03:48 2014 (r260161) @@ -68,6 +68,7 @@ #endif #include machine/psl.h +#include sys/bus.h int arm_get_next_irq(int); void arm_mask_irq(uintptr_t); @@ -77,6 +78,8 @@ void arm_setup_irqhandler(const char *, void *, int, int, void **); int arm_remove_irqhandler(int, void *); extern void (*arm_post_filter)(void *); +extern int (*arm_config_irq)(int irq, enum intr_trigger trig, +enum intr_polarity pol); void gic_init_secondary(void); It turns out that the new #include in this change is causing the current arm tinderbox failures. Enums can't have forward decls anymore, so the fix for this may not be easy. I posted my try to fix this here: http://lists.freebsd.org/pipermail/freebsd-current/2014-January/047694.html Rebuilt 260333 successfully with it. Andreas Hello. Thank you very much. Can this be committed or are there any objections? Best regards zbb It looks good to me. It's odd that the tinderbox has been failing for several days on this, but I've been doing universe-kernel builds all weekend without running into it. I wonder what's different between tinderbox and universe in this regard? -- Ian ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r260369 - head/share/mk
Author: dim Date: Mon Jan 6 14:39:10 2014 New Revision: 260369 URL: http://svnweb.freebsd.org/changeset/base/260369 Log: Apply band-aid for 32-bit compat libs failures after r260334: put back -Qunused-arguments for clang for now, until I can figure out a way to make it unneeded in all scenarios. Sorry about the breakage. Modified: head/share/mk/bsd.sys.mk Modified: head/share/mk/bsd.sys.mk == --- head/share/mk/bsd.sys.mkMon Jan 6 12:53:15 2014(r260368) +++ head/share/mk/bsd.sys.mkMon Jan 6 14:39:10 2014(r260369) @@ -119,6 +119,7 @@ CWARNFLAGS+=-Wno-unknown-pragmas CLANG_NO_IAS= -no-integrated-as CLANG_OPT_SMALL= -mstack-alignment=8 -mllvm -inline-threshold=3\ -mllvm -enable-load-pre=false -mllvm -simplifycfg-dup-ret +CFLAGS+=-Qunused-arguments CFLAGS+=${CFLAGS.clang} CXXFLAGS+= ${CXXFLAGS.clang} .else # !CLANG ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r260311 - in head/contrib: gcc gcc/cp gcc/doc gcclibs/include gcclibs/libiberty
On Jan 5, 2014, at 5:18 PM, Pedro Giffuni p...@freebsd.org wrote: *Anyone working on a GCD-enabled version of grep or sort? :). Look at stdlib/FreeBSD/psort.c in OS X’s Libc (http://www.opensource.apple.com/release/os-x-109/Libc-997.1.1) - that’s the basis for the GCD-aware sort. I don’t know if we got around to doing grep or not - I’d have to look. :) - Jordan ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r260224 - head/sys/netinet
On Mon, Jan 6, 2014 at 12:53 AM, Yonghyeon PYUN pyu...@gmail.com wrote: On Fri, Jan 03, 2014 at 11:03:12AM +, Gleb Smirnoff wrote: Author: glebius Date: Fri Jan 3 11:03:12 2014 New Revision: 260224 URL: http://svnweb.freebsd.org/changeset/base/260224 Log: Make failure of ifpromisc() a non-fatal error. This makes it possible to run carp(4) on vtnet(4). vtnet(4) is the only device that doesn't correctly support promiscuous mode? I don't know details of vtnet(4) but it seems it's not hard to mimic promiscuous mode. I'm not sure why the driver returns ENOTSUP to user land given that vtnet(4) defaults to promiscuous mode for backwards compatibility. It also does not handle multicast filter configuration when VTNET_FLAG_CTRL_RX flag is not set. If vtnet(4) does not support multicast filter, it shouldn't announce IFF_MULTICAST. I wonder how vtnet(4) can work with carp(4) given that its multicast handling is ignored. I've talked to Gleb off-list about this. I intent to remove the default to promiscuous mode hack. Previous versions of the specification had a footnote about this, but it has since been removed. Note that both promisc and multicast likely require some host configuration on the tap/bridge/physical interfaces as well. I'll look at the multicast handling. If carp(4) already works with bhyve, we might want to add a minimalist control virtqueue support to bhyve. ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r260371 - head/sys/arm/broadcom/bcm2835
Author: ian Date: Mon Jan 6 15:48:16 2014 New Revision: 260371 URL: http://svnweb.freebsd.org/changeset/base/260371 Log: Switch to using arm_devmap_add_entry() to set up static device mapping. This eliminates the hard-coded max kva and roughly doubles the available kva space. Modified: head/sys/arm/broadcom/bcm2835/bcm2835_machdep.c Modified: head/sys/arm/broadcom/bcm2835/bcm2835_machdep.c == --- head/sys/arm/broadcom/bcm2835/bcm2835_machdep.c Mon Jan 6 14:56:00 2014(r260370) +++ head/sys/arm/broadcom/bcm2835/bcm2835_machdep.c Mon Jan 6 15:48:16 2014(r260371) @@ -59,14 +59,11 @@ __FBSDID($FreeBSD$); #include arm/broadcom/bcm2835/bcm2835_wdog.h -/* Start of address space used for bootstrap map */ -#define DEVMAP_BOOTSTRAP_MAP_START 0xE000 - vm_offset_t initarm_lastaddr(void) { - return (DEVMAP_BOOTSTRAP_MAP_START); + return (arm_devmap_lastaddr()); } void @@ -99,28 +96,16 @@ initarm_late_init(void) } } -#define FDT_DEVMAP_MAX (2) // FIXME -static struct arm_devmap_entry fdt_devmap[FDT_DEVMAP_MAX] = { - { 0, 0, 0, 0, 0, } -}; - - /* - * Construct pmap_devmap[] with DT-derived config data. + * Set up static device mappings. + * All on-chip peripherals exist in a 16MB range starting at 0x2000. + * Map the entire range using 1MB section mappings. */ int initarm_devmap_init(void) { - int i = 0; - - fdt_devmap[i].pd_va = 0xf200; - fdt_devmap[i].pd_pa = 0x2000; - fdt_devmap[i].pd_size = 0x0100; /* 1 MB */ - fdt_devmap[i].pd_prot = VM_PROT_READ | VM_PROT_WRITE; - fdt_devmap[i].pd_cache = PTE_DEVICE; - i++; - arm_devmap_register_table(fdt_devmap[0]); + arm_devmap_add_entry(0x2000, 0x0100); return (0); } ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r260372 - head/sys/arm/arm
Author: ian Date: Mon Jan 6 16:07:27 2014 New Revision: 260372 URL: http://svnweb.freebsd.org/changeset/base/260372 Log: Allow 'no static device mappings' to potentially work. It's not clear that every arm system must have some static mappings to work correctly (although currently they all do), so remove some panic() calls (which would never been seen anyway, because they would happen before a console is available). Modified: head/sys/arm/arm/devmap.c Modified: head/sys/arm/arm/devmap.c == --- head/sys/arm/arm/devmap.c Mon Jan 6 15:48:16 2014(r260371) +++ head/sys/arm/arm/devmap.c Mon Jan 6 16:07:27 2014(r260372) @@ -67,11 +67,8 @@ arm_devmap_lastaddr() if (akva_devmap_idx 0) return (akva_devmap_vaddr); - if (devmap_table == NULL) - panic(arm_devmap_lastaddr(): No devmap table registered.); - lowaddr = ARM_VECTORS_HIGH; - for (pd = devmap_table; pd-pd_size != 0; ++pd) { + for (pd = devmap_table; pd != NULL pd-pd_size != 0; ++pd) { if (lowaddr pd-pd_va) lowaddr = pd-pd_va; } @@ -145,22 +142,21 @@ arm_devmap_bootstrap(vm_offset_t l1pt, c { const struct arm_devmap_entry *pd; + devmap_bootstrap_done = true; + /* -* If given a table pointer, use it, else ensure a table was previously -* registered. This happens early in boot, and there's a good chance -* the panic message won't be seen, but there's not much we can do. +* If given a table pointer, use it. Otherwise, if a table was +* previously registered, use it. Otherwise, no work to do. */ if (table != NULL) devmap_table = table; else if (devmap_table == NULL) - panic(arm_devmap_bootstrap(): No devmap table registered); + return; for (pd = devmap_table; pd-pd_size != 0; ++pd) { pmap_map_chunk(l1pt, pd-pd_va, pd-pd_pa, pd-pd_size, pd-pd_prot,pd-pd_cache); } - - devmap_bootstrap_done = true; } /* ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r260373 - head/sys/arm/arm
Author: ian Date: Mon Jan 6 16:33:16 2014 New Revision: 260373 URL: http://svnweb.freebsd.org/changeset/base/260373 Log: Don't try to find a static mapping before calling pmap_mapdev(), that logic is now part of pmap_mapdev() and doesn't need to be duplicated here. Likewise for unmapping. Modified: head/sys/arm/arm/bus_space_generic.c Modified: head/sys/arm/arm/bus_space_generic.c == --- head/sys/arm/arm/bus_space_generic.cMon Jan 6 16:07:27 2014 (r260372) +++ head/sys/arm/arm/bus_space_generic.cMon Jan 6 16:33:16 2014 (r260373) @@ -62,16 +62,12 @@ generic_bs_map(void *t, bus_addr_t bpa, void *va; /* -* Look up the address in the static device mappings. If it's not -* there, establish a new dynamic mapping. -* * We don't even examine the passed-in flags. For ARM, the CACHEABLE * flag doesn't make sense (we create PTE_DEVICE mappings), and the * LINEAR flag is just implied because we use kva_alloc(size). */ - if ((va = arm_devmap_ptov(bpa, size)) == NULL) - if ((va = pmap_mapdev(bpa, size)) == NULL) - return (ENOMEM); + if ((va = pmap_mapdev(bpa, size)) == NULL) + return (ENOMEM); *bshp = (bus_space_handle_t)va; return (0); } @@ -90,12 +86,7 @@ void generic_bs_unmap(void *t, bus_space_handle_t h, bus_size_t size) { - /* -* If the region is static-mapped do nothing, otherwise remove the -* dynamic mapping. -*/ - if (arm_devmap_vtop((void*)h, size) == DEVMAP_PADDR_NOTFOUND) - pmap_unmapdev((vm_offset_t)h, size); + pmap_unmapdev((vm_offset_t)h, size); } void ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r260374 - head/sys/arm/allwinner
Author: ian Date: Mon Jan 6 16:57:22 2014 New Revision: 260374 URL: http://svnweb.freebsd.org/changeset/base/260374 Log: Switch to using arm_devmap_add_entry() to set up static device mapping. This eliminates the hard-coded max kva and roughly doubles the available kva space. Modified: head/sys/arm/allwinner/a10_machdep.c Modified: head/sys/arm/allwinner/a10_machdep.c == --- head/sys/arm/allwinner/a10_machdep.cMon Jan 6 16:33:16 2014 (r260373) +++ head/sys/arm/allwinner/a10_machdep.cMon Jan 6 16:57:22 2014 (r260374) @@ -50,21 +50,16 @@ __FBSDID($FreeBSD$); #include arm/allwinner/a10_wdog.h -/* Start of address space used for bootstrap map */ -#define DEVMAP_BOOTSTRAP_MAP_START 0xE000 - - vm_offset_t initarm_lastaddr(void) { - return (DEVMAP_BOOTSTRAP_MAP_START); + return (arm_devmap_lastaddr()); } void initarm_early_init(void) { - } void @@ -77,28 +72,21 @@ initarm_late_init(void) { } -#define FDT_DEVMAP_MAX (1 + 2 + 1 + 1) -static struct arm_devmap_entry fdt_devmap[FDT_DEVMAP_MAX] = { - { 0, 0, 0, 0, 0, } -}; - /* - * Construct pmap_devmap[] with DT-derived config data. + * Set up static device mappings. + * + * This covers all the on-chip device with 1MB section mappings, which is good + * for performance (uses fewer TLB entries for device access). + * + * XXX It also covers a block of SRAM and some GPU (mali400) stuff that maybe + * shouldn't be device-mapped. The original code mapped a 4MB block, but + * perhaps a 1MB block would be more appropriate. */ int initarm_devmap_init(void) { - int i = 0; - - fdt_devmap[i].pd_va = 0xE1C0; - fdt_devmap[i].pd_pa = 0x01C0; - fdt_devmap[i].pd_size = 0x0040; /* 4 MB */ - fdt_devmap[i].pd_prot = VM_PROT_READ | VM_PROT_WRITE; - fdt_devmap[i].pd_cache = PTE_DEVICE; - - i++; - arm_devmap_register_table(fdt_devmap[0]); + arm_devmap_add_entry(0x01C0, 0x0040); /* 4MB */ return (0); } ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r260375 - in head/sys/arm: arm include
Author: andreast Date: Mon Jan 6 17:16:27 2014 New Revision: 260375 URL: http://svnweb.freebsd.org/changeset/base/260375 Log: Fix arm build. Reviewed by: ian, zbb Modified: head/sys/arm/arm/trap.c head/sys/arm/include/intr.h head/sys/arm/include/psl.h Modified: head/sys/arm/arm/trap.c == --- head/sys/arm/arm/trap.c Mon Jan 6 16:57:22 2014(r260374) +++ head/sys/arm/arm/trap.c Mon Jan 6 17:16:27 2014(r260375) @@ -85,6 +85,7 @@ __FBSDID($FreeBSD$); #include sys/param.h +#include sys/bus.h #include sys/systm.h #include sys/proc.h #include sys/kernel.h Modified: head/sys/arm/include/intr.h == --- head/sys/arm/include/intr.h Mon Jan 6 16:57:22 2014(r260374) +++ head/sys/arm/include/intr.h Mon Jan 6 17:16:27 2014(r260375) @@ -67,8 +67,6 @@ #define NIRQ 32 #endif -#include machine/psl.h -#include sys/bus.h int arm_get_next_irq(int); void arm_mask_irq(uintptr_t); Modified: head/sys/arm/include/psl.h == --- head/sys/arm/include/psl.h Mon Jan 6 16:57:22 2014(r260374) +++ head/sys/arm/include/psl.h Mon Jan 6 17:16:27 2014(r260375) @@ -46,7 +46,6 @@ #ifndef _MACHINE_PSL_H_ #define _MACHINE_PSL_H_ -#include machine/intr.h /* * These are the different SPL states ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r260161 - in head/sys/arm: arm include
On 06.01.14 15:34, Ian Lepore wrote: On Mon, 2014-01-06 at 13:07 +0100, Zbigniew Bodek wrote: 2014/1/6 Andreas Tobler andre...@freebsd.org: On 06.01.14 03:55, Ian Lepore wrote: On Wed, 2014-01-01 at 20:03 +, Zbigniew Bodek wrote: Author: zbb Date: Wed Jan 1 20:03:48 2014 New Revision: 260161 URL: http://svnweb.freebsd.org/changeset/base/260161 Log: Add polarity and level support to ARM GIC Add suport for setting triggering level and polarity in GIC. New function pointer was added to nexus which corresponds to the function which sets level/sense in the hardware (GIC). Submitted by: Wojciech Macek w...@semihalf.com Obtained from: Semihalf Modified: head/sys/arm/arm/gic.c head/sys/arm/arm/intr.c head/sys/arm/arm/nexus.c head/sys/arm/include/intr.h [...] Modified: head/sys/arm/include/intr.h == --- head/sys/arm/include/intr.h Wed Jan 1 19:38:15 2014 (r260160) +++ head/sys/arm/include/intr.h Wed Jan 1 20:03:48 2014 (r260161) @@ -68,6 +68,7 @@ #endif #include machine/psl.h +#include sys/bus.h int arm_get_next_irq(int); void arm_mask_irq(uintptr_t); @@ -77,6 +78,8 @@ void arm_setup_irqhandler(const char *, void *, int, int, void **); int arm_remove_irqhandler(int, void *); extern void (*arm_post_filter)(void *); +extern int (*arm_config_irq)(int irq, enum intr_trigger trig, +enum intr_polarity pol); void gic_init_secondary(void); It turns out that the new #include in this change is causing the current arm tinderbox failures. Enums can't have forward decls anymore, so the fix for this may not be easy. I posted my try to fix this here: http://lists.freebsd.org/pipermail/freebsd-current/2014-January/047694.html Rebuilt 260333 successfully with it. Andreas Hello. Thank you very much. Can this be committed or are there any objections? Best regards zbb It looks good to me. It's odd that the tinderbox has been failing for several days on this, but I've been doing universe-kernel builds all weekend without running into it. I wonder what's different between tinderbox and universe in this regard? Thanks. Committed as r260375. As it is not my home base I wanted to have an ack from an arm dev. Andreas ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r260376 - head/sys/amd64/conf
Author: schweikh Date: Mon Jan 6 17:23:22 2014 New Revision: 260376 URL: http://svnweb.freebsd.org/changeset/base/260376 Log: Correct a grammo in a comment; remove white space at EOL. Modified: head/sys/amd64/conf/NOTES Modified: head/sys/amd64/conf/NOTES == --- head/sys/amd64/conf/NOTES Mon Jan 6 17:16:27 2014(r260375) +++ head/sys/amd64/conf/NOTES Mon Jan 6 17:23:22 2014(r260376) @@ -462,7 +462,7 @@ options SAFE_RNDTEST# enable rndtest s # # The virtio entry provides a generic bus for use by the device drivers. # It must be combined with an interface that communicates with the host. -# Multiple such interfaces defined by the VirtIO specification. FreeBSD +# Multiple such interfaces are defined by the VirtIO specification. FreeBSD # only has support for PCI. Therefore, virtio_pci must be statically # compiled in or loaded as a module for the device drivers to function. # @@ -476,7 +476,7 @@ device virtio_balloon # VirtIO Memory B device hyperv # HyperV drivers # Xen HVM Guest Optimizations -optionsXENHVM # Xen HVM kernel infrastructure +optionsXENHVM # Xen HVM kernel infrastructure device xenpci # Xen HVM Hypervisor services driver # ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r260363 - head/sys/dev/ath
On Sun, Jan 05, 2014 at 09:37:21PM -0800, Adrian Chadd wrote: On 5 January 2014 19:51, Konstantin Belousov kostik...@gmail.com wrote: On Mon, Jan 06, 2014 at 03:48:32AM +, Adrian Chadd wrote: Author: adrian Date: Mon Jan 6 03:48:32 2014 New Revision: 260363 URL: http://svnweb.freebsd.org/changeset/base/260363 Log: Correctly remove entries from the relevant receive ath_buf list before freeing them. The current code would walk the list and call the buffer free, which didn't remove it from any lists before pushing it back on the free list. Tested: AR9485, STA mode Noticed by: dil...@apollo.dragonflybsd.org This is a NOP, right ? Nope. the previous version didn't remove the entries from the list. that's the bug. Hm, you mean that the previous version did not TAILQ_INIT() after the loop ? Then I agree. pgpLDn9UBNC9W.pgp Description: PGP signature
svn commit: r260377 - head/sys/netpfil/pf
Author: glebius Date: Mon Jan 6 19:05:04 2014 New Revision: 260377 URL: http://svnweb.freebsd.org/changeset/base/260377 Log: When pf_get_translation() fails, it should leave *sn pointer pristine, otherwise we will panic in pf_test_rule(). PR: 182557 Modified: head/sys/netpfil/pf/pf_lb.c Modified: head/sys/netpfil/pf/pf_lb.c == --- head/sys/netpfil/pf/pf_lb.c Mon Jan 6 17:23:22 2014(r260376) +++ head/sys/netpfil/pf/pf_lb.c Mon Jan 6 19:05:04 2014(r260377) @@ -686,6 +686,7 @@ notrans: uma_zfree(V_pf_state_key_z, *nkp); uma_zfree(V_pf_state_key_z, *skp); *skp = *nkp = NULL; + *sn = NULL; return (NULL); } ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r260378 - releng/10.0/sys/netinet
Author: glebius Date: Mon Jan 6 19:14:46 2014 New Revision: 260378 URL: http://svnweb.freebsd.org/changeset/base/260378 Log: Merge r260319 from stable/10 (r260188 from head): Fix regression from r249894. Now we pass gw as argument to if_output method, thus for multicast case we need it to point at dst. PR: 185395 Approved by: re (gjb) Modified: releng/10.0/sys/netinet/ip_output.c Directory Properties: releng/10.0/ (props changed) Modified: releng/10.0/sys/netinet/ip_output.c == --- releng/10.0/sys/netinet/ip_output.c Mon Jan 6 19:05:04 2014 (r260377) +++ releng/10.0/sys/netinet/ip_output.c Mon Jan 6 19:14:46 2014 (r260378) @@ -331,6 +331,12 @@ again: if (IN_MULTICAST(ntohl(ip-ip_dst.s_addr))) { m-m_flags |= M_MCAST; /* +* IP destination address is multicast. Make sure gw +* still points to the address in ro. (It may have been +* changed to point to a gateway address, above.) +*/ + gw = dst; + /* * See if the caller provided any multicast options */ if (imo != NULL) { ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r260363 - head/sys/dev/ath
On 6 January 2014 09:37, Konstantin Belousov kostik...@gmail.com wrote: This is a NOP, right ? Nope. the previous version didn't remove the entries from the list. that's the bug. Hm, you mean that the previous version did not TAILQ_INIT() after the loop ? Then I agree. Well, it's that the frames just get moved between the RX queue active list(s) or the rxbuf inactive list. The correct thing to do is to TAILQ_REMOVE them from one list before adding them to the free list. -a ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r260379 - head/sys/net
Author: melifaro Date: Mon Jan 6 22:36:20 2014 New Revision: 260379 URL: http://svnweb.freebsd.org/changeset/base/260379 Log: Partially fix IPv4 interface routes deletion in RADIX_MPATH. Noticed by: Nikolay Denev ndenev at gmail.com MFC after:1 month Modified: head/sys/net/radix_mpath.c head/sys/net/route.c Modified: head/sys/net/radix_mpath.c == --- head/sys/net/radix_mpath.c Mon Jan 6 19:14:46 2014(r260378) +++ head/sys/net/radix_mpath.c Mon Jan 6 22:36:20 2014(r260379) @@ -112,11 +112,16 @@ rt_mpath_matchgate(struct rtentry *rt, s if (rt-rt_gateway-sa_family == AF_LINK) { if (!memcmp(rt-rt_ifa-ifa_addr, gate, gate-sa_len)) break; - } else { - if (rt-rt_gateway-sa_len == gate-sa_len - !memcmp(rt-rt_gateway, gate, gate-sa_len)) - break; } + + /* +* Check for other options: +* 1) Routes with 'real' IPv4/IPv6 gateway +* 2) Loopback host routes (another AF_LINK/sockadd_dl check) +* */ + if (rt-rt_gateway-sa_len == gate-sa_len + !memcmp(rt-rt_gateway, gate, gate-sa_len)) + break; } while ((rn = rn_mpath_next(rn)) != NULL); return (struct rtentry *)rn; Modified: head/sys/net/route.c == --- head/sys/net/route.cMon Jan 6 19:14:46 2014(r260378) +++ head/sys/net/route.cMon Jan 6 22:36:20 2014(r260379) @@ -1547,10 +1547,10 @@ rtinit1(struct ifaddr *ifa, int cmd, int /* this table doesn't exist but others might */ continue; RADIX_NODE_HEAD_RLOCK(rnh); + rn = rnh-rnh_lookup(dst, netmask, rnh); #ifdef RADIX_MPATH if (rn_mpath_capable(rnh)) { - rn = rnh-rnh_matchaddr(dst, rnh); if (rn == NULL) error = ESRCH; else { @@ -1564,13 +1564,11 @@ rtinit1(struct ifaddr *ifa, int cmd, int */ rt = rt_mpath_matchgate(rt, ifa-ifa_addr); - if (!rt) + if (rt == NULL) error = ESRCH; } } - else #endif - rn = rnh-rnh_lookup(dst, netmask, rnh); error = (rn == NULL || (rn-rn_flags RNF_ROOT) || RNTORT(rn)-rt_ifa != ifa); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r260380 - head/sys/amd64/vmm/intel
Author: neel Date: Mon Jan 6 23:16:39 2014 New Revision: 260380 URL: http://svnweb.freebsd.org/changeset/base/260380 Log: Split the VMCS setup between 'vmcs_init()' that does initialization and 'vmx_vminit()' that does customization. This makes it easier to turn on optional features (e.g. APICv) without having to keep adding new parameters to 'vmcs_set_defaults()'. Reviewed by: grehan@ Modified: head/sys/amd64/vmm/intel/vmcs.c head/sys/amd64/vmm/intel/vmcs.h head/sys/amd64/vmm/intel/vmx.c Modified: head/sys/amd64/vmm/intel/vmcs.c == --- head/sys/amd64/vmm/intel/vmcs.c Mon Jan 6 22:36:20 2014 (r260379) +++ head/sys/amd64/vmm/intel/vmcs.c Mon Jan 6 23:16:39 2014 (r260380) @@ -315,11 +315,7 @@ done: } int -vmcs_set_defaults(struct vmcs *vmcs, - u_long host_rip, u_long host_rsp, uint64_t eptp, - uint32_t pinbased_ctls, uint32_t procbased_ctls, - uint32_t procbased_ctls2, uint32_t exit_ctls, - uint32_t entry_ctls, u_long msr_bitmap, uint16_t vpid) +vmcs_init(struct vmcs *vmcs) { int error, codesel, datasel, tsssel; u_long cr0, cr4, efer; @@ -335,22 +331,6 @@ vmcs_set_defaults(struct vmcs *vmcs, */ VMPTRLD(vmcs); - /* -* Load the VMX controls -*/ - if ((error = vmwrite(VMCS_PIN_BASED_CTLS, pinbased_ctls)) != 0) - goto done; - if ((error = vmwrite(VMCS_PRI_PROC_BASED_CTLS, procbased_ctls)) != 0) - goto done; - if ((error = vmwrite(VMCS_SEC_PROC_BASED_CTLS, procbased_ctls2)) != 0) - goto done; - if ((error = vmwrite(VMCS_EXIT_CTLS, exit_ctls)) != 0) - goto done; - if ((error = vmwrite(VMCS_ENTRY_CTLS, entry_ctls)) != 0) - goto done; - - /* Guest state */ - /* Initialize guest IA32_PAT MSR with the default value */ pat = PAT_VALUE(0, PAT_WRITE_BACK) | PAT_VALUE(1, PAT_WRITE_THROUGH) | @@ -422,23 +402,7 @@ vmcs_set_defaults(struct vmcs *vmcs, goto done; /* instruction pointer */ - if ((error = vmwrite(VMCS_HOST_RIP, host_rip)) != 0) - goto done; - - /* stack pointer */ - if ((error = vmwrite(VMCS_HOST_RSP, host_rsp)) != 0) - goto done; - - /* eptp */ - if ((error = vmwrite(VMCS_EPTP, eptp)) != 0) - goto done; - - /* vpid */ - if ((error = vmwrite(VMCS_VPID, vpid)) != 0) - goto done; - - /* msr bitmap */ - if ((error = vmwrite(VMCS_MSR_BITMAP, msr_bitmap)) != 0) + if ((error = vmwrite(VMCS_HOST_RIP, (u_long)vmx_exit_guest)) != 0) goto done; /* exception bitmap */ Modified: head/sys/amd64/vmm/intel/vmcs.h == --- head/sys/amd64/vmm/intel/vmcs.h Mon Jan 6 22:36:20 2014 (r260379) +++ head/sys/amd64/vmm/intel/vmcs.h Mon Jan 6 23:16:39 2014 (r260380) @@ -46,12 +46,7 @@ struct msr_entry { }; int vmcs_set_msr_save(struct vmcs *vmcs, u_long g_area, u_int g_count); -intvmcs_set_defaults(struct vmcs *vmcs, u_long host_rip, u_long host_rsp, - uint64_t eptp, - uint32_t pinbased_ctls, uint32_t procbased_ctls, - uint32_t procbased_ctls2, uint32_t exit_ctls, - uint32_t entry_ctls, u_long msr_bitmap, - uint16_t vpid); +intvmcs_init(struct vmcs *vmcs); intvmcs_getreg(struct vmcs *vmcs, int running, int ident, uint64_t *rv); intvmcs_setreg(struct vmcs *vmcs, int running, int ident, uint64_t val); intvmcs_getdesc(struct vmcs *vmcs, int ident, Modified: head/sys/amd64/vmm/intel/vmx.c == --- head/sys/amd64/vmm/intel/vmx.c Mon Jan 6 22:36:20 2014 (r260379) +++ head/sys/amd64/vmm/intel/vmx.c Mon Jan 6 23:16:39 2014 (r260380) @@ -678,6 +678,7 @@ vmx_vminit(struct vm *vm, pmap_t pmap) uint16_t vpid[VM_MAXCPU]; int i, error, guest_msr_count; struct vmx *vmx; + struct vmcs *vmcs; vmx = malloc(sizeof(struct vmx), M_VMX, M_WAITOK | M_ZERO); if ((uintptr_t)vmx PAGE_MASK) { @@ -743,26 +744,30 @@ vmx_vminit(struct vm *vm, pmap_t pmap) vpid_alloc(vpid, VM_MAXCPU); for (i = 0; i VM_MAXCPU; i++) { - vmx-vmcs[i].identifier = vmx_revision(); - error = vmclear(vmx-vmcs[i]); + vmcs = vmx-vmcs[i]; + vmcs-identifier = vmx_revision(); + error = vmclear(vmcs); if (error != 0) { panic(vmx_vminit: vmclear error %d on vcpu %d\n, error, i);
svn commit: r260381 - head/sbin/nvmecontrol
Author: jimharris Date: Mon Jan 6 23:48:47 2014 New Revision: 260381 URL: http://svnweb.freebsd.org/changeset/base/260381 Log: For nvmecontrol devlist, show namespace sizes in terms of MB instead of GB to improve granularity of the reporting - especially for namespaces that are on the order of 1 or 2 GB. Submitted by: Tony Beltran anthony.belt...@emc.com MFC after:3 days Modified: head/sbin/nvmecontrol/devlist.c Modified: head/sbin/nvmecontrol/devlist.c == --- head/sbin/nvmecontrol/devlist.c Mon Jan 6 23:16:39 2014 (r260380) +++ head/sbin/nvmecontrol/devlist.c Mon Jan 6 23:48:47 2014 (r260381) @@ -99,11 +99,11 @@ devlist(int argc, char *argv[]) sprintf(name, %s%d%s%d, NVME_CTRLR_PREFIX, ctrlr, NVME_NS_PREFIX, i+1); read_namespace_data(fd, i+1, nsdata); - printf( %10s (%lldGB)\n, + printf( %10s (%lldMB)\n, name, nsdata.nsze * (long long)ns_get_sector_size(nsdata) / - 1024 / 1024 / 1024); + 1024 / 1024); } close(fd); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r260382 - head/sys/dev/nvme
Author: jimharris Date: Mon Jan 6 23:51:26 2014 New Revision: 260382 URL: http://svnweb.freebsd.org/changeset/base/260382 Log: For IDENTIFY passthrough commands to Chatham prototype controllers, copy the spoofed identify data into the user buffer rather than issuing the command to the controller, since Chatham IDENTIFY data is always spoofed. While here, fix a bug in the spoofed data for Chatham submission and completion queue entry sizes. Sponsored by: Intel MFC after:3 days Modified: head/sys/dev/nvme/nvme_ctrlr.c Modified: head/sys/dev/nvme/nvme_ctrlr.c == --- head/sys/dev/nvme/nvme_ctrlr.c Mon Jan 6 23:48:47 2014 (r260381) +++ head/sys/dev/nvme/nvme_ctrlr.c Mon Jan 6 23:51:26 2014 (r260382) @@ -181,8 +181,8 @@ nvme_chatham_populate_cdata(struct nvme_ cdata-lpa.ns_smart = 1; cdata-sqes.min = 6; cdata-sqes.max = 6; - cdata-sqes.min = 4; - cdata-sqes.max = 4; + cdata-cqes.min = 4; + cdata-cqes.max = 4; cdata-nn = 1; /* Chatham2 doesn't support DSM command */ @@ -1041,6 +1041,27 @@ nvme_ctrlr_ioctl(struct cdev *cdev, u_lo break; case NVME_PASSTHROUGH_CMD: pt = (struct nvme_pt_command *)arg; +#ifdef CHATHAM2 + /* +* Chatham IDENTIFY data is spoofed, so copy the spoofed data +* rather than issuing the command to the Chatham controller. +*/ + if (pci_get_devid(ctrlr-dev) == CHATHAM_PCI_ID +pt-cmd.opc == NVME_OPC_IDENTIFY) { + if (pt-cmd.cdw10 == 1) { + if (pt-len != sizeof(ctrlr-cdata)) + return (EINVAL); + return (copyout(ctrlr-cdata, pt-buf, + pt-len)); + } else { + if (pt-len != sizeof(ctrlr-ns[0].data) || + pt-cmd.nsid != 1) + return (EINVAL); + return (copyout(ctrlr-ns[0].data, pt-buf, + pt-len)); + } + } +#endif return (nvme_ctrlr_passthrough_cmd(ctrlr, pt, pt-cmd.nsid, 1 /* is_user_buffer */, 1 /* is_admin_cmd */)); default: ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r260383 - in head/sys/amd64/vmm: . intel io
Author: neel Date: Tue Jan 7 00:38:22 2014 New Revision: 260383 URL: http://svnweb.freebsd.org/changeset/base/260383 Log: Allow vlapic_set_intr_ready() to return a value that indicates whether or not the vcpu should be kicked to process a pending interrupt. This will be useful in the implementation of the Posted Interrupt APICv feature. Change the return value of 'vlapic_pending_intr()' to indicate whether or not an interrupt is available to be delivered to the vcpu depending on the value of the PPR. Add KTR tracepoints to debug guest IPI delivery. Modified: head/sys/amd64/vmm/intel/vmx.c head/sys/amd64/vmm/io/vlapic.c head/sys/amd64/vmm/io/vlapic.h head/sys/amd64/vmm/vmm.c head/sys/amd64/vmm/vmm_lapic.c Modified: head/sys/amd64/vmm/intel/vmx.c == --- head/sys/amd64/vmm/intel/vmx.c Mon Jan 6 23:51:26 2014 (r260382) +++ head/sys/amd64/vmm/intel/vmx.c Tue Jan 7 00:38:22 2014 (r260383) @@ -989,8 +989,7 @@ vmx_inject_interrupts(struct vmx *vmx, i return; /* Ask the local apic for a vector to inject */ - vector = vlapic_pending_intr(vlapic); - if (vector 0) + if (!vlapic_pending_intr(vlapic, vector)) return; if (vector 32 || vector 255) Modified: head/sys/amd64/vmm/io/vlapic.c == --- head/sys/amd64/vmm/io/vlapic.c Mon Jan 6 23:51:26 2014 (r260382) +++ head/sys/amd64/vmm/io/vlapic.c Tue Jan 7 00:38:22 2014 (r260383) @@ -289,27 +289,29 @@ vlapic_esr_write_handler(struct vlapic * vlapic-esr_pending = 0; } -void +int vlapic_set_intr_ready(struct vlapic *vlapic, int vector, bool level) { - struct LAPIC*lapic = vlapic-apic_page; - uint32_t*irrptr, *tmrptr, mask; - int idx; + struct LAPIC *lapic; + uint32_t *irrptr, *tmrptr, mask; + int idx; - if (vector 0 || vector = 256) - panic(vlapic_set_intr_ready: invalid vector %d\n, vector); + KASSERT(vector = 0 vector 256, (invalid vector %d, vector)); + lapic = vlapic-apic_page; if (!(lapic-svr APIC_SVR_ENABLE)) { VLAPIC_CTR1(vlapic, vlapic is software disabled, ignoring interrupt %d, vector); - return; + return (0); } if (vector 16) { vlapic_set_error(vlapic, APIC_ESR_RECEIVE_ILLEGAL_VECTOR); - return; + VLAPIC_CTR1(vlapic, vlapic ignoring interrupt to vector %d, + vector); + return (1); } - + idx = (vector / 32) * 4; mask = 1 (vector % 32); @@ -328,6 +330,7 @@ vlapic_set_intr_ready(struct vlapic *vla atomic_clear_int(tmrptr[idx], mask); VLAPIC_CTR_IRR(vlapic, vlapic_set_intr_ready); + return (1); } static __inline uint32_t * @@ -473,8 +476,8 @@ vlapic_fire_lvt(struct vlapic *vlapic, u vlapic_set_error(vlapic, APIC_ESR_SEND_ILLEGAL_VECTOR); return (0); } - vlapic_set_intr_ready(vlapic, vec, false); - vcpu_notify_event(vlapic-vm, vlapic-vcpuid, true); + if (vlapic_set_intr_ready(vlapic, vec, false)) + vcpu_notify_event(vlapic-vm, vlapic-vcpuid, true); break; case APIC_LVT_DM_NMI: vm_inject_nmi(vlapic-vm, vlapic-vcpuid); @@ -935,9 +938,12 @@ vlapic_icrlo_write_handler(struct vlapic if (mode == APIC_DELMODE_FIXED vec 16) { vlapic_set_error(vlapic, APIC_ESR_SEND_ILLEGAL_VECTOR); + VLAPIC_CTR1(vlapic, Ignoring invalid IPI %d, vec); return (0); } - + + VLAPIC_CTR2(vlapic, icrlo 0x%016lx triggered ipi %d, icrval, vec); + if (mode == APIC_DELMODE_FIXED || mode == APIC_DELMODE_NMI) { switch (icrval APIC_DEST_MASK) { case APIC_DEST_DESTFLD: @@ -967,8 +973,13 @@ vlapic_icrlo_write_handler(struct vlapic lapic_intr_edge(vlapic-vm, i, vec); vmm_stat_array_incr(vlapic-vm, vlapic-vcpuid, IPIS_SENT, i, 1); - } else + VLAPIC_CTR2(vlapic, vlapic sending ipi %d + to vcpuid %d, vec, i); + } else { vm_inject_nmi(vlapic-vm, i); + VLAPIC_CTR1(vlapic, vlapic sending ipi nmi + to vcpuid %d, i); + } } return (0); /* handled completely in the kernel */ @@ -1023,7 +1034,7 @@
svn commit: r260384 - in head/sys: conf kern
Author: adrian Date: Tue Jan 7 01:17:27 2014 New Revision: 260384 URL: http://svnweb.freebsd.org/changeset/base/260384 Log: Add a compile-time control over the size of KN_HASHSIZE. This is needed for applications that use a lot of non-filedescriptor knotes. MFC after:1 week Sponsored by: Netflix, Inc. Modified: head/sys/conf/options head/sys/kern/kern_event.c Modified: head/sys/conf/options == --- head/sys/conf/options Tue Jan 7 00:38:22 2014(r260383) +++ head/sys/conf/options Tue Jan 7 01:17:27 2014(r260384) @@ -128,6 +128,7 @@ GEOM_VOLopt_geom.h GEOM_ZERO opt_geom.h KDTRACE_HOOKS opt_global.h KDTRACE_FRAME opt_kdtrace.h +KN_HASHSIZEopt_kqueue.h KSTACK_MAX_PAGES KSTACK_PAGES KTRACE Modified: head/sys/kern/kern_event.c == --- head/sys/kern/kern_event.c Tue Jan 7 00:38:22 2014(r260383) +++ head/sys/kern/kern_event.c Tue Jan 7 01:17:27 2014(r260384) @@ -30,6 +30,7 @@ __FBSDID($FreeBSD$); #include opt_ktrace.h +#include opt_kqueue.h #include sys/param.h #include sys/systm.h @@ -250,7 +251,10 @@ SYSCTL_UINT(_kern, OID_AUTO, kq_calloutm #defineKNL_ASSERT_UNLOCKED(knl) do {} while (0) #endif /* INVARIANTS */ +#ifndefKN_HASHSIZE #defineKN_HASHSIZE 64 /* XXX should be tunable */ +#endif + #define KN_HASH(val, mask) (((val) ^ (val 8)) (mask)) static int ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r260385 - in stable/10/sys: cam/ata cam/scsi cddl/contrib/opensolaris/uts/common/fs/zfs dev/md geom geom/concat geom/gate geom/mirror geom/multipath geom/nop geom/part geom/raid geom/st...
Author: scottl Date: Tue Jan 7 01:32:23 2014 New Revision: 260385 URL: http://svnweb.freebsd.org/changeset/base/260385 Log: MFC Alexander Motin's GEOM direct dispatch work: r256603: Introduce new function devstat_end_transaction_bio_bt(), adding new argument to specify present time. Use this function to move binuptime() out of lock, substantially reducing lock congestion when slow timecounter is used. r256606: Move g_io_deliver() out of the lock, as required for direct dispatch. Move g_destroy_bio() out too to reduce lock scope even more. r256607: Fix passing uninitialized bio_resid argument to g_trace(). r256610: Add unmapped I/O support to GEOM RAID. r256830: Restore BIO_UNMAPPED and BIO_TRANSIENT_MAPPING in biodonne() when unmapping temporary mapped buffer. That fixes double unmap if biodone() called twice for the same BIO (but with different done methods). r256880: Merge GEOM direct dispatch changes from the projects/camlock branch. When safety requirements are met, it allows to avoid passing I/O requests to GEOM g_up/g_down thread, executing them directly in the caller context. That allows to avoid CPU bottlenecks in g_up/g_down threads, plus avoid several context switches per I/O. r259247: Fix bug introduced at r256607. We have to recalculate bp_resid here since sizes of original and completed requests may differ due to end of media. Testing of the stable/10 merge was done by Netflix, but all of the credit goes to Alexander and iX Systems. Submitted by: mav Sponsored by: iX Systems Modified: stable/10/sys/cam/ata/ata_da.c stable/10/sys/cam/scsi/scsi_da.c stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c stable/10/sys/dev/md/md.c stable/10/sys/geom/concat/g_concat.c stable/10/sys/geom/concat/g_concat.h stable/10/sys/geom/gate/g_gate.c stable/10/sys/geom/geom.h stable/10/sys/geom/geom_dev.c stable/10/sys/geom/geom_disk.c stable/10/sys/geom/geom_disk.h stable/10/sys/geom/geom_int.h stable/10/sys/geom/geom_io.c stable/10/sys/geom/geom_kern.c stable/10/sys/geom/geom_slice.c stable/10/sys/geom/geom_vfs.c stable/10/sys/geom/mirror/g_mirror.c stable/10/sys/geom/mirror/g_mirror.h stable/10/sys/geom/multipath/g_multipath.c stable/10/sys/geom/nop/g_nop.c stable/10/sys/geom/nop/g_nop.h stable/10/sys/geom/part/g_part.c stable/10/sys/geom/raid/g_raid.c stable/10/sys/geom/raid/g_raid.h stable/10/sys/geom/raid/md_ddf.c stable/10/sys/geom/raid/md_intel.c stable/10/sys/geom/raid/md_jmicron.c stable/10/sys/geom/raid/md_nvidia.c stable/10/sys/geom/raid/md_promise.c stable/10/sys/geom/raid/md_sii.c stable/10/sys/geom/raid/tr_concat.c stable/10/sys/geom/raid/tr_raid0.c stable/10/sys/geom/raid/tr_raid1.c stable/10/sys/geom/raid/tr_raid1e.c stable/10/sys/geom/raid/tr_raid5.c stable/10/sys/geom/stripe/g_stripe.c stable/10/sys/geom/stripe/g_stripe.h stable/10/sys/geom/zero/g_zero.c stable/10/sys/kern/subr_devstat.c stable/10/sys/kern/vfs_bio.c stable/10/sys/sys/devicestat.h stable/10/sys/sys/proc.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/cam/ata/ata_da.c == --- stable/10/sys/cam/ata/ata_da.c Tue Jan 7 01:17:27 2014 (r260384) +++ stable/10/sys/cam/ata/ata_da.c Tue Jan 7 01:32:23 2014 (r260385) @@ -1254,7 +1254,7 @@ adaregister(struct cam_periph *periph, v maxio = min(maxio, 256 * softc-params.secsize); softc-disk-d_maxsize = maxio; softc-disk-d_unit = periph-unit_number; - softc-disk-d_flags = 0; + softc-disk-d_flags = DISKFLAG_DIRECT_COMPLETION; if (softc-flags ADA_FLAG_CAN_FLUSHCACHE) softc-disk-d_flags |= DISKFLAG_CANFLUSHCACHE; if (softc-flags ADA_FLAG_CAN_TRIM) { Modified: stable/10/sys/cam/scsi/scsi_da.c == --- stable/10/sys/cam/scsi/scsi_da.cTue Jan 7 01:17:27 2014 (r260384) +++ stable/10/sys/cam/scsi/scsi_da.cTue Jan 7 01:32:23 2014 (r260385) @@ -2133,7 +2133,7 @@ daregister(struct cam_periph *periph, vo else softc-disk-d_maxsize = cpi.maxio; softc-disk-d_unit = periph-unit_number; - softc-disk-d_flags = 0; + softc-disk-d_flags = DISKFLAG_DIRECT_COMPLETION; if ((softc-quirks DA_Q_NO_SYNC_CACHE) == 0) softc-disk-d_flags |= DISKFLAG_CANFLUSHCACHE; if ((cpi.hba_misc PIM_UNMAPPED) != 0) Modified: stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c == --- stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c Tue Jan 7 01:17:27 2014(r260384) +++
svn commit: r260386 - in head/contrib/gperf: doc src
Author: pfg Date: Tue Jan 7 01:40:49 2014 New Revision: 260386 URL: http://svnweb.freebsd.org/changeset/base/260386 Log: gperf: reverse size_type patch from r258115. Silencing the broken warning as done in r258139 renders the code unreacheable. An option could've been to turn off the warnings in gperf but given that the code is not being used it is better to just revert the original change altogether. This code was never MFC'd. Modified: head/contrib/gperf/doc/gperf.1 head/contrib/gperf/src/options.cc head/contrib/gperf/src/options.h head/contrib/gperf/src/options.icc head/contrib/gperf/src/output.cc Modified: head/contrib/gperf/doc/gperf.1 == --- head/contrib/gperf/doc/gperf.1 Tue Jan 7 01:32:23 2014 (r260385) +++ head/contrib/gperf/doc/gperf.1 Tue Jan 7 01:40:49 2014 (r260386) @@ -1,7 +1,7 @@ .\ DO NOT MODIFY THIS FILE! It was generated by help2man 1.23. -.TH GPERF 1 October 2011 GNU gperf 3.0.3 FSF +.TH GPERF 1 May 2007 GNU gperf 3.0.3 FSF .SH NAME -gperf \- manual page for gperf 3.0.3 +gperf \- generate a perfect hash function from a key set .SH SYNOPSIS .B gperf [\fIOPTION\fR]... [\fIINPUT-FILE\fR] @@ -129,10 +129,6 @@ binary search. Prevents the transfer of the type declaration to the output file. Use this option if the type is already defined elsewhere. -.TP -\fB\-\-size\-type\fR=\fITYPE\fR -Specify the type for length parameters. Default type is -\'unsigned int'. .SS Algorithm employed by gperf: .TP \fB\-k\fR, \fB\-\-key\-positions\fR=\fIKEYS\fR Modified: head/contrib/gperf/src/options.cc == --- head/contrib/gperf/src/options.cc Tue Jan 7 01:32:23 2014 (r260385) +++ head/contrib/gperf/src/options.cc Tue Jan 7 01:40:49 2014 (r260386) @@ -67,8 +67,6 @@ static const char *const DEFAULT_STRINGP /* Default delimiters that separate keywords from their attributes. */ static const char *const DEFAULT_DELIMITERS = ,; -static const char *const DEFAULT_SIZE_TYPE = unsigned int; - /* Prints program usage to given stream. */ void @@ -204,9 +202,6 @@ Options::long_usage (FILE * stream) Prevents the transfer of the type declaration to the\n output file. Use this option if the type is already\n defined elsewhere.\n); - fprintf (stream, - --size-type=TYPE Specify the type for length parameters. Default type is\n - 'unsigned int'.\n); fprintf (stream, \n); fprintf (stream, Algorithm employed by gperf:\n); @@ -475,7 +470,6 @@ Options::Options () _lengthtable_name (DEFAULT_LENGTHTABLE_NAME), _stringpool_name (DEFAULT_STRINGPOOL_NAME), _delimiters (DEFAULT_DELIMITERS), -_size_type (DEFAULT_SIZE_TYPE), _key_positions () { } @@ -520,7 +514,6 @@ Options::~Options () \nhash table size multiplier = %g \ninitial associated value = %d \ndelimiters = %s - \nsize type = %s \nnumber of switch statements = %d\n, _option_word TYPE ? enabled : disabled, _option_word UPPERLOWER ? enabled : disabled, @@ -546,7 +539,7 @@ Options::~Options () _function_name, _hash_name, _wordlist_name, _lengthtable_name, _stringpool_name, _slot_name, _initializer_suffix, _asso_iterations, _jump, _size_multiple, _initial_asso_value, - _delimiters, _size_type, _total_switches); + _delimiters, _total_switches); if (_key_positions.is_useall()) fprintf (stderr, all characters are used in the hash function\n); else @@ -675,12 +668,6 @@ Options::set_delimiters (const char *del _delimiters = delimiters; } -void -Options::set_size_type (const char *size_type) -{ - if (_size_type == DEFAULT_SIZE_TYPE) -_size_type = size_type; -} /* Parses the command line Options and sets appropriate flags in option_word. */ @@ -706,7 +693,6 @@ static const struct option long_options[ { global-table, no_argument, NULL, 'G' }, { word-array-name, required_argument, NULL, 'W' }, { length-table-name, required_argument, NULL, CHAR_MAX + 4 }, - { size-type, required_argument, NULL, CHAR_MAX + 5 }, { switch, required_argument, NULL, 'S' }, { omit-struct-type, no_argument, NULL, 'T' }, { key-positions, required_argument, NULL, 'k' }, @@ -1060,11 +1046,6 @@ warranty; not even for MERCHANTABILITY o _lengthtable_name = /*getopt*/optarg; break; } -case CHAR_MAX + 5: /* Sets the name for the length table array. */ - { -_size_type = /*getopt*/optarg; -break; - } default:
svn commit: r260387 - in stable/10/sys: cam cam/ata cam/ctl cam/scsi dev/ahci dev/ata dev/isp dev/mvs dev/siis kern
Author: scottl Date: Tue Jan 7 01:51:48 2014 New Revision: 260387 URL: http://svnweb.freebsd.org/changeset/base/260387 Log: MFC Alexander Motin's direct dispatch, multi-queue, and finer-grained locking support for CAM r256826: Fix several target mode SIMs to not blindly clear ccb_h.flags field of ATIO CCBs. Not all CCB flags there belong to them. r256836: Remove hard limit on number of BIOs handled with one ATA TRIM request. r256843: Merge CAM locking changes from the projects/camlock branch to radically reduce lock congestion and improve SMP scalability of the SCSI/ATA stack, preparing the ground for the coming next GEOM direct dispatch support. r256888: Unconditionally acquire periph reference on CCB allocation failure. r256895: Fix memory and references leak due to unfreed path. r256960: Move CAM_UNQUEUED_INDEX setting to the last moment and under the periph lock. This fixes race condition with cam_periph_ccbwait(), causing use-after-free. r256975: Minor (mostly cosmetical) addition to r256960. r257054: Some microoptimizations for da and ada drivers: - Replace ordered_tag_count counter with single flag; - From da remove outstanding_cmds counter, duplicating pending_ccbs list; - From da_softc remove unused links field. r257482: Fix lock recursion, triggered by `smartctl -a /dev/adaX`. r257501: Make getenv_*() functions and respectively TUNABLE_*_FETCH() macros not allocate memory and so not require sleepable environment. getenv() has already used on-stack temporary storage, so just use it more rationally. getenv_string() receives buffer as argument, so don't need another one. r257914: Some CAM locks polishing: - Fix LOR and possible lock recursion when handling high-power commands. Introduce new lock to protect left power quota and list of frozen devices. - Correct locking around xpt periph creation. - Remove seems never used XPT_FLAG_OPEN xpt periph flag. Again, Netflix assisted with testing the merge, but all of the credit goes to Alexander and iX Systems. Submitted by: mav Sponsored by: iX Systems Modified: stable/10/sys/cam/ata/ata_da.c stable/10/sys/cam/ata/ata_pmp.c stable/10/sys/cam/ata/ata_xpt.c stable/10/sys/cam/cam_ccb.h stable/10/sys/cam/cam_periph.c stable/10/sys/cam/cam_periph.h stable/10/sys/cam/cam_queue.c stable/10/sys/cam/cam_queue.h stable/10/sys/cam/cam_sim.c stable/10/sys/cam/cam_sim.h stable/10/sys/cam/cam_xpt.c stable/10/sys/cam/cam_xpt.h stable/10/sys/cam/cam_xpt_internal.h stable/10/sys/cam/cam_xpt_sim.h stable/10/sys/cam/ctl/ctl_frontend_cam_sim.c stable/10/sys/cam/ctl/scsi_ctl.c stable/10/sys/cam/scsi/scsi_cd.c stable/10/sys/cam/scsi/scsi_ch.c stable/10/sys/cam/scsi/scsi_da.c stable/10/sys/cam/scsi/scsi_enc.c stable/10/sys/cam/scsi/scsi_enc_internal.h stable/10/sys/cam/scsi/scsi_enc_safte.c stable/10/sys/cam/scsi/scsi_enc_ses.c stable/10/sys/cam/scsi/scsi_pass.c stable/10/sys/cam/scsi/scsi_pt.c stable/10/sys/cam/scsi/scsi_sa.c stable/10/sys/cam/scsi/scsi_sg.c stable/10/sys/cam/scsi/scsi_targ_bh.c stable/10/sys/cam/scsi/scsi_target.c stable/10/sys/cam/scsi/scsi_xpt.c stable/10/sys/dev/ahci/ahci.c stable/10/sys/dev/ahci/ahci.h stable/10/sys/dev/ata/ata-all.c stable/10/sys/dev/isp/isp_freebsd.c stable/10/sys/dev/mvs/mvs.c stable/10/sys/dev/siis/siis.c stable/10/sys/kern/kern_environment.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/cam/ata/ata_da.c == --- stable/10/sys/cam/ata/ata_da.c Tue Jan 7 01:40:49 2014 (r260386) +++ stable/10/sys/cam/ata/ata_da.c Tue Jan 7 01:51:48 2014 (r260387) @@ -80,7 +80,7 @@ typedef enum { ADA_FLAG_CAN_NCQ= 0x0008, ADA_FLAG_CAN_DMA= 0x0010, ADA_FLAG_NEED_OTAG = 0x0020, - ADA_FLAG_WENT_IDLE = 0x0040, + ADA_FLAG_WAS_OTAG = 0x0040, ADA_FLAG_CAN_TRIM = 0x0080, ADA_FLAG_OPEN = 0x0100, ADA_FLAG_SCTX_INIT = 0x0200, @@ -103,7 +103,6 @@ typedef enum { ADA_CCB_RAHEAD = 0x01, ADA_CCB_WCACHE = 0x02, ADA_CCB_BUFFER_IO = 0x03, - ADA_CCB_WAITING = 0x04, ADA_CCB_DUMP= 0x05, ADA_CCB_TRIM= 0x06, ADA_CCB_TYPE_MASK = 0x0F, @@ -123,21 +122,20 @@ struct disk_params { #define TRIM_MAX_BLOCKS8 #define TRIM_MAX_RANGES(TRIM_MAX_BLOCKS * ATA_DSM_BLK_RANGES) -#define TRIM_MAX_BIOS (TRIM_MAX_RANGES * 4) struct trim_request { uint8_t data[TRIM_MAX_RANGES * ATA_DSM_RANGE_SIZE]; - struct bio *bps[TRIM_MAX_BIOS]; + TAILQ_HEAD(, bio) bps; }; struct ada_softc { struct bio_queue_head bio_queue; struct bio_queue_head trim_queue; + int
Re: svn commit: r260379 - head/sys/net
07.01.2014 2:36 пользователь Alexander V. Chernikov melif...@freebsd.org написал: Author: melifaro Date: Mon Jan 6 22:36:20 2014 New Revision: 260379 URL: http://svnweb.freebsd.org/changeset/base/260379 Log: Partially fix IPv4 interface routes deletion in RADIX_MPATH. Noticed by: Nikolay Denev ndenev at gmail.com MFC after:1 month Modified: head/sys/net/radix_mpath.c head/sys/net/route.c Modified: head/sys/net/radix_mpath.c == --- head/sys/net/radix_mpath.c Mon Jan 6 19:14:46 2014(r260378) +++ head/sys/net/radix_mpath.c Mon Jan 6 22:36:20 2014(r260379) @@ -112,11 +112,16 @@ rt_mpath_matchgate(struct rtentry *rt, s if (rt-rt_gateway-sa_family == AF_LINK) { if (!memcmp(rt-rt_ifa-ifa_addr, gate, gate-sa_len)) break; - } else { - if (rt-rt_gateway-sa_len == gate-sa_len - !memcmp(rt-rt_gateway, gate, gate-sa_len)) - break; } + + /* +* Check for other options: +* 1) Routes with 'real' IPv4/IPv6 gateway +* 2) Loopback host routes (another AF_LINK/sockadd_dl check) sockaddr_dl ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org