svn commit: r260365 - head/release/picobsd/build

2014-01-06 Thread Luigi Rizzo
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-01-06 Thread Zbigniew Bodek
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-01-06 Thread Zbigniew Bodek
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

2014-01-06 Thread Alexander Motin
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

2014-01-06 Thread Luigi Rizzo
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

2014-01-06 Thread Ian Lepore
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

2014-01-06 Thread Dimitry Andric
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

2014-01-06 Thread Jordan Hubbard

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

2014-01-06 Thread Bryan Venteicher
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

2014-01-06 Thread Ian Lepore
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

2014-01-06 Thread Ian Lepore
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

2014-01-06 Thread Ian Lepore
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

2014-01-06 Thread Ian Lepore
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

2014-01-06 Thread Andreas Tobler
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

2014-01-06 Thread Andreas Tobler
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

2014-01-06 Thread Jens Schweikhardt
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

2014-01-06 Thread Konstantin Belousov
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

2014-01-06 Thread Gleb Smirnoff
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

2014-01-06 Thread Gleb Smirnoff
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

2014-01-06 Thread Adrian Chadd
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

2014-01-06 Thread Alexander V. Chernikov
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

2014-01-06 Thread Neel Natu
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

2014-01-06 Thread Jim Harris
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

2014-01-06 Thread Jim Harris
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

2014-01-06 Thread Neel Natu
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

2014-01-06 Thread Adrian Chadd
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...

2014-01-06 Thread Scott Long
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

2014-01-06 Thread Pedro F. Giffuni
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

2014-01-06 Thread Scott Long
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

2014-01-06 Thread Sergey Kandaurov
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