Re: svn commit: r331083 - in head: lib/libufs sbin/dump sbin/fsck_ffs sbin/fsdb sbin/newfs sbin/quotacheck sbin/restore sbin/tunefs stand/libsa sys/fs/ext2fs sys/fs/nandfs sys/ufs/ffs sys/ufs/ufs usr.

2018-03-17 Thread O. Hartmann
Am Sat, 17 Mar 2018 01:48:27 + (UTC)
Ed Maste  schrieb:

> Author: emaste
> Date: Sat Mar 17 01:48:27 2018
> New Revision: 331083
> URL: https://svnweb.freebsd.org/changeset/base/331083
> 
> Log:
>   Prefix UFS symbols with UFS_ to reduce namespace pollution
>   
>   Followup to r313780.  Also prefix ext2's and nandfs's versions with
>   EXT2_ and NANDFS_.
>   
>   Reported by:kib
>   Reviewed by:kib, mckusick
>   Sponsored by:   The FreeBSD Foundation
>   Differential Revision:  https://reviews.freebsd.org/D9623
> 
> Modified:
>   head/lib/libufs/inode.c
>   head/sbin/dump/main.c
>   head/sbin/dump/traverse.c
>   head/sbin/fsck_ffs/dir.c
>   head/sbin/fsck_ffs/fsutil.c
>   head/sbin/fsck_ffs/inode.c
>   head/sbin/fsck_ffs/pass1.c
>   head/sbin/fsck_ffs/pass2.c
>   head/sbin/fsck_ffs/suj.c
>   head/sbin/fsdb/fsdb.c
>   head/sbin/fsdb/fsdbutil.c
>   head/sbin/newfs/mkfs.c
>   head/sbin/quotacheck/quotacheck.c
>   head/sbin/restore/dirs.c
>   head/sbin/restore/interactive.c
>   head/sbin/restore/tape.c
>   head/sbin/tunefs/tunefs.c
>   head/stand/libsa/nandfs.c
>   head/stand/libsa/ufs.c
>   head/sys/fs/ext2fs/ext2_alloc.c
>   head/sys/fs/ext2fs/ext2_dinode.h
>   head/sys/fs/ext2fs/ext2_lookup.c
>   head/sys/fs/ext2fs/ext2_vnops.c
>   head/sys/fs/ext2fs/inode.h
>   head/sys/fs/nandfs/nandfs.h
>   head/sys/fs/nandfs/nandfs_vnops.c
>   head/sys/ufs/ffs/ffs_alloc.c
>   head/sys/ufs/ffs/ffs_softdep.c
>   head/sys/ufs/ffs/ffs_vnops.c
>   head/sys/ufs/ffs/softdep.h
>   head/sys/ufs/ufs/dinode.h
>   head/sys/ufs/ufs/inode.h
>   head/sys/ufs/ufs/ufs_lookup.c
>   head/sys/ufs/ufs/ufs_vnops.c
>   head/usr.sbin/quot/quot.c
> 
> Modified: head/lib/libufs/inode.c
> ==
> --- head/lib/libufs/inode.c   Sat Mar 17 01:40:09 2018(r331082)
> +++ head/lib/libufs/inode.c   Sat Mar 17 01:48:27 2018(r331083)
> @@ -81,12 +81,12 @@ getino(struct uufsd *disk, void **dino, ino_t inode, i
>  gotit:   switch (disk->d_ufs) {
>   case 1:
>   dp1 = &((struct ufs1_dinode *)inoblock)[inode - min];
> - *mode = dp1->di_mode & IFMT;
> + *mode = dp1->di_mode & UFS_IFMT;
>   *dino = dp1;
>   return (0);
>   case 2:
>   dp2 = &((struct ufs2_dinode *)inoblock)[inode - min];
> - *mode = dp2->di_mode & IFMT;
> + *mode = dp2->di_mode & UFS_IFMT;
>   *dino = dp2;
>   return (0);
>   default:
> 
> Modified: head/sbin/dump/main.c
> ==
> --- head/sbin/dump/main.c Sat Mar 17 01:40:09 2018(r331082)
> +++ head/sbin/dump/main.c Sat Mar 17 01:48:27 2018(r331083)
> @@ -550,7 +550,7 @@ main(int argc, char *argv[])
>* Skip directory inodes deleted and maybe reallocated
>*/
>   dp = getinode(ino, &mode);
> - if (mode != IFDIR)
> + if (mode != UFS_IFDIR)
>   continue;
>   (void)dumpino(dp, ino);
>   }
> @@ -569,7 +569,7 @@ main(int argc, char *argv[])
>* Skip inodes deleted and reallocated as directories.
>*/
>   dp = getinode(ino, &mode);
> - if (mode == IFDIR)
> + if (mode == UFS_IFDIR)
>   continue;
>   (void)dumpino(dp, ino);
>   }
> 
> Modified: head/sbin/dump/traverse.c
> ==
> --- head/sbin/dump/traverse.c Sat Mar 17 01:40:09 2018(r331082)
> +++ head/sbin/dump/traverse.c Sat Mar 17 01:48:27 2018(r331083)
> @@ -195,7 +195,7 @@ mapfiles(ino_t maxino, long *tapesize)
>   for (i = 0; i < inosused; i++, ino++) {
>   if (ino < UFS_ROOTINO ||
>   (dp = getinode(ino, &mode)) == NULL ||
> - (mode & IFMT) == 0)
> + (mode & UFS_IFMT) == 0)
>   continue;
>   if (ino >= maxino) {
>   msg("Skipping inode %ju >= maxino %ju\n",
> @@ -209,19 +209,19 @@ mapfiles(ino_t maxino, long *tapesize)
>* (this is used in mapdirs()).
>*/
>   SETINO(ino, usedinomap);
> - if (mode == IFDIR)
> + if (mode == UFS_IFDIR)
>   SETINO(ino, dumpdirmap);
>   if (WANTTODUMP(dp)) {
>   SETINO(ino, dumpinomap);
> - if (mode != IFREG &&
> - mode != IFDIR &&
> - mode != IFLNK)
> + if (mode != UFS_IFREG &&
> + mode != UFS_IFDIR &&
> +  

Re: svn commit: r331083 - in head: lib/libufs sbin/dump sbin/fsck_ffs sbin/fsdb sbin/newfs sbin/quotacheck sbin/restore sbin/tunefs stand/libsa sys/fs/ext2fs sys/fs/nandfs sys/ufs/ffs sys/ufs/ufs usr.

2018-03-17 Thread Bruce Evans

On Sat, 17 Mar 2018, Ed Maste wrote:


Log:
 Prefix UFS symbols with UFS_ to reduce namespace pollution

 Followup to r313780.  Also prefix ext2's and nandfs's versions with
 EXT2_ and NANDFS_.


S_IFMT is already MI.  So this churnge is mostly wrong unless file
systems do the identity translations from their "internal" IFMT to
S_IFMT, etc., everywhere, but they mostly don't.  Using IFMT, etc.,
was correct under the assumption that IFMT is just an old spelling of
S_IFMT.  Now it is assumed that FOOFS_IFMT is just a new spelling of
S_IFMT.  There are many more logically different translations that
have to be physically the identity to work.

UFS_IFMT is a wrong spelling for ffs.  If ffs were actually different from
ufs, then there would be different file systems layered under ufs (or is
it different file systems layered under ffs?).

ext2fs needs a separate set of mode macros less than ffs, since it has
less trivial translation layer that converts from the on-disk inode to
the in-core inode.

Translations are less confusing for file flags since they are only the
identity for ffs.  All file systems use the MI SF_* and convert to that
if necessary.  ffs assumes that SF_* match its disk encoding and will
never change.  ext2fs has to do nontrivial translations of file flags
and does this at low levels so that upper levels can just use SF_*
like ffs, except with no assumptions.  File modes should be handled
similarly.  IFMT is then just a better (shorter) spelling of S_IFMT
like it used to be.

Bruce
___
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: r331094 - in head: lib/libmd share/man/man9

2018-03-17 Thread Edward Tomasz Napierala
Author: trasz
Date: Sat Mar 17 11:41:06 2018
New Revision: 331094
URL: https://svnweb.freebsd.org/changeset/base/331094

Log:
  Fix formatting errors that resulted in apropos(1) output looking weird.
  
  MFC after:2 weeks

Modified:
  head/lib/libmd/sha512.3
  head/share/man/man9/cnv.9
  head/share/man/man9/owll.9
  head/share/man/man9/rwlock.9
  head/share/man/man9/zone.9

Modified: head/lib/libmd/sha512.3
==
--- head/lib/libmd/sha512.3 Sat Mar 17 07:04:41 2018(r331093)
+++ head/lib/libmd/sha512.3 Sat Mar 17 11:41:06 2018(r331094)
@@ -26,7 +26,7 @@
 .Nm SHA384_End ,
 .Nm SHA384_File ,
 .Nm SHA384_FileChunk ,
-.Nm SHA384_Data,
+.Nm SHA384_Data ,
 .Nm SHA512_256_Init ,
 .Nm SHA512_256_Update ,
 .Nm SHA512_256_Final ,

Modified: head/share/man/man9/cnv.9
==
--- head/share/man/man9/cnv.9   Sat Mar 17 07:04:41 2018(r331093)
+++ head/share/man/man9/cnv.9   Sat Mar 17 11:41:06 2018(r331094)
@@ -29,9 +29,9 @@
 .Dt CNV 9
 .Os
 .Sh NAME
-.Nm cnvlist_get,
-.Nm cnvlist_take,
-.Nm cnvlist_free,
+.Nm cnvlist_get ,
+.Nm cnvlist_take ,
+.Nm cnvlist_free
 .Nd "API for managing name/value pairs by cookie."
 .Sh LIBRARY
 .Lb libnv

Modified: head/share/man/man9/owll.9
==
--- head/share/man/man9/owll.9  Sat Mar 17 07:04:41 2018(r331093)
+++ head/share/man/man9/owll.9  Sat Mar 17 11:41:06 2018(r331094)
@@ -29,9 +29,9 @@
 .Os
 .Sh NAME
 .Nm owll
-.Nm OWLL_WRITE_ONE,
-.Nm OWLL_WRITE_ZERO,
-.Nm OWLL_READ_DATA,
+.Nm OWLL_WRITE_ONE ,
+.Nm OWLL_WRITE_ZERO ,
+.Nm OWLL_READ_DATA ,
 .Nm OWLL_REASET_AND_PRESENCE
 .Nd Dallas Semiconductor 1-Wire Link Layer Interface
 .Sh SYNOPSIS

Modified: head/share/man/man9/rwlock.9
==
--- head/share/man/man9/rwlock.9Sat Mar 17 07:04:41 2018
(r331093)
+++ head/share/man/man9/rwlock.9Sat Mar 17 11:41:06 2018
(r331094)
@@ -30,7 +30,7 @@
 .Sh NAME
 .Nm rwlock ,
 .Nm rw_init ,
-.Nm rw_init_flags,
+.Nm rw_init_flags ,
 .Nm rw_destroy ,
 .Nm rw_rlock ,
 .Nm rw_wlock ,

Modified: head/share/man/man9/zone.9
==
--- head/share/man/man9/zone.9  Sat Mar 17 07:04:41 2018(r331093)
+++ head/share/man/man9/zone.9  Sat Mar 17 11:41:06 2018(r331094)
@@ -35,10 +35,10 @@
 .Nm uma_zfree ,
 .Nm uma_zfree_arg ,
 .Nm uma_zdestroy ,
-.Nm uma_zone_set_max,
-.Nm uma_zone_get_max,
-.Nm uma_zone_get_cur,
-.Nm uma_zone_set_warning,
+.Nm uma_zone_set_max ,
+.Nm uma_zone_get_max ,
+.Nm uma_zone_get_cur ,
+.Nm uma_zone_set_warning ,
 .Nm uma_zone_set_maxaction
 .Nd zone allocator
 .Sh SYNOPSIS
___
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: r331095 - in head: lib/libufs sbin/dump sbin/fsck_ffs sbin/fsdb sbin/newfs sbin/quotacheck sbin/restore sbin/tunefs stand/libsa sys/fs/ext2fs sys/fs/nandfs sys/ufs/ffs sys/ufs/ufs usr.s...

2018-03-17 Thread Ed Maste
Author: emaste
Date: Sat Mar 17 12:59:55 2018
New Revision: 331095
URL: https://svnweb.freebsd.org/changeset/base/331095

Log:
  Revert r313780 (UFS_ prefix)

Modified:
  head/lib/libufs/inode.c
  head/sbin/dump/main.c
  head/sbin/dump/traverse.c
  head/sbin/fsck_ffs/dir.c
  head/sbin/fsck_ffs/fsutil.c
  head/sbin/fsck_ffs/inode.c
  head/sbin/fsck_ffs/pass1.c
  head/sbin/fsck_ffs/pass2.c
  head/sbin/fsck_ffs/suj.c
  head/sbin/fsdb/fsdb.c
  head/sbin/fsdb/fsdbutil.c
  head/sbin/newfs/mkfs.c
  head/sbin/quotacheck/quotacheck.c
  head/sbin/restore/dirs.c
  head/sbin/restore/interactive.c
  head/sbin/restore/tape.c
  head/sbin/tunefs/tunefs.c
  head/stand/libsa/nandfs.c
  head/stand/libsa/ufs.c
  head/sys/fs/ext2fs/ext2_alloc.c
  head/sys/fs/ext2fs/ext2_dinode.h
  head/sys/fs/ext2fs/ext2_lookup.c
  head/sys/fs/ext2fs/ext2_vnops.c
  head/sys/fs/ext2fs/inode.h
  head/sys/fs/nandfs/nandfs.h
  head/sys/fs/nandfs/nandfs_vnops.c
  head/sys/ufs/ffs/ffs_alloc.c
  head/sys/ufs/ffs/ffs_softdep.c
  head/sys/ufs/ffs/ffs_vnops.c
  head/sys/ufs/ffs/softdep.h
  head/sys/ufs/ufs/dinode.h
  head/sys/ufs/ufs/inode.h
  head/sys/ufs/ufs/ufs_lookup.c
  head/sys/ufs/ufs/ufs_vnops.c
  head/usr.sbin/quot/quot.c

Modified: head/lib/libufs/inode.c
==
--- head/lib/libufs/inode.c Sat Mar 17 11:41:06 2018(r331094)
+++ head/lib/libufs/inode.c Sat Mar 17 12:59:55 2018(r331095)
@@ -81,12 +81,12 @@ getino(struct uufsd *disk, void **dino, ino_t inode, i
 gotit: switch (disk->d_ufs) {
case 1:
dp1 = &((struct ufs1_dinode *)inoblock)[inode - min];
-   *mode = dp1->di_mode & UFS_IFMT;
+   *mode = dp1->di_mode & IFMT;
*dino = dp1;
return (0);
case 2:
dp2 = &((struct ufs2_dinode *)inoblock)[inode - min];
-   *mode = dp2->di_mode & UFS_IFMT;
+   *mode = dp2->di_mode & IFMT;
*dino = dp2;
return (0);
default:

Modified: head/sbin/dump/main.c
==
--- head/sbin/dump/main.c   Sat Mar 17 11:41:06 2018(r331094)
+++ head/sbin/dump/main.c   Sat Mar 17 12:59:55 2018(r331095)
@@ -550,7 +550,7 @@ main(int argc, char *argv[])
 * Skip directory inodes deleted and maybe reallocated
 */
dp = getinode(ino, &mode);
-   if (mode != UFS_IFDIR)
+   if (mode != IFDIR)
continue;
(void)dumpino(dp, ino);
}
@@ -569,7 +569,7 @@ main(int argc, char *argv[])
 * Skip inodes deleted and reallocated as directories.
 */
dp = getinode(ino, &mode);
-   if (mode == UFS_IFDIR)
+   if (mode == IFDIR)
continue;
(void)dumpino(dp, ino);
}

Modified: head/sbin/dump/traverse.c
==
--- head/sbin/dump/traverse.c   Sat Mar 17 11:41:06 2018(r331094)
+++ head/sbin/dump/traverse.c   Sat Mar 17 12:59:55 2018(r331095)
@@ -195,7 +195,7 @@ mapfiles(ino_t maxino, long *tapesize)
for (i = 0; i < inosused; i++, ino++) {
if (ino < UFS_ROOTINO ||
(dp = getinode(ino, &mode)) == NULL ||
-   (mode & UFS_IFMT) == 0)
+   (mode & IFMT) == 0)
continue;
if (ino >= maxino) {
msg("Skipping inode %ju >= maxino %ju\n",
@@ -209,19 +209,19 @@ mapfiles(ino_t maxino, long *tapesize)
 * (this is used in mapdirs()).
 */
SETINO(ino, usedinomap);
-   if (mode == UFS_IFDIR)
+   if (mode == IFDIR)
SETINO(ino, dumpdirmap);
if (WANTTODUMP(dp)) {
SETINO(ino, dumpinomap);
-   if (mode != UFS_IFREG &&
-   mode != UFS_IFDIR &&
-   mode != UFS_IFLNK)
+   if (mode != IFREG &&
+   mode != IFDIR &&
+   mode != IFLNK)
*tapesize += 1;
else
*tapesize += blockest(dp);
continue;
}
-   if (mode == UFS_IFDIR) {
+   if (mode == IFDIR) {
if (!nonodump &&
(DIP(dp, di_flags) & UF_NODUMP))
 

svn commit: r331096 - head/sys/modules/hyperv/vmbus

2018-03-17 Thread Ed Maste
Author: emaste
Date: Sat Mar 17 14:50:20 2018
New Revision: 331096
URL: https://svnweb.freebsd.org/changeset/base/331096

Log:
  Move assym.s to DPSRCS in vmbus module
  
  assym.s is only to be included by other .s files, and should not
  actually be assembled by itself.

Modified:
  head/sys/modules/hyperv/vmbus/Makefile

Modified: head/sys/modules/hyperv/vmbus/Makefile
==
--- head/sys/modules/hyperv/vmbus/Makefile  Sat Mar 17 12:59:55 2018
(r331095)
+++ head/sys/modules/hyperv/vmbus/Makefile  Sat Mar 17 14:50:20 2018
(r331096)
@@ -13,6 +13,7 @@ SRCS= hyperv.c \
vmbus_et.c \
vmbus_if.c \
vmbus_res.c \
+   vmbus_vector.S \
vmbus_xact.c
 SRCS+= acpi_if.h bus_if.h device_if.h opt_acpi.h pci_if.h pcib_if.h vmbus_if.h
 
@@ -22,8 +23,7 @@ SRCS+=  opt_kstack_pages.h opt_nfs.h opt_hwpmc_hooks.h
 SRCS+= opt_apic.h
 .endif
 
-SRCS+= assym.s \
-   vmbus_vector.S
+DPSRCS+=   assym.s
 
 vmbus_vector.o:
${CC} -c -x assembler-with-cpp -DLOCORE ${CFLAGS} \
___
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: r331097 - head/sys/cam/scsi

2018-03-17 Thread Warner Losh
Author: imp
Date: Sat Mar 17 16:04:06 2018
New Revision: 331097
URL: https://svnweb.freebsd.org/changeset/base/331097

Log:
  Only take out the periph lock when we're modifying the flags of the
  softc for an async unit attention. CAM locks, sometimes, the periph
  lock and other times does not. We were taking the lock always and
  running into lock recursion issues on a non-recursive lock. Now we
  take it selectively. It's not clear why xpt takes the lock selectively
  before calling us, though, and that's still under investigation.
  
  Reported by:  avg
  PR:   226510 (same panic, differnt circumstances)
  Sponsored by: Netflix

Modified:
  head/sys/cam/scsi/scsi_da.c

Modified: head/sys/cam/scsi/scsi_da.c
==
--- head/sys/cam/scsi/scsi_da.c Sat Mar 17 14:50:20 2018(r331096)
+++ head/sys/cam/scsi/scsi_da.c Sat Mar 17 16:04:06 2018(r331097)
@@ -2039,26 +2039,30 @@ daasync(void *callback_arg, u_int32_t code,
 * Handle all UNIT ATTENTIONs except our own,
 * as they will be handled by daerror().
 */
-   cam_periph_lock(periph);
if (xpt_path_periph(ccb->ccb_h.path) != periph &&
scsi_extract_sense_ccb(ccb,
 &error_code, &sense_key, &asc, &ascq)) {
if (asc == 0x2A && ascq == 0x09) {
xpt_print(ccb->ccb_h.path,
"Capacity data has changed\n");
+   cam_periph_lock(periph);
softc->flags &= ~DA_FLAG_PROBED;
+   cam_periph_unlock(periph);
dareprobe(periph);
} else if (asc == 0x28 && ascq == 0x00) {
+   cam_periph_lock(periph);
softc->flags &= ~DA_FLAG_PROBED;
+   cam_periph_unlock(periph);
disk_media_changed(softc->disk, M_NOWAIT);
} else if (asc == 0x3F && ascq == 0x03) {
xpt_print(ccb->ccb_h.path,
"INQUIRY data has changed\n");
+   cam_periph_lock(periph);
softc->flags &= ~DA_FLAG_PROBED;
+   cam_periph_unlock(periph);
dareprobe(periph);
}
}
-   cam_periph_unlock(periph);
break;
}
case AC_SCSI_AEN:
___
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: r331098 - in head/sys: net netinet netinet6

2018-03-17 Thread Alexander V. Chernikov
Author: melifaro
Date: Sat Mar 17 17:05:48 2018
New Revision: 331098
URL: https://svnweb.freebsd.org/changeset/base/331098

Log:
  Fix outgoing TCP/UDP packet drop on arp/ndp entry expiration.
  
  Current arp/nd code relies on the feedback from the datapath indicating
   that the entry is still used. This mechanism is incorporated into the
   arpresolve()/nd6_resolve() routines. After the inpcb route cache
   introduction, the packet path for the locally-originated packets changed,
   passing cached lle pointer to the ether_output() directly. This resulted
   in the arp/ndp entry expire each time exactly after the configured max_age
   interval. During the small window between the ARP/NDP request and reply
   from the router, most of the packets got lost.
  
  Fix this behaviour by plugging datapath notification code to the packet
   path used by route cache. Unify the notification code by using single
   inlined function with the per-AF callbacks.
  
  Reported by:  sthaug at nethelp.no
  Reviewed by:  ae
  MFC after:2 weeks

Modified:
  head/sys/net/if_ethersubr.c
  head/sys/net/if_llatbl.h
  head/sys/netinet/if_ether.c
  head/sys/netinet/in.c
  head/sys/netinet6/in6.c

Modified: head/sys/net/if_ethersubr.c
==
--- head/sys/net/if_ethersubr.c Sat Mar 17 16:04:06 2018(r331097)
+++ head/sys/net/if_ethersubr.c Sat Mar 17 17:05:48 2018(r331098)
@@ -311,7 +311,13 @@ ether_output(struct ifnet *ifp, struct mbuf *m,
if (lle == NULL) {
/* if we lookup, keep cache */
addref = 1;
-   }
+   } else
+   /*
+* Notify LLE code that
+* the entry was used
+* by datapath.
+*/
+   llentry_mark_used(lle);
}
if (lle != NULL) {
phdr = lle->r_linkdata;

Modified: head/sys/net/if_llatbl.h
==
--- head/sys/net/if_llatbl.hSat Mar 17 16:04:06 2018(r331097)
+++ head/sys/net/if_llatbl.hSat Mar 17 17:05:48 2018(r331098)
@@ -149,6 +149,7 @@ typedef void (llt_fill_sa_entry_t)(const struct llentr
 typedef void (llt_free_tbl_t)(struct lltable *);
 typedef void (llt_link_entry_t)(struct lltable *, struct llentry *);
 typedef void (llt_unlink_entry_t)(struct llentry *);
+typedef void (llt_mark_used_t)(struct llentry *);
 
 typedef int (llt_foreach_cb_t)(struct lltable *, struct llentry *, void *);
 typedef int (llt_foreach_entry_t)(struct lltable *, llt_foreach_cb_t *, void 
*);
@@ -173,6 +174,7 @@ struct lltable {
llt_unlink_entry_t  *llt_unlink_entry;
llt_fill_sa_entry_t *llt_fill_sa_entry;
llt_free_tbl_t  *llt_free_tbl;
+   llt_mark_used_t *llt_mark_used;
 };
 
 MALLOC_DECLARE(M_LLTABLE);
@@ -245,6 +247,19 @@ lla_lookup(struct lltable *llt, u_int flags, const str
 {
 
return (llt->llt_lookup(llt, flags, l3addr));
+}
+
+/*
+ * Notify the LLE code that the entry was used by datapath.
+ */
+static __inline void
+llentry_mark_used(struct llentry *lle)
+{
+
+   if (lle->r_skip_req == 0)
+   return;
+   if ((lle->r_flags & RLLE_VALID) != 0)
+   lle->lle_tbl->llt_mark_used(lle);
 }
 
 intlla_rt_output(struct rt_msghdr *, struct rt_addrinfo *);

Modified: head/sys/netinet/if_ether.c
==
--- head/sys/netinet/if_ether.c Sat Mar 17 16:04:06 2018(r331097)
+++ head/sys/netinet/if_ether.c Sat Mar 17 17:05:48 2018(r331098)
@@ -504,12 +504,8 @@ arpresolve_full(struct ifnet *ifp, int is_gw, int flag
}
bcopy(lladdr, desten, ll_len);
 
-   /* Check if we have feedback request from arptimer() */
-   if (la->r_skip_req != 0) {
-   LLE_REQ_LOCK(la);
-   la->r_skip_req = 0; /* Notify that entry was used */
-   LLE_REQ_UNLOCK(la);
-   }
+   /* Notify LLE code that the entry was used by datapath */
+   llentry_mark_used(la);
if (pflags != NULL)
*pflags = la->la_flags & (LLE_VALID|LLE_IFADDR);
if (plle) {
@@ -640,12 +636,8 @@ arpresolve(struct ifnet *ifp, int is_gw, struct mbuf *
bcopy(la->r_linkdata, desten, la->r_hdrlen);
if (pflags != NULL)
*pflags = LLE_VALID | (la->r_flags & RLLE_IFADDR);
-   /* Check if we have feedback request from 

svn commit: r331102 - head/sys/modules/iser

2018-03-17 Thread Warner Losh
Author: imp
Date: Sat Mar 17 17:18:46 2018
New Revision: 331102
URL: https://svnweb.freebsd.org/changeset/base/331102

Log:
  Use kern.opts.mk instead of bsd.own.mk (which includes src.opts.mk)
  here.

Modified:
  head/sys/modules/iser/Makefile

Modified: head/sys/modules/iser/Makefile
==
--- head/sys/modules/iser/Makefile  Sat Mar 17 17:18:41 2018
(r331101)
+++ head/sys/modules/iser/Makefile  Sat Mar 17 17:18:46 2018
(r331102)
@@ -1,8 +1,9 @@
 # $FreeBSD$
 
-.PATH: ${SRCTOP}/sys/dev/iser/
+SYSDIR?=${SRCTOP}/sys
+.include "${SYSDIR}/conf/kern.opts.mk"
 
-.include 
+.PATH: ${SYSDIR}/dev/iser/
 
 KMOD=  iser
 
@@ -18,7 +19,7 @@ SRCS+=bus_if.h
 SRCS+= device_if.h
 SRCS+= icl_conn_if.h
 
-CFLAGS+= -I${SRCTOP}/sys/
+CFLAGS+= -I${SYSDIR}/
 CFLAGS+= -I${SYSDIR}/ofed/include
 CFLAGS+= -I${SYSDIR}/ofed/include/uapi
 CFLAGS+= -I${SYSDIR}/compat/linuxkpi/common/include
___
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: r331100 - head/sys/modules/netgraph/checksum

2018-03-17 Thread Warner Losh
Author: imp
Date: Sat Mar 17 17:18:37 2018
New Revision: 331100
URL: https://svnweb.freebsd.org/changeset/base/331100

Log:
  Remove commented out code to generate opt_inet*.h. That's handled
  automatically by kern.opts.mk now. Include that instead.

Modified:
  head/sys/modules/netgraph/checksum/Makefile

Modified: head/sys/modules/netgraph/checksum/Makefile
==
--- head/sys/modules/netgraph/checksum/Makefile Sat Mar 17 17:18:29 2018
(r331099)
+++ head/sys/modules/netgraph/checksum/Makefile Sat Mar 17 17:18:37 2018
(r331100)
@@ -1,20 +1,9 @@
 # $FreeBSD$
 
-.include 
+SYSDIR?=${SRCTOP}/sys
+.include "${SYSDIR}/conf/kern.opts.mk"
 
 KMOD=  ng_checksum
 SRCS=  ng_checksum.c opt_inet.h opt_inet6.h
-
-#.if !defined(KERNBUILDDIR)
-#
-#.if ${MK_INET_SUPPORT} != "no"
-#opt_inet.h:
-#  echo "#define INET 1" > ${.TARGET}
-#.endif
-#.if ${MK_INET6_SUPPORT} != "no"
-#opt_inet6.h:
-#  echo "#define INET6 1" > ${.TARGET}
-#.endif
-#.endif
 
 .include 
___
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: r331099 - head/sys/conf

2018-03-17 Thread Warner Losh
Author: imp
Date: Sat Mar 17 17:18:29 2018
New Revision: 331099
URL: https://svnweb.freebsd.org/changeset/base/331099

Log:
  Add EFI to kernel options.
  
  Some parts of MI modules will soon depend on whether EFI is available
  or not. Add EFI to the list of kernel options so we can use it in
  the modules build.

Modified:
  head/sys/conf/kern.opts.mk

Modified: head/sys/conf/kern.opts.mk
==
--- head/sys/conf/kern.opts.mk  Sat Mar 17 17:05:48 2018(r331098)
+++ head/sys/conf/kern.opts.mk  Sat Mar 17 17:18:29 2018(r331099)
@@ -30,6 +30,7 @@ __DEFAULT_YES_OPTIONS = \
 CDDL \
 CRYPT \
 CUSE \
+EFI \
 FORMAT_EXTENSIONS \
 INET \
 INET6 \
@@ -89,6 +90,11 @@ BROKEN_OPTIONS+= OFED
 # Things that don't work based on toolchain support.
 .if ${MACHINE} != "i386" && ${MACHINE} != "amd64"
 BROKEN_OPTIONS+= KERNEL_RETPOLINE
+.endif
+
+# EFI doesn't exist on mips, powerpc, sparc or riscv.
+.if ${MACHINE:Mmips} || ${MACHINE:Mpowerpc} || ${MACHINE:Msparc64} || 
${MACHINE:Mriscv}
+BROKEN_OPTIONS+=EFI
 .endif
 
 # expanded inline from bsd.mkopt.mk to avoid share/mk dependency
___
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: r331101 - head/sys/modules/netmap

2018-03-17 Thread Warner Losh
Author: imp
Date: Sat Mar 17 17:18:41 2018
New Revision: 331101
URL: https://svnweb.freebsd.org/changeset/base/331101

Log:
  Use FreeBSD-current conventions for building options rather than
  FreeBSD 10 conventions: inlude kern.opts.mk.

Modified:
  head/sys/modules/netmap/Makefile

Modified: head/sys/modules/netmap/Makefile
==
--- head/sys/modules/netmap/MakefileSat Mar 17 17:18:37 2018
(r331100)
+++ head/sys/modules/netmap/MakefileSat Mar 17 17:18:41 2018
(r331101)
@@ -3,12 +3,12 @@
 # Compile netmap as a module, useful if you want a netmap bridge
 # or loadable drivers.
 
-.include  # FreeBSD 10 and earlier
-# .include "${SYSDIR}/conf/kern.opts.mk"
+SYSDIR?=${SRCTOP}/sys
+.include "${SYSDIR}/conf/kern.opts.mk"
 
-.PATH: ${SRCTOP}/sys/dev/netmap
-.PATH.h: ${SRCTOP}/sys/net
-CFLAGS += -I${SRCTOP}/sys/ -D INET
+.PATH: ${SYSDIR}/dev/netmap
+.PATH.h: ${SYSDIR}/net
+CFLAGS += -I${SYSDIR}/ -D INET
 KMOD   = netmap
 SRCS   = device_if.h bus_if.h pci_if.h opt_netmap.h
 SRCS   += netmap.c netmap.h netmap_kern.h
___
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: r331103 - head/tests/sys/aio

2018-03-17 Thread Alan Somers
Author: asomers
Date: Sat Mar 17 17:48:21 2018
New Revision: 331103
URL: https://svnweb.freebsd.org/changeset/base/331103

Log:
  aio: add an ATF test case for aio_fsync error conditions

Modified:
  head/tests/sys/aio/aio_test.c

Modified: head/tests/sys/aio/aio_test.c
==
--- head/tests/sys/aio/aio_test.c   Sat Mar 17 17:18:46 2018
(r331102)
+++ head/tests/sys/aio/aio_test.c   Sat Mar 17 17:48:21 2018
(r331103)
@@ -1040,6 +1040,42 @@ ATF_TC_BODY(aio_socket_short_write_cancel, tc)
close(s[0]);
 }
 
+/* 
+ * test aio_fsync's behavior with bad inputs 
+ */
+ATF_TC_WITHOUT_HEAD(aio_fsync_errors);
+ATF_TC_BODY(aio_fsync_errors, tc)
+{
+   int fd;
+   struct aiocb iocb;
+
+   ATF_REQUIRE_KERNEL_MODULE("aio");
+   ATF_REQUIRE_UNSAFE_AIO();
+
+   fd = open(FILE_PATHNAME, O_RDWR | O_CREAT, 0600);
+   ATF_REQUIRE_MSG(fd != -1, "open failed: %s", strerror(errno));
+   unlink(FILE_PATHNAME);
+
+   /* aio_fsync should return EINVAL unless op is O_SYNC */
+   memset(&iocb, 0, sizeof(iocb));
+   iocb.aio_fildes = fd;
+   ATF_CHECK_EQ(-1, aio_fsync(666, &iocb));
+   ATF_CHECK_EQ(EINVAL, errno);
+
+   /* aio_fsync should return EBADF if fd is not a valid descriptor */
+   memset(&iocb, 0, sizeof(iocb));
+   iocb.aio_fildes = 666;
+   ATF_CHECK_EQ(-1, aio_fsync(O_SYNC, &iocb));
+   ATF_CHECK_EQ(EBADF, errno);
+
+   /* aio_fsync should return EINVAL if sigev_notify is invalid */
+   memset(&iocb, 0, sizeof(iocb));
+   iocb.aio_fildes = fd;
+   iocb.aio_sigevent.sigev_notify = 666;
+   ATF_CHECK_EQ(-1, aio_fsync(666, &iocb));
+   ATF_CHECK_EQ(EINVAL, errno);
+}
+
 /*
  * This test just performs a basic test of aio_fsync().
  */
@@ -1153,6 +1189,7 @@ ATF_TP_ADD_TCS(tp)
ATF_TP_ADD_TC(tp, md_suspend);
ATF_TP_ADD_TC(tp, md_thread);
ATF_TP_ADD_TC(tp, md_waitcomplete);
+   ATF_TP_ADD_TC(tp, aio_fsync_errors);
ATF_TP_ADD_TC(tp, aio_fsync_test);
ATF_TP_ADD_TC(tp, aio_large_read_test);
ATF_TP_ADD_TC(tp, aio_socket_two_reads);
___
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: r331104 - head/tests/sys/aio

2018-03-17 Thread Alan Somers
Author: asomers
Date: Sat Mar 17 17:52:47 2018
New Revision: 331104
URL: https://svnweb.freebsd.org/changeset/base/331104

Log:
  aio_kqueue_test: fix the build when DEBUG=1
  
  Also, make the debug output more verbose

Modified:
  head/tests/sys/aio/aio_kqueue_test.c

Modified: head/tests/sys/aio/aio_kqueue_test.c
==
--- head/tests/sys/aio/aio_kqueue_test.cSat Mar 17 17:48:21 2018
(r331103)
+++ head/tests/sys/aio/aio_kqueue_test.cSat Mar 17 17:52:47 2018
(r331104)
@@ -170,18 +170,25 @@ main (int argc, char *argv[])
kq_iocb = kq_returned.udata;
 #ifdef DEBUG
printf("kevent %d %d errno %d return.ident %p "
-  "return.data %p return.udata %p %p\n",
+  "return.data %p return.udata %p %p"
+  " filter %d flags %#x fflags %#x\n",
   i, result, error,
   (void*)kq_returned.ident,
   (void*)kq_returned.data,
   kq_returned.udata,
-  kq_iocb);
+  kq_iocb,
+  kq_returned.filter,
+  kq_returned.flags,
+  kq_returned.fflags);
+   if (result > 0)
+   printf("\tsigev_notify_kevent_flags 
%#x\n",
+  ((struct 
aiocb*)(kq_returned.ident))->aio_sigevent.sigev_notify_kevent_flags);
 #endif
 
if (kq_iocb)
break;
 #ifdef DEBUG
-   printf("Try again left %d out of %lu %d\n",
+   printf("Try again left %d out of %d %d\n",
pending, max_queue_per_proc, cancel);
 #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: r331105 - head/sys/security/audit

2018-03-17 Thread Alan Somers
Author: asomers
Date: Sat Mar 17 17:56:08 2018
New Revision: 331105
URL: https://svnweb.freebsd.org/changeset/base/331105

Log:
  audit(4): fix a typo in a comment
  
  no functional change

Modified:
  head/sys/security/audit/audit_bsm_klib.c

Modified: head/sys/security/audit/audit_bsm_klib.c
==
--- head/sys/security/audit/audit_bsm_klib.cSat Mar 17 17:52:47 2018
(r331104)
+++ head/sys/security/audit/audit_bsm_klib.cSat Mar 17 17:56:08 2018
(r331105)
@@ -119,7 +119,7 @@ static const int aue_shmsys[] = {
 static const int aue_shmsys_count = sizeof(aue_shmsys) / sizeof(int);
 
 /*
- * Check whether an event is aditable by comparing the mask of classes this
+ * Check whether an event is auditable by comparing the mask of classes this
  * event is part of against the given mask.
  */
 int
___
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: r331106 - head/sys/kern

2018-03-17 Thread Jeff Roberson
Author: jeff
Date: Sat Mar 17 18:14:49 2018
New Revision: 331106
URL: https://svnweb.freebsd.org/changeset/base/331106

Log:
  Move the dirty queues inside the per-domain structure.  This resolves a bug
  where we had not hit global dirty limits but a single queue was starved
  for space by dirty buffers.  A single buf_daemon is maintained for now.
  
  Add a bd_speedup() when we are low on bufspace.  This can happen due to SUJ
  keeping many bufs locked until a cg block is written.  Document this with
  a comment.
  
  Fix sysctls to work with per-domain variables.  Add more ddb debugging.
  
  Reported by:  pho
  Reviewed by:  kib
  Tested by:pho
  Sponsored by: Netflix, Dell/EMC Isilon
  Differential Revision:https://reviews.freebsd.org/D14705

Modified:
  head/sys/kern/vfs_bio.c

Modified: head/sys/kern/vfs_bio.c
==
--- head/sys/kern/vfs_bio.c Sat Mar 17 17:56:08 2018(r331105)
+++ head/sys/kern/vfs_bio.c Sat Mar 17 18:14:49 2018(r331106)
@@ -50,6 +50,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -100,6 +101,52 @@ struct buf_ops buf_ops_bio = {
.bop_bdflush=   bufbdflush,
 };
 
+struct bufqueue {
+   struct mtx_padalign bq_lock;
+   TAILQ_HEAD(, buf)   bq_queue;
+   uint8_t bq_index;
+   uint16_tbq_subqueue;
+   int bq_len;
+} __aligned(CACHE_LINE_SIZE);
+
+#defineBQ_LOCKPTR(bq)  (&(bq)->bq_lock)
+#defineBQ_LOCK(bq) mtx_lock(BQ_LOCKPTR((bq)))
+#defineBQ_UNLOCK(bq)   mtx_unlock(BQ_LOCKPTR((bq)))
+#defineBQ_ASSERT_LOCKED(bq)mtx_assert(BQ_LOCKPTR((bq)), MA_OWNED)
+
+struct bufdomain {
+   struct bufqueue bd_subq[MAXCPU + 1]; /* Per-cpu sub queues + global */
+   struct bufqueue bd_dirtyq;
+   struct bufqueue *bd_cleanq;
+   struct mtx_padalign bd_run_lock;
+   /* Constants */
+   longbd_maxbufspace;
+   longbd_hibufspace;
+   longbd_lobufspace;
+   longbd_bufspacethresh;
+   int bd_hifreebuffers;
+   int bd_lofreebuffers;
+   int bd_hidirtybuffers;
+   int bd_lodirtybuffers;
+   int bd_dirtybufthresh;
+   int bd_lim;
+   /* atomics */
+   int bd_wanted;
+   int __aligned(CACHE_LINE_SIZE)  bd_numdirtybuffers;
+   int __aligned(CACHE_LINE_SIZE)  bd_running;
+   long __aligned(CACHE_LINE_SIZE) bd_bufspace;
+   int __aligned(CACHE_LINE_SIZE)  bd_freebuffers;
+} __aligned(CACHE_LINE_SIZE);
+
+#defineBD_LOCKPTR(bd)  (&(bd)->bd_cleanq->bq_lock)
+#defineBD_LOCK(bd) mtx_lock(BD_LOCKPTR((bd)))
+#defineBD_UNLOCK(bd)   mtx_unlock(BD_LOCKPTR((bd)))
+#defineBD_ASSERT_LOCKED(bd)mtx_assert(BD_LOCKPTR((bd)), MA_OWNED)
+#defineBD_RUN_LOCKPTR(bd)  (&(bd)->bd_run_lock)
+#defineBD_RUN_LOCK(bd) mtx_lock(BD_RUN_LOCKPTR((bd)))
+#defineBD_RUN_UNLOCK(bd)   mtx_unlock(BD_RUN_LOCKPTR((bd)))
+#defineBD_DOMAIN(bd)   (bd - bdomain)
+
 static struct buf *buf;/* buffer header pool */
 extern struct buf *swbuf;  /* Swap buffer header pool. */
 caddr_t unmapped_buf;
@@ -123,8 +170,8 @@ static int vfs_bio_clcheck(struct vnode *vp, int size,
daddr_t lblkno, daddr_t blkno);
 static void breada(struct vnode *, daddr_t *, int *, int, struct ucred *, int,
void (*)(struct buf *));
-static int buf_flush(struct vnode *vp, int);
-static int flushbufqueues(struct vnode *, int, int);
+static int buf_flush(struct vnode *vp, struct bufdomain *, int);
+static int flushbufqueues(struct vnode *, struct bufdomain *, int, int);
 static void buf_daemon(void);
 static __inline void bd_wakeup(void);
 static int sysctl_runningspace(SYSCTL_HANDLER_ARGS);
@@ -133,6 +180,16 @@ static void bufkva_free(struct buf *);
 static int buf_import(void *, void **, int, int, int);
 static void buf_release(void *, void **, int);
 static void maxbcachebuf_adjust(void);
+static inline struct bufdomain *bufdomain(struct buf *);
+static void bq_remove(struct bufqueue *bq, struct buf *bp);
+static void bq_insert(struct bufqueue *bq, struct buf *bp, bool unlock);
+static int buf_recycle(struct bufdomain *, bool kva);
+static void bq_init(struct bufqueue *bq, int qindex, int cpu,
+   const char *lockname);
+static void bd_init(struct bufdomain *bd);
+static int bd_flushall(struct bufdomain *bd);
+static int sysctl_bufdomain_long(SYSCTL_HANDLER_ARGS);
+static int sysctl_bufdomain_int(SYSCTL_HANDLER_ARGS);
 
 static int sysctl_bufspace(SYSCTL_HANDLER_ARGS);
 int vmiodirenable = TRUE;
@@ -147,7 +204,9 @@ static counter_u64_t bufkvaspace;
 SYSCTL_COUNTER_U64(_vfs, OID_

svn commit: r331109 - head/sys/kern

2018-03-17 Thread Mateusz Guzik
Author: mjg
Date: Sat Mar 17 19:26:33 2018
New Revision: 331109
URL: https://svnweb.freebsd.org/changeset/base/331109

Log:
  locks: slightly depessimize lockstat
  
  The slow path is always taken when lockstat is enabled. This induces
  rdtsc (or other) calls to get the cycle count even when there was no
  contention.
  
  Still go to the slow path to not mess with the fast path, but avoid
  the heavy lifting unless necessary.
  
  This reduces sys and real time during -j 80 buildkernel:
  before: 3651.84s user 1105.59s system 5394% cpu 1:28.18 total
  after: 3685.99s user 975.74s system 5450% cpu 1:25.53 total
  disabled: 3697.96s user 411.13s system 5261% cpu 1:18.10 total
  
  So note this is still a significant hit.
  
  LOCK_PROFILING results are not affected.

Modified:
  head/sys/kern/kern_mutex.c
  head/sys/kern/kern_rwlock.c
  head/sys/kern/kern_sx.c

Modified: head/sys/kern/kern_mutex.c
==
--- head/sys/kern/kern_mutex.c  Sat Mar 17 19:04:36 2018(r331108)
+++ head/sys/kern/kern_mutex.c  Sat Mar 17 19:26:33 2018(r331109)
@@ -491,8 +491,25 @@ __mtx_lock_sleep(volatile uintptr_t *c, uintptr_t v)
 #if defined(KDTRACE_HOOKS) || defined(LOCK_PROFILING)
int doing_lockprof;
 #endif
+
td = curthread;
tid = (uintptr_t)td;
+   m = mtxlock2mtx(c);
+
+#ifdef KDTRACE_HOOKS
+   if (LOCKSTAT_PROFILE_ENABLED(adaptive__acquire)) {
+   while (v == MTX_UNOWNED) {
+   if (_mtx_obtain_lock_fetch(m, &v, tid))
+   goto out_lockstat;
+   }
+   doing_lockprof = 1;
+   all_time -= lockstat_nsecs(&m->lock_object);
+   }
+#endif
+#ifdef LOCK_PROFILING
+   doing_lockprof = 1;
+#endif
+
if (SCHEDULER_STOPPED_TD(td))
return;
 
@@ -501,7 +518,7 @@ __mtx_lock_sleep(volatile uintptr_t *c, uintptr_t v)
 #elif defined(KDTRACE_HOOKS)
lock_delay_arg_init(&lda, NULL);
 #endif
-   m = mtxlock2mtx(c);
+
if (__predict_false(v == MTX_UNOWNED))
v = MTX_READ_VALUE(m);
 
@@ -532,13 +549,6 @@ __mtx_lock_sleep(volatile uintptr_t *c, uintptr_t v)
CTR4(KTR_LOCK,
"_mtx_lock_sleep: %s contested (lock=%p) at %s:%d",
m->lock_object.lo_name, (void *)m->mtx_lock, file, line);
-#ifdef LOCK_PROFILING
-   doing_lockprof = 1;
-#elif defined(KDTRACE_HOOKS)
-   doing_lockprof = lockstat_enabled;
-   if (__predict_false(doing_lockprof))
-   all_time -= lockstat_nsecs(&m->lock_object);
-#endif
 
for (;;) {
if (v == MTX_UNOWNED) {
@@ -660,10 +670,6 @@ retry_turnstile:
 #endif
 #ifdef KDTRACE_HOOKS
all_time += lockstat_nsecs(&m->lock_object);
-#endif
-   LOCKSTAT_PROFILE_OBTAIN_LOCK_SUCCESS(adaptive__acquire, m, contested,
-   waittime, file, line);
-#ifdef KDTRACE_HOOKS
if (sleep_time)
LOCKSTAT_RECORD1(adaptive__block, m, sleep_time);
 
@@ -672,7 +678,10 @@ retry_turnstile:
 */
if (lda.spin_cnt > sleep_cnt)
LOCKSTAT_RECORD1(adaptive__spin, m, all_time - sleep_time);
+out_lockstat:
 #endif
+   LOCKSTAT_PROFILE_OBTAIN_LOCK_SUCCESS(adaptive__acquire, m, contested,
+   waittime, file, line);
 }
 
 #ifdef SMP
@@ -708,6 +717,20 @@ _mtx_lock_spin_cookie(volatile uintptr_t *c, uintptr_t
tid = (uintptr_t)curthread;
m = mtxlock2mtx(c);
 
+#ifdef KDTRACE_HOOKS
+   if (LOCKSTAT_PROFILE_ENABLED(adaptive__acquire)) {
+   while (v == MTX_UNOWNED) {
+   if (_mtx_obtain_lock_fetch(m, &v, tid))
+   goto out_lockstat;
+   }
+   doing_lockprof = 1;
+   spin_time -= lockstat_nsecs(&m->lock_object);
+   }
+#endif
+#ifdef LOCK_PROFILING
+   doing_lockprof = 1;
+#endif
+
if (__predict_false(v == MTX_UNOWNED))
v = MTX_READ_VALUE(m);
 
@@ -730,13 +753,7 @@ _mtx_lock_spin_cookie(volatile uintptr_t *c, uintptr_t
PMC_SOFT_CALL( , , lock, failed);
 #endif
lock_profile_obtain_lock_failed(&m->lock_object, &contested, &waittime);
-#ifdef LOCK_PROFILING
-   doing_lockprof = 1;
-#elif defined(KDTRACE_HOOKS)
-   doing_lockprof = lockstat_enabled;
-   if (__predict_false(doing_lockprof))
-   spin_time -= lockstat_nsecs(&m->lock_object);
-#endif
+
for (;;) {
if (v == MTX_UNOWNED) {
if (_mtx_obtain_lock_fetch(m, &v, tid))
@@ -767,13 +784,12 @@ _mtx_lock_spin_cookie(volatile uintptr_t *c, uintptr_t
 #endif
 #ifdef KDTRACE_HOOKS
spin_time += lockstat_nsecs(&m->lock_object);
-#endif
-   LOCKSTAT_PROFILE_OBTAIN_LOCK_SUCCESS(spin__acquire, m,
-   contested, waittime, file, line);
-#ifdef KDTRACE_HOOKS
if (lda.spin_cnt != 0)
LOCKSTAT_RECORD1(spin__spin, m, sp

Re: svn commit: r330894 - in head/sys/contrib/zstd: . contrib/meson doc doc/images lib lib/common lib/compress lib/decompress lib/deprecated lib/dictBuilder lib/legacy programs tests zlibWrapper zlibW

2018-03-17 Thread Alan Somers
On Tue, Mar 13, 2018 at 9:00 PM, Conrad Meyer  wrote:

> Author: cem
> Date: Wed Mar 14 03:00:17 2018
> New Revision: 330894
> URL: https://svnweb.freebsd.org/changeset/base/330894
>
> Log:
>   Update to Zstandard 1.3.3
>
>   Includes patch to conditionalize use of __builtin_clz(ll) on
> __has_builtin().
>   The issue is tracked upstream at https://github.com/facebook/
> zstd/pull/884 .
>   Otherwise, these are vanilla Zstandard 1.3.3 files.
>
>   Note that the 1.3.4 release should be due out soon.
>
>   Sponsored by: Dell EMC Isilon
>
>
I think this broke the build on RISC-V.  Could you please take a look?

https://ci.freebsd.org/job/FreeBSD-head-riscv64-build/7028/console
___
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: r331113 - head/sbin/savecore

2018-03-17 Thread Edward Tomasz Napierala
Author: trasz
Date: Sat Mar 17 21:58:41 2018
New Revision: 331113
URL: https://svnweb.freebsd.org/changeset/base/331113

Log:
  Xr crashinfo(8) from savecore(8).
  
  MFC after:2 weeks

Modified:
  head/sbin/savecore/savecore.8

Modified: head/sbin/savecore/savecore.8
==
--- head/sbin/savecore/savecore.8   Sat Mar 17 20:37:01 2018
(r331112)
+++ head/sbin/savecore/savecore.8   Sat Mar 17 21:58:41 2018
(r331113)
@@ -174,6 +174,7 @@ is meant to be called near the end of the initializati
 .Xr xo_parse_args 3 ,
 .Xr textdump 4 ,
 .Xr tar 5 ,
+.Xr crashinfo 8 ,
 .Xr decryptcore 8 ,
 .Xr dumpon 8 ,
 .Xr syslogd 8
___
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: r330894 - in head/sys/contrib/zstd: . contrib/meson doc doc/images lib lib/common lib/compress lib/decompress lib/deprecated lib/dictBuilder lib/legacy programs tests zlibWrapper zlibW

2018-03-17 Thread Conrad Meyer
Thanks for letting me know.  I'll be able to take a look this weekend.

Best,
Conrad

On Sat, Mar 17, 2018 at 2:49 PM, Alan Somers  wrote:
> On Tue, Mar 13, 2018 at 9:00 PM, Conrad Meyer  wrote:
>>
>> Author: cem
>> Date: Wed Mar 14 03:00:17 2018
>> New Revision: 330894
>> URL: https://svnweb.freebsd.org/changeset/base/330894
>>
>> Log:
>>   Update to Zstandard 1.3.3
>>
>>   Includes patch to conditionalize use of __builtin_clz(ll) on
>> __has_builtin().
>>   The issue is tracked upstream at
>> https://github.com/facebook/zstd/pull/884 .
>>   Otherwise, these are vanilla Zstandard 1.3.3 files.
>>
>>   Note that the 1.3.4 release should be due out soon.
>>
>>   Sponsored by: Dell EMC Isilon
>>
>
> I think this broke the build on RISC-V.  Could you please take a look?
>
> https://ci.freebsd.org/job/FreeBSD-head-riscv64-build/7028/console
>
___
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: r331115 - in head: lib/libzstd sys/contrib/zstd/lib/freebsd

2018-03-17 Thread Conrad Meyer
Author: cem
Date: Sun Mar 18 03:42:57 2018
New Revision: 331115
URL: https://svnweb.freebsd.org/changeset/base/331115

Log:
  lib(private)zstd: Fix riscv build
  
  Link __bswap[ds]i2() intrinsics in to libzstd for riscv, where the C runtime
  apparently lacks such intrinsics.
  
  Broken in r330894.
  
  Reported by:  asomers
  Sponsored by: Dell EMC Isilon

Modified:
  head/lib/libzstd/Makefile
  head/sys/contrib/zstd/lib/freebsd/zstd_kfreebsd.c

Modified: head/lib/libzstd/Makefile
==
--- head/lib/libzstd/Makefile   Sun Mar 18 02:59:14 2018(r331114)
+++ head/lib/libzstd/Makefile   Sun Mar 18 03:42:57 2018(r331115)
@@ -43,4 +43,11 @@ ZSTDDIR= ${SRCTOP}/sys/contrib/zstd
 CFLAGS.zstd_compress.c+= -O0
 .endif
 
+# Work around lack of __bswap[sd]i2() intrinsics on riscv.  Probably should be
+# added to one of the runtime C libraries instead.
+.if ${MACHINE_CPUARCH} == "riscv"
+.PATH: ${ZSTDDIR}/lib/freebsd
+SRCS+= zstd_kfreebsd.c
+.endif
+
 .include 

Modified: head/sys/contrib/zstd/lib/freebsd/zstd_kfreebsd.c
==
--- head/sys/contrib/zstd/lib/freebsd/zstd_kfreebsd.c   Sun Mar 18 02:59:14 
2018(r331114)
+++ head/sys/contrib/zstd/lib/freebsd/zstd_kfreebsd.c   Sun Mar 18 03:42:57 
2018(r331115)
@@ -27,7 +27,12 @@
  */
 
 #include "zstd_kfreebsd.h"
+#include 
 #include 
+
+#ifndef _KERNEL
+#include 
+#endif
 
 /*
  * The kernel as a standalone target does not link against libgcc or
___
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"