svn commit: r340314 - head/lib/libjail

2018-11-09 Thread Alan Somers
Author: asomers
Date: Sat Nov 10 03:10:22 2018
New Revision: 340314
URL: https://svnweb.freebsd.org/changeset/base/340314

Log:
  libjail: fix handling of allow.mount.fusefs in jailparam_init
  
  fusefs is inconsistently named. The kernel module is named "fuse", but the
  mount helper is named "mount_fusefs" and the jail(8) parameter is named
  "allow.mount.fusefs". Special case it in libjail.
  
  Reviewed by:  jamie
  MFC after:2 weeks
  Differential Revision:https://reviews.freebsd.org/D17929

Modified:
  head/lib/libjail/jail.c

Modified: head/lib/libjail/jail.c
==
--- head/lib/libjail/jail.c Sat Nov 10 03:00:36 2018(r340313)
+++ head/lib/libjail/jail.c Sat Nov 10 03:10:22 2018(r340314)
@@ -1050,10 +1050,18 @@ kldload_param(const char *name)
kl = kldload(name);
else if (strncmp(name, "allow.mount.", 12) == 0) {
/* Load the matching filesystem */
-   kl = kldload(name + 12);
+   const char *modname;
+
+   if (strcmp("fusefs", name + 12) == 0 ||
+   strcmp("nofusefs", name + 12) == 0) {
+   modname = "fuse";
+   } else {
+   modname = name + 12;
+   }
+   kl = kldload(modname);
if (kl < 0 && errno == ENOENT &&
-   strncmp(name + 12, "no", 2) == 0)
-   kl = kldload(name + 14);
+   strncmp(modname, "no", 2) == 0)
+   kl = kldload(modname + 2);
} else {
errno = ENOENT;
return (-1);
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r340313 - head/sys/netinet

2018-11-09 Thread Mark Johnston
Author: markj
Date: Sat Nov 10 03:00:36 2018
New Revision: 340313
URL: https://svnweb.freebsd.org/changeset/base/340313

Log:
  Ensure that IP fragments do not extend beyond IP_MAXPACKET.
  
  Such fragments are obviously invalid, and when processed may end up
  violating the sort order (by offset) of fragments of a given packet.
  This doesn't appear to be exploitable, however.
  
  Reviewed by:  emaste
  Discussed with:   jtl
  MFC after:3 days
  Sponsored by: The FreeBSD Foundation
  Differential Revision:https://reviews.freebsd.org/D17914

Modified:
  head/sys/netinet/ip_reass.c

Modified: head/sys/netinet/ip_reass.c
==
--- head/sys/netinet/ip_reass.c Sat Nov 10 02:37:56 2018(r340312)
+++ head/sys/netinet/ip_reass.c Sat Nov 10 03:00:36 2018(r340313)
@@ -228,6 +228,16 @@ ip_reass(struct mbuf *m)
ip->ip_off = htons(ntohs(ip->ip_off) << 3);
 
/*
+* Make sure the fragment lies within a packet of valid size.
+*/
+   if (ntohs(ip->ip_len) + ntohs(ip->ip_off) > IP_MAXPACKET) {
+   IPSTAT_INC(ips_toolong);
+   IPSTAT_INC(ips_fragdropped);
+   m_freem(m);
+   return (NULL);
+   }
+
+   /*
 * Attempt reassembly; if it succeeds, proceed.
 * ip_reass() will return a different mbuf.
 */
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r340312 - head/sys/powerpc/aim

2018-11-09 Thread Justin Hibbits
Author: jhibbits
Date: Sat Nov 10 02:37:56 2018
New Revision: 340312
URL: https://svnweb.freebsd.org/changeset/base/340312

Log:
  powerpc: Use MAX() macro instead of max() inline function to calculate Maxmem
  
  Maxmem is the highest address for physical memory in the system.  It's
  measured in pages which, since max() returns a u_int, should allow for up to
  2^44 bytes of memory addressable by the system.  However, on POWER9 systems
  at least, memory addressed by additional socketed CPUs begins at addresses
  far above the 2^44 mark, causing issues with memory accesses and DMA, when
  memory is addressed on the auxiliary CPUs.  Use the MAX() macro instead,
  which doesn't convert arguments, so retains Maxmem and all calculations as
  its defined long type (64-bit on powerpc64), keeping the maximum address
  correct.
  
  Submitted by: mmacy

Modified:
  head/sys/powerpc/aim/mmu_oea64.c

Modified: head/sys/powerpc/aim/mmu_oea64.c
==
--- head/sys/powerpc/aim/mmu_oea64.cSat Nov 10 01:58:37 2018
(r340311)
+++ head/sys/powerpc/aim/mmu_oea64.cSat Nov 10 02:37:56 2018
(r340312)
@@ -939,7 +939,7 @@ moea64_late_bootstrap(mmu_t mmup, vm_offset_t kernelst
 */
Maxmem = 0;
for (i = 0; phys_avail[i + 2] != 0; i += 2)
-   Maxmem = max(Maxmem, powerpc_btop(phys_avail[i + 1]));
+   Maxmem = MAX(Maxmem, powerpc_btop(phys_avail[i + 1]));
 
/*
 * Initialize MMU.
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r340311 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs

2018-11-09 Thread Alexander Motin
Author: mav
Date: Sat Nov 10 01:58:37 2018
New Revision: 340311
URL: https://svnweb.freebsd.org/changeset/base/340311

Log:
  Do not ignore arc_adjust() return value.
  
  This covers scenario when ARC may not shrink as fast as it could:
  1. arc_size < arc_c and arc_adjust() does not evict anything, returning
 zero to arc_reclaim_thread();
  2. arc_available_memory() reports memory pressure, which can not be
 satisfied by arc_kmem_reap_now();
  3. arc_shrink() reduces arc_c and calls arc_adjust(), return of which is
 ignored;
  4. even if the last arc_adjust() could not satisfy arc_size < arc_c,
 arc_reclaim_thread() will still go to sleep, since the first one
 returned zero.
  
  Reviewed by:  allanjude, markj, sef
  MFC after:2 weeks
  Sponsored by: iXsystems, Inc.
  Differential Revision:https://reviews.freebsd.org/D17927

Modified:
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c

Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
==
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c   Fri Nov  9 
22:18:43 2018(r340310)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c   Sat Nov 10 
01:58:37 2018(r340311)
@@ -4565,7 +4565,7 @@ arc_flush(spa_t *spa, boolean_t retry)
(void) arc_flush_state(arc_mfu_ghost, guid, ARC_BUFC_METADATA, retry);
 }
 
-void
+uint64_t
 arc_shrink(int64_t to_free)
 {
uint64_t asize = aggsum_value(_size);
@@ -4593,8 +4593,9 @@ arc_shrink(int64_t to_free)
if (asize > arc_c) {
DTRACE_PROBE2(arc__shrink_adjust, uint64_t, asize,
uint64_t, arc_c);
-   (void) arc_adjust();
+   return (arc_adjust());
}
+   return (0);
 }
 
 typedef enum free_memory_reason_t {
@@ -4917,7 +4918,7 @@ arc_reclaim_thread(void *unused __unused)
to_free = MAX(to_free, ptob(needfree));
 #endif
 #endif
-   arc_shrink(to_free);
+   evicted += arc_shrink(to_free);
}
} else if (free_memory < arc_c >> arc_no_grow_shift) {
arc_no_grow = B_TRUE;
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r340310 - head/sys/dev/e1000

2018-11-09 Thread Stephen Hurd
Author: shurd
Date: Fri Nov  9 22:18:43 2018
New Revision: 340310
URL: https://svnweb.freebsd.org/changeset/base/340310

Log:
  Fix first-packet completion
  
  The first packet after the ring is initialized was never
  completed as isc_txd_credits_update() would not include it in the
  count of completed packets. This caused netmap to never complete
  a batch. See PR 233022 for more details.
  
  PR:   233022
  Reported by:  lev
  Reviewed by:  lev
  MFC after:3 days
  Sponsored by: Limelight Networks
  Differential Revision:https://reviews.freebsd.org/D17931

Modified:
  head/sys/dev/e1000/em_txrx.c
  head/sys/dev/e1000/igb_txrx.c

Modified: head/sys/dev/e1000/em_txrx.c
==
--- head/sys/dev/e1000/em_txrx.cFri Nov  9 21:45:42 2018
(r340309)
+++ head/sys/dev/e1000/em_txrx.cFri Nov  9 22:18:43 2018
(r340310)
@@ -458,7 +458,13 @@ em_isc_txd_credits_update(void *arg, uint16_t txqid, b
ntxd = scctx->isc_ntxd[0];
do {
delta = (int32_t)cur - (int32_t)prev;
+   /*
+* XXX This appears to be a hack for first-packet.
+* A correct fix would prevent prev == cur in the first place.
+*/
MPASS(prev == 0 || delta != 0);
+   if (prev == 0 && cur == 0)
+   delta += 1;
if (delta < 0)
delta += ntxd;
DPRINTF(iflib_get_dev(adapter->ctx),

Modified: head/sys/dev/e1000/igb_txrx.c
==
--- head/sys/dev/e1000/igb_txrx.c   Fri Nov  9 21:45:42 2018
(r340309)
+++ head/sys/dev/e1000/igb_txrx.c   Fri Nov  9 22:18:43 2018
(r340310)
@@ -333,7 +333,13 @@ igb_isc_txd_credits_update(void *arg, uint16_t txqid, 
ntxd = scctx->isc_ntxd[0];
do {
delta = (int32_t)cur - (int32_t)prev;
+   /*
+* XXX This appears to be a hack for first-packet.
+* A correct fix would prevent prev == cur in the first place.
+*/
MPASS(prev == 0 || delta != 0);
+   if (prev == 0 && cur == 0)
+   delta += 1;
if (delta < 0)
delta += ntxd;
 
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r340304 - head/sys/dev/cxgbe/tom

2018-11-09 Thread John Baldwin
Author: jhb
Date: Fri Nov  9 21:16:45 2018
New Revision: 340304
URL: https://svnweb.freebsd.org/changeset/base/340304

Log:
  Use tcp_state_change() in the cxgbe(4) TOE module.
  
  r254889 added tcp_state_change() as a centralized place to log state
  changes in TCP connections for DTrace.  r294869 and r296881 took
  advantage of this central location to manage per-state counters.
  However, TOE sockets were still performing some (but not all) state
  change updates via direct assignments to t_state.  This resulted in
  state counters underflowing when TOE was in use.  Fix by using
  tcp_state_change() when changing a TOE connection's state.
  
  Reviewed by:  np, markj
  MFC after:1 month
  Sponsored by: Chelsio Communications
  Differential Revision:https://reviews.freebsd.org/D17915

Modified:
  head/sys/dev/cxgbe/tom/t4_cpl_io.c

Modified: head/sys/dev/cxgbe/tom/t4_cpl_io.c
==
--- head/sys/dev/cxgbe/tom/t4_cpl_io.c  Fri Nov  9 21:02:07 2018
(r340303)
+++ head/sys/dev/cxgbe/tom/t4_cpl_io.c  Fri Nov  9 21:16:45 2018
(r340304)
@@ -396,7 +396,7 @@ make_established(struct toepcb *toep, uint32_t snd_isn
CTR6(KTR_CXGBE, "%s: tid %d, so %p, inp %p, tp %p, toep %p",
__func__, toep->tid, so, inp, tp, toep);
 
-   tp->t_state = TCPS_ESTABLISHED;
+   tcp_state_change(tp, TCPS_ESTABLISHED);
tp->t_starttime = ticks;
TCPSTAT_INC(tcps_connects);
 
@@ -1303,11 +1303,11 @@ do_peer_close(struct sge_iq *iq, const struct rss_head
/* FALLTHROUGH */ 
 
case TCPS_ESTABLISHED:
-   tp->t_state = TCPS_CLOSE_WAIT;
+   tcp_state_change(tp, TCPS_CLOSE_WAIT);
break;
 
case TCPS_FIN_WAIT_1:
-   tp->t_state = TCPS_CLOSING;
+   tcp_state_change(tp, TCPS_CLOSING);
break;
 
case TCPS_FIN_WAIT_2:
@@ -1389,7 +1389,7 @@ release:
case TCPS_FIN_WAIT_1:
if (so->so_rcv.sb_state & SBS_CANTRCVMORE)
soisdisconnected(so);
-   tp->t_state = TCPS_FIN_WAIT_2;
+   tcp_state_change(tp, TCPS_FIN_WAIT_2);
break;
 
default:
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r340303 - in head/sys: compat/freebsd32 sys

2018-11-09 Thread Brooks Davis
Author: brooks
Date: Fri Nov  9 21:02:07 2018
New Revision: 340303
URL: https://svnweb.freebsd.org/changeset/base/340303

Log:
  Regen after r340302: Fix freebsd32 mknod(at).
  
  Sponsored by: DARPA, AFRL
  Differential Revision:https://reviews.freebsd.org/D17928

Modified:
  head/sys/compat/freebsd32/freebsd32_proto.h
  head/sys/compat/freebsd32/freebsd32_syscall.h
  head/sys/compat/freebsd32/freebsd32_syscalls.c
  head/sys/compat/freebsd32/freebsd32_sysent.c
  head/sys/compat/freebsd32/freebsd32_systrace_args.c
  head/sys/sys/sysproto.h

Modified: head/sys/compat/freebsd32/freebsd32_proto.h
==
--- head/sys/compat/freebsd32/freebsd32_proto.h Fri Nov  9 21:01:16 2018
(r340302)
+++ head/sys/compat/freebsd32/freebsd32_proto.h Fri Nov  9 21:02:07 2018
(r340303)
@@ -684,6 +684,24 @@ struct freebsd32_fhstat_args {
char u_fhp_l_[PADL_(const struct fhandle *)]; const struct fhandle * 
u_fhp; char u_fhp_r_[PADR_(const struct fhandle *)];
char sb_l_[PADL_(struct stat32 *)]; struct stat32 * sb; char 
sb_r_[PADR_(struct stat32 *)];
 };
+#ifdef PAD64_REQUIRED
+struct freebsd32_mknodat_args {
+   char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
+   char path_l_[PADL_(const char *)]; const char * path; char 
path_r_[PADR_(const char *)];
+   char mode_l_[PADL_(mode_t)]; mode_t mode; char mode_r_[PADR_(mode_t)];
+   char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)];
+   char dev1_l_[PADL_(uint32_t)]; uint32_t dev1; char 
dev1_r_[PADR_(uint32_t)];
+   char dev2_l_[PADL_(uint32_t)]; uint32_t dev2; char 
dev2_r_[PADR_(uint32_t)];
+};
+#else
+struct freebsd32_mknodat_args {
+   char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
+   char path_l_[PADL_(const char *)]; const char * path; char 
path_r_[PADR_(const char *)];
+   char mode_l_[PADL_(mode_t)]; mode_t mode; char mode_r_[PADR_(mode_t)];
+   char dev1_l_[PADL_(uint32_t)]; uint32_t dev1; char 
dev1_r_[PADR_(uint32_t)];
+   char dev2_l_[PADL_(uint32_t)]; uint32_t dev2; char 
dev2_r_[PADR_(uint32_t)];
+};
+#endif
 struct freebsd32_kevent_args {
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
char changelist_l_[PADL_(const struct kevent32 *)]; const struct 
kevent32 * changelist; char changelist_r_[PADR_(const struct kevent32 *)];
@@ -839,6 +857,11 @@ intfreebsd32_utimensat(struct thread *, struct 
freebs
 intfreebsd32_fstat(struct thread *, struct freebsd32_fstat_args *);
 intfreebsd32_fstatat(struct thread *, struct freebsd32_fstatat_args *);
 intfreebsd32_fhstat(struct thread *, struct freebsd32_fhstat_args *);
+#ifdef PAD64_REQUIRED
+intfreebsd32_mknodat(struct thread *, struct freebsd32_mknodat_args *);
+#else
+intfreebsd32_mknodat(struct thread *, struct freebsd32_mknodat_args *);
+#endif
 intfreebsd32_kevent(struct thread *, struct freebsd32_kevent_args *);
 intfreebsd32_cpuset_getdomain(struct thread *, struct 
freebsd32_cpuset_getdomain_args *);
 intfreebsd32_cpuset_setdomain(struct thread *, struct 
freebsd32_cpuset_setdomain_args *);
@@ -916,6 +939,9 @@ struct ofreebsd32_getdirentries_args {
 #ifdef PAD64_REQUIRED
 #else
 #endif
+#ifdef PAD64_REQUIRED
+#else
+#endif
 intofreebsd32_lseek(struct thread *, struct ofreebsd32_lseek_args *);
 intofreebsd32_stat(struct thread *, struct ofreebsd32_stat_args *);
 intofreebsd32_lstat(struct thread *, struct ofreebsd32_lstat_args *);
@@ -987,6 +1013,9 @@ struct freebsd4_freebsd32_sigreturn_args {
 #ifdef PAD64_REQUIRED
 #else
 #endif
+#ifdef PAD64_REQUIRED
+#else
+#endif
 intfreebsd4_freebsd32_getfsstat(struct thread *, struct 
freebsd4_freebsd32_getfsstat_args *);
 intfreebsd4_freebsd32_statfs(struct thread *, struct 
freebsd4_freebsd32_statfs_args *);
 intfreebsd4_freebsd32_fstatfs(struct thread *, struct 
freebsd4_freebsd32_fstatfs_args *);
@@ -1072,6 +1101,9 @@ struct freebsd6_freebsd32_lio_listio_args {
 #ifdef PAD64_REQUIRED
 #else
 #endif
+#ifdef PAD64_REQUIRED
+#else
+#endif
 intfreebsd6_freebsd32_pread(struct thread *, struct 
freebsd6_freebsd32_pread_args *);
 intfreebsd6_freebsd32_pwrite(struct thread *, struct 
freebsd6_freebsd32_pwrite_args *);
 intfreebsd6_freebsd32_mmap(struct thread *, struct 
freebsd6_freebsd32_mmap_args *);
@@ -1118,6 +1150,9 @@ struct freebsd7_freebsd32_shmctl_args {
 #ifdef PAD64_REQUIRED
 #else
 #endif
+#ifdef PAD64_REQUIRED
+#else
+#endif
 intfreebsd7_freebsd32_semctl(struct thread *, struct 
freebsd7_freebsd32_semctl_args *);
 intfreebsd7_freebsd32_msgctl(struct thread *, struct 
freebsd7_freebsd32_msgctl_args *);
 intfreebsd7_freebsd32_shmctl(struct thread *, struct 
freebsd7_freebsd32_shmctl_args *);
@@ -1142,6 +1177,9 @@ int   freebsd7_freebsd32_shmctl(struct thread *, 
struct 
 #ifdef PAD64_REQUIRED
 #else
 #endif
+#ifdef PAD64_REQUIRED
+#else
+#endif
 int

svn commit: r340302 - in head/sys: compat/freebsd32 kern

2018-11-09 Thread Brooks Davis
Author: brooks
Date: Fri Nov  9 21:01:16 2018
New Revision: 340302
URL: https://svnweb.freebsd.org/changeset/base/340302

Log:
  Fix freebsd32 mknod(at).
  
  As dev_t is now a 64-bit integer, it requires special handling as a
  system call argument.  64-bit arguments are split between two 64-bit
  integers due to the way arguments are promoted to allow reuse of most
  system call implementations.  They must be reassembled before use.
  Further, 64-bit arguments at an odd offset (counting from zero) are
  padded and slid to the next slot on powerpc and mips.  Fix the
  non-COMPAT11 system call by adding a freebsd32_mknodat() and
  appropriately padded declerations.
  
  The COMPAT11 system calls are fully compatible with the 64-bit
  implementations so remove the freebsd32_ versions.
  
  Use uint32_t consistently as the type of the old dev_t.  This matches
  the old definition.
  
  Reviewed by:  kib
  MFC after:3 days
  Sponsored by: DARPA, AFRL
  Differential Revision:https://reviews.freebsd.org/D17928

Modified:
  head/sys/compat/freebsd32/freebsd32_misc.c
  head/sys/compat/freebsd32/syscalls.master
  head/sys/kern/syscalls.master

Modified: head/sys/compat/freebsd32/freebsd32_misc.c
==
--- head/sys/compat/freebsd32/freebsd32_misc.c  Fri Nov  9 20:33:38 2018
(r340301)
+++ head/sys/compat/freebsd32/freebsd32_misc.c  Fri Nov  9 21:01:16 2018
(r340302)
@@ -463,25 +463,14 @@ freebsd32_fexecve(struct thread *td, struct freebsd32_
return (error);
 }
 
-#if defined(COMPAT_FREEBSD11)
-int
-freebsd11_freebsd32_mknod(struct thread *td,
-struct freebsd11_freebsd32_mknod_args *uap)
-{
 
-   return (kern_mknodat(td, AT_FDCWD, uap->path, UIO_USERSPACE, uap->mode,
-   uap->dev));
-}
-
 int
-freebsd11_freebsd32_mknodat(struct thread *td,
-struct freebsd11_freebsd32_mknodat_args *uap)
+freebsd32_mknodat(struct thread *td, struct freebsd32_mknodat_args *uap)
 {
 
-   return (kern_mknodat(td, uap->fd, uap->path, UIO_USERSPACE, uap->mode,
-   uap->dev));
+   return (kern_mknodat(td, uap->fd, uap->path, UIO_USERSPACE,
+   uap->mode, PAIR32TO64(dev_t, uap->dev)));
 }
-#endif /* COMPAT_FREEBSD11 */
 
 int
 freebsd32_mprotect(struct thread *td, struct freebsd32_mprotect_args *uap)

Modified: head/sys/compat/freebsd32/syscalls.master
==
--- head/sys/compat/freebsd32/syscalls.master   Fri Nov  9 20:33:38 2018
(r340301)
+++ head/sys/compat/freebsd32/syscalls.master   Fri Nov  9 21:01:16 2018
(r340302)
@@ -84,8 +84,8 @@
 11 AUE_NULLOBSOL   execv
 12 AUE_CHDIR   NOPROTO { int chdir(const char *path); }
 13 AUE_FCHDIR  NOPROTO { int fchdir(int fd); }
-14 AUE_MKNOD   COMPAT11 { int freebsd32_mknod(const char *path, \
-   int mode, int dev); }
+14 AUE_MKNOD   COMPAT11|NOPROTO { int mknod(const char *path, \
+   int mode, uint32_t dev); }
 15 AUE_CHMOD   NOPROTO { int chmod(const char *path, mode_t mode); }
 16 AUE_CHOWN   NOPROTO { int chown(const char *path, int uid, int 
gid); }
 17 AUE_NULLNOPROTO { void *break(char *nsize); }
@@ -958,7 +958,7 @@
mode_t mode); }
 497AUE_MKFIFOATNOPROTO { int mkfifoat(int fd, const char *path, \
mode_t mode); }
-498AUE_MKNODAT COMPAT11 { int freebsd32_mknodat(int fd, \
+498AUE_MKNODAT COMPAT11|NOPROTO { int mknodat(int fd, \
const char *path, mode_t mode, \
uint32_t dev); }
 499AUE_OPENAT_RWTC NOPROTO { int openat(int fd, const char *path, \
@@ -1113,8 +1113,15 @@
long bufsize, int mode); }
 558AUE_FHSTATFSNOPROTO { int fhstatfs(const struct fhandle *u_fhp, \
struct statfs32 *buf); }
-559AUE_MKNODAT NOPROTO { int mknodat(int fd, const char *path, \
-   mode_t mode, dev_t dev); }
+#ifdef PAD64_REQUIRED
+559AUE_MKNODAT STD { int freebsd32_mknodat(int fd, \
+   const char *path, mode_t mode, \
+   int pad, uint32_t dev1, uint32_t dev2); }
+#else
+559AUE_MKNODAT STD { int freebsd32_mknodat(int fd, \
+   const char *path, mode_t mode, \
+   uint32_t dev1, uint32_t dev2); }
+#endif
 560AUE_KEVENT  STD { int freebsd32_kevent(int fd, \
const struct kevent32 *changelist, \
int nchanges, \

Modified: head/sys/kern/syscalls.master

svn commit: r340301 - head/sys/conf

2018-11-09 Thread Ed Maste
Author: emaste
Date: Fri Nov  9 20:33:38 2018
New Revision: 340301
URL: https://svnweb.freebsd.org/changeset/base/340301

Log:
  Add comment to explain kernel ldscript 0x20 constant
  
  Reported by:  linimon

Modified:
  head/sys/conf/ldscript.amd64

Modified: head/sys/conf/ldscript.amd64
==
--- head/sys/conf/ldscript.amd64Fri Nov  9 19:51:26 2018
(r340300)
+++ head/sys/conf/ldscript.amd64Fri Nov  9 20:33:38 2018
(r340301)
@@ -6,7 +6,7 @@ SEARCH_DIR("/usr/lib");
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
-  kernphys = 0x20;
+  kernphys = 0x20; /* 2MB superpage size */
   . = kernbase + kernphys + SIZEOF_HEADERS;
   /*
* Use the AT keyword in order to set the right LMA that contains
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r340300 - head/lib/clang/libllvm

2018-11-09 Thread Ed Maste
Author: emaste
Date: Fri Nov  9 19:51:26 2018
New Revision: 340300
URL: https://svnweb.freebsd.org/changeset/base/340300

Log:
  libllvm: Move SampleProfWriter to SRCS_MIN
  
  It is required by llvm-profdata, now built by default under the
  LLVM_COV knob.  The additional complexity that would come from avoiding
  building it if CLANG_EXTRAS and LLVM_COV are both disabled is not worth
  the small savings in build time.
  
  Sponsored by: The FreeBSD Foundation

Modified:
  head/lib/clang/libllvm/Makefile

Modified: head/lib/clang/libllvm/Makefile
==
--- head/lib/clang/libllvm/Makefile Fri Nov  9 19:17:25 2018
(r340299)
+++ head/lib/clang/libllvm/Makefile Fri Nov  9 19:51:26 2018
(r340300)
@@ -683,7 +683,7 @@ SRCS_MIN+=  ProfileData/InstrProfWriter.cpp
 SRCS_MIN+= ProfileData/ProfileSummaryBuilder.cpp
 SRCS_MIN+= ProfileData/SampleProf.cpp
 SRCS_MIN+= ProfileData/SampleProfReader.cpp
-SRCS_EXT+= ProfileData/SampleProfWriter.cpp
+SRCS_MIN+= ProfileData/SampleProfWriter.cpp
 SRCS_MIN+= Support/APFloat.cpp
 SRCS_MIN+= Support/APInt.cpp
 SRCS_MIN+= Support/APSInt.cpp
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r340299 - head/sys/contrib/octeon-sdk

2018-11-09 Thread Ed Maste
Author: emaste
Date: Fri Nov  9 19:17:25 2018
New Revision: 340299
URL: https://svnweb.freebsd.org/changeset/base/340299

Log:
  Octeon SDK: avoid use of uninitialized variable
  
  Reported by:  Clang
  MFC after:1 week
  Sponsored by: The FreeBSD Foundation

Modified:
  head/sys/contrib/octeon-sdk/cvmx-pip.h

Modified: head/sys/contrib/octeon-sdk/cvmx-pip.h
==
--- head/sys/contrib/octeon-sdk/cvmx-pip.h  Fri Nov  9 19:16:01 2018
(r340298)
+++ head/sys/contrib/octeon-sdk/cvmx-pip.h  Fri Nov  9 19:17:25 2018
(r340299)
@@ -684,6 +684,7 @@ static inline int cvmx_pip_get_bsel_table_index(cvmx_w
 bsel_cfg.u64 = cvmx_read_csr(CVMX_PIP_BSEL_EXT_CFGX(bit));
 bsel_pos.u64 = cvmx_read_csr(CVMX_PIP_BSEL_EXT_POSX(bit));
 
+index = 0;
 for (y = 0; y < 8; y++)
 {
 char *ptr = (char *)cvmx_phys_to_ptr(work->packet_ptr.s.addr);
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r340298 - head/sys/arm/freescale/imx

2018-11-09 Thread Ed Maste
Author: emaste
Date: Fri Nov  9 19:16:01 2018
New Revision: 340298
URL: https://svnweb.freebsd.org/changeset/base/340298

Log:
  use -m ${LD_EMULATION} for binary->elf link invocation
  
  r306041 changed ld invocations for converting binary files to kernel
  ELF objects to pass -m, but missed bespoke ld invocations in a pair of
  arm file configs (one of which has since been removed).
  
  This is needed to support some external toolchains and lld.
  
  Sponsored by: The FreeBSD Foundation

Modified:
  head/sys/arm/freescale/imx/files.imx6

Modified: head/sys/arm/freescale/imx/files.imx6
==
--- head/sys/arm/freescale/imx/files.imx6   Fri Nov  9 18:56:40 2018
(r340297)
+++ head/sys/arm/freescale/imx/files.imx6   Fri Nov  9 19:16:01 2018
(r340298)
@@ -64,7 +64,7 @@ sdma_fw.c optional sdma_fw
\
clean   "sdma_fw.c"
 sdma-imx6q-to1.fwo optional sdma_fw\
dependency  "sdma-imx6q-to1.bin"\
-   compile-with"${LD} -b binary -d -warn-common -r -d -o ${.TARGET} 
sdma-imx6q-to1.bin" \
+   compile-with"${LD} -m ${LD_EMULATION} -b binary -d -warn-common -r 
-d -o ${.TARGET} sdma-imx6q-to1.bin" \
no-implicit-rule\
clean   "sdma-imx6q-to1.fwo"
 sdma-imx6q-to1.bin optional sdma_fw\
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r340297 - in head/sys: conf tools/fdt

2018-11-09 Thread Kyle Evans
Author: kevans
Date: Fri Nov  9 18:56:40 2018
New Revision: 340297
URL: https://svnweb.freebsd.org/changeset/base/340297

Log:
  Use ${ECHO} in dtb/dtbo build, pass in from dtb.mk for -s
  
  Reported by:  sbruno
  MFC after:3 days

Modified:
  head/sys/conf/dtb.mk
  head/sys/tools/fdt/make_dtb.sh
  head/sys/tools/fdt/make_dtbo.sh

Modified: head/sys/conf/dtb.mk
==
--- head/sys/conf/dtb.mkFri Nov  9 18:35:09 2018(r340296)
+++ head/sys/conf/dtb.mkFri Nov  9 18:56:40 2018(r340297)
@@ -58,8 +58,8 @@ all: ${DTB} ${DTBO}
 .export DTC
 .for _dts in ${DTS}
 ${_dts:R:S/$/.dtb/}:   ${_dts} ${OP_META}
-   @echo Generating ${.TARGET} from ${_dts}
-   @${SYSDIR}/tools/fdt/make_dtb.sh ${SYSDIR} ${_dts} ${.OBJDIR}
+   @${ECHO} Generating ${.TARGET} from ${_dts}
+   @env ECHO=${ECHO} ${SYSDIR}/tools/fdt/make_dtb.sh ${SYSDIR} ${_dts} 
${.OBJDIR}
 CLEANFILES+=${_dts:R:S/$/.dtb/}
 .endfor
 .endif
@@ -68,8 +68,8 @@ CLEANFILES+=${_dts:R:S/$/.dtb/}
 .export DTC
 .for _dtso in ${DTSO}
 ${_dtso:R:S/$/.dtbo/}: ${_dtso} ${OP_META}
-   @echo Generating ${.TARGET} from ${_dtso}
-   @${SYSDIR}/tools/fdt/make_dtbo.sh ${SYSDIR} overlays/${_dtso} ${.OBJDIR}
+   @${ECHO} Generating ${.TARGET} from ${_dtso}
+   @env ECHO=${ECHO} ${SYSDIR}/tools/fdt/make_dtbo.sh ${SYSDIR} 
overlays/${_dtso} ${.OBJDIR}
 CLEANFILES+=${_dtso:R:S/$/.dtbo/}
 .endfor
 .endif

Modified: head/sys/tools/fdt/make_dtb.sh
==
--- head/sys/tools/fdt/make_dtb.sh  Fri Nov  9 18:35:09 2018
(r340296)
+++ head/sys/tools/fdt/make_dtb.sh  Fri Nov  9 18:56:40 2018
(r340297)
@@ -17,10 +17,11 @@ if [ -z "${MACHINE}" ]; then
 fi
 
 : ${DTC:=dtc}
+: ${ECHO:=echo}
 
 for d in ${dts}; do
 dtb=${dtb_path}/`basename $d .dts`.dtb
-echo "converting $d -> $dtb"
+${ECHO} "converting $d -> $dtb"
 cpp -P -x assembler-with-cpp -I $S/gnu/dts/include -I $S/dts/${MACHINE} -I 
$S/gnu/dts/${MACHINE} -I $S/gnu/dts/ -include $d /dev/null | 
${DTC} -@ -O dtb -o $dtb -b 0 -p 1024 -i $S/dts/${MACHINE} -i 
$S/gnu/dts/${MACHINE} -i $S/gnu/dts/
 done

Modified: head/sys/tools/fdt/make_dtbo.sh
==
--- head/sys/tools/fdt/make_dtbo.sh Fri Nov  9 18:35:09 2018
(r340296)
+++ head/sys/tools/fdt/make_dtbo.sh Fri Nov  9 18:56:40 2018
(r340297)
@@ -17,10 +17,11 @@ if [ -z "${MACHINE}" ]; then
 fi
 
 : ${DTC:=dtc}
+: ${ECHO:=echo}
 
 for d in ${dtso}; do
 dtb=${dtbo_path}/`basename $d .dtso`.dtbo
-echo "converting $d -> $dtb"
+${ECHO} "converting $d -> $dtb"
 cpp -P -x assembler-with-cpp -I $S/gnu/dts/include -I $S/dts/${MACHINE} -I 
$S/gnu/dts/${MACHINE} -include $d /dev/null | 
${DTC} -@ -O dtb -o $dtb -i $S/dts/${MACHINE} -i $S/gnu/dts/${MACHINE}
 done
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r340296 - in head: tools/build/mk usr.bin/clang

2018-11-09 Thread Ed Maste
Author: emaste
Date: Fri Nov  9 18:35:09 2018
New Revision: 340296
URL: https://svnweb.freebsd.org/changeset/base/340296

Log:
  Move llvm-profdata build into MK_LLVM_COV block
  
  llvm-profdata is used with llvm-cov for code coverage (although llvm-cov
  can also operate independently in a gcov-compatible mode).
  Although llvm-profdata can be used independently of llvm-cov it makes
  sense to group these under one option.
  
  Also handle these in OptionalObsoleteFiles.inc while here.
  
  Sponsored by: The FreeBSD Foundation

Modified:
  head/tools/build/mk/OptionalObsoleteFiles.inc
  head/usr.bin/clang/Makefile

Modified: head/tools/build/mk/OptionalObsoleteFiles.inc
==
--- head/tools/build/mk/OptionalObsoleteFiles.inc   Fri Nov  9 18:06:25 
2018(r340295)
+++ head/tools/build/mk/OptionalObsoleteFiles.inc   Fri Nov  9 18:35:09 
2018(r340296)
@@ -2466,6 +2466,12 @@ OLD_FILES+=usr/bin/gcov
 OLD_FILES+=usr/share/man/man1/gcov.1.gz
 .endif
 
+.if ${MK_LLVM_COV} == no
+OLD_FILES+=usr/bin/llvm-cov
+OLD_FILES+=usr/bin/llvm-profdata
+OLD_FILES+=usr/share/man/man1/llvm-cov.1.gz
+.endif
+
 .if ${MK_GDB} == no || ${MK_GDB_LIBEXEC} == yes
 OLD_FILES+=usr/bin/gdb
 OLD_FILES+=usr/bin/gdbserver

Modified: head/usr.bin/clang/Makefile
==
--- head/usr.bin/clang/Makefile Fri Nov  9 18:06:25 2018(r340295)
+++ head/usr.bin/clang/Makefile Fri Nov  9 18:35:09 2018(r340296)
@@ -31,7 +31,6 @@ SUBDIR+=  llvm-modextract
 SUBDIR+=   llvm-nm
 SUBDIR+=   llvm-objcopy
 SUBDIR+=   llvm-pdbutil
-SUBDIR+=   llvm-profdata
 SUBDIR+=   llvm-rtdyld
 SUBDIR+=   llvm-symbolizer
 SUBDIR+=   llvm-xray
@@ -46,6 +45,7 @@ SUBDIR+=  lldb
 .endif
 .if ${MK_LLVM_COV} != "no"
 SUBDIR+=   llvm-cov
+SUBDIR+=   llvm-profdata
 .endif
 .endif # TOOLS_PREFIX
 
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


Re: svn commit: r340294 - head/sys/compat/freebsd32

2018-11-09 Thread Brooks Davis
On Fri, Nov 09, 2018 at 06:03:01PM +, Brooks Davis wrote:
> Author: brooks
> Date: Fri Nov  9 18:03:01 2018
> New Revision: 340294
> URL: https://svnweb.freebsd.org/changeset/base/340294
> 
> Log:
>   Fix a number of bugs in freebsd32's capabilities.conf.
>   
>   Bugs range from failure to update after changing syscall implementaion
>   names to using the wrong name.  Somewhat confusingly, the name in
>   capabilities.conf is exactly the string that appears in syscalls.master,
>   not the name with a COMPAT* prefix which is the actual function name.
>   
>   Found while making a change to use the default capabilities.conf.
>   
>   Fixes:  r335177, r336980, r340272, r340274, others
>   Reviewed by:kib, emaste
>   Sponsored by:   DARPA, AFRL
>   Differential Revision:  https://reviews.freebsd.org/D17925

Arg, I forgot:

MFC After:  3 days


signature.asc
Description: PGP signature


svn commit: r340295 - head/sys/compat/freebsd32

2018-11-09 Thread Brooks Davis
Author: brooks
Date: Fri Nov  9 18:06:25 2018
New Revision: 340295
URL: https://svnweb.freebsd.org/changeset/base/340295

Log:
  Regen after r340294: Fix a number of bugs in freebsd32's capabilities.conf.
  
  Sponsored by: DARPA, AFRL
  Differential Revision:https://reviews.freebsd.org/D17925

Modified:
  head/sys/compat/freebsd32/freebsd32_sysent.c

Modified: head/sys/compat/freebsd32/freebsd32_sysent.c
==
--- head/sys/compat/freebsd32/freebsd32_sysent.cFri Nov  9 18:03:01 
2018(r340294)
+++ head/sys/compat/freebsd32/freebsd32_sysent.cFri Nov  9 18:06:25 
2018(r340295)
@@ -73,7 +73,7 @@ struct sysent freebsd32_sysent[] = {
{ compat11(AS(freebsd11_freebsd32_mknod_args),freebsd32_mknod), 
AUE_MKNOD, NULL, 0, 0, 0, SY_THR_STATIC },  /* 14 = freebsd11 
freebsd32_mknod */
{ AS(chmod_args), (sy_call_t *)sys_chmod, AUE_CHMOD, NULL, 0, 0, 0, 
SY_THR_STATIC },/* 15 = chmod */
{ AS(chown_args), (sy_call_t *)sys_chown, AUE_CHOWN, NULL, 0, 0, 0, 
SY_THR_STATIC },/* 16 = chown */
-   { AS(break_args), (sy_call_t *)sys_break, AUE_NULL, NULL, 0, 0, 0, 
SY_THR_STATIC }, /* 17 = break */
+   { AS(break_args), (sy_call_t *)sys_break, AUE_NULL, NULL, 0, 0, 
SYF_CAPENABLED, SY_THR_STATIC },/* 17 = break */
{ compat4(AS(freebsd4_freebsd32_getfsstat_args),freebsd32_getfsstat), 
AUE_GETFSSTAT, NULL, 0, 0, 0, SY_THR_STATIC },/* 18 = freebsd4 
freebsd32_getfsstat */
{ compat(AS(ofreebsd32_lseek_args),freebsd32_lseek), AUE_LSEEK, NULL, 
0, 0, SYF_CAPENABLED, SY_THR_STATIC },/* 19 = old freebsd32_lseek */
{ 0, (sy_call_t *)sys_getpid, AUE_GETPID, NULL, 0, 0, SYF_CAPENABLED, 
SY_THR_STATIC },  /* 20 = getpid */
@@ -104,7 +104,7 @@ struct sysent freebsd32_sysent[] = {
{ AS(ktrace_args), (sy_call_t *)sys_ktrace, AUE_KTRACE, NULL, 0, 0, 0, 
SY_THR_STATIC }, /* 45 = ktrace */
{ compat(AS(ofreebsd32_sigaction_args),freebsd32_sigaction), 
AUE_SIGACTION, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC },/* 46 = old 
freebsd32_sigaction */
{ 0, (sy_call_t *)sys_getgid, AUE_GETGID, NULL, 0, 0, SYF_CAPENABLED, 
SY_THR_STATIC },  /* 47 = getgid */
-   { compat(AS(ofreebsd32_sigprocmask_args),freebsd32_sigprocmask), 
AUE_SIGPROCMASK, NULL, 0, 0, 0, SY_THR_STATIC },   /* 48 = old 
freebsd32_sigprocmask */
+   { compat(AS(ofreebsd32_sigprocmask_args),freebsd32_sigprocmask), 
AUE_SIGPROCMASK, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC },  /* 48 = old 
freebsd32_sigprocmask */
{ AS(getlogin_args), (sy_call_t *)sys_getlogin, AUE_GETLOGIN, NULL, 0, 
0, SYF_CAPENABLED, SY_THR_STATIC },  /* 49 = getlogin */
{ AS(setlogin_args), (sy_call_t *)sys_setlogin, AUE_SETLOGIN, NULL, 0, 
0, 0, SY_THR_STATIC },   /* 50 = setlogin */
{ AS(acct_args), (sy_call_t *)sys_acct, AUE_ACCT, NULL, 0, 0, 0, 
SY_THR_STATIC },   /* 51 = acct */
@@ -127,7 +127,7 @@ struct sysent freebsd32_sysent[] = {
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT },  
/* 68 = obsolete vwrite */
{ AS(sbrk_args), (sy_call_t *)sys_sbrk, AUE_SBRK, NULL, 0, 0, 
SYF_CAPENABLED, SY_THR_STATIC },  /* 69 = sbrk */
{ AS(sstk_args), (sy_call_t *)sys_sstk, AUE_SSTK, NULL, 0, 0, 
SYF_CAPENABLED, SY_THR_STATIC },  /* 70 = sstk */
-   { compat(AS(ommap_args),mmap), AUE_MMAP, NULL, 0, 0, 0, SY_THR_STATIC 
},/* 71 = old mmap */
+   { compat(AS(ommap_args),mmap), AUE_MMAP, NULL, 0, 0, SYF_CAPENABLED, 
SY_THR_STATIC },   /* 71 = old mmap */
{ compat11(AS(freebsd11_vadvise_args),vadvise), AUE_O_VADVISE, NULL, 0, 
0, 0, SY_THR_STATIC },  /* 72 = freebsd11 vadvise */
{ AS(munmap_args), (sy_call_t *)sys_munmap, AUE_MUNMAP, NULL, 0, 0, 
SYF_CAPENABLED, SY_THR_STATIC },/* 73 = munmap */
{ AS(freebsd32_mprotect_args), (sy_call_t *)freebsd32_mprotect, 
AUE_MPROTECT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC },  /* 74 = 
freebsd32_mprotect */
@@ -167,8 +167,8 @@ struct sysent freebsd32_sysent[] = {
{ compat(AS(ofreebsd32_sigvec_args),freebsd32_sigvec), AUE_O_SIGVEC, 
NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC },   /* 108 = old 
freebsd32_sigvec */
{ compat(AS(ofreebsd32_sigblock_args),freebsd32_sigblock), 
AUE_O_SIGBLOCK, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 109 = old 
freebsd32_sigblock */
{ compat(AS(ofreebsd32_sigsetmask_args),freebsd32_sigsetmask), 
AUE_O_SIGSETMASK, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC },   /* 110 = old 
freebsd32_sigsetmask */
-   { compat(AS(ofreebsd32_sigsuspend_args),freebsd32_sigsuspend), 
AUE_SIGSUSPEND, NULL, 0, 0, 0, SY_THR_STATIC },  /* 111 = old 
freebsd32_sigsuspend */
-   { compat(AS(ofreebsd32_sigstack_args),freebsd32_sigstack), 
AUE_O_SIGSTACK, NULL, 0, 0, 0, SY_THR_STATIC },  /* 112 = old 
freebsd32_sigstack */
+   { 

svn commit: r340294 - head/sys/compat/freebsd32

2018-11-09 Thread Brooks Davis
Author: brooks
Date: Fri Nov  9 18:03:01 2018
New Revision: 340294
URL: https://svnweb.freebsd.org/changeset/base/340294

Log:
  Fix a number of bugs in freebsd32's capabilities.conf.
  
  Bugs range from failure to update after changing syscall implementaion
  names to using the wrong name.  Somewhat confusingly, the name in
  capabilities.conf is exactly the string that appears in syscalls.master,
  not the name with a COMPAT* prefix which is the actual function name.
  
  Found while making a change to use the default capabilities.conf.
  
  Fixes:r335177, r336980, r340272, r340274, others
  Reviewed by:  kib, emaste
  Sponsored by: DARPA, AFRL
  Differential Revision:https://reviews.freebsd.org/D17925

Modified:
  head/sys/compat/freebsd32/capabilities.conf

Modified: head/sys/compat/freebsd32/capabilities.conf
==
--- head/sys/compat/freebsd32/capabilities.conf Fri Nov  9 18:02:39 2018
(r340293)
+++ head/sys/compat/freebsd32/capabilities.conf Fri Nov  9 18:03:01 2018
(r340294)
@@ -47,14 +47,14 @@ __mac_get_fd
 __mac_get_proc
 __mac_set_fd
 __mac_set_proc
-freebsd32_sysctl
-freebsd32_umtx_op
+freebsd32___sysctl
+freebsd32__umtx_op
 abort2
 accept
 accept4
 aio_cancel
 freebsd32_aio_error
-aio_fsync
+freebsd32_aio_fsync
 freebsd32_aio_read
 freebsd32_aio_return
 freebsd32_aio_suspend
@@ -94,17 +94,18 @@ freebsd32_fexecve
 flock
 fork
 fpathconf
-freebsd11_freebsd32_fstat
-freebsd11_freebsd32_fstatat
-freebsd11_freebsd32_getdirentries
-freebsd11_freebsd32_fstatfs
-freebsd11_freebsd32_mknodat
-freebsd6_freebsd32_ftruncate
-freebsd6_freebsd32_lseek
-freebsd6_freebsd32_mmap
-freebsd6_freebsd32_pread
-freebsd6_freebsd32_pwrite
 freebsd32_fstat
+freebsd32_fstatat
+freebsd32_getdirentries
+freebsd32_fstatfs
+freebsd32_mknodat
+freebsd32_ftruncate
+freebsd32_lseek
+freebsd32_mmap
+mmap
+freebsd32_pread
+freebsd32_pwrite
+freebsd32_fstat
 fstatfs
 fsync
 ftruncate
@@ -115,7 +116,7 @@ getaudit
 getaudit_addr
 getauid
 freebsd32_getcontext
-getdents
+freebsd32_getdents
 freebsd32_getdirentries
 getdirentries
 getdomainname
@@ -178,7 +179,7 @@ freebsd32_nanosleep
 ntp_gettime
 freebsd6_freebsd32_aio_read
 freebsd6_freebsd32_aio_write
-obreak
+break
 freebsd6_freebsd32_lio_listio
 chflagsat
 faccessat
@@ -223,7 +224,7 @@ sched_get_priority_max
 sched_get_priority_min
 sched_getparam
 sched_getscheduler
-sched_rr_get_interval
+freebsd32_sched_rr_get_interval
 sched_setparam
 sched_setscheduler
 sched_yield
@@ -260,11 +261,15 @@ freebsd32_sigaction
 freebsd32_sigaltstack
 freebsd32_sigblock
 freebsd32_sigpending
+sigpending
+freebsd32_sigprocmask
 sigprocmask
+freebsd32_sigqueue
 sigqueue
 freebsd32_sigreturn
 freebsd32_sigsetmask
-ofreebsd32_sigstack
+freebsd32_sigstack
+freebsd32_sigsuspend
 sigsuspend
 freebsd32_sigtimedwait
 freebsd32_sigvec
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r340289 - in head: tools/build/mk usr.bin/clang/llvm-cov

2018-11-09 Thread Ed Maste
Author: emaste
Date: Fri Nov  9 17:43:19 2018
New Revision: 340289
URL: https://svnweb.freebsd.org/changeset/base/340289

Log:
  llvm-cov: also install as gcov (if GNU gcov is disabled)
  
  llvm-cov provides a gcov-compatible interface when invoked as gcov.
  
  Reviewed by:  dim, markj
  MFC after:1 month
  Sponsored by: The FreeBSD Foundation
  Differential Revision:https://reviews.freebsd.org/D17923

Modified:
  head/tools/build/mk/OptionalObsoleteFiles.inc
  head/usr.bin/clang/llvm-cov/Makefile

Modified: head/tools/build/mk/OptionalObsoleteFiles.inc
==
--- head/tools/build/mk/OptionalObsoleteFiles.inc   Fri Nov  9 17:39:57 
2018(r340288)
+++ head/tools/build/mk/OptionalObsoleteFiles.inc   Fri Nov  9 17:43:19 
2018(r340289)
@@ -2461,7 +2461,7 @@ OLD_FILES+=usr/share/man/man1/gperf.1.gz
 OLD_FILES+=usr/share/man/man1/gperf.7.gz
 .endif
 
-.if ${MK_GCC} == no || ${MK_GCOV} == no
+.if (${MK_GCOV} == no || ${MK_GCC} == no) && ${MK_LLVM_COV} == no
 OLD_FILES+=usr/bin/gcov
 OLD_FILES+=usr/share/man/man1/gcov.1.gz
 .endif

Modified: head/usr.bin/clang/llvm-cov/Makefile
==
--- head/usr.bin/clang/llvm-cov/MakefileFri Nov  9 17:39:57 2018
(r340288)
+++ head/usr.bin/clang/llvm-cov/MakefileFri Nov  9 17:43:19 2018
(r340289)
@@ -1,6 +1,12 @@
 # $FreeBSD$
 
+.include 
+
 PROG_CXX=  llvm-cov
+.if ${MK_GCOV} == "no"
+LINKS= ${BINDIR}/llvm-cov  ${BINDIR}/gcov
+MLINKS=llvm-cov.1  gcov.1
+.endif
 
 SRCDIR=tools/llvm-cov
 SRCS+= CodeCoverage.cpp
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r340288 - head/contrib/nvi/vi

2018-11-09 Thread Ed Maste
Author: emaste
Date: Fri Nov  9 17:39:57 2018
New Revision: 340288
URL: https://svnweb.freebsd.org/changeset/base/340288

Log:
  nvi: remove superfluous space before ^\
  
  This fixes alignment in vi's 'viusage' command and has been fixed
  upstream and in OpenBSD.
  
  Submitted by: Raf Czlonka (github:rjc)
  MFC after:1 week
  Pull Request: https://github.com/freebsd/freebsd/pull/122

Modified:
  head/contrib/nvi/vi/v_cmd.c

Modified: head/contrib/nvi/vi/v_cmd.c
==
--- head/contrib/nvi/vi/v_cmd.c Fri Nov  9 15:27:41 2018(r340287)
+++ head/contrib/nvi/vi/v_cmd.c Fri Nov  9 17:39:57 2018(r340288)
@@ -130,7 +130,7 @@ VIKEYS const vikeys [MAXVIKEY + 1] = {
 /* 034  ^\ */
{v_exmode,  0,
"^\\",
-   " ^\\ switch to ex mode"},
+   "^\\ switch to ex mode"},
 /* 035  ^] */
{v_tagpush, V_ABS|V_KEYW|VM_RCM_SET,
"^]",
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r340287 - head/tools/build/mk

2018-11-09 Thread Ed Maste
Author: emaste
Date: Fri Nov  9 15:27:41 2018
New Revision: 340287
URL: https://svnweb.freebsd.org/changeset/base/340287

Log:
  Consolidate gcov entries in OptionalObsoleteFiles
  
  Sponsored by: The FreeBSD Foundation

Modified:
  head/tools/build/mk/OptionalObsoleteFiles.inc

Modified: head/tools/build/mk/OptionalObsoleteFiles.inc
==
--- head/tools/build/mk/OptionalObsoleteFiles.inc   Fri Nov  9 15:24:24 
2018(r340286)
+++ head/tools/build/mk/OptionalObsoleteFiles.inc   Fri Nov  9 15:27:41 
2018(r340287)
@@ -2420,7 +2420,6 @@ OLD_FILES+=usr/share/man/man8/unstr.8.gz
 .if ${MK_GCC} == no
 OLD_FILES+=usr/bin/g++
 OLD_FILES+=usr/bin/gcc
-OLD_FILES+=usr/bin/gcov
 OLD_FILES+=usr/bin/gcpp
 OLD_FILES+=usr/bin/gperf
 .if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "i386"
@@ -2457,13 +2456,12 @@ OLD_FILES+=usr/libexec/cc1
 OLD_FILES+=usr/libexec/cc1plus
 OLD_FILES+=usr/share/man/man1/g++.1.gz
 OLD_FILES+=usr/share/man/man1/gcc.1.gz
-OLD_FILES+=usr/share/man/man1/gcov.1.gz
 OLD_FILES+=usr/share/man/man1/gcpp.1.gz
 OLD_FILES+=usr/share/man/man1/gperf.1.gz
 OLD_FILES+=usr/share/man/man1/gperf.7.gz
 .endif
 
-.if ${MK_GCOV} == no
+.if ${MK_GCC} == no || ${MK_GCOV} == no
 OLD_FILES+=usr/bin/gcov
 OLD_FILES+=usr/share/man/man1/gcov.1.gz
 .endif
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r340286 - head/tests/sys/netpfil/pf

2018-11-09 Thread Li-Wen Hsu
Author: lwhsu
Date: Fri Nov  9 15:24:24 2018
New Revision: 340286
URL: https://svnweb.freebsd.org/changeset/base/340286

Log:
  Fix test: sys.netpfil.pf.pass_block.noalias
  
  Replace hard-coded epair0b with the variable holds the real epair interface
  used for testing.
  
  Reviewed by:  kp
  Approved by:  emaste, markj (mentors)
  MFC with: r339836
  Sponsored by: The FreeBSD Foundation

Modified:
  head/tests/sys/netpfil/pf/pass_block.sh

Modified: head/tests/sys/netpfil/pf/pass_block.sh
==
--- head/tests/sys/netpfil/pf/pass_block.sh Fri Nov  9 15:02:53 2018
(r340285)
+++ head/tests/sys/netpfil/pf/pass_block.sh Fri Nov  9 15:24:24 2018
(r340286)
@@ -111,14 +111,14 @@ noalias_body()
atf_check -s exit:0 -o ignore ping6 -c 1 -x 1 ${linklocaladdr}%${epair}a
 
jexec alcatraz pfctl -e
-   pft_set_rules alcatraz "block out inet6 from (epair0b:0) to any"
+   pft_set_rules alcatraz "block out inet6 from (${epair}b:0) to any"
 
atf_check -s exit:2 -o ignore ping6 -c 1 -x 1 2001:db8:42::2
 
# We should still be able to ping the link-local address
atf_check -s exit:0 -o ignore ping6 -c 1 -x 1 ${linklocaladdr}%${epair}a
 
-   pft_set_rules alcatraz "block out inet6 from (epair0b) to any"
+   pft_set_rules alcatraz "block out inet6 from (${epair}b) to any"
 
# We cannot ping to the link-local address
atf_check -s exit:2 -o ignore ping6 -c 1 -x 1 ${linklocaladdr}%${epair}a
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r340285 - head/usr.sbin/kldxref

2018-11-09 Thread Ed Maste
Author: emaste
Date: Fri Nov  9 15:02:53 2018
New Revision: 340285
URL: https://svnweb.freebsd.org/changeset/base/340285

Log:
  kldxref: use appropriate Elf_Off type for offsets
  
  Submitted by: Mitchell Horne 
  Reviewed by:  kib
  MFC after:1 week
  Sponsored by: The FreeBSD Foundation
  Differential Revision:https://reviews.freebsd.org/D13957

Modified:
  head/usr.sbin/kldxref/ef.c

Modified: head/usr.sbin/kldxref/ef.c
==
--- head/usr.sbin/kldxref/ef.c  Fri Nov  9 14:58:24 2018(r340284)
+++ head/usr.sbin/kldxref/ef.c  Fri Nov  9 15:02:53 2018(r340285)
@@ -80,7 +80,7 @@ struct ef_file {
 };
 
 static voidef_print_phdr(Elf_Phdr *);
-static u_long  ef_get_offset(elf_file_t, Elf_Off);
+static Elf_Off ef_get_offset(elf_file_t, Elf_Off);
 static int ef_parse_dynamic(elf_file_t);
 
 static int ef_get_type(elf_file_t ef);
@@ -126,16 +126,17 @@ ef_print_phdr(Elf_Phdr *phdr)
 {
 
if ((phdr->p_flags & PF_W) == 0) {
-   printf("text=0x%lx ", (long)phdr->p_filesz);
+   printf("text=0x%jx ", (uintmax_t)phdr->p_filesz);
} else {
-   printf("data=0x%lx", (long)phdr->p_filesz);
+   printf("data=0x%jx", (uintmax_t)phdr->p_filesz);
if (phdr->p_filesz < phdr->p_memsz)
-   printf("+0x%lx", (long)(phdr->p_memsz - 
phdr->p_filesz));
+   printf("+0x%jx",
+   (uintmax_t)(phdr->p_memsz - phdr->p_filesz));
printf(" ");
}
 }
 
-static u_long
+static Elf_Off
 ef_get_offset(elf_file_t ef, Elf_Off off)
 {
Elf_Phdr *ph;
@@ -292,8 +293,8 @@ ef_parse_dynamic(elf_file_t ef)
error = ef_read(ef, ef_get_offset(ef, dp->d_un.d_ptr),
sizeof(hashhdr),  hashhdr);
if (error != 0) {
-   warnx("can't read hash header (%lx)",
-   ef_get_offset(ef, dp->d_un.d_ptr));
+   warnx("can't read hash header (%jx)",
+ (uintmax_t)ef_get_offset(ef, dp->d_un.d_ptr));
return (error);
}
ef->ef_nbuckets = hashhdr[0];
@@ -365,8 +366,8 @@ ef_parse_dynamic(elf_file_t ef)
ef->ef_nchains * sizeof(Elf_Sym),
(void **)>ef_symtab) != 0) {
if (ef->ef_verbose)
-   warnx("%s: can't load .dynsym section (0x%lx)",
-   ef->ef_name, (long)ef->ef_symoff);
+   warnx("%s: can't load .dynsym section (0x%jx)",
+   ef->ef_name, (uintmax_t)ef->ef_symoff);
return (EIO);
}
if (ef_read_entry(ef, ef_get_offset(ef, ef->ef_stroff), ef->ef_strsz,
@@ -461,13 +462,13 @@ ef_read_entry(elf_file_t ef, Elf_Off offset, size_t le
 static int
 ef_seg_read(elf_file_t ef, Elf_Off offset, size_t len, void *dest)
 {
-   u_long ofs;
+   Elf_Off ofs;
 
ofs = ef_get_offset(ef, offset);
if (ofs == 0) {
if (ef->ef_verbose)
-   warnx("ef_seg_read(%s): zero offset (%lx:%ld)",
-   ef->ef_name, (long)offset, ofs);
+   warnx("ef_seg_read(%s): zero offset (%jx:%ju)",
+   ef->ef_name, (uintmax_t)offset, (uintmax_t)ofs);
return (EFAULT);
}
return (ef_read(ef, ofs, len, dest));
@@ -476,7 +477,7 @@ ef_seg_read(elf_file_t ef, Elf_Off offset, size_t len,
 static int
 ef_seg_read_rel(elf_file_t ef, Elf_Off offset, size_t len, void *dest)
 {
-   u_long ofs;
+   Elf_Off ofs;
const Elf_Rela *a;
const Elf_Rel *r;
int error;
@@ -484,8 +485,8 @@ ef_seg_read_rel(elf_file_t ef, Elf_Off offset, size_t 
ofs = ef_get_offset(ef, offset);
if (ofs == 0) {
if (ef->ef_verbose)
-   warnx("ef_seg_read_rel(%s): zero offset (%lx:%ld)",
-   ef->ef_name, (long)offset, ofs);
+   warnx("ef_seg_read_rel(%s): zero offset (%jx:%ju)",
+   ef->ef_name, (uintmax_t)offset, (uintmax_t)ofs);
return (EFAULT);
}
if ((error = ef_read(ef, ofs, len, dest)) != 0)
@@ -509,14 +510,14 @@ ef_seg_read_rel(elf_file_t ef, Elf_Off offset, size_t 
 static int
 ef_seg_read_string(elf_file_t ef, Elf_Off offset, size_t len, char *dest)
 {
-   u_long ofs;
+   Elf_Off ofs;
ssize_t r;
 
ofs = ef_get_offset(ef, offset);
if (ofs == 0 || ofs == (Elf_Off)-1) {
if (ef->ef_verbose)
-   warnx("ef_seg_read_string(%s): bad offset (%lx:%ld)",
-   ef->ef_name, (long)offset, ofs);
+   warnx("ef_seg_read_string(%s): bad 

svn commit: r340284 - head/bin/sh

2018-11-09 Thread Jilles Tjoelker
Author: jilles
Date: Fri Nov  9 14:58:24 2018
New Revision: 340284
URL: https://svnweb.freebsd.org/changeset/base/340284

Log:
  sh: Unify EXERROR and EXEXEC
  
  The difference between EXERROR and EXEXEC was that EXEXEC passed along
  exitstatus and EXERROR set exitstatus to 2 in the handling code.
  
  By changing the places that raised EXERROR to set exitstatus to 2, the
  handling of EXERROR and EXEXEC becomes the same.

Modified:
  head/bin/sh/TOUR
  head/bin/sh/error.c
  head/bin/sh/error.h
  head/bin/sh/eval.c
  head/bin/sh/exec.c
  head/bin/sh/jobs.c
  head/bin/sh/main.c

Modified: head/bin/sh/TOUR
==
--- head/bin/sh/TOURFri Nov  9 13:47:06 2018(r340283)
+++ head/bin/sh/TOURFri Nov  9 14:58:24 2018(r340284)
@@ -35,7 +35,7 @@ EXCEPTIONS:  Code for dealing with exceptions appears 
 exceptions.c.  The C language doesn't include exception handling,
 so I implement it using setjmp and longjmp.  The global variable
 exception contains the type of exception.  EXERROR is raised by
-calling error.  EXINT is an interrupt.
+calling error or errorwithstatus.  EXINT is an interrupt.
 
 INTERRUPTS:  In an interactive shell, an interrupt will cause an
 EXINT exception to return to the main command loop.  (Exception:

Modified: head/bin/sh/error.c
==
--- head/bin/sh/error.c Fri Nov  9 13:47:06 2018(r340283)
+++ head/bin/sh/error.c Fri Nov  9 14:58:24 2018(r340284)
@@ -67,7 +67,7 @@ volatile sig_atomic_t suppressint;
 volatile sig_atomic_t intpending;
 
 
-static void exverror(int, const char *, va_list) __printf0like(2, 0) __dead2;
+static void verrorwithstatus(int, const char *, va_list) __printf0like(2, 0) 
__dead2;
 
 /*
  * Called to raise an exception.  Since C doesn't include exceptions, we
@@ -154,7 +154,7 @@ warning(const char *msg, ...)
  * formatting.  It then raises the error exception.
  */
 static void
-exverror(int cond, const char *msg, va_list ap)
+verrorwithstatus(int status, const char *msg, va_list ap)
 {
/*
 * An interrupt trumps an error.  Certain places catch error
@@ -168,14 +168,17 @@ exverror(int cond, const char *msg, va_list ap)
 
 #ifdef DEBUG
if (msg)
-   TRACE(("exverror(%d, \"%s\") pid=%d\n", cond, msg, getpid()));
+   TRACE(("verrorwithstatus(%d, \"%s\") pid=%d\n",
+   status, msg, getpid()));
else
-   TRACE(("exverror(%d, NULL) pid=%d\n", cond, getpid()));
+   TRACE(("verrorwithstatus(%d, NULL) pid=%d\n",
+   status, getpid()));
 #endif
if (msg)
vwarning(msg, ap);
flushall();
-   exraise(cond);
+   exitstatus = status;
+   exraise(EXERROR);
 }
 
 
@@ -184,16 +187,16 @@ error(const char *msg, ...)
 {
va_list ap;
va_start(ap, msg);
-   exverror(EXERROR, msg, ap);
+   verrorwithstatus(2, msg, ap);
va_end(ap);
 }
 
 
 void
-exerror(int cond, const char *msg, ...)
+errorwithstatus(int status, const char *msg, ...)
 {
va_list ap;
va_start(ap, msg);
-   exverror(cond, msg, ap);
+   verrorwithstatus(status, msg, ap);
va_end(ap);
 }

Modified: head/bin/sh/error.h
==
--- head/bin/sh/error.h Fri Nov  9 13:47:06 2018(r340283)
+++ head/bin/sh/error.h Fri Nov  9 14:58:24 2018(r340284)
@@ -55,9 +55,8 @@ extern volatile sig_atomic_t exception;
 
 /* exceptions */
 #define EXINT 0/* SIGINT received */
-#define EXERROR 1  /* a generic error */
-#define EXEXEC 2   /* command execution failed */
-#define EXEXIT 3   /* call exitshell(exitstatus) */
+#define EXERROR 1  /* a generic error with exitstatus */
+#define EXEXIT 2   /* call exitshell(exitstatus) */
 
 
 /*
@@ -83,7 +82,7 @@ void exraise(int) __dead2;
 void onint(void) __dead2;
 void warning(const char *, ...) __printflike(1, 2);
 void error(const char *, ...) __printf0like(1, 2) __dead2;
-void exerror(int, const char *, ...) __printf0like(2, 3) __dead2;
+void errorwithstatus(int, const char *, ...) __printf0like(2, 3) __dead2;
 
 
 /*

Modified: head/bin/sh/eval.c
==
--- head/bin/sh/eval.c  Fri Nov  9 13:47:06 2018(r340283)
+++ head/bin/sh/eval.c  Fri Nov  9 14:58:24 2018(r340284)
@@ -466,13 +466,9 @@ evalredir(union node *n, int flags)
handler = savehandler;
e = exception;
popredir();
-   if (e == EXERROR || e == EXEXEC) {
-   if (in_redirect) {
-   if (e == EXERROR)
-   exitstatus = 2;
-   FORCEINTON;
-   return;
-   

svn commit: r340283 - in head: usr.bin/nohup usr.sbin/daemon

2018-11-09 Thread Mateusz Piotrowski
Author: 0mp (ports committer)
Date: Fri Nov  9 13:47:06 2018
New Revision: 340283
URL: https://svnweb.freebsd.org/changeset/base/340283

Log:
  Cross-reference nohup(1) and daemon(8).
  
  Reviewed by:  bcr
  Approved by:  krion (mentor, implicit), mat (mentor, implicit)
  Differential Revision:https://reviews.freebsd.org/D17920

Modified:
  head/usr.bin/nohup/nohup.1
  head/usr.sbin/daemon/daemon.8

Modified: head/usr.bin/nohup/nohup.1
==
--- head/usr.bin/nohup/nohup.1  Fri Nov  9 09:26:10 2018(r340282)
+++ head/usr.bin/nohup/nohup.1  Fri Nov  9 13:47:06 2018(r340283)
@@ -31,7 +31,7 @@
 .\"@(#)nohup.1 8.1 (Berkeley) 6/6/93
 .\" $FreeBSD$
 .\"
-.Dd July 19, 2001
+.Dd November 9, 2018
 .Dt NOHUP 1
 .Os
 .Sh NAME
@@ -107,7 +107,8 @@ will be that of
 .Sh SEE ALSO
 .Xr builtin 1 ,
 .Xr csh 1 ,
-.Xr signal 3
+.Xr signal 3 ,
+.Xr daemon 8
 .Sh STANDARDS
 The
 .Nm

Modified: head/usr.sbin/daemon/daemon.8
==
--- head/usr.sbin/daemon/daemon.8   Fri Nov  9 09:26:10 2018
(r340282)
+++ head/usr.sbin/daemon/daemon.8   Fri Nov  9 13:47:06 2018
(r340283)
@@ -26,7 +26,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd April 15, 2018
+.Dd November 9, 2018
 .Dt DAEMON 8
 .Os
 .Sh NAME
@@ -212,6 +212,7 @@ The exact behavior depends on the logging parameters a
 .Fl f
 flag.
 .Sh SEE ALSO
+.Xr nohup 1 ,
 .Xr setregid 2 ,
 .Xr setreuid 2 ,
 .Xr daemon 3 ,
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r340279 - in head: share/man/man4 tools/tools/netmap

2018-11-09 Thread Vincenzo Maffione
Author: vmaffione
Date: Fri Nov  9 08:43:40 2018
New Revision: 340279
URL: https://svnweb.freebsd.org/changeset/base/340279

Log:
  netmap: add load balancer program
  
  Add the lb program, which is able to load-balance input traffic
  received from a netmap port over M groups, with N netmap pipes in
  each group. Each received packet is forwarded to one of the pipes
  chosen from each group (using an L3/L4 connection-consistent hash function).
  This also adds a man page for lb and some cross-references in related
  man pages.
  
  Reviewed by:  bcr, 0mp
  Approved by:  gnn (mentor)
  Differential Revision:https://reviews.freebsd.org/D17735

Added:
  head/tools/tools/netmap/lb.8   (contents, props changed)
  head/tools/tools/netmap/lb.c   (contents, props changed)
  head/tools/tools/netmap/pkt_hash.c   (contents, props changed)
  head/tools/tools/netmap/pkt_hash.h   (contents, props changed)
Modified:
  head/share/man/man4/netmap.4
  head/tools/tools/netmap/Makefile
  head/tools/tools/netmap/README
  head/tools/tools/netmap/bridge.8
  head/tools/tools/netmap/ctrs.h

Modified: head/share/man/man4/netmap.4
==
--- head/share/man/man4/netmap.4Fri Nov  9 08:15:58 2018
(r340278)
+++ head/share/man/man4/netmap.4Fri Nov  9 08:43:40 2018
(r340279)
@@ -27,7 +27,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd October 23, 2018
+.Dd October 28, 2018
 .Dt NETMAP 4
 .Os
 .Sh NAME
@@ -1073,8 +1073,11 @@ Other
 clients attached to the same switch can now communicate
 with the network card or the host.
 .Sh SEE ALSO
-.Xr pkt-gen 8 ,
-.Xr bridge 8
+.Xr vale 4 ,
+.Xr vale-ctl 4 ,
+.Xr bridge 8 ,
+.Xr lb 8 ,
+.Xr pkt-gen 8
 .Pp
 .Pa http://info.iet.unipi.it/~luigi/netmap/
 .Pp

Modified: head/tools/tools/netmap/Makefile
==
--- head/tools/tools/netmap/MakefileFri Nov  9 08:15:58 2018
(r340278)
+++ head/tools/tools/netmap/MakefileFri Nov  9 08:43:40 2018
(r340279)
@@ -3,7 +3,7 @@
 #
 # For multiple programs using a single source file each,
 # we can just define 'progs' and create custom targets.
-PROGS  =   pkt-gen nmreplay bridge vale-ctl
+PROGS  =   pkt-gen nmreplay bridge vale-ctl lb
 
 CLEANFILES = $(PROGS) *.o
 MAN=
@@ -34,3 +34,6 @@ nmreplay: nmreplay.o
 
 vale-ctl: vale-ctl.o
$(CC) $(CFLAGS) -o vale-ctl vale-ctl.o
+
+lb: lb.o pkt_hash.o
+   $(CC) $(CFLAGS) -o lb lb.o pkt_hash.o $(LDFLAGS)

Modified: head/tools/tools/netmap/README
==
--- head/tools/tools/netmap/README  Fri Nov  9 08:15:58 2018
(r340278)
+++ head/tools/tools/netmap/README  Fri Nov  9 08:43:40 2018
(r340279)
@@ -1,9 +1,13 @@
 $FreeBSD$
 
-This directory contains examples that use netmap
+This directory contains applications that use the netmap API
 
-   pkt-gen a packet sink/source using the netmap API
+   pkt-gen a multi-function packet generator and traffic sink
 
-   bridge  a two-port jumper wire, also using the native API
+   bridge  a two-port jumper wire, also using the netmap API
 
-   vale-ctlthe program to control VALE bridges
+   vale-ctlthe program to control and inspect VALE switches
+
+   lb  an L3/L4 load balancer
+
+   nmreplaya tool to playback a pcap file to a netmap port

Modified: head/tools/tools/netmap/bridge.8
==
--- head/tools/tools/netmap/bridge.8Fri Nov  9 08:15:58 2018
(r340278)
+++ head/tools/tools/netmap/bridge.8Fri Nov  9 08:43:40 2018
(r340279)
@@ -23,7 +23,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd October 23, 2018
+.Dd October 28, 2018
 .Dt BRIDGE 8
 .Os
 .Sh NAME
@@ -71,7 +71,8 @@ Disable zero-copy mode.
 .El
 .Sh SEE ALSO
 .Xr netmap 4 ,
-.Xr pkt-gen 8
+.Xr pkt-gen 8 ,
+.Xr lb 8
 .Sh AUTHORS
 .An -nosplit
 .Nm

Modified: head/tools/tools/netmap/ctrs.h
==
--- head/tools/tools/netmap/ctrs.h  Fri Nov  9 08:15:58 2018
(r340278)
+++ head/tools/tools/netmap/ctrs.h  Fri Nov  9 08:43:40 2018
(r340279)
@@ -7,30 +7,37 @@
 
 /* counters to accumulate statistics */
 struct my_ctrs {
-   uint64_t pkts, bytes, events, drop;
+   uint64_t pkts, bytes, events;
+   uint64_t drop, drop_bytes;
uint64_t min_space;
struct timeval t;
+   uint32_t oq_n; /* number of elements in overflow queue (used in lb) */
 };
 
 /* very crude code to print a number in normalized form.
  * Caller has to make sure that the buffer is large enough.
  */
 static const char *
-norm2(char *buf, double val, char *fmt)
+norm2(char *buf, double val, char *fmt, int normalize)
 {
char *units[] = { "", "K", "M", "G", "T" };