svn commit: r354990 - head/sys/powerpc/powerpc

2019-11-21 Thread Justin Hibbits
Author: jhibbits
Date: Fri Nov 22 04:34:46 2019
New Revision: 354990
URL: https://svnweb.freebsd.org/changeset/base/354990

Log:
  powerpc/ptrace: Give ptrace(2) access to SPE registers when available
  
  SPE registers are already exported in core dumps with the VMX note, so use
  the same interface for live access.
  
  Instead of simply guarding out in #ifndef __SPE__ the cpu_feature check, I
  chose to keep the check and check against PPC_FEATURE_SPE, on the off-chance
  someone decides to run a SPE kernel on a non-SPE device (which is possible,
  though highly unlikely, and would be no different from running a MPC85XX
  kernel in that instance).

Modified:
  head/sys/powerpc/powerpc/ptrace_machdep.c

Modified: head/sys/powerpc/powerpc/ptrace_machdep.c
==
--- head/sys/powerpc/powerpc/ptrace_machdep.c   Fri Nov 22 00:22:55 2019
(r354989)
+++ head/sys/powerpc/powerpc/ptrace_machdep.c   Fri Nov 22 04:34:46 2019
(r354990)
@@ -40,6 +40,12 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 
+#ifdef __SPE__
+#definePPC_FEATURE_VECTOR  PPC_FEATURE_HAS_SPE
+#else
+#definePPC_FEATURE_VECTOR  PPC_FEATURE_HAS_ALTIVEC
+#endif
+
 int
 cpu_ptrace(struct thread *td, int req, void *addr, int data)
 {
@@ -58,7 +64,7 @@ cpu_ptrace(struct thread *td, int req, void *addr, int
error = EINVAL;
switch (req) {
case PT_GETVRREGS:
-   if (!(cpu_features & PPC_FEATURE_HAS_ALTIVEC))
+   if (!(cpu_features & PPC_FEATURE_VECTOR))
break;
 
if (pcb->pcb_flags & PCB_VEC) {
@@ -68,7 +74,7 @@ cpu_ptrace(struct thread *td, int req, void *addr, int
error = copyout(, addr, sizeof(vec));
break;
case PT_SETVRREGS:
-   if (!(cpu_features & PPC_FEATURE_HAS_ALTIVEC))
+   if (!(cpu_features & PPC_FEATURE_VECTOR))
break;
error = copyin(addr, , sizeof(vec));
if (error == 0) {
___
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: r354909 - in head: . share/mk

2019-11-21 Thread Glen Barber
On Thu, Nov 21, 2019 at 09:11:27PM +, Brooks Davis wrote:
> On Thu, Nov 21, 2019 at 04:13:37PM +, Glen Barber wrote:
> > On Wed, Nov 20, 2019 at 06:36:58PM +, Brooks Davis wrote:
> > > Author: brooks
> > > Date: Wed Nov 20 18:36:58 2019
> > > New Revision: 354909
> > > URL: https://svnweb.freebsd.org/changeset/base/354909
> > > 
> > > Log:
> > >   Make the warning for deprecated NO_ variables an error.
> > >   
> > >   Support for NO_CTF, NO_DEBUG_FILES, NO_INSTALLLIB, NO_MAN, NO_PROFILE,
> > >   and NO_WARNS as deprecated in 2014 with a warning added for each one
> > >   found. Turn these into error in preperation for removal of compatability
> > >   support before FreeBSD 13.
> > >   
> > >   Reviewed by:imp
> > >   Relnotes:   yes
> > >   Sponsored by:   DARPA, AFRL
> > >   Differential Revision:  https://reviews.freebsd.org/D22448
> > > 
> > 
> > > Modified: head/share/mk/bsd.opts.mk
> > > ==
> > > --- head/share/mk/bsd.opts.mk Wed Nov 20 18:12:01 2019
> > > (r354908)
> > > +++ head/share/mk/bsd.opts.mk Wed Nov 20 18:36:58 2019
> > > (r354909)
> > > @@ -100,7 +100,7 @@ __DEFAULT_DEPENDENT_OPTIONS = \
> > >  PROFILE \
> > >  WARNS
> > >  .if defined(NO_${var})
> > > -.warning "NO_${var} is defined, but deprecated. Please use MK_${var}=no 
> > > instead."
> > > +.error "NO_${var} is defined, but deprecated. Please use MK_${var}=no 
> > > instead."
> > >  MK_${var}:=no
> > >  .endif
> > >  .endfor
> > > 
> > 
> > Had this been exp-run tested?  This breaks at least the
> > net/bsdec2-image-upload port, which does *not* set NO_MAN explicitly in
> > its Makefile.  I suspect at least several other ports are now implicitly
> > broken as result of this change.
> 
> No, it wasn't.  I didn't realize it was needed.  I could revert if
> there's significant fallout.  I've patched net/bsdec2-image-upload and
> I'm testing a patch for emulators/open-vm-tools.
> 
> In general the issue is people putting NO_MAN= in Makefiles that
> the freebsd build infrastructure and then never looking at build
> output.  In some cases it's clearly blind copy-and-paste (e.g.
> emulators/open-vm-tools sets NO_MAN and NOMAN in a kmod Makefile where
> they do nothing).
> 
> Ideally I'd like to suppress these errors in ports unless DEVELOPER is
> defined, but I'm not sure how best to do that.
> 

Have you seen the email from antoine in reply to your commit to the
net/bsdec2-image-upload commit?

Glen



signature.asc
Description: PGP signature


Re: svn commit: r354977 - in head: share/man/man3 sys/sys tests/sys/sys

2019-11-21 Thread Keller, Jacob E
On Fri, 2019-11-22 at 02:34 +0200, Konstantin Belousov wrote:
> On Fri, Nov 22, 2019 at 12:25:00AM +, Keller, Jacob E wrote:
> > On Fri, 2019-11-22 at 02:22 +0200, Konstantin Belousov wrote:
> > > On Thu, Nov 21, 2019 at 09:52:54PM +, Keller, Jacob E wrote:
> > > > We use a bit string as a method of determining which index
> > > > numbers
> > > > have
> > > > been assigned.
> > > For unit numbers we have unr(9) as well.
> > 
> > Does unr have support for allocating contiguous sequences of unit
> > numbers?
> 
> No, it does not.  Although the data structure is optimized to track
> contiguous runs, there is currently no API to allocate the chunk of
> desired
> length.

Hmm. Might make more sense to extend the API to allow requesting chunks
of desired length, and then use that.

Thanks,
Jake
___
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: r354977 - in head: share/man/man3 sys/sys tests/sys/sys

2019-11-21 Thread Konstantin Belousov
On Fri, Nov 22, 2019 at 12:25:00AM +, Keller, Jacob E wrote:
> On Fri, 2019-11-22 at 02:22 +0200, Konstantin Belousov wrote:
> > On Thu, Nov 21, 2019 at 09:52:54PM +, Keller, Jacob E wrote:
> > > We use a bit string as a method of determining which index numbers
> > > have
> > > been assigned.
> > For unit numbers we have unr(9) as well.
> 
> Does unr have support for allocating contiguous sequences of unit
> numbers?

No, it does not.  Although the data structure is optimized to track
contiguous runs, there is currently no API to allocate the chunk of desired
length.
___
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: r354977 - in head: share/man/man3 sys/sys tests/sys/sys

2019-11-21 Thread Keller, Jacob E
On Fri, 2019-11-22 at 02:22 +0200, Konstantin Belousov wrote:
> On Thu, Nov 21, 2019 at 09:52:54PM +, Keller, Jacob E wrote:
> > We use a bit string as a method of determining which index numbers
> > have
> > been assigned.
> For unit numbers we have unr(9) as well.

Does unr have support for allocating contiguous sequences of unit
numbers?

Thanks,
Jake
___
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: r354989 - in head/sys/fs: nfs nfsserver

2019-11-21 Thread Rick Macklem
Author: rmacklem
Date: Fri Nov 22 00:22:55 2019
New Revision: 354989
URL: https://svnweb.freebsd.org/changeset/base/354989

Log:
  Fix the pNFS server's reporting of SpaceUsed (va_bytes).
  
  The pNFS server currently reports SpaceUsed (va_bytes) for the metadata
  file. This in not correct, since the metadata file is always empty and,
  as such, va_bytes is just the allocation for the empty file.
  This patch adds va_bytes to the list of attributes acquired from the
  DS for a file, so that it includes the allocated data size and is updated
  when the file is written.
  For files created on a pNFS server before this patch is applied, the
  va_bytes value is estimated by rounding va_size up to a multiple of
  BLKDEV_IOSIZE. Once the file is written after this patch has been
  applied to the metadata server, the va_bytes returned for the file
  will be correct.
  
  This patch only affects a pNFS metadata server.
  
  Found during testing of the NFSv4.2 pNFS server for the Allocate operation.
  (Not yet in head/current.)
  
  MFC after:2 weeks

Modified:
  head/sys/fs/nfs/nfsrvstate.h
  head/sys/fs/nfsserver/nfs_nfsdport.c

Modified: head/sys/fs/nfs/nfsrvstate.h
==
--- head/sys/fs/nfs/nfsrvstate.hThu Nov 21 23:55:43 2019
(r354988)
+++ head/sys/fs/nfs/nfsrvstate.hFri Nov 22 00:22:55 2019
(r354989)
@@ -355,14 +355,24 @@ struct nfsdevice {
 };
 
 /*
- * This structure holds the va_size, va_filerev, va_atime and va_mtime for the
- * DS file and is stored in the metadata file's extended attribute 
pnfsd.dsattr.
+ * This structure holds the va_size, va_filerev, va_atime, va_mtime and
+ * va_bytes for the DS file and is stored in the metadata file's extended
+ * attribute pnfsd.dsattr.
+ * opnfsdsattr was missing the va_bytes field and, as such, it was updated.
  */
+struct opnfsdsattr {
+   uint64_tdsa_filerev;
+   uint64_tdsa_size;
+   struct timespec dsa_atime;
+   struct timespec dsa_mtime;
+};
+
 struct pnfsdsattr {
uint64_tdsa_filerev;
uint64_tdsa_size;
struct timespec dsa_atime;
struct timespec dsa_mtime;
+   uint64_tdsa_bytes;
 };
 
 /*

Modified: head/sys/fs/nfsserver/nfs_nfsdport.c
==
--- head/sys/fs/nfsserver/nfs_nfsdport.cThu Nov 21 23:55:43 2019
(r354988)
+++ head/sys/fs/nfsserver/nfs_nfsdport.cFri Nov 22 00:22:55 2019
(r354989)
@@ -277,7 +277,8 @@ nfsvno_getattr(struct vnode *vp, struct nfsvattr *nvap
}
 
/*
-* Acquire the Change, Size and TimeModify attributes, as required.
+* Acquire the Change, Size, TimeAccess, TimeModify and SpaceUsed
+* attributes, as required.
 * This needs to be done for regular files if:
 * - non-NFSv4 RPCs or
 * - when attrbitp == NULL or
@@ -292,7 +293,8 @@ nfsvno_getattr(struct vnode *vp, struct nfsvattr *nvap
NFSISSET_ATTRBIT(attrbitp, NFSATTRBIT_CHANGE) ||
NFSISSET_ATTRBIT(attrbitp, NFSATTRBIT_SIZE) ||
NFSISSET_ATTRBIT(attrbitp, NFSATTRBIT_TIMEACCESS) ||
-   NFSISSET_ATTRBIT(attrbitp, NFSATTRBIT_TIMEMODIFY))) {
+   NFSISSET_ATTRBIT(attrbitp, NFSATTRBIT_TIMEMODIFY) ||
+   NFSISSET_ATTRBIT(attrbitp, NFSATTRBIT_SPACEUSED))) {
error = nfsrv_proxyds(vp, 0, 0, nd->nd_cred, p,
NFSPROC_GETATTR, NULL, NULL, NULL, , NULL);
if (error == 0)
@@ -312,6 +314,7 @@ nfsvno_getattr(struct vnode *vp, struct nfsvattr *nvap
nvap->na_mtime = na.na_mtime;
nvap->na_filerev = na.na_filerev;
nvap->na_size = na.na_size;
+   nvap->na_bytes = na.na_bytes;
}
NFSD_DEBUG(4, "nfsvno_getattr: gotattr=%d err=%d chg=%ju\n", gotattr,
error, (uintmax_t)na.na_filerev);
@@ -3881,6 +3884,7 @@ nfsrv_dscreate(struct vnode *dvp, struct vattr *vap, s
dsa->dsa_size = va.va_size;
dsa->dsa_atime = va.va_atime;
dsa->dsa_mtime = va.va_mtime;
+   dsa->dsa_bytes = va.va_bytes;
}
}
if (error == 0) {
@@ -4405,6 +4409,7 @@ nfsrv_proxyds(struct vnode *vp, off_t off, int cnt, st
struct vnode *dvp[NFSDEV_MAXMIRRORS];
struct nfsdevice *ds;
struct pnfsdsattr dsattr;
+   struct opnfsdsattr odsattr;
char *buf;
int buflen, error, failpos, i, mirrorcnt, origmircnt, trycnt;
 
@@ -4429,15 +4434,31 @@ nfsrv_proxyds(struct vnode *vp, off_t off, int cnt, st
error = vn_extattr_get(vp, IO_NODELOCKED,
EXTATTR_NAMESPACE_SYSTEM, "pnfsd.dsattr", , buf,

Re: svn commit: r354977 - in head: share/man/man3 sys/sys tests/sys/sys

2019-11-21 Thread Konstantin Belousov
On Thu, Nov 21, 2019 at 09:52:54PM +, Keller, Jacob E wrote:
> We use a bit string as a method of determining which index numbers have
> been assigned.
For unit numbers we have unr(9) as well.
___
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: r354988 - head/sys/kern

2019-11-21 Thread Gleb Smirnoff
Author: glebius
Date: Thu Nov 21 23:55:43 2019
New Revision: 354988
URL: https://svnweb.freebsd.org/changeset/base/354988

Log:
  cc_ktr_event_name is used only with KTR

Modified:
  head/sys/kern/kern_timeout.c

Modified: head/sys/kern/kern_timeout.c
==
--- head/sys/kern/kern_timeout.cThu Nov 21 23:55:19 2019
(r354987)
+++ head/sys/kern/kern_timeout.cThu Nov 21 23:55:43 2019
(r354988)
@@ -175,7 +175,9 @@ struct callout_cpu {
void*cc_cookie;
u_int   cc_bucket;
u_int   cc_inited;
+#ifdef KTR
charcc_ktr_event_name[20];
+#endif
 };
 
 #definecallout_migrating(c)((c)->c_iflags & CALLOUT_DFRMIGRATION)
@@ -335,8 +337,10 @@ callout_cpu_init(struct callout_cpu *cc, int cpu)
cc->cc_firstevent = SBT_MAX;
for (i = 0; i < 2; i++)
cc_cce_cleanup(cc, i);
+#ifdef KTR
snprintf(cc->cc_ktr_event_name, sizeof(cc->cc_ktr_event_name),
"callwheel cpu %d", cpu);
+#endif
if (cc->cc_callout == NULL) /* Only BSP handles timeout(9) */
return;
for (i = 0; i < ncallout; i++) {
___
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: r354987 - head/sys/sys

2019-11-21 Thread Gleb Smirnoff
Author: glebius
Date: Thu Nov 21 23:55:19 2019
New Revision: 354987
URL: https://svnweb.freebsd.org/changeset/base/354987

Log:
  Delete ih_thread.  Should have gone in r334170.

Modified:
  head/sys/sys/interrupt.h

Modified: head/sys/sys/interrupt.h
==
--- head/sys/sys/interrupt.hThu Nov 21 21:59:35 2019(r354986)
+++ head/sys/sys/interrupt.hThu Nov 21 23:55:19 2019(r354987)
@@ -55,7 +55,6 @@ struct intr_handler {
int  ih_need;   /* Needs service. */
CK_SLIST_ENTRY(intr_handler) ih_next; /* Next handler for this event. */
u_char   ih_pri;/* Priority of this handler. */
-   struct intr_thread *ih_thread;  /* Ithread for filtered handler. */
 };
 
 /* Interrupt handle flags kept in ih_flags */
___
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: r354986 - in head/sys: kern sys

2019-11-21 Thread Alexander Motin
Author: mav
Date: Thu Nov 21 21:59:35 2019
New Revision: 354986
URL: https://svnweb.freebsd.org/changeset/base/354986

Log:
  Add variant of root_mount_hold() without allocation.
  
  It allows to use this KPI in non-sleepable contexts.
  
  MFC after:2 weeks
  Sponsored by: iXsystems, Inc.

Modified:
  head/sys/kern/vfs_mountroot.c
  head/sys/sys/systm.h

Modified: head/sys/kern/vfs_mountroot.c
==
--- head/sys/kern/vfs_mountroot.c   Thu Nov 21 20:36:46 2019
(r354985)
+++ head/sys/kern/vfs_mountroot.c   Thu Nov 21 21:59:35 2019
(r354986)
@@ -111,14 +111,9 @@ char *rootdevnames[2] = {NULL, NULL};
 struct mtx root_holds_mtx;
 MTX_SYSINIT(root_holds, _holds_mtx, "root_holds", MTX_DEF);
 
-struct root_hold_token {
-   const char  *who;
-   LIST_ENTRY(root_hold_token) list;
-};
+static TAILQ_HEAD(, root_hold_token)   root_holds =
+TAILQ_HEAD_INITIALIZER(root_holds);
 
-static LIST_HEAD(, root_hold_token)root_holds =
-LIST_HEAD_INITIALIZER(root_holds);
-
 enum action {
A_CONTINUE,
A_PANIC,
@@ -126,6 +121,12 @@ enum action {
A_RETRY
 };
 
+enum rh_flags {
+   RH_FREE,
+   RH_ALLOC,
+   RH_ARG,
+};
+
 static enum action root_mount_onfail = A_CONTINUE;
 
 static int root_mount_mddev;
@@ -155,8 +156,8 @@ sysctl_vfs_root_mount_hold(SYSCTL_HANDLER_ARGS)
sbuf_new(, NULL, 256, SBUF_AUTOEXTEND | SBUF_INCLUDENUL);
 
mtx_lock(_holds_mtx);
-   LIST_FOREACH(h, _holds, list) {
-   if (h != LIST_FIRST(_holds))
+   TAILQ_FOREACH(h, _holds, list) {
+   if (h != TAILQ_FIRST(_holds))
sbuf_putc(, ' ');
sbuf_printf(, "%s", h->who);
}
@@ -175,27 +176,54 @@ root_mount_hold(const char *identifier)
struct root_hold_token *h;
 
h = malloc(sizeof *h, M_DEVBUF, M_ZERO | M_WAITOK);
+   h->flags = RH_ALLOC;
h->who = identifier;
mtx_lock(_holds_mtx);
TSHOLD("root mount");
-   LIST_INSERT_HEAD(_holds, h, list);
+   TAILQ_INSERT_TAIL(_holds, h, list);
mtx_unlock(_holds_mtx);
return (h);
 }
 
 void
+root_mount_hold_token(const char *identifier, struct root_hold_token *h)
+{
+#ifdef INVARIANTS
+   struct root_hold_token *t;
+#endif
+
+   h->flags = RH_ARG;
+   h->who = identifier;
+   mtx_lock(_holds_mtx);
+#ifdef INVARIANTS
+   TAILQ_FOREACH(t, _holds, list) {
+   if (t == h) {
+   panic("Duplicate mount hold by '%s' on %p",
+   identifier, h);
+   }
+   }
+#endif
+   TSHOLD("root mount");
+   TAILQ_INSERT_TAIL(_holds, h, list);
+   mtx_unlock(_holds_mtx);
+}
+
+void
 root_mount_rel(struct root_hold_token *h)
 {
 
-   if (h == NULL)
+   if (h == NULL || h->flags == RH_FREE)
return;
 
mtx_lock(_holds_mtx);
-   LIST_REMOVE(h, list);
+   TAILQ_REMOVE(_holds, h, list);
TSRELEASE("root mount");
wakeup(_holds);
mtx_unlock(_holds_mtx);
-   free(h, M_DEVBUF);
+   if (h->flags == RH_ALLOC) {
+   free(h, M_DEVBUF);
+   } else
+   h->flags = RH_FREE;
 }
 
 int
@@ -964,13 +992,13 @@ vfs_mountroot_wait(void)
while (1) {
g_waitidle();
mtx_lock(_holds_mtx);
-   if (LIST_EMPTY(_holds)) {
+   if (TAILQ_EMPTY(_holds)) {
mtx_unlock(_holds_mtx);
break;
}
if (ppsratecheck(, , 1)) {
printf("Root mount waiting for:");
-   LIST_FOREACH(h, _holds, list)
+   TAILQ_FOREACH(h, _holds, list)
printf(" %s", h->who);
printf("\n");
}

Modified: head/sys/sys/systm.h
==
--- head/sys/sys/systm.hThu Nov 21 20:36:46 2019(r354985)
+++ head/sys/sys/systm.hThu Nov 21 21:59:35 2019(r354986)
@@ -536,9 +536,14 @@ int poll_no_poll(int events);
 void   DELAY(int usec);
 
 /* Root mount holdback API */
-struct root_hold_token;
+struct root_hold_token {
+   int flags;
+   const char  *who;
+   TAILQ_ENTRY(root_hold_token)list;
+};
 
 struct root_hold_token *root_mount_hold(const char *identifier);
+void root_mount_hold_token(const char *identifier, struct root_hold_token *h);
 void root_mount_rel(struct root_hold_token *h);
 int root_mounted(void);
 
___
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: r354977 - in head: share/man/man3 sys/sys tests/sys/sys

2019-11-21 Thread Keller, Jacob E
On Thu, 2019-11-21 at 13:34 -0800, Eric Joyner wrote:
> On Thu, Nov 21, 2019 at 12:07 PM Conrad Meyer 
> wrote:
> > Hi Eric,
> > 
> > On Thu, Nov 21, 2019 at 11:58 AM Eric Joyner 
> > wrote:
> > >
> > > Author: erj
> > > Date: Thu Nov 21 19:57:56 2019
> > > New Revision: 354977
> > > URL: https://svnweb.freebsd.org/changeset/base/354977
> > >
> > > Log:
> > >   bitstring: add functions to find contiguous set/unset bit
> > sequences
> > >
> > >   Add bit_ffs_area_at and bit_ffc_area_at functions for searching
> > a bit
> > >   string for a sequence of contiguous set or unset bits of at
> > least the
> > >   specified size.
> > >
> > >   The bit_ffc_area function will be used by the Intel ice driver
> > for
> > >   implementing resource assignment logic using a bitstring to
> > represent
> > >   whether or not a given index has been assigned or is currently
> > free.
> > 
> > I don't know what the ice driver is/does, so apologies if this is
> > nonsensical.  Would it make more sense to use vmem(9) for this
> > purpose?  It's a general-purpose resource allocator and can scale
> > well
> > with large numbers of resources / CPUs.
> > 
> > Best,
> > Conrad
> 

Eric already added the review link for the ice driver, which we
recently published. I'm currently going through review comments and
preeparing an update.

We use a bit string as a method of determining which index numbers have
been assigned.

> +Jake
> 
> Hi Conrad,
> 
> It doesn't seem nonsensical; this seems like it would vaguely be an
> ok fit. But one issue
> I find after looking at it is that it doesn't support the "scattered"
> allocations that we need; for some types of 
> hardware queues we need to be able to group together multiple non-
> sequential allocations into one single block,
> and it doesn't look like we could do that without having to add
> another layer on top of vmem.
> 

I don't know much about vmem.. it might be suitable for our purposes,
but it does sound like a bit overkill for what we do.

I'll try to do a review of the vmem interfaces to see if it makes
sense.

> As well, it looks like it's kind of overbuilt for what we need; we
> only need a few operations. It also seems to import
> a bunch of stuff in its headers, which might complicate using it in
> our unit test code.
> 
> If you want to look at the current structure we use, you can look at
> the ice_pf_qmgr.[ch] files in this Phabricator
> review that introduces ice(4) to the kernel: 
> https://reviews.freebsd.org/D21959.
> 
> - Eric

Yes, we'd definitely appreciate review of the ice device driver code.

Thanks,
Jake

___
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: r354977 - in head: share/man/man3 sys/sys tests/sys/sys

2019-11-21 Thread Eric Joyner
On Thu, Nov 21, 2019 at 12:07 PM Conrad Meyer  wrote:

> Hi Eric,
>
> On Thu, Nov 21, 2019 at 11:58 AM Eric Joyner  wrote:
> >
> > Author: erj
> > Date: Thu Nov 21 19:57:56 2019
> > New Revision: 354977
> > URL: https://svnweb.freebsd.org/changeset/base/354977
> >
> > Log:
> >   bitstring: add functions to find contiguous set/unset bit sequences
> >
> >   Add bit_ffs_area_at and bit_ffc_area_at functions for searching a bit
> >   string for a sequence of contiguous set or unset bits of at least the
> >   specified size.
> >
> >   The bit_ffc_area function will be used by the Intel ice driver for
> >   implementing resource assignment logic using a bitstring to represent
> >   whether or not a given index has been assigned or is currently free.
>
> I don't know what the ice driver is/does, so apologies if this is
> nonsensical.  Would it make more sense to use vmem(9) for this
> purpose?  It's a general-purpose resource allocator and can scale well
> with large numbers of resources / CPUs.
>
> Best,
> Conrad
>

+Jake

Hi Conrad,

It doesn't seem nonsensical; this seems like it would vaguely be an ok fit.
But one issue
I find after looking at it is that it doesn't support the "scattered"
allocations that we need; for some types of
hardware queues we need to be able to group together multiple
non-sequential allocations into one single block,
and it doesn't look like we could do that without having to add another
layer on top of vmem.

As well, it looks like it's kind of overbuilt for what we need; we only
need a few operations. It also seems to import
a bunch of stuff in its headers, which might complicate using it in our
unit test code.

If you want to look at the current structure we use, you can look at the
ice_pf_qmgr.[ch] files in this Phabricator
review that introduces ice(4) to the kernel:
https://reviews.freebsd.org/D21959.

- Eric
___
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: r354909 - in head: . share/mk

2019-11-21 Thread Brooks Davis
On Thu, Nov 21, 2019 at 04:13:37PM +, Glen Barber wrote:
> On Wed, Nov 20, 2019 at 06:36:58PM +, Brooks Davis wrote:
> > Author: brooks
> > Date: Wed Nov 20 18:36:58 2019
> > New Revision: 354909
> > URL: https://svnweb.freebsd.org/changeset/base/354909
> > 
> > Log:
> >   Make the warning for deprecated NO_ variables an error.
> >   
> >   Support for NO_CTF, NO_DEBUG_FILES, NO_INSTALLLIB, NO_MAN, NO_PROFILE,
> >   and NO_WARNS as deprecated in 2014 with a warning added for each one
> >   found. Turn these into error in preperation for removal of compatability
> >   support before FreeBSD 13.
> >   
> >   Reviewed by:  imp
> >   Relnotes: yes
> >   Sponsored by: DARPA, AFRL
> >   Differential Revision:https://reviews.freebsd.org/D22448
> > 
> 
> > Modified: head/share/mk/bsd.opts.mk
> > ==
> > --- head/share/mk/bsd.opts.mk   Wed Nov 20 18:12:01 2019
> > (r354908)
> > +++ head/share/mk/bsd.opts.mk   Wed Nov 20 18:36:58 2019
> > (r354909)
> > @@ -100,7 +100,7 @@ __DEFAULT_DEPENDENT_OPTIONS = \
> >  PROFILE \
> >  WARNS
> >  .if defined(NO_${var})
> > -.warning "NO_${var} is defined, but deprecated. Please use MK_${var}=no 
> > instead."
> > +.error "NO_${var} is defined, but deprecated. Please use MK_${var}=no 
> > instead."
> >  MK_${var}:=no
> >  .endif
> >  .endfor
> > 
> 
> Had this been exp-run tested?  This breaks at least the
> net/bsdec2-image-upload port, which does *not* set NO_MAN explicitly in
> its Makefile.  I suspect at least several other ports are now implicitly
> broken as result of this change.

No, it wasn't.  I didn't realize it was needed.  I could revert if
there's significant fallout.  I've patched net/bsdec2-image-upload and
I'm testing a patch for emulators/open-vm-tools.

In general the issue is people putting NO_MAN= in Makefiles that
the freebsd build infrastructure and then never looking at build
output.  In some cases it's clearly blind copy-and-paste (e.g.
emulators/open-vm-tools sets NO_MAN and NOMAN in a kmod Makefile where
they do nothing).

Ideally I'd like to suppress these errors in ports unless DEVELOPER is
defined, but I'm not sure how best to do that.

-- Brooks



signature.asc
Description: PGP signature


svn commit: r354985 - head/contrib/llvm/tools/clang/lib/Basic/Targets

2019-11-21 Thread Dimitry Andric
Author: dim
Date: Thu Nov 21 20:36:46 2019
New Revision: 354985
URL: https://svnweb.freebsd.org/changeset/base/354985

Log:
  Merge commit a751f557d from llvm git (by Simon Atanasyan):
  
[mips] Set macros for Octeon+ CPU
  
  This is one of the upstream changes needed for adding support for the
  OCTEON+ CPU type, so that we can test Clang builds using the most
  commonly available FreeBSD/mips64 reference platform, the Edge Router
  Lite.
  
  Requested by: kevans
  MFC after:1 month
  X-MFC-With:   r353358

Modified:
  head/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.cpp

Modified: head/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.cpp
==
--- head/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.cppThu Nov 21 
20:35:53 2019(r354984)
+++ head/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.cppThu Nov 21 
20:36:46 2019(r354985)
@@ -62,7 +62,7 @@ void MipsTargetInfo::fillValidCPUList(
 unsigned MipsTargetInfo::getISARev() const {
   return llvm::StringSwitch(getCPU())
  .Cases("mips32", "mips64", 1)
- .Cases("mips32r2", "mips64r2", "octeon", 2)
+ .Cases("mips32r2", "mips64r2", "octeon", "octeon+", 2)
  .Cases("mips32r3", "mips64r3", 3)
  .Cases("mips32r5", "mips64r5", 5)
  .Cases("mips32r6", "mips64r6", 6)
@@ -188,7 +188,10 @@ void MipsTargetInfo::getTargetDefines(const LangOption
   Builder.defineMacro("_MIPS_SZLONG", Twine(getLongWidth()));
 
   Builder.defineMacro("_MIPS_ARCH", "\"" + CPU + "\"");
-  Builder.defineMacro("_MIPS_ARCH_" + StringRef(CPU).upper());
+  if (CPU == "octeon+")
+Builder.defineMacro("_MIPS_ARCH_OCTEONP");
+  else
+Builder.defineMacro("_MIPS_ARCH_" + StringRef(CPU).upper());
 
   if (StringRef(CPU).startswith("octeon"))
 Builder.defineMacro("__OCTEON__");
___
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: r354984 - head/contrib/llvm/tools/clang/lib/Basic/Targets

2019-11-21 Thread Dimitry Andric
Author: dim
Date: Thu Nov 21 20:35:53 2019
New Revision: 354984
URL: https://svnweb.freebsd.org/changeset/base/354984

Log:
  Merge commit 0d14656b9 from llvm git (by Simon Atanasyan):
  
[mips] Set __OCTEON__ macros
  
  This is one of the upstream changes needed for adding support for the
  OCTEON+ CPU type, so that we can test Clang builds using the most
  commonly available FreeBSD/mips64 reference platform, the Edge Router
  Lite.
  
  Requested by: kevans
  MFC after:1 month
  X-MFC-With:   r353358

Modified:
  head/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.cpp

Modified: head/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.cpp
==
--- head/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.cppThu Nov 21 
20:32:34 2019(r354983)
+++ head/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.cppThu Nov 21 
20:35:53 2019(r354984)
@@ -190,6 +190,9 @@ void MipsTargetInfo::getTargetDefines(const LangOption
   Builder.defineMacro("_MIPS_ARCH", "\"" + CPU + "\"");
   Builder.defineMacro("_MIPS_ARCH_" + StringRef(CPU).upper());
 
+  if (StringRef(CPU).startswith("octeon"))
+Builder.defineMacro("__OCTEON__");
+
   // These shouldn't be defined for MIPS-I but there's no need to check
   // for that since MIPS-I isn't supported.
   Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_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: r354983 - head/contrib/llvm/tools/clang/lib/Basic/Targets

2019-11-21 Thread Dimitry Andric
Author: dim
Date: Thu Nov 21 20:32:34 2019
New Revision: 354983
URL: https://svnweb.freebsd.org/changeset/base/354983

Log:
  Merge commit e578d0fd2 from llvm git (by Simon Atanasyan):
  
[mips] Fix `__mips_isa_rev` macros value for Octeon CPU
  
  This is one of the upstream changes needed for adding support for the
  OCTEON+ CPU type, so that we can test Clang builds using the most
  commonly available FreeBSD/mips64 reference platform, the Edge Router
  Lite.
  
  Requested by: kevans
  MFC after:1 month
  X-MFC-With:   r353358

Modified:
  head/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.cpp

Modified: head/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.cpp
==
--- head/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.cppThu Nov 21 
20:26:34 2019(r354982)
+++ head/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.cppThu Nov 21 
20:32:34 2019(r354983)
@@ -62,7 +62,7 @@ void MipsTargetInfo::fillValidCPUList(
 unsigned MipsTargetInfo::getISARev() const {
   return llvm::StringSwitch(getCPU())
  .Cases("mips32", "mips64", 1)
- .Cases("mips32r2", "mips64r2", 2)
+ .Cases("mips32r2", "mips64r2", "octeon", 2)
  .Cases("mips32r3", "mips64r3", 3)
  .Cases("mips32r5", "mips64r5", 5)
  .Cases("mips32r6", "mips64r6", 6)
___
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: r354982 - in head/contrib/llvm/tools/clang/lib: Basic/Targets Driver/ToolChains

2019-11-21 Thread Dimitry Andric
Author: dim
Date: Thu Nov 21 20:26:34 2019
New Revision: 354982
URL: https://svnweb.freebsd.org/changeset/base/354982

Log:
  Merge commit 3552d3e0f from llvm git (by Simon Atanasyan):
  
[mips] Add `octeon+` to the list of CPUs accepted by the driver
  
  This is one of the upstream changes needed for adding support for the
  OCTEON+ CPU type, so that we can test Clang builds using the most
  commonly available FreeBSD/mips64 reference platform, the Edge Router
  Lite.
  
  Requested by: kevans
  MFC after:1 month
  X-MFC-With:   r353358

Modified:
  head/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.cpp
  head/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.h
  head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Gnu.cpp

Modified: head/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.cpp
==
--- head/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.cppThu Nov 21 
20:25:12 2019(r354981)
+++ head/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.cppThu Nov 21 
20:26:34 2019(r354982)
@@ -39,6 +39,7 @@ bool MipsTargetInfo::processorSupportsGPR64() const {
   .Case("mips64r5", true)
   .Case("mips64r6", true)
   .Case("octeon", true)
+  .Case("octeon+", true)
   .Default(false);
   return false;
 }
@@ -47,7 +48,7 @@ static constexpr llvm::StringLiteral ValidCPUNames[] =
 {"mips1"},  {"mips2"},{"mips3"},{"mips4"},{"mips5"},
 {"mips32"}, {"mips32r2"}, {"mips32r3"}, {"mips32r5"}, {"mips32r6"},
 {"mips64"}, {"mips64r2"}, {"mips64r3"}, {"mips64r5"}, {"mips64r6"},
-{"octeon"}, {"p5600"}};
+{"octeon"}, {"octeon+"}, {"p5600"}};
 
 bool MipsTargetInfo::isValidCPUName(StringRef Name) const {
   return llvm::find(ValidCPUNames, Name) != std::end(ValidCPUNames);

Modified: head/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.h
==
--- head/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.h  Thu Nov 21 
20:25:12 2019(r354981)
+++ head/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.h  Thu Nov 21 
20:26:34 2019(r354982)
@@ -180,6 +180,8 @@ class LLVM_LIBRARY_VISIBILITY MipsTargetInfo : public 
   CPU = getCPU();
 if (CPU == "octeon")
   Features["mips64r2"] = Features["cnmips"] = true;
+else if (CPU == "octeon+")
+  Features["mips64r2"] = Features["cnmips"] = Features["cnmipsp"] = true;
 else
   Features[CPU] = true;
 return TargetInfo::initFeatureMap(Features, Diags, CPU, FeaturesVec);

Modified: head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Gnu.cpp
==
--- head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Gnu.cpp Thu Nov 21 
20:25:12 2019(r354981)
+++ head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Gnu.cpp Thu Nov 21 
20:26:34 2019(r354982)
@@ -1392,7 +1392,8 @@ bool clang::driver::findMIPSMultilibs(const Driver ,
   addMultilibFlag(CPUName == "mips32r6", "march=mips32r6", Flags);
   addMultilibFlag(CPUName == "mips64", "march=mips64", Flags);
   addMultilibFlag(CPUName == "mips64r2" || CPUName == "mips64r3" ||
-  CPUName == "mips64r5" || CPUName == "octeon",
+  CPUName == "mips64r5" || CPUName == "octeon" ||
+  CPUName == "octeon+",
   "march=mips64r2", Flags);
   addMultilibFlag(CPUName == "mips64r6", "march=mips64r6", Flags);
   addMultilibFlag(isMicroMips(Args), "mmicromips", Flags);
___
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: r354981 - head/contrib/llvm/lib/Target/Mips/MCTargetDesc

2019-11-21 Thread Dimitry Andric
Author: dim
Date: Thu Nov 21 20:25:12 2019
New Revision: 354981
URL: https://svnweb.freebsd.org/changeset/base/354981

Log:
  Merge commit bf996f761 from llvm git (by Simon Atanasyan):
  
[mips] Write `AFL_EXT_OCTEONP` flag to the `.MIPS.abiflags` section
  
Differential Revision: https://reviews.llvm.org/D69851
  
  This is one of the upstream changes needed for adding support for the
  OCTEON+ CPU type, so that we can test Clang builds using the most
  commonly available FreeBSD/mips64 reference platform, the Edge Router
  Lite.
  
  Requested by: kevans
  MFC after:1 month
  X-MFC-With:   r353358

Modified:
  head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.h

Modified: head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.h
==
--- head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.h
Thu Nov 21 20:23:35 2019(r354980)
+++ head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.h
Thu Nov 21 20:25:12 2019(r354981)
@@ -139,7 +139,9 @@ struct MipsABIFlagsSection { (public)
 
   template 
   void setISAExtensionFromPredicates(const PredicateLibrary ) {
-if (P.hasCnMips())
+if (P.hasCnMipsP())
+  ISAExtension = Mips::AFL_EXT_OCTEONP;
+else if (P.hasCnMips())
   ISAExtension = Mips::AFL_EXT_OCTEON;
 else
   ISAExtension = Mips::AFL_EXT_NONE;
___
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: r354980 - head/contrib/llvm/lib/Target/Mips/AsmParser

2019-11-21 Thread Dimitry Andric
Author: dim
Date: Thu Nov 21 20:23:35 2019
New Revision: 354980
URL: https://svnweb.freebsd.org/changeset/base/354980

Log:
  Merge commit 3718102d4 from llvm git (by Simon Atanasyan):
  
[mips] Support `octeon+` CPU in the `.set arch=` directive
  
Differential Revision: https://reviews.llvm.org/D69850
  
  This is one of the upstream changes needed for adding support for the
  OCTEON+ CPU type, so that we can test Clang builds using the most
  commonly available FreeBSD/mips64 reference platform, the Edge Router
  Lite.
  
  Requested by: kevans
  MFC after:1 month
  X-MFC-With:   r353358

Modified:
  head/contrib/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp

Modified: head/contrib/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
==
--- head/contrib/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp   Thu Nov 
21 20:22:07 2019(r354979)
+++ head/contrib/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp   Thu Nov 
21 20:23:35 2019(r354980)
@@ -7122,8 +7122,8 @@ bool MipsAsmParser::parseSetArchDirective() {
 return reportParseError("unexpected token, expected equals sign");
 
   Parser.Lex();
-  StringRef Arch;
-  if (Parser.parseIdentifier(Arch))
+  StringRef Arch = getParser().parseStringToEndOfStatement().trim();
+  if (Arch.empty())
 return reportParseError("expected arch identifier");
 
   StringRef ArchFeatureName =
@@ -7144,6 +7144,7 @@ bool MipsAsmParser::parseSetArchDirective() {
   .Case("mips64r5", "mips64r5")
   .Case("mips64r6", "mips64r6")
   .Case("octeon", "cnmips")
+  .Case("octeon+", "cnmipsp")
   .Case("r4000", "mips3") // This is an implementation of Mips3.
   .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: r354979 - in head/contrib/llvm/lib/Target/Mips: . AsmParser Disassembler

2019-11-21 Thread Dimitry Andric
Author: dim
Date: Thu Nov 21 20:22:07 2019
New Revision: 354979
URL: https://svnweb.freebsd.org/changeset/base/354979

Log:
  Merge commit 7bed381ea from llvm git (by Simon Atanasyan):
  
[mips] Implement Octeon+ `saa` and `saad` instructions
  
`saa` and `saad` are 32-bit and 64-bit store atomic add instructions.
  
   memory[base] = memory[base] + rt
  
These instructions are available for "Octeon+" CPU. The patch adds
support for both instructions to MIPS assembler and diassembler and
introduces new CPU type - "octeon+".
  
Next patches will implement `.set arch=octeon+` directive and
`AFL_EXT_OCTEONP` ISA extension flag support.
  
Differential Revision: https://reviews.llvm.org/D69849
  
  This is one of the upstream changes needed for adding support for the
  OCTEON+ CPU type, so that we can test Clang builds using the most
  commonly available FreeBSD/mips64 reference platform, the Edge Router
  Lite.
  
  Requested by: kevans
  MFC after:1 month
  X-MFC-With:   r353358

Modified:
  head/contrib/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
  head/contrib/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp
  head/contrib/llvm/lib/Target/Mips/Mips.td
  head/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td
  head/contrib/llvm/lib/Target/Mips/MipsInstrFormats.td
  head/contrib/llvm/lib/Target/Mips/MipsInstrInfo.td
  head/contrib/llvm/lib/Target/Mips/MipsScheduleGeneric.td
  head/contrib/llvm/lib/Target/Mips/MipsScheduleP5600.td
  head/contrib/llvm/lib/Target/Mips/MipsSubtarget.h

Modified: head/contrib/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
==
--- head/contrib/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp   Thu Nov 
21 20:15:22 2019(r354978)
+++ head/contrib/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp   Thu Nov 
21 20:22:07 2019(r354979)
@@ -125,7 +125,8 @@ const FeatureBitset MipsAssemblerOptions::AllArchRelat
 Mips::FeatureMips32r3, Mips::FeatureMips32r5, Mips::FeatureMips32r6,
 Mips::FeatureMips64, Mips::FeatureMips64r2, Mips::FeatureMips64r3,
 Mips::FeatureMips64r5, Mips::FeatureMips64r6, Mips::FeatureCnMips,
-Mips::FeatureFP64Bit, Mips::FeatureGP64Bit, Mips::FeatureNaN2008
+Mips::FeatureCnMipsP, Mips::FeatureFP64Bit, Mips::FeatureGP64Bit,
+Mips::FeatureNaN2008
 };
 
 namespace {
@@ -324,6 +325,9 @@ class MipsAsmParser : public MCTargetAsmParser {
   bool expandMXTRAlias(MCInst , SMLoc IDLoc, MCStreamer ,
const MCSubtargetInfo *STI);
 
+  bool expandSaaAddr(MCInst , SMLoc IDLoc, MCStreamer ,
+ const MCSubtargetInfo *STI);
+
   bool reportParseError(Twine ErrorMsg);
   bool reportParseError(SMLoc Loc, Twine ErrorMsg);
 
@@ -648,6 +652,10 @@ class MipsAsmParser : public MCTargetAsmParser {
 return (getSTI().getFeatureBits()[Mips::FeatureCnMips]);
   }
 
+  bool hasCnMipsP() const {
+return (getSTI().getFeatureBits()[Mips::FeatureCnMipsP]);
+  }
+
   bool inPicMode() {
 return IsPicEnabled;
   }
@@ -2584,6 +2592,9 @@ MipsAsmParser::tryExpandInstruction(MCInst , SMLo
   case Mips::MFTHC1:  case Mips::MTTHC1:
   case Mips::CFTC1:   case Mips::CTTC1:
 return expandMXTRAlias(Inst, IDLoc, Out, STI) ? MER_Fail : MER_Success;
+  case Mips::SaaAddr:
+  case Mips::SaadAddr:
+return expandSaaAddr(Inst, IDLoc, Out, STI) ? MER_Fail : MER_Success;
   }
 }
 
@@ -3074,7 +3085,7 @@ bool MipsAsmParser::loadAndAddSymbolAddress(const MCEx
   TOut.emitRRR(Mips::DADDu, DstReg, ATReg, SrcReg, IDLoc, STI);
 
   return false;
-} else if (canUseATReg() && !RdRegIsRsReg) {
+} else if (canUseATReg() && !RdRegIsRsReg && DstReg != getATReg(IDLoc)) {
   unsigned ATReg = getATReg(IDLoc);
 
   // If the $rs is different from $rd or if $rs isn't specified and we
@@ -3101,7 +3112,8 @@ bool MipsAsmParser::loadAndAddSymbolAddress(const MCEx
 TOut.emitRRR(Mips::DADDu, DstReg, DstReg, SrcReg, IDLoc, STI);
 
   return false;
-} else if (!canUseATReg() && !RdRegIsRsReg) {
+} else if ((!canUseATReg() && !RdRegIsRsReg) ||
+   (canUseATReg() && DstReg == getATReg(IDLoc))) {
   // Otherwise, synthesize the address in the destination register
   // serially:
   // (d)la $rd, sym/sym($rs) => lui$rd, %highest(sym)
@@ -5356,6 +5368,39 @@ bool MipsAsmParser::expandMXTRAlias(MCInst , SMLo
 
   TOut.emitRRIII(IsMFTR ? Mips::MFTR : Mips::MTTR, Op0, Op1, u, sel, h, IDLoc,
  STI);
+  return false;
+}
+
+bool MipsAsmParser::expandSaaAddr(MCInst , SMLoc IDLoc, MCStreamer ,
+  const MCSubtargetInfo *STI) {
+  assert(Inst.getNumOperands() == 3 && "expected three operands");
+  assert(Inst.getOperand(0).isReg() && "expected register operand kind");
+  assert(Inst.getOperand(1).isReg() && "expected register operand kind");
+
+  warnIfNoMacro(IDLoc);
+
+  MipsTargetStreamer  = 

svn commit: r354978 - head/usr.sbin/ntp

2019-11-21 Thread Cy Schubert
Author: cy
Date: Thu Nov 21 20:15:22 2019
New Revision: 354978
URL: https://svnweb.freebsd.org/changeset/base/354978

Log:
  Chase r344883. ntp is 4.2.8p13.
  
  MFC after:3 days

Modified:
  head/usr.sbin/ntp/config.h

Modified: head/usr.sbin/ntp/config.h
==
--- head/usr.sbin/ntp/config.h  Thu Nov 21 19:57:56 2019(r354977)
+++ head/usr.sbin/ntp/config.h  Thu Nov 21 20:15:22 2019(r354978)
@@ -1477,7 +1477,7 @@
 #define PACKAGE_URL "http://www.ntp.org./;
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "4.2.8p12"
+#define PACKAGE_VERSION "4.2.8p13"
 
 /* data dir */
 #define PERLLIBDIR "/usr/share/ntp/lib"
___
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: r354977 - in head: share/man/man3 sys/sys tests/sys/sys

2019-11-21 Thread Conrad Meyer
Hi Eric,

On Thu, Nov 21, 2019 at 11:58 AM Eric Joyner  wrote:
>
> Author: erj
> Date: Thu Nov 21 19:57:56 2019
> New Revision: 354977
> URL: https://svnweb.freebsd.org/changeset/base/354977
>
> Log:
>   bitstring: add functions to find contiguous set/unset bit sequences
>
>   Add bit_ffs_area_at and bit_ffc_area_at functions for searching a bit
>   string for a sequence of contiguous set or unset bits of at least the
>   specified size.
>
>   The bit_ffc_area function will be used by the Intel ice driver for
>   implementing resource assignment logic using a bitstring to represent
>   whether or not a given index has been assigned or is currently free.

I don't know what the ice driver is/does, so apologies if this is
nonsensical.  Would it make more sense to use vmem(9) for this
purpose?  It's a general-purpose resource allocator and can scale well
with large numbers of resources / CPUs.

Best,
Conrad
___
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: r354977 - in head: share/man/man3 sys/sys tests/sys/sys

2019-11-21 Thread Eric Joyner
Author: erj
Date: Thu Nov 21 19:57:56 2019
New Revision: 354977
URL: https://svnweb.freebsd.org/changeset/base/354977

Log:
  bitstring: add functions to find contiguous set/unset bit sequences
  
  Add bit_ffs_area_at and bit_ffc_area_at functions for searching a bit
  string for a sequence of contiguous set or unset bits of at least the
  specified size.
  
  The bit_ffc_area function will be used by the Intel ice driver for
  implementing resource assignment logic using a bitstring to represent
  whether or not a given index has been assigned or is currently free.
  
  The bit_ffs_area, bit_ffc_area_at and bit_ffs_area_at functions are
  implemented for completeness.
  
  I'd like to add further test cases for the new functions, but I'm not
  really sure how to add them easily. The new functions depend on specific
  sequences of bits being set, while the bitstring tests appear to run for
  varying bit sizes.
  
  Signed-off-by: Jacob Keller 
  
  Submitted by: Jacob Keller 
  Reviewed by:  asomers@, erj@
  MFC after:1 week
  Sponsored by: Intel Corporation
  Differential Revision:https://reviews.freebsd.org/D22400

Modified:
  head/share/man/man3/bitstring.3
  head/sys/sys/bitstring.h
  head/sys/sys/param.h
  head/tests/sys/sys/bitstring_test.c

Modified: head/share/man/man3/bitstring.3
==
--- head/share/man/man3/bitstring.3 Thu Nov 21 19:54:10 2019
(r354976)
+++ head/share/man/man3/bitstring.3 Thu Nov 21 19:57:56 2019
(r354977)
@@ -58,7 +58,7 @@
 .\" @(#)bitstring.38.1 (Berkeley) 7/19/93
 .\" $FreeBSD$
 .\"
-.Dd May 23, 2016
+.Dd Nov 18, 2019
 .Dt BITSTRING 3
 .Os
 .Sh NAME
@@ -70,6 +70,10 @@
 .Nm bit_ffs ,
 .Nm bit_ffc_at ,
 .Nm bit_ffs_at ,
+.Nm bit_ffc_area ,
+.Nm bit_ffs_area ,
+.Nm bit_ffc_area_at ,
+.Nm bit_ffs_area_at ,
 .Nm bit_nclear ,
 .Nm bit_nset ,
 .Nm bit_set ,
@@ -95,6 +99,14 @@
 .Ft void
 .Fn bit_ffs_at "bitstr_t *name" "int start" "int nbits" "int *value"
 .Ft void
+.Fn bit_ffc_area "bitstr_t *name" "int nbits" "int size" "int *value"
+.Ft void
+.Fn bit_ffs_area "bitstr_t *name" "int nbits" "int size" "int *value"
+.Ft void
+.Fn bit_ffc_area_at "bitstr_t *name" "int start" "int nbits" "int size" "int 
*value"
+.Ft void
+.Fn bit_ffs_area_at "bitstr_t *name" "int start" "int nbits" "int size" "int 
*value"
+.Ft void
 .Fn bit_nclear "bitstr_t *name" "int start" "int stop"
 .Ft void
 .Fn bit_nset "bitstr_t *name" "int start" "int stop"
@@ -223,6 +235,82 @@ bits referenced by
 at or after the zero-based bit index
 .Fa start .
 If no bits are set after
+.Fa start ,
+the location referenced by
+.Fa value
+is set to \-1.
+.Pp
+The
+.Fn bit_ffc_area
+function stores in the location referenced by
+.Fa value
+the zero-based number of the first bit beginning a sequence of unset bits of
+at least
+.Fa size
+unset bits in the array of
+.Fa nbits
+bits referenced by
+.Fa name .
+If no sequence of contiguous unset bits of the specified
+.Fa size
+can be found, the location referenced by
+.Fa value
+is set to \-1.
+.Pp
+The
+.Fn bit_ffs_area
+function stores in the location referenced by
+.Fa value
+the zero-based number of the first bit beginning a sequence of set bits of
+at least
+.Fa size
+set bits in the array of
+.Fa nbits
+bits referenced by
+.Fa name .
+If no sequence of contiguous set bits of the specified
+.Fa size
+can be found, the location referenced by
+.Fa value
+is set to \-1.
+.Pp
+The
+.Fn bit_ffc_area_at
+function stores in the location referenced by
+.Fa value
+the zero-based number of the first bit beginning a sequence of unset bits of
+at least
+.Fa size
+unset bits in the array of
+.Fa nbits
+bits referenced by
+.Fa name ,
+at or after the zero-based bit index
+.Fa start .
+If no sequence of contiguous unset bits of the specified
+.Fa size
+can be found at or after
+.Fa start ,
+the location referenced by
+.Fa value
+is set to \-1.
+.Pp
+The
+.Fn bit_ffs_area_at
+function stores in the location referenced by
+.Fa value
+the zero-based number of the first bit beginning a sequence of set bits of
+at least
+.Fa size
+set bits in the array of
+.Fa nbits
+bits referenced by
+.Fa name ,
+at or after the zero-based bit index
+.Fa start .
+If no sequence of contiguous set bits of the specified
+.Fa size
+can be found at or after
 .Fa start ,
 the location referenced by
 .Fa value

Modified: head/sys/sys/bitstring.h
==
--- head/sys/sys/bitstring.hThu Nov 21 19:54:10 2019(r354976)
+++ head/sys/sys/bitstring.hThu Nov 21 19:57:56 2019(r354977)
@@ -275,6 +275,84 @@ bit_ffc(bitstr_t *_bitstr, int _nbits, int *_result)
bit_ffc_at(_bitstr, /*start*/0, _nbits, _result);
 }
 
+/* Find contiguous sequence of at least size set bits at or after start */
+static inline void
+bit_ffs_area_at(bitstr_t *_bitstr, int _start, int _nbits, int _size, int 
*_result)
+{
+   int 

svn commit: r354976 - head/share/mk

2019-11-21 Thread Warner Losh
Author: imp
Date: Thu Nov 21 19:54:10 2019
New Revision: 354976
URL: https://svnweb.freebsd.org/changeset/base/354976

Log:
  Install bsd.sysdir.mk.
  
  Submitted by: Jung-uk Kim

Modified:
  head/share/mk/Makefile

Modified: head/share/mk/Makefile
==
--- head/share/mk/Makefile  Thu Nov 21 19:36:11 2019(r354975)
+++ head/share/mk/Makefile  Thu Nov 21 19:54:10 2019(r354976)
@@ -56,6 +56,7 @@ FILES=\
bsd.suffixes.mk \
bsd.symver.mk \
bsd.sys.mk \
+   bsd.sysdir.mk \
bsd.test.mk \
dirdeps.mk \
dirdeps-options.mk \
___
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: r354968 - in head: share/mk sys/conf

2019-11-21 Thread Jung-uk Kim
On 19. 11. 21., Warner Losh wrote:
> Author: imp
> Date: Thu Nov 21 15:59:33 2019
> New Revision: 354968
> URL: https://svnweb.freebsd.org/changeset/base/354968
> 
> Log:
>   Introduce bsd.sysdir.mk to consolidate looking for the kernel.
>   
>   Reviewed by: jhb
>   Differential Revision: https://reviews.freebsd.org/D22144
> 
> Added:
>   head/share/mk/bsd.sysdir.mk
>  - copied, changed from r354937, head/share/mk/bsd.kmod.mk
> Modified:
>   head/share/mk/bsd.dtb.mk
>   head/share/mk/bsd.kmod.mk
>   head/sys/conf/dtb.build.mk
>   head/sys/conf/kmod.mk

It seems you forgot to install bsd.sysdir.mk.  All device drivers in
ports tree are failing.

Index: share/mk/Makefile
===
--- share/mk/Makefile   (revision 354973)
+++ share/mk/Makefile   (working copy)
@@ -56,6 +56,7 @@ FILES=\
bsd.suffixes.mk \
bsd.symver.mk \
bsd.sys.mk \
+   bsd.sysdir.mk \
bsd.test.mk \
dirdeps.mk \
dirdeps-options.mk \

Jung-uk Kim



signature.asc
Description: OpenPGP digital signature


svn commit: r354975 - in head: sys/sys tests/sys/sys

2019-11-21 Thread Eric Joyner
Author: erj
Date: Thu Nov 21 19:36:11 2019
New Revision: 354975
URL: https://svnweb.freebsd.org/changeset/base/354975

Log:
  bitstring: exit early if _start is past size of the bitstring
  
  bit_ffs_at and bit_ffc_at both take _start parameters which indicate to
  start searching from _start onwards.
  
  If the given _start index is past the size of the bit string, these
  functions will calculate an address of the current bitstring which is
  after the expected size. The function will also dereference the memory,
  resulting in a read buffer overflow.
  
  The output of the function remains correct, because the tests ensure to
  stop the loop if the current bitstring chunk passes the stop bitstring
  chunk, and because of a check to ensure the reported _value is never
  past _nbits.
  
  However, if  is ever used in code which is checked by
  -fsanitize=undefined, or similar static analysis, it can produce
  warnings about reading past the buffer size.
  
  Because of the above mentioned checks, these buffer overflows do not
  occur as long as _start is less than _nbits. Additionally, by definition
  bit_ffs_at and bif_ffc_at should set _result to -1 in any case where the
  _start is after the _nbits.
  
  Check for this case at the start of the function and exit early if so,
  preventing the buffer read overflow, and reducing the amount of
  computation that occurs.
  
  Note that it may seem odd to ever have code that could call bit_ffc_at
  or bit_ffs_at with a _start value greater than _nbits. However, consider
  a for-loop that used bit_ffs and bit_ffs_at to loop over a bit string
  and perform some operation on each bit that was set. If the last bit of
  the bit string was set, the simplest loop implementation would call
  bit_ffs_at with a start of _nbits, and expect that to return -1. While
  it does infact perform correctly, this is what ultimately triggers the
  unexpected buffer read overflow.
  
  Signed-off-by: Jacob Keller 
  
  Submitted by: Jacob Keller 
  Reviewed by:  asomers@, erj@
  MFC after:1 week
  Sponsored by: Intel Corporation
  Differential Revision:https://reviews.freebsd.org/D22398

Modified:
  head/sys/sys/bitstring.h
  head/tests/sys/sys/bitstring_test.c

Modified: head/sys/sys/bitstring.h
==
--- head/sys/sys/bitstring.hThu Nov 21 19:30:31 2019(r354974)
+++ head/sys/sys/bitstring.hThu Nov 21 19:36:11 2019(r354975)
@@ -202,6 +202,11 @@ bit_ffs_at(bitstr_t *_bitstr, int _start, int _nbits, 
bitstr_t _test;
int _value, _offset;
 
+   if (_start >= _nbits) {
+   *_result = -1;
+   return;
+   }
+
if (_nbits > 0) {
_curbitstr = _bitstr + _bit_idx(_start);
_stopbitstr = _bitstr + _bit_idx(_nbits - 1);
@@ -230,6 +235,11 @@ bit_ffc_at(bitstr_t *_bitstr, int _start, int _nbits, 
bitstr_t *_stopbitstr;
bitstr_t _test;
int _value, _offset;
+
+   if (_start >= _nbits) {
+   *_result = -1;
+   return;
+   }
 
if (_nbits > 0) {
_curbitstr = _bitstr + _bit_idx(_start);

Modified: head/tests/sys/sys/bitstring_test.c
==
--- head/tests/sys/sys/bitstring_test.c Thu Nov 21 19:30:31 2019
(r354974)
+++ head/tests/sys/sys/bitstring_test.c Thu Nov 21 19:36:11 2019
(r354975)
@@ -246,6 +246,17 @@ BITSTRING_TC_DEFINE(bit_ffs_at)
nbits, memloc, i, found_set_bit);
}
}
+
+   /* Pass a start value beyond the size of the bit string */
+   bit_ffs_at(bitstr, nbits, nbits, _set_bit);
+   ATF_REQUIRE_MSG(found_set_bit == -1,
+   "bit_ffs_at_%d_%s: Failed with high start value of %d, 
Result %d",
+   nbits, memloc, nbits, found_set_bit);
+
+   bit_ffs_at(bitstr, nbits + 3, nbits, _set_bit);
+   ATF_REQUIRE_MSG(found_set_bit == -1,
+   "bit_ffs_at_%d_%s: Failed with high start value of %d, 
Result %d",
+   nbits, memloc, nbits + 3, found_set_bit);
 }
 
 BITSTRING_TC_DEFINE(bit_ffc_at)
@@ -297,6 +308,17 @@ BITSTRING_TC_DEFINE(bit_ffc_at)
nbits, memloc, i, found_clear_bit);
}
}
+
+   /* Pass a start value beyond the size of the bit string */
+   bit_ffc_at(bitstr, nbits, nbits, _clear_bit);
+   ATF_REQUIRE_MSG(found_clear_bit == -1,
+   "bit_ffc_at_%d_%s: Failed with high start value, Result 
%d",
+   nbits, memloc, found_clear_bit);
+
+   bit_ffc_at(bitstr, nbits + 3, nbits, _clear_bit);
+   ATF_REQUIRE_MSG(found_clear_bit == -1,
+   "bit_ffc_at_%d_%s: Failed with high start value of %d, 
Result %d",
+   nbits, memloc, nbits + 3, 

svn commit: r354974 - in head/sys: conf dev/cxgbe dev/cxgbe/common dev/cxgbe/crypto dev/cxgbe/firmware dev/cxgbe/tom modules/cxgbe/if_cxgbe

2019-11-21 Thread John Baldwin
Author: jhb
Date: Thu Nov 21 19:30:31 2019
New Revision: 354974
URL: https://svnweb.freebsd.org/changeset/base/354974

Log:
  NIC KTLS for Chelsio T6 adapters.
  
  This adds support for ifnet (NIC) KTLS using Chelsio T6 adapters.
  Unlike the TOE-based KTLS in r353328, NIC TLS works with non-TOE
  connections.
  
  NIC KTLS on T6 is not able to use the normal TSO (LSO) path to segment
  the encrypted TLS frames output by the crypto engine.  Instead, the
  TOE is placed into a special setup to permit "dummy" connections to be
  associated with regular sockets using KTLS.  This permits using the
  TOE to segment the encrypted TLS records.  However, this approach does
  have some limitations:
  
  1) Regular TOE sockets cannot be used when the TOE is in this special
 mode.  One can use either TOE and TOE-based KTLS or NIC KTLS, but
 not both at the same time.
  
  2) In NIC KTLS mode, the TOE is only able to accept a per-connection
 timestamp offset that varies in the upper 4 bits.  Put another way,
 only connections whose timestamp offset has the 28 lower bits
 cleared can use NIC KTLS and generate correct timestamps.  The
 driver will refuse to enable NIC KTLS on connections with a
 timestamp offset with any of the lower 28 bits set.  To use NIC
 KTLS, users can either disable TCP timestamps by setting the
 net.inet.tcp.rfc1323 sysctl to 0, or apply a local patch to the
 tcp_new_ts_offset() function to clear the lower 28 bits of the
 generated offset.
  
  3) Because the TCP segmentation relies on fields mirrored in a TCB in
 the TOE, not all fields in a TCP packet can be sent in the TCP
 segments generated from a TLS record.  Specifically, for packets
 containing TCP options other than timestamps, the driver will
 inject an "empty" TCP packet holding the requested options (e.g. a
 SACK scoreboard) along with the segments from the TLS record.
 These empty TCP packets are counted by the
 dev.cc.N.txq.M.kern_tls_options sysctls.
  
  Unlike TOE TLS which is able to buffer encrypted TLS records in
  on-card memory to handle retransmits, NIC KTLS must re-encrypt TLS
  records for retransmit requests as well as non-retransmit requests
  that do not include the start of a TLS record but do include the
  trailer.  The T6 NIC KTLS code tries to optimize some of the cases for
  requests to transmit partial TLS records.  In particular it attempts
  to minimize sending "waste" bytes that have to be given as input to
  the crypto engine but are not needed on the wire to satisfy mbufs sent
  from the TCP stack down to the driver.
  
  TCP packets for TLS requests are broken down into the following
  classes (with associated counters):
  
  - Mbufs that send an entire TLS record in full do not have any waste
bytes (dev.cc.N.txq.M.kern_tls_full).
  
  - Mbufs that send a short TLS record that ends before the end of the
trailer (dev.cc.N.txq.M.kern_tls_short).  For sockets using AES-CBC,
the encryption must always start at the beginning, so if the mbuf
starts at an offset into the TLS record, the offset bytes will be
"waste" bytes.  For sockets using AES-GCM, the encryption can start
at the 16 byte block before the starting offset capping the waste at
15 bytes.
  
  - Mbufs that send a partial TLS record that has a non-zero starting
offset but ends at the end of the trailer
(dev.cc.N.txq.M.kern_tls_partial).  In order to compute the
authentication hash stored in the trailer, the entire TLS record
must be sent as input to the crypto engine, so the bytes before the
offset are always "waste" bytes.
  
  In addition, other per-txq sysctls are provided:
  
  - dev.cc.N.txq.M.kern_tls_cbc: Count of sockets sent via this txq
using AES-CBC.
  
  - dev.cc.N.txq.M.kern_tls_gcm: Count of sockets sent via this txq
using AES-GCM.
  
  - dev.cc.N.txq.M.kern_tls_fin: Count of empty FIN-only packets sent to
compensate for the TOE engine not being able to set FIN on the last
segment of a TLS record if the TLS record mbuf had FIN set.
  
  - dev.cc.N.txq.M.kern_tls_records: Count of TLS records sent via this
txq including full, short, and partial records.
  
  - dev.cc.N.txq.M.kern_tls_octets: Count of non-waste bytes (TLS header
and payload) sent for TLS record requests.
  
  - dev.cc.N.txq.M.kern_tls_waste: Count of waste bytes sent for TLS
record requests.
  
  To enable NIC KTLS with T6, set the following tunables prior to
  loading the cxgbe(4) driver:
  
  hw.cxgbe.config_file=kern_tls
  hw.cxgbe.kern_tls=1
  
  Reviewed by:  np
  Sponsored by: Chelsio Communications
  Differential Revision:https://reviews.freebsd.org/D21962

Added:
  head/sys/dev/cxgbe/crypto/t4_kern_tls.c   (contents, props changed)
  head/sys/dev/cxgbe/firmware/t6fw_cfg_kern_tls.txt   (contents, props changed)
Modified:
  head/sys/conf/files
  head/sys/dev/cxgbe/adapter.h
  head/sys/dev/cxgbe/common/t4_msg.h
  

svn commit: r354973 - head/sys/dev/iicbus

2019-11-21 Thread Ian Lepore
Author: ian
Date: Thu Nov 21 19:13:05 2019
New Revision: 354973
URL: https://svnweb.freebsd.org/changeset/base/354973

Log:
  Rewrite iicdev_writeto() to use a single buffer and a single iic_msg, rather
  than effectively doing scatter/gather IO with a pair of iic_msgs that direct
  the controller to do a single transfer with no bus STOP/START between the
  two buffers.  It turns out we have multiple i2c hardware drivers that don't
  honor the NOSTOP and NOSTART flags; sometimes they just try to do the
  transfers anyway, creating confusing failures or leading to corrupted data.

Modified:
  head/sys/dev/iicbus/iiconf.c

Modified: head/sys/dev/iicbus/iiconf.c
==
--- head/sys/dev/iicbus/iiconf.cThu Nov 21 18:49:54 2019
(r354972)
+++ head/sys/dev/iicbus/iiconf.cThu Nov 21 19:13:05 2019
(r354973)
@@ -540,25 +540,47 @@ iicdev_readfrom(device_t slavedev, uint8_t regaddr, vo
 int iicdev_writeto(device_t slavedev, uint8_t regaddr, void *buffer,
 uint16_t buflen, int waithow)
 {
-   struct iic_msg msgs[2];
-   uint8_t slaveaddr;
+   struct iic_msg msg;
+   uint8_t local_buffer[32];
+   uint8_t *bufptr;
+   size_t bufsize;
+   int error;
 
/*
-* Two transfers back to back with no stop or start between them; first
-* we write the address then we write the data to that address, all in a
-* single transfer from two scattered buffers.
+* Ideally, we would do two transfers back to back with no stop or start
+* between them using an array of 2 iic_msgs; first we'd write the
+* address byte using the IIC_M_NOSTOP flag, then we write the data
+* using IIC_M_NOSTART, all in a single transfer.  Unfortunately,
+* several i2c hardware drivers don't support that (perhaps because the
+* hardware itself can't support it).  So instead we gather the
+* scattered bytes into a single buffer here before writing them using a
+* single iic_msg.  This function is typically used to write a few bytes
+* at a time, so we try to use a small local buffer on the stack, but
+* fall back to allocating a temporary buffer when necessary.
 */
-   slaveaddr = iicbus_get_addr(slavedev);
 
-   msgs[0].slave = slaveaddr;
-   msgs[0].flags = IIC_M_WR | IIC_M_NOSTOP;
-   msgs[0].len   = 1;
-   msgs[0].buf   = 
+   bufsize = buflen + 1;
+   if (bufsize <= sizeof(local_buffer)) {
+   bufptr = local_buffer;
+   } else {
+   bufptr = malloc(bufsize, M_DEVBUF,
+   (waithow & IIC_WAIT) ? M_WAITOK : M_NOWAIT);
+   if (bufptr == NULL)
+   return (errno2iic(ENOMEM));
+   }
 
-   msgs[1].slave = slaveaddr;
-   msgs[1].flags = IIC_M_WR | IIC_M_NOSTART;
-   msgs[1].len   = buflen;
-   msgs[1].buf   = buffer;
+   bufptr[0] = regaddr;
+   memcpy([1], buffer, buflen);
 
-   return (iicbus_transfer_excl(slavedev, msgs, nitems(msgs), waithow));
+   msg.slave = iicbus_get_addr(slavedev);
+   msg.flags = IIC_M_WR;
+   msg.len   = bufsize;
+   msg.buf   = bufptr;
+
+   error = iicbus_transfer_excl(slavedev, , 1, waithow);
+
+   if (bufptr != local_buffer)
+   free(bufptr, M_DEVBUF);
+
+   return (error);
 }
___
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: r354972 - in head/sys: arm/include mips/include

2019-11-21 Thread Warner Losh
Author: imp
Date: Thu Nov 21 18:49:54 2019
New Revision: 354972
URL: https://svnweb.freebsd.org/changeset/base/354972

Log:
  Remove two obsolete comments that reference splhigh/splx.

Modified:
  head/sys/arm/include/profile.h
  head/sys/mips/include/profile.h

Modified: head/sys/arm/include/profile.h
==
--- head/sys/arm/include/profile.h  Thu Nov 21 18:21:30 2019
(r354971)
+++ head/sys/arm/include/profile.h  Thu Nov 21 18:49:54 2019
(r354972)
@@ -114,12 +114,6 @@ void user(void);
 
 #include 
 #include 
-/*
- * splhigh() and splx() are heavyweight, and call mcount().  Therefore
- * we disabled interrupts (IRQ, but not FIQ) directly on the CPU.
- *
- * We're lucky that the CPSR and 's' both happen to be 'int's.
- */
 #defineMCOUNT_ENTER(s) {s = intr_disable(); }  /* kill IRQ */
 #defineMCOUNT_EXIT(s)  {intr_restore(s); } /* restore old value */
 

Modified: head/sys/mips/include/profile.h
==
--- head/sys/mips/include/profile.h Thu Nov 21 18:21:30 2019
(r354971)
+++ head/sys/mips/include/profile.h Thu Nov 21 18:49:54 2019
(r354972)
@@ -76,13 +76,6 @@
".set at");
 
 #ifdef _KERNEL
-/*
- * The following two macros do splhigh and splx respectively.
- * They have to be defined this way because these are real
- * functions on the MIPS, and we do not want to invoke mcount
- * recursively.
- */
-
 #defineMCOUNT_DECL(s)  u_long s;
 #ifdef SMP
 extern int mcount_lock;
___
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: r354971 - head/sys/modules/geom/geom_uzip

2019-11-21 Thread John Baldwin
Author: jhb
Date: Thu Nov 21 18:21:30 2019
New Revision: 354971
URL: https://svnweb.freebsd.org/changeset/base/354971

Log:
  Use kmod.opts.mk to fix standalone build.

Modified:
  head/sys/modules/geom/geom_uzip/Makefile

Modified: head/sys/modules/geom/geom_uzip/Makefile
==
--- head/sys/modules/geom/geom_uzip/MakefileThu Nov 21 18:14:26 2019
(r354970)
+++ head/sys/modules/geom/geom_uzip/MakefileThu Nov 21 18:21:30 2019
(r354971)
@@ -1,5 +1,7 @@
 # $FreeBSD$
 
+.include 
+
 .PATH: ${SRCTOP}/sys/geom/uzip ${SRCTOP}/sys/net
 
 KMOD=  geom_uzip
___
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: r354970 - in head: share/mk sys/conf

2019-11-21 Thread John Baldwin
On 11/21/19 10:14 AM, John Baldwin wrote:
> Author: jhb
> Date: Thu Nov 21 18:14:26 2019
> New Revision: 354970
> URL: https://svnweb.freebsd.org/changeset/base/354970
> 
> Log:
>   Add a kmod.opts.mk.
>   
>   This Makefile sets KERN_OPTS.  This permits kernel module Makefiles to
>   use KERN_OPTS to control the value of variables such as SRCS that are
>   used by bsd.kmod.mk for KERN_OPTS values that honor WITH/WITHOUT
>   options for standalone builds.

Closed editor too quickly, missed:

Reviewed by:imp
Differential Revision: https://reviews.freebsd.org/D22118

-- 
John Baldwin
___
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: r354970 - in head: share/mk sys/conf

2019-11-21 Thread John Baldwin
Author: jhb
Date: Thu Nov 21 18:14:26 2019
New Revision: 354970
URL: https://svnweb.freebsd.org/changeset/base/354970

Log:
  Add a kmod.opts.mk.
  
  This Makefile sets KERN_OPTS.  This permits kernel module Makefiles to
  use KERN_OPTS to control the value of variables such as SRCS that are
  used by bsd.kmod.mk for KERN_OPTS values that honor WITH/WITHOUT
  options for standalone builds.

Added:
  head/share/mk/kmod.opts.mk   (contents, props changed)
  head/sys/conf/kmod.opts.mk   (contents, props changed)
Modified:
  head/sys/conf/kmod.mk

Added: head/share/mk/kmod.opts.mk
==
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/share/mk/kmod.opts.mk  Thu Nov 21 18:14:26 2019(r354970)
@@ -0,0 +1,4 @@
+# $FreeBSD$
+
+.include 
+.include "${SYSDIR}/conf/kmod.opts.mk"

Modified: head/sys/conf/kmod.mk
==
--- head/sys/conf/kmod.mk   Thu Nov 21 16:42:25 2019(r354969)
+++ head/sys/conf/kmod.mk   Thu Nov 21 18:14:26 2019(r354970)
@@ -73,12 +73,7 @@ KMODUNLOAD?= /sbin/kldunload
 KMODISLOADED?= /sbin/kldstat -q -n
 OBJCOPY?=  objcopy
 
-.include 
-# Grab all the options for a kernel build. For backwards compat, we need to
-# do this after bsd.own.mk.
-.include "kern.opts.mk"
-.include 
-.include "config.mk"
+.include "kmod.opts.mk"
 .include 
 
 .SUFFIXES: .out .o .c .cc .cxx .C .y .l .s .S .m

Added: head/sys/conf/kmod.opts.mk
==
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/sys/conf/kmod.opts.mk  Thu Nov 21 18:14:26 2019(r354970)
@@ -0,0 +1,16 @@
+# $FreeBSD$
+#
+# Handle options (KERN_OPTS) for kernel module options.  This can be included 
earlier in a kmod Makefile
+# to allow KERN_OPTS to control SRCS, etc.
+
+.if !target()
+:
+
+.include 
+# Grab all the options for a kernel build. For backwards compat, we need to
+# do this after bsd.own.mk.
+.include "kern.opts.mk"
+.include 
+.include "config.mk"
+
+.endif #  !target()
___
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: r354969 - in head/sys/dev/usb: . video

2019-11-21 Thread Hans Petter Selasky
Author: hselasky
Date: Thu Nov 21 16:42:25 2019
New Revision: 354969
URL: https://svnweb.freebsd.org/changeset/base/354969

Log:
  Add USB ID for Diamond Multimedia BVU195 Display Link device.
  
  Submitted by: dar...@dons.net.au
  PR:   242128
  MFC after:1 week
  Sponsored by: Mellanox Technologies

Modified:
  head/sys/dev/usb/usbdevs
  head/sys/dev/usb/video/udl.c

Modified: head/sys/dev/usb/usbdevs
==
--- head/sys/dev/usb/usbdevsThu Nov 21 15:59:33 2019(r354968)
+++ head/sys/dev/usb/usbdevsThu Nov 21 16:42:25 2019(r354969)
@@ -1783,6 +1783,7 @@ product DISPLAYLINK M010610x01e2  Lenovo DVI
 product DISPLAYLINK SWDVI  0x024c  SUNWEIT DVI
 product DISPLAYLINK NBDOCK 0x0215  VideoHome NBdock1920
 product DISPLAYLINK LUM70  0x02a9  Lilliput UM-70
+product DISPLAYLINK DVI_19 0x0360  USB to DVI-19
 product DISPLAYLINK UM7X0  0x401a  nanovision MiMo
 product DISPLAYLINK LT1421 0x03e0  Lenovo ThinkVision LT1421
 product DISPLAYLINK POLARIS2   0x0117  Polaris2 USB dock

Modified: head/sys/dev/usb/video/udl.c
==
--- head/sys/dev/usb/video/udl.cThu Nov 21 15:59:33 2019
(r354968)
+++ head/sys/dev/usb/video/udl.cThu Nov 21 16:42:25 2019
(r354969)
@@ -179,6 +179,7 @@ static const STRUCT_USB_HOST_ID udl_devs[] = {
{USB_VPI(USB_VENDOR_DISPLAYLINK, USB_PRODUCT_DISPLAYLINK_POLARIS2, 
DLUNK)},
{USB_VPI(USB_VENDOR_DISPLAYLINK, USB_PRODUCT_DISPLAYLINK_LT1421, 
DLUNK)},
{USB_VPI(USB_VENDOR_DISPLAYLINK, USB_PRODUCT_DISPLAYLINK_ITEC, DL165)},
+   {USB_VPI(USB_VENDOR_DISPLAYLINK, USB_PRODUCT_DISPLAYLINK_DVI_19, 
DL165)},
 };
 
 static void
___
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: r354909 - in head: . share/mk

2019-11-21 Thread Glen Barber
On Thu, Nov 21, 2019 at 09:28:50AM -0700, Ian Lepore wrote:
> On Thu, 2019-11-21 at 16:23 +, Glen Barber wrote:
> > On Thu, Nov 21, 2019 at 04:13:37PM +, Glen Barber wrote:
> > > On Wed, Nov 20, 2019 at 06:36:58PM +, Brooks Davis wrote:
> > > > Author: brooks
> > > > Date: Wed Nov 20 18:36:58 2019
> > > > New Revision: 354909
> > > > URL: https://svnweb.freebsd.org/changeset/base/354909
> > > > 
> > > > Log:
> > > >   Make the warning for deprecated NO_ variables an error.
> > > >   
> > > >   Support for NO_CTF, NO_DEBUG_FILES, NO_INSTALLLIB, NO_MAN,
> > > > NO_PROFILE,
> > > >   and NO_WARNS as deprecated in 2014 with a warning added for
> > > > each one
> > > >   found. Turn these into error in preperation for removal of
> > > > compatability
> > > >   support before FreeBSD 13.
> > > >   
> > > >   Reviewed by:  imp
> > > >   Relnotes: yes
> > > >   Sponsored by: DARPA, AFRL
> > > >   Differential Revision:https://reviews.freebsd.org/D22448
> > > > 
> > > > Modified: head/share/mk/bsd.opts.mk
> > > > =
> > > > =
> > > > --- head/share/mk/bsd.opts.mk   Wed Nov 20 18:12:01 2019(
> > > > r354908)
> > > > +++ head/share/mk/bsd.opts.mk   Wed Nov 20 18:36:58 2019(
> > > > r354909)
> > > > @@ -100,7 +100,7 @@ __DEFAULT_DEPENDENT_OPTIONS = \
> > > >  PROFILE \
> > > >  WARNS
> > > >  .if defined(NO_${var})
> > > > -.warning "NO_${var} is defined, but deprecated. Please use
> > > > MK_${var}=no instead."
> > > > +.error "NO_${var} is defined, but deprecated. Please use
> > > > MK_${var}=no instead."
> > > >  MK_${var}:=no
> > > >  .endif
> > > >  .endfor
> > > > 
> > > 
> > > Had this been exp-run tested?  This breaks at least the
> > > net/bsdec2-image-upload port, which does *not* set NO_MAN
> > > explicitly in
> > > its Makefile.  I suspect at least several other ports are now
> > > implicitly
> > > broken as result of this change.
> > > 
> > 
> > In fact, on a quick search through ports/*/*/Makefile, I do not see
> > NO_MAN defined *anywhere*.  So, this is pulled in from somewhere
> > else,
> > which now I have a feeling more ports than I initially thought are
> > now
> > broken.
> > 
> 
> Your search was too narrow.  Re-do it as "grep -Rw NO_MAN *" from
> /usr/ports and you'll get a lot of hits from within files/ dirs.
> 

Thank you for that; I forgot about the files/ directories.

Nonetheless, net/bsdec2-image-upload still does not explicitly set this
knob.

Glen



signature.asc
Description: PGP signature


Re: svn commit: r354909 - in head: . share/mk

2019-11-21 Thread Ian Lepore
On Thu, 2019-11-21 at 16:23 +, Glen Barber wrote:
> On Thu, Nov 21, 2019 at 04:13:37PM +, Glen Barber wrote:
> > On Wed, Nov 20, 2019 at 06:36:58PM +, Brooks Davis wrote:
> > > Author: brooks
> > > Date: Wed Nov 20 18:36:58 2019
> > > New Revision: 354909
> > > URL: https://svnweb.freebsd.org/changeset/base/354909
> > > 
> > > Log:
> > >   Make the warning for deprecated NO_ variables an error.
> > >   
> > >   Support for NO_CTF, NO_DEBUG_FILES, NO_INSTALLLIB, NO_MAN,
> > > NO_PROFILE,
> > >   and NO_WARNS as deprecated in 2014 with a warning added for
> > > each one
> > >   found. Turn these into error in preperation for removal of
> > > compatability
> > >   support before FreeBSD 13.
> > >   
> > >   Reviewed by:imp
> > >   Relnotes:   yes
> > >   Sponsored by:   DARPA, AFRL
> > >   Differential Revision:  https://reviews.freebsd.org/D22448
> > > 
> > > Modified: head/share/mk/bsd.opts.mk
> > > =
> > > =
> > > --- head/share/mk/bsd.opts.mk Wed Nov 20 18:12:01 2019(
> > > r354908)
> > > +++ head/share/mk/bsd.opts.mk Wed Nov 20 18:36:58 2019(
> > > r354909)
> > > @@ -100,7 +100,7 @@ __DEFAULT_DEPENDENT_OPTIONS = \
> > >  PROFILE \
> > >  WARNS
> > >  .if defined(NO_${var})
> > > -.warning "NO_${var} is defined, but deprecated. Please use
> > > MK_${var}=no instead."
> > > +.error "NO_${var} is defined, but deprecated. Please use
> > > MK_${var}=no instead."
> > >  MK_${var}:=no
> > >  .endif
> > >  .endfor
> > > 
> > 
> > Had this been exp-run tested?  This breaks at least the
> > net/bsdec2-image-upload port, which does *not* set NO_MAN
> > explicitly in
> > its Makefile.  I suspect at least several other ports are now
> > implicitly
> > broken as result of this change.
> > 
> 
> In fact, on a quick search through ports/*/*/Makefile, I do not see
> NO_MAN defined *anywhere*.  So, this is pulled in from somewhere
> else,
> which now I have a feeling more ports than I initially thought are
> now
> broken.
> 

Your search was too narrow.  Re-do it as "grep -Rw NO_MAN *" from
/usr/ports and you'll get a lot of hits from within files/ dirs.

-- Ian

___
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: r354909 - in head: . share/mk

2019-11-21 Thread Glen Barber
On Thu, Nov 21, 2019 at 04:13:37PM +, Glen Barber wrote:
> On Wed, Nov 20, 2019 at 06:36:58PM +, Brooks Davis wrote:
> > Author: brooks
> > Date: Wed Nov 20 18:36:58 2019
> > New Revision: 354909
> > URL: https://svnweb.freebsd.org/changeset/base/354909
> > 
> > Log:
> >   Make the warning for deprecated NO_ variables an error.
> >   
> >   Support for NO_CTF, NO_DEBUG_FILES, NO_INSTALLLIB, NO_MAN, NO_PROFILE,
> >   and NO_WARNS as deprecated in 2014 with a warning added for each one
> >   found. Turn these into error in preperation for removal of compatability
> >   support before FreeBSD 13.
> >   
> >   Reviewed by:  imp
> >   Relnotes: yes
> >   Sponsored by: DARPA, AFRL
> >   Differential Revision:https://reviews.freebsd.org/D22448
> > 
> 
> > Modified: head/share/mk/bsd.opts.mk
> > ==
> > --- head/share/mk/bsd.opts.mk   Wed Nov 20 18:12:01 2019
> > (r354908)
> > +++ head/share/mk/bsd.opts.mk   Wed Nov 20 18:36:58 2019
> > (r354909)
> > @@ -100,7 +100,7 @@ __DEFAULT_DEPENDENT_OPTIONS = \
> >  PROFILE \
> >  WARNS
> >  .if defined(NO_${var})
> > -.warning "NO_${var} is defined, but deprecated. Please use MK_${var}=no 
> > instead."
> > +.error "NO_${var} is defined, but deprecated. Please use MK_${var}=no 
> > instead."
> >  MK_${var}:=no
> >  .endif
> >  .endfor
> > 
> 
> Had this been exp-run tested?  This breaks at least the
> net/bsdec2-image-upload port, which does *not* set NO_MAN explicitly in
> its Makefile.  I suspect at least several other ports are now implicitly
> broken as result of this change.
> 

In fact, on a quick search through ports/*/*/Makefile, I do not see
NO_MAN defined *anywhere*.  So, this is pulled in from somewhere else,
which now I have a feeling more ports than I initially thought are now
broken.

Glen



signature.asc
Description: PGP signature


Re: svn commit: r354909 - in head: . share/mk

2019-11-21 Thread Glen Barber
On Wed, Nov 20, 2019 at 06:36:58PM +, Brooks Davis wrote:
> Author: brooks
> Date: Wed Nov 20 18:36:58 2019
> New Revision: 354909
> URL: https://svnweb.freebsd.org/changeset/base/354909
> 
> Log:
>   Make the warning for deprecated NO_ variables an error.
>   
>   Support for NO_CTF, NO_DEBUG_FILES, NO_INSTALLLIB, NO_MAN, NO_PROFILE,
>   and NO_WARNS as deprecated in 2014 with a warning added for each one
>   found. Turn these into error in preperation for removal of compatability
>   support before FreeBSD 13.
>   
>   Reviewed by:imp
>   Relnotes:   yes
>   Sponsored by:   DARPA, AFRL
>   Differential Revision:  https://reviews.freebsd.org/D22448
> 

> Modified: head/share/mk/bsd.opts.mk
> ==
> --- head/share/mk/bsd.opts.mk Wed Nov 20 18:12:01 2019(r354908)
> +++ head/share/mk/bsd.opts.mk Wed Nov 20 18:36:58 2019(r354909)
> @@ -100,7 +100,7 @@ __DEFAULT_DEPENDENT_OPTIONS = \
>  PROFILE \
>  WARNS
>  .if defined(NO_${var})
> -.warning "NO_${var} is defined, but deprecated. Please use MK_${var}=no 
> instead."
> +.error "NO_${var} is defined, but deprecated. Please use MK_${var}=no 
> instead."
>  MK_${var}:=no
>  .endif
>  .endfor
> 

Had this been exp-run tested?  This breaks at least the
net/bsdec2-image-upload port, which does *not* set NO_MAN explicitly in
its Makefile.  I suspect at least several other ports are now implicitly
broken as result of this change.

Glen



signature.asc
Description: PGP signature


svn commit: r354968 - in head: share/mk sys/conf

2019-11-21 Thread Warner Losh
Author: imp
Date: Thu Nov 21 15:59:33 2019
New Revision: 354968
URL: https://svnweb.freebsd.org/changeset/base/354968

Log:
  Introduce bsd.sysdir.mk to consolidate looking for the kernel.
  
  Reviewed by: jhb
  Differential Revision: https://reviews.freebsd.org/D22144

Added:
  head/share/mk/bsd.sysdir.mk
 - copied, changed from r354937, head/share/mk/bsd.kmod.mk
Modified:
  head/share/mk/bsd.dtb.mk
  head/share/mk/bsd.kmod.mk
  head/sys/conf/dtb.build.mk
  head/sys/conf/kmod.mk

Modified: head/share/mk/bsd.dtb.mk
==
--- head/share/mk/bsd.dtb.mkThu Nov 21 15:54:56 2019(r354967)
+++ head/share/mk/bsd.dtb.mkThu Nov 21 15:59:33 2019(r354968)
@@ -1,22 +1,6 @@
 # $FreeBSD$
 
-# Search for kernel source tree in standard places.
-.if empty(KERNBUILDDIR)
-.if !defined(SYSDIR)
-.for _dir in ${SRCTOP:D${SRCTOP}/sys} \
-${.CURDIR}/../.. ${.CURDIR}/../../.. ${.CURDIR}/../../../.. \
-${.CURDIR}/../../../../.. /sys /usr/src/sys
-.if !defined(SYSDIR) && exists(${_dir}/kern/) && exists(${_dir}/conf/kmod.mk)
-SYSDIR=${_dir}
-.endif
-.endfor
-.endif
-.if !defined(SYSDIR) || !exists(${SYSDIR}/kern/) || \
-!exists(${SYSDIR}/conf/kmod.mk)
-.error Unable to locate the kernel source tree. Set SYSDIR to override.
-.endif
-.endif
-
+.include 
 .include "${SYSDIR}/conf/dtb.mk"
 
 .include 

Modified: head/share/mk/bsd.kmod.mk
==
--- head/share/mk/bsd.kmod.mk   Thu Nov 21 15:54:56 2019(r354967)
+++ head/share/mk/bsd.kmod.mk   Thu Nov 21 15:59:33 2019(r354968)
@@ -1,20 +1,4 @@
 # $FreeBSD$
 
-# Search for kernel source tree in standard places.
-.if empty(KERNBUILDDIR)
-.if !defined(SYSDIR)
-.for _dir in ${SRCTOP:D${SRCTOP}/sys} \
-${.CURDIR}/../.. ${.CURDIR}/../../.. ${.CURDIR}/../../../.. \
-${.CURDIR}/../../../../.. /sys /usr/src/sys
-.if !defined(SYSDIR) && exists(${_dir}/kern/) && exists(${_dir}/conf/kmod.mk)
-SYSDIR=${_dir:tA}
-.endif
-.endfor
-.endif
-.if !defined(SYSDIR) || !exists(${SYSDIR}/kern/) || \
-!exists(${SYSDIR}/conf/kmod.mk)
-.error Unable to locate the kernel source tree. Set SYSDIR to override.
-.endif
-.endif
-
+.include 
 .include "${SYSDIR}/conf/kmod.mk"

Copied and modified: head/share/mk/bsd.sysdir.mk (from r354937, 
head/share/mk/bsd.kmod.mk)
==
--- head/share/mk/bsd.kmod.mk   Thu Nov 21 06:48:30 2019(r354937, copy 
source)
+++ head/share/mk/bsd.sysdir.mk Thu Nov 21 15:59:33 2019(r354968)
@@ -1,7 +1,6 @@
 # $FreeBSD$
 
 # Search for kernel source tree in standard places.
-.if empty(KERNBUILDDIR)
 .if !defined(SYSDIR)
 .for _dir in ${SRCTOP:D${SRCTOP}/sys} \
 ${.CURDIR}/../.. ${.CURDIR}/../../.. ${.CURDIR}/../../../.. \
@@ -15,6 +14,3 @@ SYSDIR=   ${_dir:tA}
 !exists(${SYSDIR}/conf/kmod.mk)
 .error Unable to locate the kernel source tree. Set SYSDIR to override.
 .endif
-.endif
-
-.include "${SYSDIR}/conf/kmod.mk"

Modified: head/sys/conf/dtb.build.mk
==
--- head/sys/conf/dtb.build.mk  Thu Nov 21 15:54:56 2019(r354967)
+++ head/sys/conf/dtb.build.mk  Thu Nov 21 15:59:33 2019(r354968)
@@ -11,12 +11,7 @@ DTC?=dtc
 .if defined(S)
 SYSDIR=${S}
 .else
-# Search for kernel source tree in standard places.
-.for _dir in ${.CURDIR}/../.. ${.CURDIR}/../../.. /sys /usr/src/sys
-.if exists(${_dir}/kern/)
-SYSDIR=${_dir:tA}
-.endif
-.endfor
+.include 
 .endif # defined(S)
 .endif # defined(SYSDIR)
 

Modified: head/sys/conf/kmod.mk
==
--- head/sys/conf/kmod.mk   Thu Nov 21 15:54:56 2019(r354967)
+++ head/sys/conf/kmod.mk   Thu Nov 21 15:59:33 2019(r354968)
@@ -79,21 +79,7 @@ OBJCOPY?=objcopy
 .include "kern.opts.mk"
 .include 
 .include "config.mk"
-
-# Search for kernel source tree in standard places.
-.if empty(KERNBUILDDIR)
-.if !defined(SYSDIR)
-.for _dir in ${SRCTOP:D${SRCTOP}/sys} \
-${.CURDIR}/../.. ${.CURDIR}/../../.. /sys /usr/src/sys
-.if !defined(SYSDIR) && exists(${_dir}/kern/)
-SYSDIR=${_dir:tA}
-.endif
-.endfor
-.endif
-.if !defined(SYSDIR) || !exists(${SYSDIR}/kern/)
-.error "can't find kernel source tree"
-.endif
-.endif
+.include 
 
 .SUFFIXES: .out .o .c .cc .cxx .C .y .l .s .S .m
 
___
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: r354967 - head/usr.sbin/bsdinstall

2019-11-21 Thread Mateusz Piotrowski
Author: 0mp (doc,ports committer)
Date: Thu Nov 21 15:54:56 2019
New Revision: 354967
URL: https://svnweb.freebsd.org/changeset/base/354967

Log:
  bsdinstall.8: Fix description of DISTRIBUTIONS environment variable
  
  Reviewed by:  bcr
  Approved by:  bcr (mentor)
  MFC after:1 week
  Differential Revision:https://reviews.freebsd.org/D22478

Modified:
  head/usr.sbin/bsdinstall/bsdinstall.8

Modified: head/usr.sbin/bsdinstall/bsdinstall.8
==
--- head/usr.sbin/bsdinstall/bsdinstall.8   Thu Nov 21 15:38:27 2019
(r354966)
+++ head/usr.sbin/bsdinstall/bsdinstall.8   Thu Nov 21 15:54:56 2019
(r354967)
@@ -25,7 +25,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd October 4, 2018
+.Dd November 21, 2019
 .Dt BSDINSTALL 8
 .Os
 .Sh NAME
@@ -260,7 +260,7 @@ Others are set by various interactive user prompts, an
 overridden when making scripted or customized installers.
 .Bl -tag -width ".Ev BSDINSTALL_DISTSITE"
 .It Ev DISTRIBUTIONS
-The set of distributions to install, e.g., "base kernel ports".
+The set of distributions to install, e.g., "base.txz kernel.txz ports.txz".
 Default: unset
 .It Ev BSDINSTALL_DISTDIR
 The directory in which the distribution files can be found (or to which they
___
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: r354966 - head

2019-11-21 Thread Niclas Zeising
Author: zeising (doc,ports committer)
Date: Thu Nov 21 15:38:27 2019
New Revision: 354966
URL: https://svnweb.freebsd.org/changeset/base/354966

Log:
  ObsoleteFiles.inc: add sio(4) leftovers
  
  Add the manual page for sio(4) to ObsoleteFiles.inc, so that make delete-all
  will remove it.  The manual page was removed together with sio(4) in
  r354929.
  
  Approved by:  emaste
  Differential Revision:https://reviews.freebsd.org/D22477

Modified:
  head/ObsoleteFiles.inc

Modified: head/ObsoleteFiles.inc
==
--- head/ObsoleteFiles.inc  Thu Nov 21 14:55:27 2019(r354965)
+++ head/ObsoleteFiles.inc  Thu Nov 21 15:38:27 2019(r354966)
@@ -38,6 +38,8 @@
 #   xargs -n1 | sort | uniq -d;
 # done
 
+# 20191121: Removal of sio(4)
+OLD_FILES+=usr/share/man/man4/sio.4.gz
 # 20191105: picobsd(8), et al, removed.
 OLD_FILES+=usr/share/man/man8/picobsd.8.gz
 # 20191009: new clang import which bumps version from 8.0.1 to 9.0.0.
___
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: r354936 - head/share/man/man7

2019-11-21 Thread Ed Maste
On Thu, 21 Nov 2019 at 01:44, Warner Losh  wrote:
>
> Author: imp
> Date: Thu Nov 21 06:44:19 2019
> New Revision: 354936
> URL: https://svnweb.freebsd.org/changeset/base/354936
>
> Log:
>   Add table for MACHINE_CPUARCH
>
>   Add table and also some additional verbage of which one to use.

This really belongs near the descriptions of MACHINE / MACHINE_ARCH /
MACHINE_CPUARCH in arch.7; I'll move it in a bit.
___
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: r354963 - head/share/man/man7

2019-11-21 Thread Ed Maste
Author: emaste
Date: Thu Nov 21 14:23:16 2019
New Revision: 354963
URL: https://svnweb.freebsd.org/changeset/base/354963

Log:
  arch.7: document only FreeBSD 11.0 and later
  
  FreeBSD 11 is the earliest supported version and there is no longer a
  need to include information about differences present in earlier
  releases.

Modified:
  head/share/man/man7/arch.7

Modified: head/share/man/man7/arch.7
==
--- head/share/man/man7/arch.7  Thu Nov 21 14:14:08 2019(r354962)
+++ head/share/man/man7/arch.7  Thu Nov 21 14:23:16 2019(r354963)
@@ -44,7 +44,7 @@ documentation.
 .Pp
 If not explicitly mentioned, sizes are in bytes.
 The architecture details in this document apply to
-.Fx 10.0
+.Fx 11.0
 and later, unless otherwise noted.
 .Pp
 .Fx
@@ -274,8 +274,8 @@ is 8 bytes on all supported architectures except i386.
 .It aarch64 Ta hard Ta soft, quad precision
 .It amd64   Ta hard Ta hard, 80 bit
 .It arm Ta soft Ta soft, double precision
-.It armv6   Ta hard(1) Ta hard, double precision
-.It armv7   Ta hard(1) Ta hard, double precision
+.It armv6   Ta hard Ta hard, double precision
+.It armv7   Ta hard Ta hard, double precision
 .It i386Ta hard Ta hard, 80 bit
 .It mipsTa soft Ta identical to double
 .It mipsel  Ta soft Ta identical to double
@@ -293,11 +293,6 @@ is 8 bytes on all supported architectures except i386.
 .It riscv64sf   Ta soft Ta soft, double precision
 .It sparc64 Ta hard Ta hard, quad precision
 .El
-.Pp
-(1) Prior to
-.Fx 11.0 ,
-armv6 used the softfp ABI even though it supported only processors
-with a floating point unit.
 .Ss Default Tool Chain
 .Fx uses a variety of tool chain components for the supported CPU
 architectures:
___
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: r354956 - head/sys/arm/broadcom/bcm2835

2019-11-21 Thread Kyle Evans
Author: kevans
Date: Thu Nov 21 14:01:44 2019
New Revision: 354956
URL: https://svnweb.freebsd.org/changeset/base/354956

Log:
  bcm2835_sdhci: only inspect interrupts we handle
  
  We'll write the value we read back to ack pending interrupts, but we should
  at least make it clear to ourselves that we only want to ack pending
  transfer interrupts.

Modified:
  head/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c

Modified: head/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c
==
--- head/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c   Thu Nov 21 14:00:59 
2019(r354955)
+++ head/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c   Thu Nov 21 14:01:44 
2019(r354956)
@@ -653,7 +653,8 @@ bcm_sdhci_dma_intr(int ch, void *arg)
 * can continue via DMA, do so.  Otherwise, re-enable interrupts and
 * return.
 */
-   reg = bcm_sdhci_read_4(slot->bus, slot, SDHCI_INT_STATUS);
+   reg = bcm_sdhci_read_4(slot->bus, slot, SDHCI_INT_STATUS) &
+   DATA_XFER_MASK;
if ((reg & DATA_PENDING_MASK) != 0 &&
BCM_SDHCI_SEGSZ_LEFT(slot) >= BCM_SDHCI_BUFFER_SIZE) {
/* ACK any pending interrupts */
___
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: r354952 - head/sys/kern

2019-11-21 Thread Andrew Turner
Author: andrew
Date: Thu Nov 21 13:59:01 2019
New Revision: 354952
URL: https://svnweb.freebsd.org/changeset/base/354952

Log:
  Disable KCSAN within a panic.
  
  The kernel is single threaded at this point and the panic is more
  important.
  
  Sponsored by: DARPA, AFRL

Modified:
  head/sys/kern/subr_csan.c

Modified: head/sys/kern/subr_csan.c
==
--- head/sys/kern/subr_csan.c   Thu Nov 21 13:57:30 2019(r354951)
+++ head/sys/kern/subr_csan.c   Thu Nov 21 13:59:01 2019(r354952)
@@ -153,6 +153,8 @@ kcsan_access(uintptr_t addr, size_t size, bool write, 
return;
if (__predict_false(kcsan_md_unsupported((vm_offset_t)addr)))
return;
+   if (__predict_false(panicstr != NULL))
+   return;
 
new.addr = addr;
new.size = size;
___
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: r354951 - head/contrib/amd/amd

2019-11-21 Thread Ed Maste
Author: emaste
Date: Thu Nov 21 13:57:30 2019
New Revision: 354951
URL: https://svnweb.freebsd.org/changeset/base/354951

Log:
  revert contrib/amd changes accidentally committed with r354950

Modified:
  head/contrib/amd/amd/amd.8
  head/contrib/amd/amd/amd.c

Modified: head/contrib/amd/amd/amd.8
==
--- head/contrib/amd/amd/amd.8  Thu Nov 21 13:56:16 2019(r354950)
+++ head/contrib/amd/amd/amd.8  Thu Nov 21 13:57:30 2019(r354951)
@@ -72,8 +72,7 @@
 .Ar ...
 .Sh DESCRIPTION
 .Bf -symbolic
-This daemon is deprecated and will be removed before
-.Fx 13.0 .
+This daemon is obsolete.
 Users are advised to use
 .Xr autofs 5
 instead.

Modified: head/contrib/amd/amd/amd.c
==
--- head/contrib/amd/amd/amd.c  Thu Nov 21 13:56:16 2019(r354950)
+++ head/contrib/amd/amd/amd.c  Thu Nov 21 13:57:30 2019(r354951)
@@ -414,8 +414,6 @@ main(int argc, char *argv[])
 progname = "amd";
   am_set_progname(progname);
 
-  plog(XLOG_WARNING, "built-in amd in FreeBSD is deprecated and will be 
removed before FreeBSD 13");
-
   /*
* Initialize process id.  This is kept
* cached since it is used for generating
___
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: r354950 - in head: contrib/amd/amd usr.sbin/jail

2019-11-21 Thread Ed Maste
Author: emaste
Date: Thu Nov 21 13:56:16 2019
New Revision: 354950
URL: https://svnweb.freebsd.org/changeset/base/354950

Log:
  revert r354935 and apply fix for cleandir failure
  
  This reapplies the RISC-V GNU ld workaround from r354896, r354899, and
  354900, along with a fix for the build failure during cleandir.
  
  LINKER_TYPE was not being set during cleandir, resulting in
  Malformed conditional (${LINKER_TYPE} == "bfd" && ${MACHINE} == "riscv")
  from Cirrus-CI.
  
  PR:   242109
  Sponsored by: The FreeBSD Foundation

Modified:
  head/contrib/amd/amd/amd.8
  head/contrib/amd/amd/amd.c
  head/usr.sbin/jail/Makefile

Modified: head/contrib/amd/amd/amd.8
==
--- head/contrib/amd/amd/amd.8  Thu Nov 21 13:46:16 2019(r354949)
+++ head/contrib/amd/amd/amd.8  Thu Nov 21 13:56:16 2019(r354950)
@@ -72,7 +72,8 @@
 .Ar ...
 .Sh DESCRIPTION
 .Bf -symbolic
-This daemon is obsolete.
+This daemon is deprecated and will be removed before
+.Fx 13.0 .
 Users are advised to use
 .Xr autofs 5
 instead.

Modified: head/contrib/amd/amd/amd.c
==
--- head/contrib/amd/amd/amd.c  Thu Nov 21 13:46:16 2019(r354949)
+++ head/contrib/amd/amd/amd.c  Thu Nov 21 13:56:16 2019(r354950)
@@ -414,6 +414,8 @@ main(int argc, char *argv[])
 progname = "amd";
   am_set_progname(progname);
 
+  plog(XLOG_WARNING, "built-in amd in FreeBSD is deprecated and will be 
removed before FreeBSD 13");
+
   /*
* Initialize process id.  This is kept
* cached since it is used for generating

Modified: head/usr.sbin/jail/Makefile
==
--- head/usr.sbin/jail/Makefile Thu Nov 21 13:46:16 2019(r354949)
+++ head/usr.sbin/jail/Makefile Thu Nov 21 13:56:16 2019(r354950)
@@ -15,6 +15,13 @@ NO_WMISSING_VARIABLE_DECLARATIONS=
 YFLAGS+=-v
 CFLAGS+=-I. -I${.CURDIR}
 
+# workaround for GNU ld (GNU Binutils) 2.33.1:
+#   relocation truncated to fit: R_RISCV_GPREL_I against `.LANCHOR2'
+# https://bugs.freebsd.org/242109
+.if defined(LINKER_TYPE) && ${LINKER_TYPE} == "bfd" && ${MACHINE} == "riscv"
+CFLAGS+=-Wl,--no-relax
+.endif
+
 .if ${MK_INET6_SUPPORT} != "no"
 CFLAGS+= -DINET6
 .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: r354948 - in head: cddl/contrib/opensolaris/cmd/zdb sys/cddl/contrib/opensolaris/uts/common/fs/zfs sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys

2019-11-21 Thread Andriy Gapon
Author: avg
Date: Thu Nov 21 13:35:43 2019
New Revision: 354948
URL: https://svnweb.freebsd.org/changeset/base/354948

Log:
  MFV r354383: 10592 misc. metaslab and vdev related ZoL bug fixes
  
  illumos/illumos-gate@555d674d5d4b8191dc83723188349d28278b2431
  
https://github.com/illumos/illumos-gate/commit/555d674d5d4b8191dc83723188349d28278b2431
  
  https://www.illumos.org/issues/10592
This is a collection of recent fixes from ZoL:
8eef997679b Error path in metaslab_load_impl() forgets to drop ms_sync_lock
928e8ad47d3 Introduce auxiliary metaslab histograms
425d3237ee8 Get rid of space_map_update() for ms_synced_length
6c926f426a2 Simplify log vdev removal code
21e7cf5da89 zdb -L should skip leak detection altogether
df72b8bebe0 Rename range_tree_verify to range_tree_verify_not_present
75058f33034 Remove unused vdev_t fields
  
  Portions contributed by: Jerry Jelinek 
  Author: Serapheim Dimitropoulos 
  MFC after:4 weeks

Modified:
  head/cddl/contrib/opensolaris/cmd/zdb/zdb.8
  head/cddl/contrib/opensolaris/cmd/zdb/zdb.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/range_tree.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_checkpoint.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/space_map.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab.h
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab_impl.h
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/range_tree.h
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/space_map.h
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_indirect.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_indirect_mapping.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_initialize.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_removal.c
Directory Properties:
  head/cddl/contrib/opensolaris/   (props changed)
  head/cddl/contrib/opensolaris/cmd/zdb/   (props changed)
  head/sys/cddl/contrib/opensolaris/   (props changed)

Modified: head/cddl/contrib/opensolaris/cmd/zdb/zdb.8
==
--- head/cddl/contrib/opensolaris/cmd/zdb/zdb.8 Thu Nov 21 13:22:23 2019
(r354947)
+++ head/cddl/contrib/opensolaris/cmd/zdb/zdb.8 Thu Nov 21 13:35:43 2019
(r354948)
@@ -10,7 +10,7 @@
 .\"
 .\"
 .\" Copyright 2012, Richard Lowe.
-.\" Copyright (c) 2012, 2017 by Delphix. All rights reserved.
+.\" Copyright (c) 2012, 2018 by Delphix. All rights reserved.
 .\" Copyright 2017 Nexenta Systems, Inc.
 .\"
 .Dd October 06, 2017
@@ -187,7 +187,7 @@ If the
 .Fl u
 option is also specified, also display the uberblocks on this device.
 .It Fl L
-Disable leak tracing and the loading of space maps.
+Disable leak detection and the loading of space maps.
 By default,
 .Nm
 verifies that all non-free blocks are referenced, which can be very expensive.

Modified: head/cddl/contrib/opensolaris/cmd/zdb/zdb.c
==
--- head/cddl/contrib/opensolaris/cmd/zdb/zdb.c Thu Nov 21 13:22:23 2019
(r354947)
+++ head/cddl/contrib/opensolaris/cmd/zdb/zdb.c Thu Nov 21 13:35:43 2019
(r354948)
@@ -785,18 +785,21 @@ dump_spacemap(objset_t *os, space_map_t *sm)
return;
 
(void) printf("space map object %llu:\n",
-   (longlong_t)sm->sm_phys->smp_object);
-   (void) printf("  smp_objsize = 0x%llx\n",
-   (longlong_t)sm->sm_phys->smp_objsize);
+   (longlong_t)sm->sm_object);
+   (void) printf("  smp_length = 0x%llx\n",
+   (longlong_t)sm->sm_phys->smp_length);
(void) printf("  smp_alloc = 0x%llx\n",
(longlong_t)sm->sm_phys->smp_alloc);
 
+   if (dump_opt['d'] < 6 && dump_opt['m'] < 4)
+   return;
+
/*
 * Print out the freelist entries in both encoded and decoded form.
 */
uint8_t mapshift = sm->sm_shift;
int64_t alloc = 0;
-   uint64_t word;
+   uint64_t word, entry_id = 0;
for (uint64_t offset = 0; offset < space_map_length(sm);
offset += sizeof (word)) {
 
@@ -804,11 +807,12 @@ dump_spacemap(objset_t *os, space_map_t *sm)
sizeof (word), , DMU_READ_PREFETCH));
 
if (sm_entry_is_debug(word)) {
-   (void) printf("\t[%6llu] %s: txg %llu, pass %llu\n",
-   (u_longlong_t)(offset / sizeof (word)),
+   (void) printf("\t[%6llu] %s: txg %llu pass %llu\n",
+   (u_longlong_t)entry_id,
ddata[SM_DEBUG_ACTION_DECODE(word)],
(u_longlong_t)SM_DEBUG_TXG_DECODE(word),
  

svn commit: r354947 - in head/sys: amd64/include arm64/include kern

2019-11-21 Thread Andrew Turner
Author: andrew
Date: Thu Nov 21 13:22:23 2019
New Revision: 354947
URL: https://svnweb.freebsd.org/changeset/base/354947

Log:
  Add kcsan_md_unsupported from NetBSD.
  
  It's used to ignore virtual addresses that may have a different physical
  address depending on the CPU.
  
  Sponsored by: DARPA, AFRL

Modified:
  head/sys/amd64/include/csan.h
  head/sys/arm64/include/csan.h
  head/sys/kern/subr_csan.c

Modified: head/sys/amd64/include/csan.h
==
--- head/sys/amd64/include/csan.h   Thu Nov 21 13:12:58 2019
(r354946)
+++ head/sys/amd64/include/csan.h   Thu Nov 21 13:22:23 2019
(r354947)
@@ -36,6 +36,12 @@
 #include 
 
 static inline bool
+kcsan_md_unsupported(vm_offset_t addr)
+{
+   return false;
+}
+
+static inline bool
 kcsan_md_is_avail(void)
 {
return true;

Modified: head/sys/arm64/include/csan.h
==
--- head/sys/arm64/include/csan.h   Thu Nov 21 13:12:58 2019
(r354946)
+++ head/sys/arm64/include/csan.h   Thu Nov 21 13:22:23 2019
(r354947)
@@ -36,6 +36,12 @@
 #include 
 
 static inline bool
+kcsan_md_unsupported(vm_offset_t addr)
+{
+   return false;
+}
+
+static inline bool
 kcsan_md_is_avail(void)
 {
return true;

Modified: head/sys/kern/subr_csan.c
==
--- head/sys/kern/subr_csan.c   Thu Nov 21 13:12:58 2019(r354946)
+++ head/sys/kern/subr_csan.c   Thu Nov 21 13:22:23 2019(r354947)
@@ -151,6 +151,8 @@ kcsan_access(uintptr_t addr, size_t size, bool write, 
 
if (__predict_false(!kcsan_enabled))
return;
+   if (__predict_false(kcsan_md_unsupported((vm_offset_t)addr)))
+   return;
 
new.addr = addr;
new.size = size;
___
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: r354946 - head/sys/kern

2019-11-21 Thread Andrew Turner
Author: andrew
Date: Thu Nov 21 13:12:58 2019
New Revision: 354946
URL: https://svnweb.freebsd.org/changeset/base/354946

Log:
  Fix the bus_space functions with KCSAN on arm64.
  
  Arm64 doesn't define the bus_space_set_multi_stream and
  bus_space_set_region_stream functions. Don't try to define them there.
  
  Sponsored by: DARPA, AFRL

Modified:
  head/sys/kern/subr_csan.c

Modified: head/sys/kern/subr_csan.c
==
--- head/sys/kern/subr_csan.c   Thu Nov 21 12:29:20 2019(r354945)
+++ head/sys/kern/subr_csan.c   Thu Nov 21 13:12:58 2019(r354946)
@@ -828,24 +828,32 @@ CSAN_BUS_WRITE_PTR_FUNC(region_stream, 8, uint64_t)
}
 
 CSAN_BUS_SET_FUNC(multi, 1, uint8_t)
-CSAN_BUS_SET_FUNC(multi_stream, 1, uint8_t)
 CSAN_BUS_SET_FUNC(region, 1, uint8_t)
+#if !defined(__aarch64__)
+CSAN_BUS_SET_FUNC(multi_stream, 1, uint8_t)
 CSAN_BUS_SET_FUNC(region_stream, 1, uint8_t)
+#endif
 
 CSAN_BUS_SET_FUNC(multi, 2, uint16_t)
-CSAN_BUS_SET_FUNC(multi_stream, 2, uint16_t)
 CSAN_BUS_SET_FUNC(region, 2, uint16_t)
+#if !defined(__aarch64__)
+CSAN_BUS_SET_FUNC(multi_stream, 2, uint16_t)
 CSAN_BUS_SET_FUNC(region_stream, 2, uint16_t)
+#endif
 
 CSAN_BUS_SET_FUNC(multi, 4, uint32_t)
-CSAN_BUS_SET_FUNC(multi_stream, 4, uint32_t)
 CSAN_BUS_SET_FUNC(region, 4, uint32_t)
+#if !defined(__aarch64__)
+CSAN_BUS_SET_FUNC(multi_stream, 4, uint32_t)
 CSAN_BUS_SET_FUNC(region_stream, 4, uint32_t)
+#endif
 
 #if !defined(__amd64__)
 CSAN_BUS_SET_FUNC(multi, 8, uint64_t)
-CSAN_BUS_SET_FUNC(multi_stream, 8, uint64_t)
 CSAN_BUS_SET_FUNC(region, 8, uint64_t)
+#if !defined(__aarch64__)
+CSAN_BUS_SET_FUNC(multi_stream, 8, uint64_t)
 CSAN_BUS_SET_FUNC(region_stream, 8, uint64_t)
+#endif
 #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: r354945 - head/sys/amd64/amd64

2019-11-21 Thread Andrew Turner
Author: andrew
Date: Thu Nov 21 12:29:20 2019
New Revision: 354945
URL: https://svnweb.freebsd.org/changeset/base/354945

Log:
  Fix for style(9): use parentheses around return statements.
  
  Reported by:  kib
  Sponsored by: DARPA, AFRL

Modified:
  head/sys/amd64/amd64/machdep.c

Modified: head/sys/amd64/amd64/machdep.c
==
--- head/sys/amd64/amd64/machdep.c  Thu Nov 21 12:29:01 2019
(r354944)
+++ head/sys/amd64/amd64/machdep.c  Thu Nov 21 12:29:20 2019
(r354945)
@@ -2742,21 +2742,21 @@ void *
 memset(void *buf, int c, size_t len)
 {
 
-   return memset_std(buf, c, len);
+   return (memset_std(buf, c, len));
 }
 
 void *
 memmove(void * _Nonnull dst, const void * _Nonnull src, size_t len)
 {
 
-   return memmove_std(dst, src, len);
+   return (memmove_std(dst, src, len));
 }
 
 void *
 memcpy(void * _Nonnull dst, const void * _Nonnull src, size_t len)
 {
 
-   return memcpy_std(dst, src, len);
+   return (memcpy_std(dst, src, len));
 }
 #else
 DEFINE_IFUNC(, void *, memset, (void *, int, size_t))
___
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: r354942 - in head/sys: amd64/amd64 amd64/conf amd64/include arm64/arm64 arm64/conf arm64/include conf kern libkern modules sys x86/include x86/x86

2019-11-21 Thread Andrew Turner
Author: andrew
Date: Thu Nov 21 11:22:08 2019
New Revision: 354942
URL: https://svnweb.freebsd.org/changeset/base/354942

Log:
  Port the NetBSD KCSAN runtime to FreeBSD.
  
  Update the NetBSD Kernel Concurrency Sanitizer (KCSAN) runtime to work in
  the FreeBSD kernel. It is a useful tool for finding data races between
  threads executing on different CPUs.
  
  This can be enabled by enabling KCSAN in the kernel config, or by using the
  GENERIC-KCSAN amd64 kernel. It works on amd64 and arm64, however the later
  needs a compiler change to allow -fsanitize=thread that KCSAN uses.
  
  Sponsored by: DARPA, AFRL
  Differential Revision:https://reviews.freebsd.org/D22315

Added:
  head/sys/amd64/conf/GENERIC-KCSAN   (contents, props changed)
  head/sys/amd64/include/csan.h   (contents, props changed)
  head/sys/arm64/include/csan.h   (contents, props changed)
  head/sys/sys/_cscan_atomic.h   (contents, props changed)
  head/sys/sys/_cscan_bus.h   (contents, props changed)
Modified:
  head/sys/amd64/amd64/copyout.c
  head/sys/amd64/amd64/machdep.c
  head/sys/amd64/conf/GENERIC
  head/sys/amd64/include/atomic.h
  head/sys/arm64/arm64/bus_machdep.c
  head/sys/arm64/arm64/copystr.c
  head/sys/arm64/arm64/machdep.c
  head/sys/arm64/arm64/mp_machdep.c
  head/sys/arm64/conf/GENERIC
  head/sys/arm64/include/atomic.h
  head/sys/arm64/include/bus.h
  head/sys/conf/files
  head/sys/conf/files.arm64
  head/sys/conf/kern.post.mk
  head/sys/conf/kern.pre.mk
  head/sys/conf/options
  head/sys/kern/subr_csan.c   (contents, props changed)
  head/sys/kern/vfs_aio.c
  head/sys/libkern/strcmp.c
  head/sys/libkern/strcpy.c
  head/sys/libkern/strlen.c
  head/sys/modules/Makefile
  head/sys/sys/csan.h   (contents, props changed)
  head/sys/sys/libkern.h
  head/sys/sys/systm.h
  head/sys/x86/include/bus.h
  head/sys/x86/x86/bus_machdep.c
  head/sys/x86/x86/mp_x86.c

Modified: head/sys/amd64/amd64/copyout.c
==
--- head/sys/amd64/amd64/copyout.c  Thu Nov 21 08:20:05 2019
(r354941)
+++ head/sys/amd64/amd64/copyout.c  Thu Nov 21 11:22:08 2019
(r354942)
@@ -146,6 +146,10 @@ DEFINE_IFUNC(, int, casueword, (volatile u_long *, u_l
casueword_smap : casueword_nosmap);
 }
 
+#undef copyinstr
+#undef copyin
+#undef copyout
+
 intcopyinstr_nosmap(const void *udaddr, void *kaddr, size_t len,
size_t *lencopied);
 intcopyinstr_smap(const void *udaddr, void *kaddr, size_t len,

Modified: head/sys/amd64/amd64/machdep.c
==
--- head/sys/amd64/amd64/machdep.c  Thu Nov 21 08:20:05 2019
(r354941)
+++ head/sys/amd64/amd64/machdep.c  Thu Nov 21 11:22:08 2019
(r354942)
@@ -64,6 +64,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -1899,6 +1900,8 @@ hammer_time(u_int64_t modulep, u_int64_t physfree)
 
cpu_probe_amdc1e();
 
+   kcsan_cpu_init(0);
+
 #ifdef FDT
x86_init_fdt();
 #endif
@@ -2722,6 +2725,40 @@ outb_(u_short port, u_char data)
 
 void   *memset_std(void *buf, int c, size_t len);
 void   *memset_erms(void *buf, int c, size_t len);
+void*memmove_std(void * _Nonnull dst, const void * _Nonnull src,
+   size_t len);
+void*memmove_erms(void * _Nonnull dst, const void * _Nonnull src,
+   size_t len);
+void*memcpy_std(void * _Nonnull dst, const void * _Nonnull src,
+   size_t len);
+void*memcpy_erms(void * _Nonnull dst, const void * _Nonnull src,
+   size_t len);
+
+#ifdef KCSAN
+/*
+ * These fail to build as ifuncs when used with KCSAN.
+ */
+void *
+memset(void *buf, int c, size_t len)
+{
+
+   return memset_std(buf, c, len);
+}
+
+void *
+memmove(void * _Nonnull dst, const void * _Nonnull src, size_t len)
+{
+
+   return memmove_std(dst, src, len);
+}
+
+void *
+memcpy(void * _Nonnull dst, const void * _Nonnull src, size_t len)
+{
+
+   return memcpy_std(dst, src, len);
+}
+#else
 DEFINE_IFUNC(, void *, memset, (void *, int, size_t))
 {
 
@@ -2729,10 +2766,6 @@ DEFINE_IFUNC(, void *, memset, (void *, int, size_t))
memset_erms : memset_std);
 }
 
-void*memmove_std(void * _Nonnull dst, const void * _Nonnull src,
-   size_t len);
-void*memmove_erms(void * _Nonnull dst, const void * _Nonnull src,
-   size_t len);
 DEFINE_IFUNC(, void *, memmove, (void * _Nonnull, const void * _Nonnull,
 size_t))
 {
@@ -2741,16 +2774,13 @@ DEFINE_IFUNC(, void *, memmove, (void * _Nonnull, cons
memmove_erms : memmove_std);
 }
 
-void*memcpy_std(void * _Nonnull dst, const void * _Nonnull src,
-   size_t len);
-void*memcpy_erms(void * _Nonnull dst, const void * _Nonnull src,
-   size_t len);
 DEFINE_IFUNC(, void *, memcpy, (void * _Nonnull, const void * _Nonnull,size_t))
 {
 
return ((cpu_stdext_feature & 

Re: svn commit: r354922 - in head: etc libexec/rc libexec/rc/rc.d share/man/man5 sys/sys

2019-11-21 Thread Tobias C. Berner
Yes it will be removed once all supported releases have it in base --
until then there will be a switch to conditionally depend on the port
depending on the FreeBSD version.

On Thu, 21 Nov 2019 at 07:31, Alexey Dokuchaev  wrote:
>
> On Wed, Nov 20, 2019 at 11:45:31PM +, Warner Losh wrote:
> > New Revision: 354922
> > URL: https://svnweb.freebsd.org/changeset/base/354922
> >
> > Log:
> >   Create /etc/os-release file.
> >
> >   Each boot, regenerate /var/run/os-release based on the currently
> >   running system. Create a /etc/os-release symlink pointing to this
> >   file (so that this doesn't create a new reason /etc can not be
> >   mounted read-only).
> >
> >   This is compatible with what other systems do and is what the
> >   sysutil/os-release port attempted to do, but in an incomplete way.
>
> Thanks!  Hopefully, `sysutil/os-release' can be wiped out soon: not
> just it was placed under wrong category, but it was badly and quite
> unreadably coded.
>
> ./danfe
> ___
> 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-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: r354941 - in head: cddl/contrib/opensolaris/cmd/zdb cddl/contrib/opensolaris/cmd/zfs cddl/contrib/opensolaris/cmd/zpool cddl/contrib/opensolaris/cmd/ztest cddl/contrib/opensolaris/lib/l...

2019-11-21 Thread Andriy Gapon
Author: avg
Date: Thu Nov 21 08:20:05 2019
New Revision: 354941
URL: https://svnweb.freebsd.org/changeset/base/354941

Log:
  MFV r354382,r354385: 10601 10757 Pool allocation classes
  
  illumos/illumos-gate@663207adb1669640c01c5ec6949ce78fd806efae
  
https://github.com/illumos/illumos-gate/commit/663207adb1669640c01c5ec6949ce78fd806efae
  
  10601 Pool allocation classes
  https://www.illumos.org/issues/10601
illumos port of ZoL Pool allocation classes. Includes at least these two
commits:
441709695 Pool allocation classes misplacing small file blocks
cc99f275a Pool allocation classes
  
  10757 Add -gLp to zpool subcommands for alt vdev names
  https://www.illumos.org/issues/10757
Port from ZoL of
d2f3e292d Add -gLp to zpool subcommands for alt vdev names
Note that a subsequent ZoL commit changed -p to -P
a77f29f93 Change full path subcommand flag from -p to -P
  
  Portions contributed by: Jerry Jelinek 
  Portions contributed by: HÃ¥kan Johansson 
  Portions contributed by: Richard Yao 
  Portions contributed by: Chunwei Chen 
  Portions contributed by: loli10K 
  Author: Don Brady 
  
  11541 allocation_classes feature must be enabled to add log device
  
  illumos/illumos-gate@c1064fd7ce62fe763a4475e9988ffea3b22137de
  
https://github.com/illumos/illumos-gate/commit/c1064fd7ce62fe763a4475e9988ffea3b22137de
  
  https://www.illumos.org/issues/11541
After the allocation_classes feature was integrated, one can no longer add a
log device to a pool unless that feature is enabled. There is an explicit 
check
for this, but it is unnecessary in the case of log devices, so we should 
handle
this better instead of forcing the feature to be enabled.
  
  Author: Jerry Jelinek 
  
  FreeBSD notes.
  I faithfully added the new -g, -L, -P flags, but only -g does something:
  vdev GUIDs are displayed instead of device names.  -L, resolve symlinks,
  and -P, display full disk paths, do nothing at the moment.
  The use of special vdevs is backward compatible for read-only access, so
  root pools should be bootable, but exercise caution.
  
  MFC after:4 weeks

Modified:
  head/cddl/contrib/opensolaris/cmd/zdb/zdb.c
  head/cddl/contrib/opensolaris/cmd/zfs/zfs.8
  head/cddl/contrib/opensolaris/cmd/zpool/zpool-features.7
  head/cddl/contrib/opensolaris/cmd/zpool/zpool.8
  head/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c
  head/cddl/contrib/opensolaris/cmd/zpool/zpool_vdev.c
  head/cddl/contrib/opensolaris/cmd/ztest/ztest.c
  head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h
  head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c
  head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c
  head/cddl/contrib/opensolaris/lib/libzpool/common/util.c
  head/stand/libsa/zfs/zfsimpl.c
  head/sys/cddl/contrib/opensolaris/common/zfs/zfeature_common.c
  head/sys/cddl/contrib/opensolaris/common/zfs/zfeature_common.h
  head/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab.h
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_removal.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c
  head/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h
Directory Properties:
  head/cddl/contrib/opensolaris/   (props changed)
  head/cddl/contrib/opensolaris/cmd/zdb/   (props changed)
  head/cddl/contrib/opensolaris/lib/libzfs/   (props changed)
  head/sys/cddl/contrib/opensolaris/   (props changed)

Modified: head/cddl/contrib/opensolaris/cmd/zdb/zdb.c
==
--- head/cddl/contrib/opensolaris/cmd/zdb/zdb.c Thu Nov 21 07:48:03 2019
(r354940)
+++ head/cddl/contrib/opensolaris/cmd/zdb/zdb.c Thu Nov 21 08:20:05 2019
(r354941)
@@ -21,7 +21,7 @@
 
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2011, 2017 by Delphix. All rights reserved.
+ * Copyright (c) 2011, 2018 by Delphix. All rights