svn commit: r323577 - in head: contrib/one-true-awk usr.bin/awk
Author: imp Date: Thu Sep 14 05:48:23 2017 New Revision: 323577 URL: https://svnweb.freebsd.org/changeset/base/323577 Log: Implement gawk multiple-arg extension to and, or, and xor. gawk allows multiple arguemnts to bit-wiste and, or and xor functions. Implement an arbitrary number of arguments for these functions. Also, use NULL in preference to 0 to match rest of file. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D12361 Modified: head/contrib/one-true-awk/run.c head/usr.bin/awk/awk.1 Modified: head/contrib/one-true-awk/run.c == --- head/contrib/one-true-awk/run.c Thu Sep 14 05:47:55 2017 (r323576) +++ head/contrib/one-true-awk/run.c Thu Sep 14 05:48:23 2017 (r323577) @@ -1476,7 +1476,7 @@ Cell *bltin(Node **a, int n) /* builtin functions. a[0 { Cell *x, *y; Awkfloat u; - int t; + int t, i; Awkfloat tmp; char *p, *buf; Node *nextarg; @@ -1520,40 +1520,52 @@ Cell *bltin(Node **a, int n)/* builtin functions. a[0 u = ~((int)getfval(x)); break; case FAND: - if (nextarg == 0) { + if (nextarg == NULL) { WARNING("and requires two arguments; returning 0"); u = 0; break; } - y = execute(a[1]->nnext); - u = ((int)getfval(x)) & ((int)getfval(y)); - tempfree(y); - nextarg = nextarg->nnext; + i = ((int)getfval(x)); + while (nextarg != NULL) { + y = execute(nextarg); + i &= (int)getfval(y); + tempfree(y); + nextarg = nextarg->nnext; + } + u = i; break; case FFOR: - if (nextarg == 0) { + if (nextarg == NULL) { WARNING("or requires two arguments; returning 0"); u = 0; break; } - y = execute(a[1]->nnext); - u = ((int)getfval(x)) | ((int)getfval(y)); - tempfree(y); - nextarg = nextarg->nnext; + i = ((int)getfval(x)); + while (nextarg != NULL) { + y = execute(nextarg); + i |= (int)getfval(y); + tempfree(y); + nextarg = nextarg->nnext; + } + u = i; break; case FXOR: - if (nextarg == 0) { + if (nextarg == NULL) { WARNING("xor requires two arguments; returning 0"); u = 0; break; } - y = execute(a[1]->nnext); - u = ((int)getfval(x)) ^ ((int)getfval(y)); - tempfree(y); - nextarg = nextarg->nnext; + i = ((int)getfval(x)); + while (nextarg != NULL) { + y = execute(nextarg); + i ^= (int)getfval(y); + tempfree(y); + nextarg = nextarg->nnext; + } + u = i; break; case FLSHIFT: - if (nextarg == 0) { + if (nextarg == NULL) { WARNING("lshift requires two arguments; returning 0"); u = 0; break; @@ -1564,7 +1576,7 @@ Cell *bltin(Node **a, int n) /* builtin functions. a[0 nextarg = nextarg->nnext; break; case FRSHIFT: - if (nextarg == 0) { + if (nextarg == NULL) { WARNING("rshift requires two arguments; returning 0"); u = 0; break; Modified: head/usr.bin/awk/awk.1 == --- head/usr.bin/awk/awk.1 Thu Sep 14 05:47:55 2017(r323576) +++ head/usr.bin/awk/awk.1 Thu Sep 14 05:48:23 2017(r323577) @@ -690,12 +690,15 @@ and returns its exit status. .Bl -tag -width "lshift(a, b)" .It Fn compl x Returns the bitwise complement of integer argument x. -.It Fn and x y -Performs a bitwise AND on integer arguments x and y. -.It Fn or x y -Performs a bitwise OR on integer arguments x and y. -.It Fn xor x y -Performs a bitwise Exclusive-OR on integer arguments x and y. +.It Fn and v1 v2 ... +Performs a bitwise AND on all arguments provided, as integers. +There must be at least two values. +.It Fn or v1 v2 ... +Performs a bitwise OR on all arguments provided, as integers. +There must be at least two values. +.It Fn xor v1 v2 ... +Performs a bitwise Exclusive-OR on
svn commit: r323576 - head/contrib/one-true-awk
Author: imp Date: Thu Sep 14 05:47:55 2017 New Revision: 323576 URL: https://svnweb.freebsd.org/changeset/base/323576 Log: Bring in bit operation functions, ala gawk. These are from OpenBSD: >>> Extend awk with bitwise operations. This is an extension to the awk >>> spec and documented as such, but comes in handy from time to time. >>> The prototypes make it compatible with a similar GNU awk extension. >>> >>> ok millert@, enthusiasm from deraadt@ Edited to fix cut and paste in error messages, as well as using tabs instead of spaces after #defines added. Obtained From: OpenBSD awk.h 1.12, lex.c 1.10, run.c 1.29 Differential Revision: https://reviews.freebsd.org/D12361 Sponsored by: Netflix Modified: head/contrib/one-true-awk/awk.h head/contrib/one-true-awk/lex.c head/contrib/one-true-awk/run.c Modified: head/contrib/one-true-awk/awk.h == --- head/contrib/one-true-awk/awk.h Thu Sep 14 04:51:17 2017 (r323575) +++ head/contrib/one-true-awk/awk.h Thu Sep 14 05:47:55 2017 (r323576) @@ -126,6 +126,12 @@ extern Cell*rlengthloc;/* RLENGTH */ #defineFTOUPPER 12 #defineFTOLOWER 13 #defineFFLUSH 14 +#defineFAND15 +#defineFFOR16 +#defineFXOR17 +#defineFCOMPL 18 +#defineFLSHIFT 19 +#defineFRSHIFT 20 /* Node: parse tree is made of nodes, with Cell's at bottom */ Modified: head/contrib/one-true-awk/lex.c == --- head/contrib/one-true-awk/lex.c Thu Sep 14 04:51:17 2017 (r323575) +++ head/contrib/one-true-awk/lex.c Thu Sep 14 05:47:55 2017 (r323576) @@ -47,9 +47,11 @@ Keyword keywords[] ={/* keep sorted: binary searched { "BEGIN", XBEGIN, XBEGIN }, { "END",XEND, XEND }, { "NF", VARNF, VARNF }, + { "and",FAND, BLTIN }, { "atan2", FATAN, BLTIN }, { "break", BREAK, BREAK }, { "close", CLOSE, CLOSE }, + { "compl", FCOMPL, BLTIN }, { "continue", CONTINUE, CONTINUE }, { "cos",FCOS, BLTIN }, { "delete", DELETE, DELETE }, @@ -69,13 +71,16 @@ Keyword keywords[] ={ /* keep sorted: binary searched { "int",FINT, BLTIN }, { "length", FLENGTH,BLTIN }, { "log",FLOG, BLTIN }, + { "lshift", FLSHIFT,BLTIN }, { "match", MATCHFCN, MATCHFCN }, { "next", NEXT, NEXT }, { "nextfile", NEXTFILE, NEXTFILE }, + { "or", FFOR, BLTIN }, { "print", PRINT, PRINT }, { "printf", PRINTF, PRINTF }, { "rand", FRAND, BLTIN }, { "return", RETURN, RETURN }, + { "rshift", FRSHIFT,BLTIN }, { "sin",FSIN, BLTIN }, { "split", SPLIT, SPLIT }, { "sprintf",SPRINTF,SPRINTF }, @@ -87,6 +92,7 @@ Keyword keywords[] ={ /* keep sorted: binary searched { "tolower",FTOLOWER, BLTIN }, { "toupper",FTOUPPER, BLTIN }, { "while", WHILE, WHILE }, + { "xor",FXOR, BLTIN }, }; #defineRET(x) { if(dbg)printf("lex %s\n", tokname(x)); return(x); } Modified: head/contrib/one-true-awk/run.c == --- head/contrib/one-true-awk/run.c Thu Sep 14 04:51:17 2017 (r323575) +++ head/contrib/one-true-awk/run.c Thu Sep 14 05:47:55 2017 (r323576) @@ -1516,6 +1516,64 @@ Cell *bltin(Node **a, int n) /* builtin functions. a[0 nextarg = nextarg->nnext; } break; + case FCOMPL: + u = ~((int)getfval(x)); + break; + case FAND: + if (nextarg == 0) { + WARNING("and requires two arguments; returning 0"); + u = 0; + break; + } + y = execute(a[1]->nnext); + u = ((int)getfval(x)) & ((int)getfval(y)); + tempfree(y); + nextarg = nextarg->nnext; + break; + case FFOR: + if (nextarg == 0) { + WARNING("or requires two arguments; returning 0"); + u = 0; + break; + } + y = execute(a[1]->nnext); + u = ((int)getfval(x)) | ((int)getfval(y)); + tempfree(y); + nextarg = nextarg->nnext; +
svn commit: r323575 - head/sys/dev/ntb/ntb_hw
Author: mav Date: Thu Sep 14 04:51:17 2017 New Revision: 323575 URL: https://svnweb.freebsd.org/changeset/base/323575 Log: Add second entry to LUT on a link side in B2B mode. Each of two entries on a virtual side should have its counterpart on a peer's link side. MFC after:1 week Modified: head/sys/dev/ntb/ntb_hw/ntb_hw_plx.c Modified: head/sys/dev/ntb/ntb_hw/ntb_hw_plx.c == --- head/sys/dev/ntb/ntb_hw/ntb_hw_plx.cThu Sep 14 03:42:41 2017 (r323574) +++ head/sys/dev/ntb/ntb_hw/ntb_hw_plx.cThu Sep 14 04:51:17 2017 (r323575) @@ -197,8 +197,8 @@ ntb_plx_init(device_t dev) } } - /* Enable Link Interface LUT entry 0 for 0:0.0. */ - PNTX_WRITE(sc, 0xdb4, 1); + /* Enable Link Interface LUT entries 0/1 for peer 0/1. */ + PNTX_WRITE(sc, 0xdb4, 0x00090001); } /* @@ -631,13 +631,12 @@ ntb_plx_mw_set_trans_internal(device_t dev, unsigned m val64 = 0; if (size > 0) val64 = (~(size - 1) & ~0xf); - val64 |= 0x4; + val64 |= 0xc; PNTX_WRITE(sc, 0xe8 + (mw->mw_bar - 2) * 4, val64); PNTX_WRITE(sc, 0xe8 + (mw->mw_bar - 2) * 4 + 4, val64 >> 32); /* Set Link Interface BAR address. */ val64 = 0x2000 * mw->mw_bar + off; - val64 |= 0x4; PNTX_WRITE(sc, PCIR_BAR(mw->mw_bar), val64); PNTX_WRITE(sc, PCIR_BAR(mw->mw_bar) + 4, val64 >> 32); } ___ 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: r323574 - head/sys/conf
Author: rlibby Date: Thu Sep 14 03:42:41 2017 New Revision: 323574 URL: https://svnweb.freebsd.org/changeset/base/323574 Log: gcc builds: reenable -Wstrict-overflow for kern.mk Reviewed by: emaste Sponsored by: Dell EMC Isilon Differential Revision:https://reviews.freebsd.org/D12284 Modified: head/sys/conf/kern.mk Modified: head/sys/conf/kern.mk == --- head/sys/conf/kern.mk Thu Sep 14 03:41:49 2017(r323573) +++ head/sys/conf/kern.mk Thu Sep 14 03:42:41 2017(r323574) @@ -58,7 +58,6 @@ CWARNEXTRA?= -Wno-error=address \ -Wno-error=maybe-uninitialized \ -Wno-error=overflow \ -Wno-error=sequence-point \ - -Wno-error=strict-overflow \ -Wno-error=unused-but-set-variable .if ${COMPILER_VERSION} >= 60100 CWARNEXTRA+= -Wno-error=misleading-indentation \ ___ 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: r323573 - head/share/mk
Author: rlibby Date: Thu Sep 14 03:41:49 2017 New Revision: 323573 URL: https://svnweb.freebsd.org/changeset/base/323573 Log: gcc builds: reenable -Wstrict-overflow for bsd.sys.mk This effectively reverts r304877, after having relegated the warning suppression to the zic(8) makefile in r323572. Reviewed by: emaste Sponsored by: Dell EMC Isilon X-Differential Revision: https://reviews.freebsd.org/D12284 Modified: head/share/mk/bsd.sys.mk Modified: head/share/mk/bsd.sys.mk == --- head/share/mk/bsd.sys.mkThu Sep 14 03:39:42 2017(r323572) +++ head/share/mk/bsd.sys.mkThu Sep 14 03:41:49 2017(r323573) @@ -131,11 +131,6 @@ CWARNFLAGS+= -Wno-error=address \ -Wno-error=unused-value .endif -# GCC 5.3.0 -.if ${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} >= 50300 -CWARNFLAGS+= -Wno-error=strict-overflow -.endif - # GCC 6.1.0 .if ${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} >= 60100 CWARNFLAGS+= -Wno-error=misleading-indentation \ ___ 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: r323572 - head/usr.sbin/zic/zic
Author: rlibby Date: Thu Sep 14 03:39:42 2017 New Revision: 323572 URL: https://svnweb.freebsd.org/changeset/base/323572 Log: zic: -Wno-error=strict-overflow Reviewed by: emaste Sponsored by: Dell EMC Isilon X-Differential Revision: https://reviews.freebsd.org/D12284 Modified: head/usr.sbin/zic/zic/Makefile Modified: head/usr.sbin/zic/zic/Makefile == --- head/usr.sbin/zic/zic/Makefile Thu Sep 14 01:24:17 2017 (r323571) +++ head/usr.sbin/zic/zic/Makefile Thu Sep 14 03:39:42 2017 (r323572) @@ -1,5 +1,7 @@ # $FreeBSD$ +.include + .PATH: ${SRCTOP}/contrib/tzcode/zic PROG= zic @@ -12,5 +14,9 @@ CFLAGS+= -DHAVE_STRERROR -DHAVE_UNISTD_H CFLAGS+= -I${.CURDIR:H} -I${SRCTOP}/contrib/tzcode/stdtime WARNS?=2 + +.if ${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} >= 50300 +CWARNFLAGS+= -Wno-error=strict-overflow +.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"
Re: svn commit: r323393 - in head/sys: sys vm
On Mon, Sep 11, 2017 at 09:30:10AM +0200, Mateusz Guzik wrote: M> First, there is a bunch of counter(9) fields. I don't know the original M> reasoning. I would expect these counters to be statically defined in a M> per-cpu struct. The reasoning was to remove 'struct vmmeter' from the 'struct pcpu', which sounds inline with your desire to remote struct vmmeter from the kernel at all. Maintainance wise, it is much easier not to bloat 'struct pcpu' with various global statistics, but keep them as counter(9)s instead. Indeed, what's the big difference between TCP statistics and VM statistics, why treat them differently? Performance wise, I haven't seen any regressions when collapsed multiple entities of struct vmmeter sitting in struct pcpu, into single one with counter(9)s. -- Gleb Smirnoff ___ 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: r323566 - head/sys/kern
Author: glebius Date: Wed Sep 13 22:11:05 2017 New Revision: 323566 URL: https://svnweb.freebsd.org/changeset/base/323566 Log: Use soref() in sendfile(2) instead fhold() to reference a socket. The problem is that fdrop() requires syscall context, as it may enter sleep in some cases. The reason to use it in the original non-blocking sendfile implementation, was to avoid use of global ACCEPT_LOCK() on every I/O completion. Now in head sorele() no longer requires this lock. Modified: head/sys/kern/kern_sendfile.c Modified: head/sys/kern/kern_sendfile.c == --- head/sys/kern/kern_sendfile.c Wed Sep 13 21:56:49 2017 (r323565) +++ head/sys/kern/kern_sendfile.c Wed Sep 13 22:11:05 2017 (r323566) @@ -80,7 +80,7 @@ struct sf_io { volatile u_int nios; u_int error; int npages; - struct file *sock_fp; + struct socket *so; struct mbuf *m; vm_page_t pa[]; }; @@ -255,7 +255,7 @@ static void sendfile_iodone(void *arg, vm_page_t *pg, int count, int error) { struct sf_io *sfio = arg; - struct socket *so; + struct socket *so = sfio->so; for (int i = 0; i < count; i++) if (pg[i] != bogus_page) @@ -267,8 +267,6 @@ sendfile_iodone(void *arg, vm_page_t *pg, int count, i if (!refcount_release(>nios)) return; - so = sfio->sock_fp->f_data; - if (sfio->error) { struct mbuf *m; @@ -296,8 +294,8 @@ sendfile_iodone(void *arg, vm_page_t *pg, int count, i CURVNET_RESTORE(); } - /* XXXGL: curthread */ - fdrop(sfio->sock_fp, curthread); + SOCK_LOCK(so); + sorele(so); free(sfio, M_TEMP); } @@ -724,6 +722,7 @@ retry_space: sfio = malloc(sizeof(struct sf_io) + npages * sizeof(vm_page_t), M_TEMP, M_WAITOK); refcount_init(>nios, 1); + sfio->so = so; sfio->error = 0; nios = sendfile_swapin(obj, sfio, off, space, npages, rhpages, @@ -858,9 +857,8 @@ prepend_header: error = (*so->so_proto->pr_usrreqs->pru_send) (so, 0, m, NULL, NULL, td); } else { - sfio->sock_fp = sock_fp; sfio->npages = npages; - fhold(sock_fp); + soref(so); error = (*so->so_proto->pr_usrreqs->pru_send) (so, PRUS_NOTREADY, m, NULL, NULL, td); sendfile_iodone(sfio, NULL, 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"
svn commit: r323564 - head/sys/vm
Author: markj Date: Wed Sep 13 21:54:37 2017 New Revision: 323564 URL: https://svnweb.freebsd.org/changeset/base/323564 Log: Widen uk_pgoff, the slab header offset field. 16 bits is only wide enough for kegs with an item size of up to 64KB. At that size or larger, slab headers are typically offpage because the item size is a multiple of the page size, but there is no requirement that this be the case. We can widen the field without affecting the layout of struct uma_keg since the removal of uk_slabsize in r315077 left an adjacent hole. PR: 218911 MFC after:2 weeks Modified: head/sys/vm/uma_int.h Modified: head/sys/vm/uma_int.h == --- head/sys/vm/uma_int.h Wed Sep 13 21:21:33 2017(r323563) +++ head/sys/vm/uma_int.h Wed Sep 13 21:54:37 2017(r323564) @@ -210,7 +210,7 @@ struct uma_keg { vm_offset_t uk_kva; /* Zone base KVA */ uma_zone_t uk_slabzone;/* Slab zone backing us, if OFFPAGE */ - uint16_tuk_pgoff; /* Offset to uma_slab struct */ + uint32_tuk_pgoff; /* Offset to uma_slab struct */ uint16_tuk_ppera; /* pages per allocation from backend */ uint16_tuk_ipers; /* Items per slab */ uint32_tuk_flags; /* Internal 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"
Re: svn commit: r323518 - head/sys/conf
On Wednesday, September 13, 2017 10:37:55 AM Ian Lepore wrote: > On Wed, 2017-09-13 at 09:26 -0700, John Baldwin wrote: > > On Wednesday, September 13, 2017 09:09:42 AM Sean Bruno wrote: > > > > > > > > > On 09/13/17 08:35, John Baldwin wrote: > > > > > > > > On Wednesday, September 13, 2017 03:56:04 AM Sean Bruno wrote: > > > > > > > > > > Author: sbruno > > > > > Date: Wed Sep 13 03:56:03 2017 > > > > > New Revision: 323518 > > > > > URL: https://svnweb.freebsd.org/changeset/base/323518 > > > > > > > > > > Log: > > > > > Jenkins i386 LINT build uses NOTES to generate its LINT kernel > > > > > config. > > > > > > > > > > ixl(4) isn't in here either, so I'll remove lio(4) too. > > > > ixl missing is a bug, please put it in sys/amd64/conf/NOTES (or better > > > > yet, > > > > just fix the build on !amd64) > > > > > > > > > > In the case of lio(4), Cavium is explicitly not compiling for 32 bit > > > architectures. I'm inquiring to find out if they want to build on the > > > other 64bit architectures we have. > > > > > > In the case of ixl(4), Intel has said that this is not supported on > > > 32bit architectures. > > > > > > I'm unsure what the best course of action is. > > The bug is more if drivers aren't in NOTES at all. Any thing listed in > > sys/conf/files.* should be in some NOTES file, either sys/conf/NOTES for > > things that are MI or sys/${arch}/conf/NOTES for things that are MD. > > > > Didn't somebody start a task list of things for junior hackers to work > on? Writing a script/tool to verify the assertion in that last > sentence seems like a good candidate for such a list. tools/tools/notescheck/notescheck.py (I haven't run it myself in a long while though) -- 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"
Re: svn commit: r323516 - in head/sys: dev/bnxt dev/e1000 kern net sys
On Wed, Sep 13, 2017 at 7:45 AM, Cy Schubertwrote: > In message KcmTA@mail.gmail.c > om> > , Warner Losh writes: > > --001a1141f15ac444250559123c56 > > Content-Type: text/plain; charset="UTF-8" > > > > On Wed, Sep 13, 2017 at 1:11 AM, Cy Schubert > > wrote: > > > > > In message <4d5ae475-5a38-4429-8b71-dbecdfb0a...@gmail.com>, Ngie > Cooper > > > writes > > > : > > > > > > > > > On Sep 12, 2017, at 18:18, Stephen Hurd wrote: > > > > > > > > > > Author: shurd > > > > > Date: Wed Sep 13 01:18:42 2017 > > > > > New Revision: 323516 > > > > > URL: https://svnweb.freebsd.org/changeset/base/323516 > > > > > > > > > > Log: > > > > > Roll up iflib commits from github. This pulls in most of the work > > > done > > > > > by Matt Macy as well as other changes which he has accepted via > pull > > > > > request to his github repo at https://github.com/mattmacy/ > networking/ > > > > > > > > > > This should bring -CURRENT and the github repo into close enough > sync > > > to > > > > > allow small feature branches rather than a large chain of > > > interdependant > > > > > patches being developed out of tree. The reset of the > synchronization > > > > > should be able to be completed on github by splitting the > remaining > > > > > changes that are not yet ready into short feature branches for > later > > > > > review as smaller commits. > > > > > > > > > > Here is a summary of changes included in this patch: > > > > > > > > > > 1) More checks when INVARIANTS are enabled for eariler problem > > > > > detection > > > > > 2) Group Task Queue cleanups > > > > > - Fix use of duplicate shortdesc for gtaskqueue malloc type. > > > > >Some interfaces such as memguard(9) use the short > description to > > > > >identify malloc types, so duplicates should be avoided. > > > > > 3) Allow gtaskqueues to use ithreads in addition to taskqueues > > > > > - In some cases, this can improve performance > > > > > 4) Better logging when taskqgroup_attach*() fails to set > interrupt > > > > > affinity. > > > > > 5) Do not start gtaskqueues until they're needed > > > > > 6) Have mp_ring enqueue function enter the ABDICATED rather than > BUSY > > > > > state. This moves the TX to the gtaskq and allows processing > to > > > > > continue faster as well as make TX batching more likely. > > > > > 7) Add an ift_txd_errata function to struct if_txrx. This allows > > > > > drivers to inspect/modify mbufs before transmission. > > > > > 8) Add a new IFLIB_NEED_ZERO_CSUM for drivers to indicate they > need > > > > > checksums zeroed for checksum offload to work. This avoids > > > modifying > > > > > packet data in the TX path when possible. > > > > > 9) Use ithreads for iflib I/O instead of taskqueues > > > > > 10) Clean up ioctl and support async ioctl functions > > > > > 11) Prefetch two cachlines from each mbuf instead of one up to > 128B. > > > We > > > > > often need to parse packet header info beyond 64B. > > > > > 12) Fix potential memory corruption due to fence post error in > > > > > bit_nclear() usage. > > > > > 13) Improved hang detection and handling > > > > > 14) If the packet is smaller than MTU, disable the TSO flags. > > > > > This avoids extra packet parsing when not needed. > > > > > 15) Move TCP header parsing inside the IS_TSO?() test. > > > > > This avoids extra packet parsing when not needed. > > > > > 16) Pass chains of mbufs that are not consumed by lro to > if_input() > > > > > rather call if_input() for each mbuf. > > > > > 17) Re-arrange packet header loads to get as much work as possible > > > done > > > > > before a cache stall. > > > > > 18) Lock the context when calling IFDI_ATTACH_PRE()/IFDI_ATTACH_ > > > POST()/ > > > > > IFDI_DETACH(); > > > > > 19) Attempt to distribute RX/TX tasks across cores more sensibly, > > > > > especially when RX and TX share an interrupt. RX will > attempt to > > > > > take the first threads on a core, and TX will attempt to take > > > > > successive threads. > > > > > 20) Allow iflib_softirq_alloc_generic() to request affinity to the > > > same > > > > > cpus an interrupt has affinity with. This allows TX queues to > > > > > ensure they are serviced by the socket the device is on. > > > > > 21) Add new iflib sysctls to net.iflib: > > > > > - timer_int - interval at which to run per-queue timers in > ticks > > > > > - force_busdma > > > > > 22) Add new per-device iflib sysctls to dev.X.Y.iflib > > > > > - rx_budget allows tuning the batch size on the RX path > > > > > - watchdog_events Count of watchdog events seen since load > > > > > 23) Fix error where netmap_rxq_init() could get called before > > > > > IFDI_INIT() > > > > > 24) e1000: Fixed version of r323008: post-cold
svn commit: r323562 - head/sys/vm
Author: kib Date: Wed Sep 13 19:30:09 2017 New Revision: 323562 URL: https://svnweb.freebsd.org/changeset/base/323562 Log: Remove inline specifier from vm_page_free_wakeup(), do not micro-manage compiler. Reviewed by: alc, markj Sponsored by: The FreeBSD Foundation MFC after:1 week Modified: head/sys/vm/vm_page.c Modified: head/sys/vm/vm_page.c == --- head/sys/vm/vm_page.c Wed Sep 13 19:22:07 2017(r323561) +++ head/sys/vm/vm_page.c Wed Sep 13 19:30:09 2017(r323562) @@ -2739,7 +2739,7 @@ vm_page_activate(vm_page_t m) * * The page queues must be locked. */ -static inline void +static void vm_page_free_wakeup(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: r323516 - in head/sys: dev/bnxt dev/e1000 kern net sys
In message <48654d1f-4cc7-da05-7a73-ef538b431...@freebsd.org>, Sean Bruno write s: > This is an OpenPGP/MIME signed message (RFC 4880 and 3156) > --K3RXSO7fXoxBXqJUE1dpQ1sEQkuJPg1DQ > Content-Type: multipart/mixed; boundary="lalB5jI6dIhQxjTp1UFWH9Jx4OpW69Pfe"; > protected-headers="v1" > From: Sean Bruno> To: Cy Schubert , > Ngie Cooper > Cc: Stephen Hurd , src-committ...@freebsd.org, > svn-src-...@freebsd.org, svn-src-head@freebsd.org > Message-ID: <48654d1f-4cc7-da05-7a73-ef538b431...@freebsd.org> > Subject: Re: svn commit: r323516 - in head/sys: dev/bnxt dev/e1000 kern net > sys > References: <201709130711.v8d7blts003...@slippy.cwsent.com> > In-Reply-To: <201709130711.v8d7blts003...@slippy.cwsent.com> > > --lalB5jI6dIhQxjTp1UFWH9Jx4OpW69Pfe > Content-Type: text/plain; charset=utf-8 > Content-Language: en-US > Content-Transfer-Encoding: quoted-printable > > >>> #blamebruno > >>> > >>> Reviewed by:sbruno > >>> Approved by:sbruno (mentor) > >>> Sponsored by:Limelight Networks > >>> Differential Revision:https://reviews.freebsd.org/D12235 > >> > >> *gasps at the LoC count and number of changed drivers* > >> > >> Could someone please better break this up in the future..? > >=20 > > Agreed. Down the road parsing out individual commits in this jumbo comm= > it=20 > > will be difficult to parse. IMO this may as well have simply been, impo= > rt=20 > > from https://github.com/mattmacy/networking/, just like Mr. Torvalds do= > es=20 > > at kernel.org. I expect to see a commit like this there but not here. C= > an=20 > > we break this down to its functional commits? > >=20 > >=20 > > > This ridiculous loc was due to the amount of restructuring needed to get > us back to being in sync with our development. The future will not have > this big of a commit/change and should be more bite/fun sized. > > The #blamebruno tag in the commit log was to indicate that this was not > something Stephen was doing on his own, but was something that I had > induced over the last few months during testing. I suppose it is sometimes unavoidable. -- Cheers, Cy Schubert FreeBSD UNIX: Web: http://www.FreeBSD.org The need of the many outweighs the greed of the few. ___ 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: r323561 - head/sys/vm
Author: kib Date: Wed Sep 13 19:22:07 2017 New Revision: 323561 URL: https://svnweb.freebsd.org/changeset/base/323561 Log: Do not relock free queue mutex for each page, free whole terminating object' page queue under the single mutex lock. First, all pages on the queue are prepared for free by calls to vm_page_free_prep(), and pages which should not be returned to the physical allocator (e.g. wired or fictitious) are simply removed from the queue. On the second pass, vm_page_free_phys_pglist() inserts all pages from the queue without relocking the mutex. The change improves the object termination, e.g. on the process exit where large anonymous memory objects otherwise cause relocks the free queue mutex for each page. More, if several such processes are exiting or execing in parallel, the mutex was highly contended on the address space demolition. Diagnosed and tested by: mjg (previous version) Reviewed by: alc, markj Sponsored by: The FreeBSD Foundation MFC after:1 week Modified: head/sys/vm/vm_object.c Modified: head/sys/vm/vm_object.c == --- head/sys/vm/vm_object.c Wed Sep 13 19:12:28 2017(r323560) +++ head/sys/vm/vm_object.c Wed Sep 13 19:22:07 2017(r323561) @@ -713,9 +713,14 @@ static void vm_object_terminate_pages(vm_object_t object) { vm_page_t p, p_next; + struct mtx *mtx, *mtx1; + struct vm_pagequeue *pq, *pq1; VM_OBJECT_ASSERT_WLOCKED(object); + mtx = NULL; + pq = NULL; + /* * Free any remaining pageable pages. This also removes them from the * paging queues. However, don't free wired pages, just remove them @@ -724,21 +729,51 @@ vm_object_terminate_pages(vm_object_t object) */ TAILQ_FOREACH_SAFE(p, >memq, listq, p_next) { vm_page_assert_unbusied(p); - vm_page_lock(p); - /* -* Optimize the page's removal from the object by resetting -* its "object" field. Specifically, if the page is not -* wired, then the effect of this assignment is that -* vm_page_free()'s call to vm_page_remove() will return -* immediately without modifying the page or the object. -*/ + if ((object->flags & OBJ_UNMANAGED) == 0) { + /* +* vm_page_free_prep() only needs the page +* lock for managed pages. +*/ + mtx1 = vm_page_lockptr(p); + if (mtx1 != mtx) { + if (mtx != NULL) + mtx_unlock(mtx); + if (pq != NULL) { + vm_pagequeue_unlock(pq); + pq = NULL; + } + mtx = mtx1; + mtx_lock(mtx); + } + } p->object = NULL; - if (p->wire_count == 0) { - vm_page_free(p); - VM_CNT_INC(v_pfree); + if (p->wire_count != 0) + goto unlist; + VM_CNT_INC(v_pfree); + p->flags &= ~PG_ZERO; + if (p->queue != PQ_NONE) { + KASSERT(p->queue < PQ_COUNT, ("vm_object_terminate: " + "page %p is not queued", p)); + pq1 = vm_page_pagequeue(p); + if (pq != pq1) { + if (pq != NULL) + vm_pagequeue_unlock(pq); + pq = pq1; + vm_pagequeue_lock(pq); + } } - vm_page_unlock(p); + if (vm_page_free_prep(p, true)) + continue; +unlist: + TAILQ_REMOVE(>memq, p, listq); } + if (pq != NULL) + vm_pagequeue_unlock(pq); + if (mtx != NULL) + mtx_unlock(mtx); + + vm_page_free_phys_pglist(>memq); + /* * If the object contained any pages, then reset it to an empty state. * None of the object's fields, including "resident_page_count", were ___ 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: r323559 - head/sys/vm
Author: kib Date: Wed Sep 13 19:11:52 2017 New Revision: 323559 URL: https://svnweb.freebsd.org/changeset/base/323559 Log: Split vm_page_free_toq() into two parts, preparation vm_page_free_prep() and insertion into the phys allocator free queues vm_page_free_phys(). Also provide a wrapper vm_page_free_phys_pglist() for batched free. Reviewed by: alc, markj Tested by:mjg (previous version) Sponsored by: The FreeBSD Foundation MFC after:1 week Modified: head/sys/vm/vm_page.c head/sys/vm/vm_page.h Modified: head/sys/vm/vm_page.c == --- head/sys/vm/vm_page.c Wed Sep 13 19:03:59 2017(r323558) +++ head/sys/vm/vm_page.c Wed Sep 13 19:11:52 2017(r323559) @@ -163,6 +163,7 @@ static uma_zone_t fakepg_zone; static void vm_page_alloc_check(vm_page_t m); static void vm_page_clear_dirty_mask(vm_page_t m, vm_page_bits_t pagebits); static void vm_page_enqueue(uint8_t queue, vm_page_t m); +static void vm_page_free_phys(vm_page_t m); static void vm_page_free_wakeup(void); static void vm_page_init(void *dummy); static int vm_page_insert_after(vm_page_t m, vm_object_t object, @@ -2402,13 +2403,7 @@ unlock: mtx_lock(_page_queue_free_mtx); do { SLIST_REMOVE_HEAD(, plinks.s.ss); - vm_phys_freecnt_adj(m, 1); -#if VM_NRESERVLEVEL > 0 - if (!vm_reserv_free_page(m)) -#else - if (true) -#endif - vm_phys_free_pages(m, 0); + vm_page_free_phys(m); } while ((m = SLIST_FIRST()) != NULL); vm_page_free_wakeup(); mtx_unlock(_page_queue_free_mtx); @@ -2770,15 +2765,18 @@ vm_page_free_wakeup(void) } /* - * vm_page_free_toq: + * vm_page_free_prep: * - * Returns the given page to the free list, - * disassociating it with any VM object. + * Prepares the given page to be put on the free list, + * disassociating it from any VM object. The caller may return + * the page to the free list only if this function returns true. * - * The object must be locked. The page must be locked if it is managed. + * The object must be locked. The page must be locked if it is + * managed. For a queued managed page, the pagequeue_locked + * argument specifies whether the page queue is already locked. */ -void -vm_page_free_toq(vm_page_t m) +bool +vm_page_free_prep(vm_page_t m, bool pagequeue_locked) { if ((m->oflags & VPO_UNMANAGED) == 0) { @@ -2799,16 +2797,20 @@ vm_page_free_toq(vm_page_t m) * callback routine until after we've put the page on the * appropriate free queue. */ - vm_page_remque(m); + if (m->queue != PQ_NONE) { + if (pagequeue_locked) + vm_page_dequeue_locked(m); + else + vm_page_dequeue(m); + } vm_page_remove(m); /* * If fictitious remove object association and * return, otherwise delay object association removal. */ - if ((m->flags & PG_FICTITIOUS) != 0) { - return; - } + if ((m->flags & PG_FICTITIOUS) != 0) + return (false); m->valid = 0; vm_page_undirty(m); @@ -2820,28 +2822,66 @@ vm_page_free_toq(vm_page_t m) KASSERT((m->flags & PG_UNHOLDFREE) == 0, ("vm_page_free: freeing PG_UNHOLDFREE page %p", m)); m->flags |= PG_UNHOLDFREE; - } else { - /* -* Restore the default memory attribute to the page. -*/ - if (pmap_page_get_memattr(m) != VM_MEMATTR_DEFAULT) - pmap_page_set_memattr(m, VM_MEMATTR_DEFAULT); + return (false); + } - /* -* Insert the page into the physical memory allocator's free -* page queues. -*/ - mtx_lock(_page_queue_free_mtx); - vm_phys_freecnt_adj(m, 1); + /* +* Restore the default memory attribute to the page. +*/ + if (pmap_page_get_memattr(m) != VM_MEMATTR_DEFAULT) + pmap_page_set_memattr(m, VM_MEMATTR_DEFAULT); + + return (true); +} + +/* + * Insert the page into the physical memory allocator's free page + * queues. This is the last step to free a page. + */ +static void +vm_page_free_phys(vm_page_t m) +{ + + mtx_assert(_page_queue_free_mtx, MA_OWNED); + + vm_phys_freecnt_adj(m, 1); #if VM_NRESERVLEVEL > 0 - if (!vm_reserv_free_page(m)) -#else - if (TRUE) + if (!vm_reserv_free_page(m)) #endif - vm_phys_free_pages(m, 0); - vm_page_free_wakeup(); - mtx_unlock(_page_queue_free_mtx); - } +
svn commit: r323558 - head/sys/vm
Author: kib Date: Wed Sep 13 19:03:59 2017 New Revision: 323558 URL: https://svnweb.freebsd.org/changeset/base/323558 Log: Use existing tag name for the vm_object' memq. Reviewed by: alc, markj Sponsored by: The FreeBSD Foundation MFC after:1 week Modified: head/sys/vm/vm_object.h head/sys/vm/vm_page.h Modified: head/sys/vm/vm_object.h == --- head/sys/vm/vm_object.h Wed Sep 13 18:32:43 2017(r323557) +++ head/sys/vm/vm_object.h Wed Sep 13 19:03:59 2017(r323558) @@ -87,12 +87,17 @@ * */ +#ifndef VM_PAGE_HAVE_PGLIST +TAILQ_HEAD(pglist, vm_page); +#define VM_PAGE_HAVE_PGLIST +#endif + struct vm_object { struct rwlock lock; TAILQ_ENTRY(vm_object) object_list; /* list of all objects */ LIST_HEAD(, vm_object) shadow_head; /* objects that this is a shadow for */ LIST_ENTRY(vm_object) shadow_list; /* chain of shadow objects */ - TAILQ_HEAD(respgs, vm_page) memq; /* list of resident pages */ + struct pglist memq; /* list of resident pages */ struct vm_radix rtree; /* root of the resident page radix trie*/ vm_pindex_t size; /* Object size */ int generation; /* generation ID */ Modified: head/sys/vm/vm_page.h == --- head/sys/vm/vm_page.h Wed Sep 13 18:32:43 2017(r323557) +++ head/sys/vm/vm_page.h Wed Sep 13 19:03:59 2017(r323558) @@ -210,7 +210,10 @@ struct vm_page { #definePQ_UNSWAPPABLE 3 #definePQ_COUNT4 +#ifndef VM_PAGE_HAVE_PGLIST TAILQ_HEAD(pglist, vm_page); +#define VM_PAGE_HAVE_PGLIST +#endif SLIST_HEAD(spglist, vm_page); struct vm_pagequeue { ___ 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: r314942 - head/usr.bin/awk
Maybe you can bring them in here? :) Warner On Wed, Sep 13, 2017 at 12:37 PM, Pedro Giffuniwrote: > > > On 13/09/2017 13:15, John Baldwin wrote: > >> On Thursday, March 09, 2017 03:27:53 AM Baptiste Daroussin wrote: >> >>> Author: bapt >>> Date: Thu Mar 9 03:27:53 2017 >>> New Revision: 314942 >>> URL: https://svnweb.freebsd.org/changeset/base/314942 >>> >>> Log: >>>Import the awk(1) manpage from OpenBSD >>> As discussed during AsiaBSDcon devsummit, import the manpage from >>> OpenBSD which >>>is has been rewritten in mdoc(7) format making it readable by default >>> with >>>mandoc, it also has been extended by OpenBSD to cover all awk(1) >>> options >>> Obtained from:OpenBSD >>>MFH: 1 week >>> >> One problem noted today by imp@ is that this doesn't quite document the >> awk we >> ship: >> >> % echo 42 | awk '{ print lshift($1, 1) }' >> awk: calling undefined function lshift >> input record number 1, file >> source line number 1 >> >> None of the bit operations described in this manpage are implemented in >> one-true-awk. Hmm, it seems that OpenBSD added those as a local patch >> relative to one-true-awk in 1.10 of lex.c. So Someone(tm) needs to >> probably >> compare OpenBSD's awk to one-true-awk to see what local changes they have >> and either update the manpage here or pull the local diffs across. (I'd >> probably we just grab the implementation for the bitwise ops myself.) >> >> Hmm ... > > TBH, many years ago I tried to upstream the OpenBSD (actually gawk) > extensions but upstream (bwk) was not interested. > > Pedro. > > ___ 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: r314942 - head/usr.bin/awk
On Wed, Sep 13, 2017 at 06:15:39PM +, John Baldwin wrote: > On Thursday, March 09, 2017 03:27:53 AM Baptiste Daroussin wrote: > > Author: bapt > > Date: Thu Mar 9 03:27:53 2017 > > New Revision: 314942 > > URL: https://svnweb.freebsd.org/changeset/base/314942 > > > > Log: > > Import the awk(1) manpage from OpenBSD > > > > As discussed during AsiaBSDcon devsummit, import the manpage from OpenBSD > > which > > is has been rewritten in mdoc(7) format making it readable by default with > > mandoc, it also has been extended by OpenBSD to cover all awk(1) options > > > > Obtained from:OpenBSD > > MFH: 1 week > > One problem noted today by imp@ is that this doesn't quite document the awk we > ship: > > % echo 42 | awk '{ print lshift($1, 1) }' > awk: calling undefined function lshift > input record number 1, file > source line number 1 > > None of the bit operations described in this manpage are implemented in > one-true-awk. Hmm, it seems that OpenBSD added those as a local patch > relative to one-true-awk in 1.10 of lex.c. So Someone(tm) needs to probably > compare OpenBSD's awk to one-true-awk to see what local changes they have > and either update the manpage here or pull the local diffs across. (I'd > probably we just grab the implementation for the bitwise ops myself.) > Good catch, I will have a look after eurobsdcon Best regards, Bapt signature.asc Description: PGP signature
Re: svn commit: r314942 - head/usr.bin/awk
On 13/09/2017 13:15, John Baldwin wrote: On Thursday, March 09, 2017 03:27:53 AM Baptiste Daroussin wrote: Author: bapt Date: Thu Mar 9 03:27:53 2017 New Revision: 314942 URL: https://svnweb.freebsd.org/changeset/base/314942 Log: Import the awk(1) manpage from OpenBSD As discussed during AsiaBSDcon devsummit, import the manpage from OpenBSD which is has been rewritten in mdoc(7) format making it readable by default with mandoc, it also has been extended by OpenBSD to cover all awk(1) options Obtained from: OpenBSD MFH: 1 week One problem noted today by imp@ is that this doesn't quite document the awk we ship: % echo 42 | awk '{ print lshift($1, 1) }' awk: calling undefined function lshift input record number 1, file source line number 1 None of the bit operations described in this manpage are implemented in one-true-awk. Hmm, it seems that OpenBSD added those as a local patch relative to one-true-awk in 1.10 of lex.c. So Someone(tm) needs to probably compare OpenBSD's awk to one-true-awk to see what local changes they have and either update the manpage here or pull the local diffs across. (I'd probably we just grab the implementation for the bitwise ops myself.) Hmm ... TBH, many years ago I tried to upstream the OpenBSD (actually gawk) extensions but upstream (bwk) was not interested. Pedro. ___ 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: r323557 - head/share/man/man4
Author: gjb Date: Wed Sep 13 18:32:43 2017 New Revision: 323557 URL: https://svnweb.freebsd.org/changeset/base/323557 Log: Remove an unneeded sentence stop. MFC after:3 days Sponsored by: The FreeBSD Foundation Modified: head/share/man/man4/siba.4 Modified: head/share/man/man4/siba.4 == --- head/share/man/man4/siba.4 Wed Sep 13 17:49:23 2017(r323556) +++ head/share/man/man4/siba.4 Wed Sep 13 18:32:43 2017(r323557) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 3, 2016 +.Dd September 13, 2017 .Dt SIBA 4 .Os .Sh NAME @@ -75,7 +75,7 @@ The device driver first appeared in .Fx 8.0 . The driver was rewritten for -.Fx 11.0 . +.Fx 11.0 to support the common Broadcom .Xr bhnd 4 bus interface. ___ 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: r314942 - head/usr.bin/awk
On Thursday, March 09, 2017 03:27:53 AM Baptiste Daroussin wrote: > Author: bapt > Date: Thu Mar 9 03:27:53 2017 > New Revision: 314942 > URL: https://svnweb.freebsd.org/changeset/base/314942 > > Log: > Import the awk(1) manpage from OpenBSD > > As discussed during AsiaBSDcon devsummit, import the manpage from OpenBSD > which > is has been rewritten in mdoc(7) format making it readable by default with > mandoc, it also has been extended by OpenBSD to cover all awk(1) options > > Obtained from: OpenBSD > MFH:1 week One problem noted today by imp@ is that this doesn't quite document the awk we ship: % echo 42 | awk '{ print lshift($1, 1) }' awk: calling undefined function lshift input record number 1, file source line number 1 None of the bit operations described in this manpage are implemented in one-true-awk. Hmm, it seems that OpenBSD added those as a local patch relative to one-true-awk in 1.10 of lex.c. So Someone(tm) needs to probably compare OpenBSD's awk to one-true-awk to see what local changes they have and either update the manpage here or pull the local diffs across. (I'd probably we just grab the implementation for the bitwise ops myself.) -- 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: r323556 - in head/sys: dev/cxgb/ulp modules/cxgb modules/cxgb/iw_cxgb modules/cxgb/tom
Author: np Date: Wed Sep 13 17:49:23 2017 New Revision: 323556 URL: https://svnweb.freebsd.org/changeset/base/323556 Log: Retire the T3 iWARP and TOE drivers. This saves catch-up work when OFED or other kernel infrastructure changes. Note that this doesn't affect the base cxgb(4) NIC driver for T3 at all. MFC after:No MFC. Sponsored by: Chelsio Communications Deleted: head/sys/dev/cxgb/ulp/ head/sys/modules/cxgb/iw_cxgb/ head/sys/modules/cxgb/tom/ Modified: head/sys/modules/cxgb/Makefile Modified: head/sys/modules/cxgb/Makefile == --- head/sys/modules/cxgb/Makefile Wed Sep 13 17:43:18 2017 (r323555) +++ head/sys/modules/cxgb/Makefile Wed Sep 13 17:49:23 2017 (r323556) @@ -5,14 +5,5 @@ SYSDIR?=${SRCTOP}/sys SUBDIR= cxgb SUBDIR+= cxgb_t3fw -SUBDIR+= ${_tom} -SUBDIR+= ${_iw_cxgb} - -.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" -_tom= tom -.if ${MK_OFED} != "no" || defined(ALL_MODULES) -_iw_cxgb= iw_cxgb -.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: r323555 - head/sys/dev/intpm
Author: cem Date: Wed Sep 13 17:43:18 2017 New Revision: 323555 URL: https://svnweb.freebsd.org/changeset/base/323555 Log: intpm(4): Decrease requested i/o port range width On some AMD FCH devices driven by intpm(4) (read: mine), the SMBus I/O port range is split in two and the low range is only 0x10 wide. intpm(4) does not access any registers above 0x0f, so there is no need for the wider range. Discussed with: avg Sponsored by: Dell EMC Isilon Modified: head/sys/dev/intpm/intpm.c Modified: head/sys/dev/intpm/intpm.c == --- head/sys/dev/intpm/intpm.c Wed Sep 13 17:00:02 2017(r323554) +++ head/sys/dev/intpm/intpm.c Wed Sep 13 17:43:18 2017(r323555) @@ -128,7 +128,7 @@ amd_pmio_read(struct resource *res, uint8_t reg) static int sb8xx_attach(device_t dev) { - static const intAMDSB_SMBIO_WIDTH = 0x14; + static const intAMDSB_SMBIO_WIDTH = 0x10; struct intsmb_softc *sc; struct resource *res; uint32_tdevid; ___ 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: r323554 - head/sys/boot/efi/boot1
On 2017-09-13 13:00, Allan Jude wrote: > Author: allanjude > Date: Wed Sep 13 17:00:02 2017 > New Revision: 323554 > URL: https://svnweb.freebsd.org/changeset/base/323554 > > Log: > Increase EFI boot file size frok 128k to 384k > > generate_fat.sh does the following: > - create an 800kb zero-filled file > - create an md device backed by this file > - format the device fat12 > - mount the filesystem > - create the EFI ESP directory structure > - create the EFI boot file (BOOTx64 for amd64, BOOTaa64 for aarch64, etc) > - Adds a marker to the beginning of the file, and pad it to 384kb > - 384kb was chosen as it is less than half of 800kb, thus allowing > users to keep a backup of their older boot file in the small partition > - Unmount the filesystem > - Scan the image and find the offset where the marker was inserted > - The process requires root, to make image generation easier, images for > each architecture are pregenerated, compressed with xz, and checked > into svn. > > The Makefile that generates boot1.efifat does the following: > - Ensure the compiled boot1.efi file is no larger than the generated image > - Decompress the template created by generate-fat.sh > - dd the contents of boot1.efi into boot1.efifat starting at the offset > where the marker is found. This allows any file less than the maximum > size to be written into the fat filesystem without having to mount it, > so no root privileges are required. > > Later work by imp and myself makes bsdinstall create a 200mb fat16 instead > of using this process, but it is retained to make image generation easier. > > Submitted by: Eric McCorkle (original version) > Reviewed by:emaste, tsoome, Eric McCorkle > MFC after: 1 month > Differential Revision: https://reviews.freebsd.org/D9680 > > Added: > head/sys/boot/efi/boot1/fat-amd64.tmpl.xz (contents, props changed) > head/sys/boot/efi/boot1/fat-arm.tmpl.xz (contents, props changed) > head/sys/boot/efi/boot1/fat-arm64.tmpl.xz (contents, props changed) > head/sys/boot/efi/boot1/fat-i386.tmpl.xz (contents, props changed) > Deleted: > head/sys/boot/efi/boot1/fat-amd64.tmpl.bz2.uu > head/sys/boot/efi/boot1/fat-arm.tmpl.bz2.uu > head/sys/boot/efi/boot1/fat-arm64.tmpl.bz2.uu > head/sys/boot/efi/boot1/fat-i386.tmpl.bz2.uu > Modified: > head/sys/boot/efi/boot1/Makefile > head/sys/boot/efi/boot1/Makefile.fat > head/sys/boot/efi/boot1/generate-fat.sh > I forgot to mention: I did away with uuencoding the binary files, because svn and git can handle binary files just fine, and it was just silly. I switched from bzip to xzip, as we are getting away from using bzip as a part of the toolchain. -- Allan Jude signature.asc Description: OpenPGP digital signature
svn commit: r323554 - head/sys/boot/efi/boot1
Author: allanjude Date: Wed Sep 13 17:00:02 2017 New Revision: 323554 URL: https://svnweb.freebsd.org/changeset/base/323554 Log: Increase EFI boot file size frok 128k to 384k generate_fat.sh does the following: - create an 800kb zero-filled file - create an md device backed by this file - format the device fat12 - mount the filesystem - create the EFI ESP directory structure - create the EFI boot file (BOOTx64 for amd64, BOOTaa64 for aarch64, etc) - Adds a marker to the beginning of the file, and pad it to 384kb - 384kb was chosen as it is less than half of 800kb, thus allowing users to keep a backup of their older boot file in the small partition - Unmount the filesystem - Scan the image and find the offset where the marker was inserted - The process requires root, to make image generation easier, images for each architecture are pregenerated, compressed with xz, and checked into svn. The Makefile that generates boot1.efifat does the following: - Ensure the compiled boot1.efi file is no larger than the generated image - Decompress the template created by generate-fat.sh - dd the contents of boot1.efi into boot1.efifat starting at the offset where the marker is found. This allows any file less than the maximum size to be written into the fat filesystem without having to mount it, so no root privileges are required. Later work by imp and myself makes bsdinstall create a 200mb fat16 instead of using this process, but it is retained to make image generation easier. Submitted by: Eric McCorkle (original version) Reviewed by: emaste, tsoome, Eric McCorkle MFC after:1 month Differential Revision:https://reviews.freebsd.org/D9680 Added: head/sys/boot/efi/boot1/fat-amd64.tmpl.xz (contents, props changed) head/sys/boot/efi/boot1/fat-arm.tmpl.xz (contents, props changed) head/sys/boot/efi/boot1/fat-arm64.tmpl.xz (contents, props changed) head/sys/boot/efi/boot1/fat-i386.tmpl.xz (contents, props changed) Deleted: head/sys/boot/efi/boot1/fat-amd64.tmpl.bz2.uu head/sys/boot/efi/boot1/fat-arm.tmpl.bz2.uu head/sys/boot/efi/boot1/fat-arm64.tmpl.bz2.uu head/sys/boot/efi/boot1/fat-i386.tmpl.bz2.uu Modified: head/sys/boot/efi/boot1/Makefile head/sys/boot/efi/boot1/Makefile.fat head/sys/boot/efi/boot1/generate-fat.sh Modified: head/sys/boot/efi/boot1/Makefile == --- head/sys/boot/efi/boot1/MakefileWed Sep 13 16:54:27 2017 (r323553) +++ head/sys/boot/efi/boot1/MakefileWed Sep 13 17:00:02 2017 (r323554) @@ -135,9 +135,7 @@ boot1.efifat: boot1.efi exit 1; \ fi echo ${.OBJDIR} - uudecode ${.CURDIR}/fat-${MACHINE}.tmpl.bz2.uu - mv fat-${MACHINE}.tmpl.bz2 ${.TARGET}.bz2 - bzip2 -f -d ${.TARGET}.bz2 + xz -d -c ${.CURDIR}/fat-${MACHINE}.tmpl.xz > ${.TARGET} ${DD} if=${.ALLSRC} of=${.TARGET} seek=${BOOT1_OFFSET} conv=notrunc CLEANFILES= boot1.efi boot1.efifat Modified: head/sys/boot/efi/boot1/Makefile.fat == --- head/sys/boot/efi/boot1/Makefile.fatWed Sep 13 16:54:27 2017 (r323553) +++ head/sys/boot/efi/boot1/Makefile.fatWed Sep 13 17:00:02 2017 (r323554) @@ -1,4 +1,4 @@ # This file autogenerated by generate-fat.sh - DO NOT EDIT # $FreeBSD$ BOOT1_OFFSET=0x2d -BOOT1_MAXSIZE=131072 +BOOT1_MAXSIZE=393216 Added: head/sys/boot/efi/boot1/fat-amd64.tmpl.xz == Binary file. No diff available. Added: head/sys/boot/efi/boot1/fat-arm.tmpl.xz == Binary file. No diff available. Added: head/sys/boot/efi/boot1/fat-arm64.tmpl.xz == Binary file. No diff available. Added: head/sys/boot/efi/boot1/fat-i386.tmpl.xz == Binary file. No diff available. Modified: head/sys/boot/efi/boot1/generate-fat.sh == --- head/sys/boot/efi/boot1/generate-fat.sh Wed Sep 13 16:54:27 2017 (r323553) +++ head/sys/boot/efi/boot1/generate-fat.sh Wed Sep 13 17:00:02 2017 (r323554) @@ -14,7 +14,7 @@ FAT_SIZE=1600 #Size in 512-byte blocks of the produced image BOOT1_OFFSET=2d -BOOT1_SIZE=128k +BOOT1_SIZE=384k if [ $(id -u) != 0 ]; then echo "${0##*/}: must run as root" >&2 @@ -70,13 +70,7 @@ while read ARCH FILENAME; do exit 1 fi - bzip2 $OUTPUT_FILE - echo 'FAT template boot filesystem created by generate-fat.sh' > $OUTPUT_FILE.bz2.uu - echo 'DO NOT EDIT' >> $OUTPUT_FILE.bz2.uu - echo "\$FreeBSD\$" >>
Re: svn commit: r323518 - head/sys/conf
On Wed, 13 Sep 2017, John Baldwin wrote: On Wednesday, September 13, 2017 09:09:42 AM Sean Bruno wrote: On 09/13/17 08:35, John Baldwin wrote: On Wednesday, September 13, 2017 03:56:04 AM Sean Bruno wrote: Author: sbruno Date: Wed Sep 13 03:56:03 2017 New Revision: 323518 URL: https://svnweb.freebsd.org/changeset/base/323518 Log: Jenkins i386 LINT build uses NOTES to generate its LINT kernel config. ixl(4) isn't in here either, so I'll remove lio(4) too. ixl missing is a bug, please put it in sys/amd64/conf/NOTES (or better yet, just fix the build on !amd64) In the case of lio(4), Cavium is explicitly not compiling for 32 bit architectures. I'm inquiring to find out if they want to build on the other 64bit architectures we have. In the case of ixl(4), Intel has said that this is not supported on 32bit architectures. I'm unsure what the best course of action is. Put it in NOTES for arches that support it. Strictly it should be in MD NOTES, but MI notes already has lots of MD buses like pci and drivers like bge that depend on pci. Some MD NOTES have many nodevice lines to kill non-MI things in MI NOTES, but apparently none needs to kill pci or the hundreds of drivers that depend on it yet. The bug is more if drivers aren't in NOTES at all. Any thing listed in sys/conf/files.* should be in some NOTES file, either sys/conf/NOTES for things that are MI or sys/${arch}/conf/NOTES for things that are MD. The most broken drivers aren't even listed in sys/conf/files.*. 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: r323553 - in head/sys: arm/at91 arm/broadcom/bcm2835 arm/freescale/imx arm/ti dev/glxiic
Author: ian Date: Wed Sep 13 16:54:27 2017 New Revision: 323553 URL: https://svnweb.freebsd.org/changeset/base/323553 Log: Defer attaching and probing iicbus and its children until interrupts are available, in i2c controller drivers that require interrupts for transfers. This is the result of auditing all 22 existing drivers that attach iicbus. These drivers were the only ones remaining that require interrupts and were not using config_intrhook to defer attachment. That has led, over the years, to various i2c slave device drivers needing to use config_intrhook themselves rather than performing bus transactions in their probe() and attach() methods, just in case they were attached too early. Modified: head/sys/arm/at91/at91_twi.c head/sys/arm/broadcom/bcm2835/bcm2835_bsc.c head/sys/arm/freescale/imx/imx_i2c.c head/sys/arm/ti/ti_i2c.c head/sys/dev/glxiic/glxiic.c Modified: head/sys/arm/at91/at91_twi.c == --- head/sys/arm/at91/at91_twi.cWed Sep 13 16:47:23 2017 (r323552) +++ head/sys/arm/at91/at91_twi.cWed Sep 13 16:54:27 2017 (r323553) @@ -160,8 +160,8 @@ at91_twi_attach(device_t dev) if ((sc->iicbus = device_add_child(dev, "iicbus", -1)) == NULL) device_printf(dev, "could not allocate iicbus instance\n"); - /* probe and attach the iicbus */ - bus_generic_attach(dev); + /* Probe and attach the iicbus when interrupts are available. */ + config_intrhook_oneshot((ich_func_t)bus_generic_attach, dev); out: if (err) at91_twi_deactivate(dev); Modified: head/sys/arm/broadcom/bcm2835/bcm2835_bsc.c == --- head/sys/arm/broadcom/bcm2835/bcm2835_bsc.c Wed Sep 13 16:47:23 2017 (r323552) +++ head/sys/arm/broadcom/bcm2835/bcm2835_bsc.c Wed Sep 13 16:54:27 2017 (r323553) @@ -309,7 +309,10 @@ bcm_bsc_attach(device_t dev) return (ENXIO); } - return (bus_generic_attach(dev)); + /* Probe and attach the iicbus when interrupts are available. */ + config_intrhook_oneshot((ich_func_t)bus_generic_attach, dev); + + return (0); } static int Modified: head/sys/arm/freescale/imx/imx_i2c.c == --- head/sys/arm/freescale/imx/imx_i2c.cWed Sep 13 16:47:23 2017 (r323552) +++ head/sys/arm/freescale/imx/imx_i2c.cWed Sep 13 16:54:27 2017 (r323553) @@ -443,7 +443,8 @@ no_recovery: /* We don't do a hardware reset here because iicbus_attach() does it. */ - bus_generic_attach(dev); + /* Probe and attach the iicbus when interrupts are available. */ + config_intrhook_oneshot((ich_func_t)bus_generic_attach, dev); return (0); } Modified: head/sys/arm/ti/ti_i2c.c == --- head/sys/arm/ti/ti_i2c.cWed Sep 13 16:47:23 2017(r323552) +++ head/sys/arm/ti/ti_i2c.cWed Sep 13 16:54:27 2017(r323553) @@ -37,11 +37,6 @@ * incorporate that sometime in the future. The idea being that for transaction * larger than a certain size the DMA engine is used, for anything less the * normal interrupt/fifo driven option is used. - * - * - * WARNING: This driver uses mtx_sleep and interrupts to perform transactions, - * which means you can't do a transaction during startup before the interrupts - * have been enabled. Hint - the freebsd function config_intrhook_establish(). */ #include @@ -909,8 +904,8 @@ ti_i2c_attach(device_t dev) goto out; } - /* Probe and attach the iicbus */ - bus_generic_attach(dev); + /* Probe and attach the iicbus when interrupts are available. */ + config_intrhook_oneshot((ich_func_t)bus_generic_attach, dev); out: if (err) { Modified: head/sys/dev/glxiic/glxiic.c == --- head/sys/dev/glxiic/glxiic.cWed Sep 13 16:47:23 2017 (r323552) +++ head/sys/dev/glxiic/glxiic.cWed Sep 13 16:54:27 2017 (r323553) @@ -408,11 +408,10 @@ glxiic_attach(device_t dev) glxiic_gpio_enable(sc); glxiic_smb_enable(sc, IIC_FASTEST, 0); - error = bus_generic_attach(dev); - if (error != 0) { - device_printf(dev, "Could not probe and attach children\n"); - error = ENXIO; - } + /* Probe and attach the iicbus when interrupts are available. */ + config_intrhook_oneshot((ich_func_t)bus_generic_attach, dev); + error = 0; + out: if (error != 0) { callout_drain(>callout); ___ svn-src-head@freebsd.org mailing list
svn commit: r323552 - head/sys/kern
Author: glebius Date: Wed Sep 13 16:47:23 2017 New Revision: 323552 URL: https://svnweb.freebsd.org/changeset/base/323552 Log: Fix two issues with not ready data in sockets (read: sendfile) in UNIX sockets. o Check that socket is still connected in uipc_ready(). If not we are responsible to free mbufs. o In uipc_send() if socket appears to be disconnected, but we are sending data with pending I/Os, don't free mbufs. Reported by: Kevin Bowling Tested by:Kevin Bowling PR: 59 Reported by: Mark Martinec MFC after:3 days Modified: head/sys/kern/uipc_usrreq.c Modified: head/sys/kern/uipc_usrreq.c == --- head/sys/kern/uipc_usrreq.c Wed Sep 13 16:43:31 2017(r323551) +++ head/sys/kern/uipc_usrreq.c Wed Sep 13 16:47:23 2017(r323552) @@ -1056,7 +1056,11 @@ uipc_send(struct socket *so, int flags, struct mbuf *m release: if (control != NULL) m_freem(control); - if (m != NULL) + /* +* In case of PRUS_NOTREADY, uipc_ready() is responsible +* for freeing memory. +*/ + if (m != NULL && (flags & PRUS_NOTREADY) == 0) m_freem(m); return (error); } @@ -1071,7 +1075,12 @@ uipc_ready(struct socket *so, struct mbuf *m, int coun unp = sotounpcb(so); UNP_LINK_RLOCK(); - unp2 = unp->unp_conn; + if ((unp2 = unp->unp_conn) == NULL) { + UNP_LINK_RUNLOCK(); + for (int i = 0; i < count; i++) + m = m_free(m); + return (ECONNRESET); + } UNP_PCB_LOCK(unp2); so2 = unp2->unp_socket; ___ 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: r323551 - head/sys/dev/intpm
Author: cem Date: Wed Sep 13 16:43:31 2017 New Revision: 323551 URL: https://svnweb.freebsd.org/changeset/base/323551 Log: intpm(4): While here, remove redundant 'res' check Reported by: avg Sponsored by: Dell EMC Isilon Modified: head/sys/dev/intpm/intpm.c Modified: head/sys/dev/intpm/intpm.c == --- head/sys/dev/intpm/intpm.c Wed Sep 13 16:35:16 2017(r323550) +++ head/sys/dev/intpm/intpm.c Wed Sep 13 16:43:31 2017(r323551) @@ -185,10 +185,6 @@ sb8xx_attach(device_t dev) device_printf(dev, "bus_set_resource for SMBus IO failed\n"); return (ENXIO); } - if (res == NULL) { - device_printf(dev, "bus_alloc_resource for SMBus IO failed\n"); - return (ENXIO); - } sc->io_res = bus_alloc_resource_any(dev, SYS_RES_IOPORT, >io_rid, RF_ACTIVE); if (sc->io_res == NULL) { ___ 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: r323518 - head/sys/conf
On Wed, 2017-09-13 at 09:26 -0700, John Baldwin wrote: > On Wednesday, September 13, 2017 09:09:42 AM Sean Bruno wrote: > > > > > > On 09/13/17 08:35, John Baldwin wrote: > > > > > > On Wednesday, September 13, 2017 03:56:04 AM Sean Bruno wrote: > > > > > > > > Author: sbruno > > > > Date: Wed Sep 13 03:56:03 2017 > > > > New Revision: 323518 > > > > URL: https://svnweb.freebsd.org/changeset/base/323518 > > > > > > > > Log: > > > > Jenkins i386 LINT build uses NOTES to generate its LINT kernel config. > > > > > > > > ixl(4) isn't in here either, so I'll remove lio(4) too. > > > ixl missing is a bug, please put it in sys/amd64/conf/NOTES (or better > > > yet, > > > just fix the build on !amd64) > > > > > > > In the case of lio(4), Cavium is explicitly not compiling for 32 bit > > architectures. I'm inquiring to find out if they want to build on the > > other 64bit architectures we have. > > > > In the case of ixl(4), Intel has said that this is not supported on > > 32bit architectures. > > > > I'm unsure what the best course of action is. > The bug is more if drivers aren't in NOTES at all. Any thing listed in > sys/conf/files.* should be in some NOTES file, either sys/conf/NOTES for > things that are MI or sys/${arch}/conf/NOTES for things that are MD. > Didn't somebody start a task list of things for junior hackers to work on? Writing a script/tool to verify the assertion in that last sentence seems like a good candidate for such a list. -- 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"
svn commit: r323550 - in head: . etc/defaults etc/periodic/weekly libexec/makewhatis.local share/man/man5 sys/mips/rmi targets/pseudo/userland tools/build/mk tools/build/options usr.bin usr.bin/cat...
Author: gordon Date: Wed Sep 13 16:35:16 2017 New Revision: 323550 URL: https://svnweb.freebsd.org/changeset/base/323550 Log: Deorbit catman. The tradeoff of disk for performance has long since tipped in favor of just rendering the manpage instead of relying on pre-formatted catpages. Note, this does not impede the ability to use existing catpages, it just removes the utility to generate them. Reviewed by: imp, allanjude Approved by: emaste (mentor) Differential Revision:https://reviews.freebsd.org/D12317 Deleted: head/etc/periodic/weekly/330.catman head/usr.bin/catman/ Modified: head/ObsoleteFiles.inc head/etc/defaults/periodic.conf head/etc/periodic/weekly/Makefile head/libexec/makewhatis.local/Makefile head/libexec/makewhatis.local/makewhatis.local.8 head/libexec/makewhatis.local/makewhatis.local.sh head/share/man/man5/periodic.conf.5 head/share/man/man5/rc.conf.5 head/share/man/man5/src.conf.5 head/sys/mips/rmi/rootfs_list.txt head/targets/pseudo/userland/Makefile.depend head/tools/build/mk/OptionalObsoleteFiles.inc head/tools/build/options/WITHOUT_MAN_UTILS head/usr.bin/Makefile head/usr.bin/su/su.1 head/usr.sbin/crunch/examples/really-big.conf Modified: head/ObsoleteFiles.inc == --- head/ObsoleteFiles.inc Wed Sep 13 16:23:59 2017(r323549) +++ head/ObsoleteFiles.inc Wed Sep 13 16:35:16 2017(r323550) @@ -38,6 +38,13 @@ # xargs -n1 | sort | uniq -d; # done +# 20170913: remove unneeded catman utility +OLD_FILES+=etc/periodic/weekly/330.catman +OLD_FILES+=usr/bin/catman +OLD_FILES+=usr/libexec/catman.local +OLD_FILES+=usr/share/man/man1/catman.1.gz +OLD_FILES+=usr/share/man/man8/catman.local.8.gz + # 20170802: ksyms(4) ioctl interface was removed OLD_FILES+=usr/include/sys/ksyms.h Modified: head/etc/defaults/periodic.conf == --- head/etc/defaults/periodic.conf Wed Sep 13 16:23:59 2017 (r323549) +++ head/etc/defaults/periodic.conf Wed Sep 13 16:35:16 2017 (r323550) @@ -181,9 +181,6 @@ weekly_locate_enable="YES" # Update locate weekly # 320.whatis weekly_whatis_enable="YES" # Update whatis weekly -# 330.catman -weekly_catman_enable="NO" # Preformat man pages - # 340.noid weekly_noid_enable="NO"# Find unowned files weekly_noid_dirs="/" # Look here Modified: head/etc/periodic/weekly/Makefile == --- head/etc/periodic/weekly/Makefile Wed Sep 13 16:23:59 2017 (r323549) +++ head/etc/periodic/weekly/Makefile Wed Sep 13 16:35:16 2017 (r323550) @@ -13,7 +13,7 @@ FILES+= 310.locate .endif .if ${MK_MAN_UTILS} != "no" -FILES+=320.whatis 330.catman +FILES+=320.whatis .endif .include Modified: head/libexec/makewhatis.local/Makefile == --- head/libexec/makewhatis.local/Makefile Wed Sep 13 16:23:59 2017 (r323549) +++ head/libexec/makewhatis.local/Makefile Wed Sep 13 16:35:16 2017 (r323550) @@ -3,7 +3,5 @@ SCRIPTS= makewhatis.local.sh MAN= makewhatis.local.8 SCRIPTSDIR=${LIBEXECDIR} -LINKS= ${SCRIPTSDIR}/makewhatis.local ${SCRIPTSDIR}/catman.local -MLINKS=makewhatis.local.8 catman.local.8 .include Modified: head/libexec/makewhatis.local/makewhatis.local.8 == --- head/libexec/makewhatis.local/makewhatis.local.8Wed Sep 13 16:23:59 2017(r323549) +++ head/libexec/makewhatis.local/makewhatis.local.8Wed Sep 13 16:35:16 2017(r323550) @@ -27,22 +27,19 @@ .Dt MAKEWHATIS.LOCAL 8 .Os .Sh NAME -.Nm makewhatis.local , catman.local -.Nd start makewhatis or catman for local file systems +.Nm makewhatis.local +.Nd start makewhatis for local file systems .Sh SYNOPSIS .Nm /usr/libexec/makewhatis.local .Op options .Ar directories ... -.Nm /usr/libexec/catman.local -.Op options -.Ar directories ... .Sh DESCRIPTION The .Nm utility starts .Xr makewhatis 1 only for file systems physically mounted on the system -where the +where .Nm is being executed. Running makewhatis @@ -53,25 +50,14 @@ your NFS server -- all NFS clients start makewhatis at So use this wrapper for .Xr cron 8 instead of calling makewhatis directly. -The -.Nm catman.local -utility is using for same purposes as -.Nm -but for -.Xr catman 1 . .Sh FILES .Bl -tag -width /etc/periodic/weekly/320.whatis.XXX -compact .It Pa /etc/periodic/weekly/320.whatis run .Nm every week -.It Pa /etc/p
Re: svn commit: r323518 - head/sys/conf
On Wednesday, September 13, 2017 09:09:42 AM Sean Bruno wrote: > > On 09/13/17 08:35, John Baldwin wrote: > > On Wednesday, September 13, 2017 03:56:04 AM Sean Bruno wrote: > >> Author: sbruno > >> Date: Wed Sep 13 03:56:03 2017 > >> New Revision: 323518 > >> URL: https://svnweb.freebsd.org/changeset/base/323518 > >> > >> Log: > >> Jenkins i386 LINT build uses NOTES to generate its LINT kernel config. > >> > >> ixl(4) isn't in here either, so I'll remove lio(4) too. > > > > ixl missing is a bug, please put it in sys/amd64/conf/NOTES (or better yet, > > just fix the build on !amd64) > > > > > In the case of lio(4), Cavium is explicitly not compiling for 32 bit > architectures. I'm inquiring to find out if they want to build on the > other 64bit architectures we have. > > In the case of ixl(4), Intel has said that this is not supported on > 32bit architectures. > > I'm unsure what the best course of action is. The bug is more if drivers aren't in NOTES at all. Any thing listed in sys/conf/files.* should be in some NOTES file, either sys/conf/NOTES for things that are MI or sys/${arch}/conf/NOTES for things that are MD. -- 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: r323549 - head/sys/dev/intpm
Author: cem Date: Wed Sep 13 16:23:59 2017 New Revision: 323549 URL: https://svnweb.freebsd.org/changeset/base/323549 Log: intpm(4): Do not attach if io_res can not be allocated Attempts to use the driver without an io_res result in immediate panic. Sponsored by: Dell EMC Isilon Modified: head/sys/dev/intpm/intpm.c Modified: head/sys/dev/intpm/intpm.c == --- head/sys/dev/intpm/intpm.c Wed Sep 13 16:21:11 2017(r323548) +++ head/sys/dev/intpm/intpm.c Wed Sep 13 16:23:59 2017(r323549) @@ -191,6 +191,10 @@ sb8xx_attach(device_t dev) } sc->io_res = bus_alloc_resource_any(dev, SYS_RES_IOPORT, >io_rid, RF_ACTIVE); + if (sc->io_res == NULL) { + device_printf(dev, "Could not allocate I/O space\n"); + return (ENXIO); + } sc->poll = 1; return (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"
svn commit: r323547 - head/lib/libedit
Author: pfg Date: Wed Sep 13 16:13:14 2017 New Revision: 323547 URL: https://svnweb.freebsd.org/changeset/base/323547 Log: libedit: add missing bracket. We never hit this because we always build with widechar support. Reported by: cognet MFC after:3 days Modified: head/lib/libedit/chartype.c Modified: head/lib/libedit/chartype.c == --- head/lib/libedit/chartype.c Wed Sep 13 16:05:26 2017(r323546) +++ head/lib/libedit/chartype.c Wed Sep 13 16:13:14 2017(r323547) @@ -223,6 +223,7 @@ ct_mbrtowc(wchar_t *wc, const char *s, size_t n) size_t ct_mbrtowc(wchar_t *wc, const char *s, size_t n) +{ if (s == NULL) return 0; if (n == 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"
svn commit: r323544 - head/sys/vm
Author: markj Date: Wed Sep 13 15:44:54 2017 New Revision: 323544 URL: https://svnweb.freebsd.org/changeset/base/323544 Log: Fix a logic error in the item size calculation for internal UMA zones. Kegs for internal zones always keep the slab header in the slab itself. Therefore, when determining the allocation size, we need to take the slab header size into account. Reported and tested by: ae, rakuco Reviewed by: avg MFC after:2 weeks Differential Revision:https://reviews.freebsd.org/D12342 Modified: head/sys/vm/uma_core.c head/sys/vm/vm_page.c Modified: head/sys/vm/uma_core.c == --- head/sys/vm/uma_core.c Wed Sep 13 15:17:35 2017(r323543) +++ head/sys/vm/uma_core.c Wed Sep 13 15:44:54 2017(r323544) @@ -1306,10 +1306,6 @@ keg_large_init(uma_keg_t keg) keg->uk_ipers = 1; keg->uk_rsize = keg->uk_size; - /* We can't do OFFPAGE if we're internal, bail out here. */ - if (keg->uk_flags & UMA_ZFLAG_INTERNAL) - return; - /* Check whether we have enough space to not do OFFPAGE. */ if ((keg->uk_flags & UMA_ZONE_OFFPAGE) == 0) { shsize = sizeof(struct uma_slab); @@ -1317,8 +1313,17 @@ keg_large_init(uma_keg_t keg) shsize = (shsize & ~UMA_ALIGN_PTR) + (UMA_ALIGN_PTR + 1); - if ((PAGE_SIZE * keg->uk_ppera) - keg->uk_rsize < shsize) - keg->uk_flags |= UMA_ZONE_OFFPAGE; + if (PAGE_SIZE * keg->uk_ppera - keg->uk_rsize < shsize) { + /* +* We can't do OFFPAGE if we're internal, in which case +* we need an extra page per allocation to contain the +* slab header. +*/ + if ((keg->uk_flags & UMA_ZFLAG_INTERNAL) == 0) + keg->uk_flags |= UMA_ZONE_OFFPAGE; + else + keg->uk_ppera++; + } } if ((keg->uk_flags & UMA_ZONE_OFFPAGE) && Modified: head/sys/vm/vm_page.c == --- head/sys/vm/vm_page.c Wed Sep 13 15:17:35 2017(r323543) +++ head/sys/vm/vm_page.c Wed Sep 13 15:44:54 2017(r323544) @@ -473,7 +473,8 @@ vm_page_startup(vm_offset_t vaddr) * in proportion to the zone structure size. */ pages_per_zone = howmany(sizeof(struct uma_zone) + - sizeof(struct uma_cache) * (mp_maxid + 1), UMA_SLAB_SIZE); + sizeof(struct uma_cache) * (mp_maxid + 1) + + roundup2(sizeof(struct uma_slab), sizeof(void *)), UMA_SLAB_SIZE); if (pages_per_zone > 1) { /* Reserve more pages so that we don't run out. */ boot_pages = UMA_BOOT_PAGES_ZONES * pages_per_zone; ___ 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: r323543 - head/sys/modules
Author: sbruno Date: Wed Sep 13 15:17:35 2017 New Revision: 323543 URL: https://svnweb.freebsd.org/changeset/base/323543 Log: Don't (try to) build lio(4) if the SOURCELESS_UCODE is set. Submitted by: Fabien KeilModified: head/sys/modules/Makefile Modified: head/sys/modules/Makefile == --- head/sys/modules/Makefile Wed Sep 13 14:30:30 2017(r323542) +++ head/sys/modules/Makefile Wed Sep 13 15:17:35 2017(r323543) @@ -711,7 +711,9 @@ _ixl= ixl _ixlv= ixlv _linux64= linux64 _linux_common= linux_common +.if ${MK_SOURCELESS_UCODE} != "no" _lio= lio +.endif _ntb= ntb _pms= pms _qlxge=qlxge ___ 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: r323516 - in head/sys: dev/bnxt dev/e1000 kern net sys
>>> #blamebruno >>> >>> Reviewed by:sbruno >>> Approved by:sbruno (mentor) >>> Sponsored by:Limelight Networks >>> Differential Revision:https://reviews.freebsd.org/D12235 >> >> *gasps at the LoC count and number of changed drivers* >> >> Could someone please better break this up in the future..? > > Agreed. Down the road parsing out individual commits in this jumbo commit > will be difficult to parse. IMO this may as well have simply been, import > from https://github.com/mattmacy/networking/, just like Mr. Torvalds does > at kernel.org. I expect to see a commit like this there but not here. Can > we break this down to its functional commits? > > This ridiculous loc was due to the amount of restructuring needed to get us back to being in sync with our development. The future will not have this big of a commit/change and should be more bite/fun sized. The #blamebruno tag in the commit log was to indicate that this was not something Stephen was doing on his own, but was something that I had induced over the last few months during testing. sean signature.asc Description: OpenPGP digital signature
Re: svn commit: r323518 - head/sys/conf
On 09/13/17 08:35, John Baldwin wrote: > On Wednesday, September 13, 2017 03:56:04 AM Sean Bruno wrote: >> Author: sbruno >> Date: Wed Sep 13 03:56:03 2017 >> New Revision: 323518 >> URL: https://svnweb.freebsd.org/changeset/base/323518 >> >> Log: >> Jenkins i386 LINT build uses NOTES to generate its LINT kernel config. >> >> ixl(4) isn't in here either, so I'll remove lio(4) too. > > ixl missing is a bug, please put it in sys/amd64/conf/NOTES (or better yet, > just fix the build on !amd64) > In the case of lio(4), Cavium is explicitly not compiling for 32 bit architectures. I'm inquiring to find out if they want to build on the other 64bit architectures we have. In the case of ixl(4), Intel has said that this is not supported on 32bit architectures. I'm unsure what the best course of action is. sean signature.asc Description: OpenPGP digital signature
Re: svn commit: r323518 - head/sys/conf
On Wednesday, September 13, 2017 03:56:04 AM Sean Bruno wrote: > Author: sbruno > Date: Wed Sep 13 03:56:03 2017 > New Revision: 323518 > URL: https://svnweb.freebsd.org/changeset/base/323518 > > Log: > Jenkins i386 LINT build uses NOTES to generate its LINT kernel config. > > ixl(4) isn't in here either, so I'll remove lio(4) too. ixl missing is a bug, please put it in sys/amd64/conf/NOTES (or better yet, just fix the build on !amd64) -- 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: r323542 - in head/release: arm arm64
Author: gjb Date: Wed Sep 13 14:30:30 2017 New Revision: 323542 URL: https://svnweb.freebsd.org/changeset/base/323542 Log: Increase arm{,64} SoC image sizes to prevent "filesystem full" build failures. Sponsored by: The FreeBSD Foundation Modified: head/release/arm/BEAGLEBONE.conf head/release/arm/CUBIEBOARD.conf head/release/arm/GUMSTIX.conf head/release/arm/PANDABOARD.conf head/release/arm/RPI-B.conf head/release/arm64/RPI3.conf Modified: head/release/arm/BEAGLEBONE.conf == --- head/release/arm/BEAGLEBONE.confWed Sep 13 14:27:13 2017 (r323541) +++ head/release/arm/BEAGLEBONE.confWed Sep 13 14:30:30 2017 (r323542) @@ -9,7 +9,7 @@ EMBEDDED_TARGET_ARCH="armv6" EMBEDDEDPORTS="sysutils/u-boot-beaglebone" KERNEL="BEAGLEBONE" WORLD_FLAGS="${WORLD_FLAGS} UBLDR_LOADADDR=0x8800" -IMAGE_SIZE="1G" +IMAGE_SIZE="1536M" PART_SCHEME="MBR" FAT_SIZE="2m" FAT_TYPE="12" Modified: head/release/arm/CUBIEBOARD.conf == --- head/release/arm/CUBIEBOARD.confWed Sep 13 14:27:13 2017 (r323541) +++ head/release/arm/CUBIEBOARD.confWed Sep 13 14:30:30 2017 (r323542) @@ -9,7 +9,7 @@ EMBEDDED_TARGET_ARCH="armv6" EMBEDDEDPORTS="sysutils/u-boot-cubieboard" KERNEL="ALLWINNER_UP" WORLD_FLAGS="${WORLD_FLAGS} UBLDR_LOADADDR=0x4200" -IMAGE_SIZE="1G" +IMAGE_SIZE="1536M" PART_SCHEME="MBR" FAT_SIZE="32m -b 1m" FAT_TYPE="16" Modified: head/release/arm/GUMSTIX.conf == --- head/release/arm/GUMSTIX.conf Wed Sep 13 14:27:13 2017 (r323541) +++ head/release/arm/GUMSTIX.conf Wed Sep 13 14:30:30 2017 (r323542) @@ -9,7 +9,7 @@ EMBEDDED_TARGET_ARCH="armv6" EMBEDDEDPORTS="sysutils/u-boot-duovero" KERNEL="GUMSTIX" WORLD_FLAGS="${WORLD_FLAGS} UBLDR_LOADADDR=0x8800" -IMAGE_SIZE="1G" +IMAGE_SIZE="1536M" PART_SCHEME="MBR" FAT_SIZE="2m" FAT_TYPE="12" Modified: head/release/arm/PANDABOARD.conf == --- head/release/arm/PANDABOARD.confWed Sep 13 14:27:13 2017 (r323541) +++ head/release/arm/PANDABOARD.confWed Sep 13 14:30:30 2017 (r323542) @@ -9,7 +9,7 @@ EMBEDDED_TARGET_ARCH="armv6" EMBEDDEDPORTS="sysutils/u-boot-pandaboard" KERNEL="PANDABOARD" WORLD_FLAGS="${WORLD_FLAGS} UBLDR_LOADADDR=0x8800" -IMAGE_SIZE="1G" +IMAGE_SIZE="1536M" PART_SCHEME="MBR" FAT_SIZE="2m" FAT_TYPE="12" Modified: head/release/arm/RPI-B.conf == --- head/release/arm/RPI-B.conf Wed Sep 13 14:27:13 2017(r323541) +++ head/release/arm/RPI-B.conf Wed Sep 13 14:30:30 2017(r323542) @@ -9,7 +9,7 @@ EMBEDDED_TARGET_ARCH="armv6" EMBEDDEDPORTS="sysutils/u-boot-rpi" KERNEL="RPI-B" WORLD_FLAGS="${WORLD_FLAGS} UBLDR_LOADADDR=0x200" -IMAGE_SIZE="1G" +IMAGE_SIZE="1536M" PART_SCHEME="MBR" FAT_SIZE="17m" FAT_TYPE="16" Modified: head/release/arm64/RPI3.conf == --- head/release/arm64/RPI3.confWed Sep 13 14:27:13 2017 (r323541) +++ head/release/arm64/RPI3.confWed Sep 13 14:30:30 2017 (r323542) @@ -10,7 +10,7 @@ EMBEDDED_TARGET_ARCH="aarch64" EMBEDDEDPORTS="sysutils/u-boot-rpi3 security/ca_root_nss" KERNEL="GENERIC" WORLD_FLAGS="${WORLD_FLAGS} UBLDR_LOADADDR=0x4200" -IMAGE_SIZE="2G" +IMAGE_SIZE="2560M" PART_SCHEME="MBR" FAT_SIZE="50m -b 1m" FAT_TYPE="16" ___ 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: r323541 - head/sys/boot/efi/libefi
Author: tsoome Date: Wed Sep 13 14:27:13 2017 New Revision: 323541 URL: https://svnweb.freebsd.org/changeset/base/323541 Log: libefi: efipart_realstrategy rsize pointer may be NULL Need to check rsize before dereferencing it. Modified: head/sys/boot/efi/libefi/efipart.c Modified: head/sys/boot/efi/libefi/efipart.c == --- head/sys/boot/efi/libefi/efipart.c Wed Sep 13 13:03:29 2017 (r323540) +++ head/sys/boot/efi/libefi/efipart.c Wed Sep 13 14:27:13 2017 (r323541) @@ -924,7 +924,8 @@ efipart_realstrategy(void *devdata, int rw, daddr_t bl readstart = off / blkio->Media->BlockSize; if (diskend <= readstart) { - *rsize = 0; + if (rsize != NULL) + *rsize = 0; return (EIO); } ___ 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: r323516 - in head/sys: dev/bnxt dev/e1000 kern net sys
In message, Warner Losh writes: > --001a1141f15ac444250559123c56 > Content-Type: text/plain; charset="UTF-8" > > On Wed, Sep 13, 2017 at 1:11 AM, Cy Schubert > wrote: > > > In message <4d5ae475-5a38-4429-8b71-dbecdfb0a...@gmail.com>, Ngie Cooper > > writes > > : > > > > > > > On Sep 12, 2017, at 18:18, Stephen Hurd wrote: > > > > > > > > Author: shurd > > > > Date: Wed Sep 13 01:18:42 2017 > > > > New Revision: 323516 > > > > URL: https://svnweb.freebsd.org/changeset/base/323516 > > > > > > > > Log: > > > > Roll up iflib commits from github. This pulls in most of the work > > done > > > > by Matt Macy as well as other changes which he has accepted via pull > > > > request to his github repo at https://github.com/mattmacy/networking/ > > > > > > > > This should bring -CURRENT and the github repo into close enough sync > > to > > > > allow small feature branches rather than a large chain of > > interdependant > > > > patches being developed out of tree. The reset of the synchronization > > > > should be able to be completed on github by splitting the remaining > > > > changes that are not yet ready into short feature branches for later > > > > review as smaller commits. > > > > > > > > Here is a summary of changes included in this patch: > > > > > > > > 1) More checks when INVARIANTS are enabled for eariler problem > > > > detection > > > > 2) Group Task Queue cleanups > > > > - Fix use of duplicate shortdesc for gtaskqueue malloc type. > > > >Some interfaces such as memguard(9) use the short description to > > > >identify malloc types, so duplicates should be avoided. > > > > 3) Allow gtaskqueues to use ithreads in addition to taskqueues > > > > - In some cases, this can improve performance > > > > 4) Better logging when taskqgroup_attach*() fails to set interrupt > > > > affinity. > > > > 5) Do not start gtaskqueues until they're needed > > > > 6) Have mp_ring enqueue function enter the ABDICATED rather than BUSY > > > > state. This moves the TX to the gtaskq and allows processing to > > > > continue faster as well as make TX batching more likely. > > > > 7) Add an ift_txd_errata function to struct if_txrx. This allows > > > > drivers to inspect/modify mbufs before transmission. > > > > 8) Add a new IFLIB_NEED_ZERO_CSUM for drivers to indicate they need > > > > checksums zeroed for checksum offload to work. This avoids > > modifying > > > > packet data in the TX path when possible. > > > > 9) Use ithreads for iflib I/O instead of taskqueues > > > > 10) Clean up ioctl and support async ioctl functions > > > > 11) Prefetch two cachlines from each mbuf instead of one up to 128B. > > We > > > > often need to parse packet header info beyond 64B. > > > > 12) Fix potential memory corruption due to fence post error in > > > > bit_nclear() usage. > > > > 13) Improved hang detection and handling > > > > 14) If the packet is smaller than MTU, disable the TSO flags. > > > > This avoids extra packet parsing when not needed. > > > > 15) Move TCP header parsing inside the IS_TSO?() test. > > > > This avoids extra packet parsing when not needed. > > > > 16) Pass chains of mbufs that are not consumed by lro to if_input() > > > > rather call if_input() for each mbuf. > > > > 17) Re-arrange packet header loads to get as much work as possible > > done > > > > before a cache stall. > > > > 18) Lock the context when calling IFDI_ATTACH_PRE()/IFDI_ATTACH_ > > POST()/ > > > > IFDI_DETACH(); > > > > 19) Attempt to distribute RX/TX tasks across cores more sensibly, > > > > especially when RX and TX share an interrupt. RX will attempt to > > > > take the first threads on a core, and TX will attempt to take > > > > successive threads. > > > > 20) Allow iflib_softirq_alloc_generic() to request affinity to the > > same > > > > cpus an interrupt has affinity with. This allows TX queues to > > > > ensure they are serviced by the socket the device is on. > > > > 21) Add new iflib sysctls to net.iflib: > > > > - timer_int - interval at which to run per-queue timers in ticks > > > > - force_busdma > > > > 22) Add new per-device iflib sysctls to dev.X.Y.iflib > > > > - rx_budget allows tuning the batch size on the RX path > > > > - watchdog_events Count of watchdog events seen since load > > > > 23) Fix error where netmap_rxq_init() could get called before > > > > IFDI_INIT() > > > > 24) e1000: Fixed version of r323008: post-cold sleep instead of DELAY > > > > when waiting for firmware > > > > - After interrupts are enabled, convert all waits to sleeps > > > > - Eliminates e1000 software/firmware synchronization busy waits > > after > > > >startup > > > > 25) e1000: Remove special case for budget=1 in
Re: svn commit: r323516 - in head/sys: dev/bnxt dev/e1000 kern net sys
On Wed, Sep 13, 2017 at 1:11 AM, Cy Schubertwrote: > In message <4d5ae475-5a38-4429-8b71-dbecdfb0a...@gmail.com>, Ngie Cooper > writes > : > > > > > On Sep 12, 2017, at 18:18, Stephen Hurd wrote: > > > > > > Author: shurd > > > Date: Wed Sep 13 01:18:42 2017 > > > New Revision: 323516 > > > URL: https://svnweb.freebsd.org/changeset/base/323516 > > > > > > Log: > > > Roll up iflib commits from github. This pulls in most of the work > done > > > by Matt Macy as well as other changes which he has accepted via pull > > > request to his github repo at https://github.com/mattmacy/networking/ > > > > > > This should bring -CURRENT and the github repo into close enough sync > to > > > allow small feature branches rather than a large chain of > interdependant > > > patches being developed out of tree. The reset of the synchronization > > > should be able to be completed on github by splitting the remaining > > > changes that are not yet ready into short feature branches for later > > > review as smaller commits. > > > > > > Here is a summary of changes included in this patch: > > > > > > 1) More checks when INVARIANTS are enabled for eariler problem > > > detection > > > 2) Group Task Queue cleanups > > > - Fix use of duplicate shortdesc for gtaskqueue malloc type. > > >Some interfaces such as memguard(9) use the short description to > > >identify malloc types, so duplicates should be avoided. > > > 3) Allow gtaskqueues to use ithreads in addition to taskqueues > > > - In some cases, this can improve performance > > > 4) Better logging when taskqgroup_attach*() fails to set interrupt > > > affinity. > > > 5) Do not start gtaskqueues until they're needed > > > 6) Have mp_ring enqueue function enter the ABDICATED rather than BUSY > > > state. This moves the TX to the gtaskq and allows processing to > > > continue faster as well as make TX batching more likely. > > > 7) Add an ift_txd_errata function to struct if_txrx. This allows > > > drivers to inspect/modify mbufs before transmission. > > > 8) Add a new IFLIB_NEED_ZERO_CSUM for drivers to indicate they need > > > checksums zeroed for checksum offload to work. This avoids > modifying > > > packet data in the TX path when possible. > > > 9) Use ithreads for iflib I/O instead of taskqueues > > > 10) Clean up ioctl and support async ioctl functions > > > 11) Prefetch two cachlines from each mbuf instead of one up to 128B. > We > > > often need to parse packet header info beyond 64B. > > > 12) Fix potential memory corruption due to fence post error in > > > bit_nclear() usage. > > > 13) Improved hang detection and handling > > > 14) If the packet is smaller than MTU, disable the TSO flags. > > > This avoids extra packet parsing when not needed. > > > 15) Move TCP header parsing inside the IS_TSO?() test. > > > This avoids extra packet parsing when not needed. > > > 16) Pass chains of mbufs that are not consumed by lro to if_input() > > > rather call if_input() for each mbuf. > > > 17) Re-arrange packet header loads to get as much work as possible > done > > > before a cache stall. > > > 18) Lock the context when calling IFDI_ATTACH_PRE()/IFDI_ATTACH_ > POST()/ > > > IFDI_DETACH(); > > > 19) Attempt to distribute RX/TX tasks across cores more sensibly, > > > especially when RX and TX share an interrupt. RX will attempt to > > > take the first threads on a core, and TX will attempt to take > > > successive threads. > > > 20) Allow iflib_softirq_alloc_generic() to request affinity to the > same > > > cpus an interrupt has affinity with. This allows TX queues to > > > ensure they are serviced by the socket the device is on. > > > 21) Add new iflib sysctls to net.iflib: > > > - timer_int - interval at which to run per-queue timers in ticks > > > - force_busdma > > > 22) Add new per-device iflib sysctls to dev.X.Y.iflib > > > - rx_budget allows tuning the batch size on the RX path > > > - watchdog_events Count of watchdog events seen since load > > > 23) Fix error where netmap_rxq_init() could get called before > > > IFDI_INIT() > > > 24) e1000: Fixed version of r323008: post-cold sleep instead of DELAY > > > when waiting for firmware > > > - After interrupts are enabled, convert all waits to sleeps > > > - Eliminates e1000 software/firmware synchronization busy waits > after > > >startup > > > 25) e1000: Remove special case for budget=1 in em_txrx.c > > > - Premature optimization which may actually be incorrect with > > >multi-segment packets > > > 26) e1000: Split out TX interrupt rather than share an interrupt for > > > RX and TX. > > > - Allows better performance by keeping RX and TX paths separate > > > 27) e1000: Separate igb from em code where suitable > > > Much easier to
svn commit: r323540 - head/sys/dev/jedec_ts
Author: avg Date: Wed Sep 13 13:03:29 2017 New Revision: 323540 URL: https://svnweb.freebsd.org/changeset/base/323540 Log: jedec_ts: add many more devices from various vendors The new IDs are taken from the hardware to which I have access and from open datasheets. Also, the hardware probing is moved to the device probe method. Reviewed by: rpokala MFC after:1 week Differential Revision: https://reviews.freebsd.org/D11730 Modified: head/sys/dev/jedec_ts/jedec_ts.c Modified: head/sys/dev/jedec_ts/jedec_ts.c == --- head/sys/dev/jedec_ts/jedec_ts.cWed Sep 13 12:16:27 2017 (r323539) +++ head/sys/dev/jedec_ts/jedec_ts.cWed Sep 13 13:03:29 2017 (r323540) @@ -42,6 +42,116 @@ __FBSDID("$FreeBSD$"); /* + * General device identification notes. + * + * The JEDEC TSE2004av specification defines the device ID that all compliant + * devices should use, but very few do in practice. Maybe that's because + * TSE2002av was rather vague about that. + * Rare examples are IDT TSE2004GB2B0 and Atmel AT30TSE004A, not sure if + * they are TSE2004av compliant by design or by accident. + * Also, the specification mandates that PCI SIG manufacturer IDs are to be + * used, but in practice the JEDEC manufacturer IDs are often used. + */ + +const struct ts_dev { + uint16_tvendor_id; + uint8_t device_id; + const char *description; +} known_devices[] = { + /* +* Analog Devices ADT7408. +* http://www.analog.com/media/en/technical-documentation/data-sheets/ADT7408.pdf +*/ + { 0x11d4, 0x08, "Analog Devices DIMM temperature sensor" }, + + /* +* Atmel AT30TSE002B, AT30TSE004A. +* http://www.atmel.com/images/doc8711.pdf +* http://www.atmel.com/images/atmel-8868-dts-at30tse004a-datasheet.pdf +* Note how one chip uses the JEDEC Manufacturer ID while the other +* uses the PCI SIG one. +*/ + { 0x001f, 0x82, "Atmel DIMM temperature sensor" }, + { 0x1114, 0x22, "Atmel DIMM temperature sensor" }, + + /* +* Integrated Device Technology (IDT) TS3000B3A, TSE2002B3C, +* TSE2004GB2B0 chips and their variants. +* http://www.idt.com/sites/default/files/documents/IDT_TSE2002B3C_DST_20100512_120303152056.pdf +* http://www.idt.com/sites/default/files/documents/IDT_TS3000B3A_DST_20101129_120303152013.pdf +* https://www.idt.com/document/dst/tse2004gb2b0-datasheet +*/ + { 0x00b3, 0x29, "IDT DIMM temperature sensor" }, + { 0x00b3, 0x22, "IDT DIMM temperature sensor" }, + + /* +* Maxim Integrated MAX6604. +* Different document revisions specify different Device IDs. +* Document 19-3837; Rev 0; 10/05 has 0x3e00 while +* 19-3837; Rev 3; 10/11 has 0x5400. +* http://datasheets.maximintegrated.com/en/ds/MAX6604.pdf +*/ + { 0x004d, 0x3e, "Maxim Integrated DIMM temperature sensor" }, + { 0x004d, 0x54, "Maxim Integrated DIMM temperature sensor" }, + + /* +* Microchip Technology MCP9805, MCP9843, MCP98242, MCP98243 +* and their variants. +* http://ww1.microchip.com/downloads/en/DeviceDoc/21977b.pdf +* Microchip Technology EMC1501. +* http://ww1.microchip.com/downloads/en/DeviceDoc/1605A.pdf +*/ + { 0x0054, 0x00, "Microchip DIMM temperature sensor" }, + { 0x0054, 0x20, "Microchip DIMM temperature sensor" }, + { 0x0054, 0x21, "Microchip DIMM temperature sensor" }, + { 0x1055, 0x08, "Microchip DIMM temperature sensor" }, + + /* +* NXP Semiconductors SE97 and SE98. +* http://www.nxp.com/docs/en/data-sheet/SE97B.pdf +*/ + { 0x1131, 0xa1, "NXP DIMM temperature sensor" }, + { 0x1131, 0xa2, "NXP DIMM temperature sensor" }, + + /* +* ON Semiconductor CAT34TS02 revisions B and C, CAT6095 and compatible. +* https://www.onsemi.com/pub/Collateral/CAT34TS02-D.PDF +* http://www.onsemi.com/pub/Collateral/CAT6095-D.PDF +*/ + { 0x1b09, 0x08, "ON Semiconductor DIMM temperature sensor" }, + { 0x1b09, 0x0a, "ON Semiconductor DIMM temperature sensor" }, + + /* +* ST[Microelectronics] STTS424E02, STTS2002 and others. +* http://www.st.com/resource/en/datasheet/cd00157558.pdf +* http://www.st.com/resource/en/datasheet/stts2002.pdf +*/ + { 0x104a, 0x00, "ST DIMM temperature sensor" }, + { 0x104a, 0x03, "ST DIMM temperature sensor" }, +}; + +static const char * +ts_match_device(uint16_t vid, uint16_t did) +{ + const struct ts_dev *d; + int i; + + for (i = 0; i < nitems(known_devices); i++) { + d = _devices[i]; + if (vid == d->vendor_id && (did >> 8) == d->device_id) + return (d->description); + } + +
svn commit: r323539 - head/sys/modules
Author: emaste Date: Wed Sep 13 12:16:27 2017 New Revision: 323539 URL: https://svnweb.freebsd.org/changeset/base/323539 Log: qlnx: exclude if WITHOUT_SOURCELESS_UCODE set PR: 77 Submitted by: Fabian Keil Obtained from:ElectroBSD MFC after:1 week Modified: head/sys/modules/Makefile Modified: head/sys/modules/Makefile == --- head/sys/modules/Makefile Wed Sep 13 11:29:48 2017(r323538) +++ head/sys/modules/Makefile Wed Sep 13 12:16:27 2017(r323539) @@ -718,8 +718,8 @@ _qlxge= qlxge _qlxgb=qlxgb .if ${MK_SOURCELESS_UCODE} != "no" _qlxgbe= qlxgbe -.endif _qlnx= qlnx +.endif _sfxge=sfxge _sgx= sgx _sgx_linux=sgx_linux ___ 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: r323532 - in head/sys: amd64/conf arm/conf
Author: kibab Date: Wed Sep 13 10:56:02 2017 New Revision: 323532 URL: https://svnweb.freebsd.org/changeset/base/323532 Log: Add MMCCAM-enabled kernel config for IMX6, reduce debug noice in MMCCAM kernels CAM_DEBUG_TRACE results in way too much debug output than needed now. When debugging, it's always possible to turn on trace level using camcontrol. Approved by: imp (mentor) Differential Revision:https://reviews.freebsd.org/D12110 Added: head/sys/amd64/conf/GENERIC-MMCCAM - copied, changed from r323530, head/sys/amd64/conf/MMCCAM head/sys/arm/conf/IMX6-MMCCAM (contents, props changed) Deleted: head/sys/amd64/conf/MMCCAM Modified: head/sys/arm/conf/BEAGLEBONE-MMCCAM Copied and modified: head/sys/amd64/conf/GENERIC-MMCCAM (from r323530, head/sys/amd64/conf/MMCCAM) == --- head/sys/amd64/conf/MMCCAM Wed Sep 13 10:45:49 2017(r323530, copy source) +++ head/sys/amd64/conf/GENERIC-MMCCAM Wed Sep 13 10:56:02 2017 (r323532) @@ -4,7 +4,7 @@ include MINIMAL -ident MMCCAM +ident GENERIC-MMCCAM # Access GPT-formatted and labeled root volume options GEOM_PART_GPT @@ -28,9 +28,9 @@ devicevirtio_balloon # VirtIO Memory Balloon device device pass device scbus device da -device mmccam -optionsMMCCAM +options MMCCAM + # Add CAMDEBUG stuff -options CAMDEBUG -options CAM_DEBUG_FLAGS=(CAM_DEBUG_INFO|CAM_DEBUG_PROBE|CAM_DEBUG_PERIPH|CAM_DEBUG_TRACE) +options CAMDEBUG +options CAM_DEBUG_FLAGS=(CAM_DEBUG_INFO|CAM_DEBUG_PROBE|CAM_DEBUG_PERIPH) Modified: head/sys/arm/conf/BEAGLEBONE-MMCCAM == --- head/sys/arm/conf/BEAGLEBONE-MMCCAM Wed Sep 13 10:54:56 2017 (r323531) +++ head/sys/arm/conf/BEAGLEBONE-MMCCAM Wed Sep 13 10:56:02 2017 (r323532) @@ -6,16 +6,18 @@ # # $FreeBSD$ +#NO_UNIVERSE + includeBEAGLEBONE +optionsMMCCAM + # Add CAMDEBUG stuff optionsCAMDEBUG -options CAM_DEBUG_FLAGS=(CAM_DEBUG_INFO|CAM_DEBUG_PROBE|CAM_DEBUG_PERIPH|CAM_DEBUG_TRACE) +options CAM_DEBUG_FLAGS=(CAM_DEBUG_INFO|CAM_DEBUG_PROBE|CAM_DEBUG_PERIPH) # pass(4) device device pass -device mmccam -optionsMMCCAM nodevice mmc nodevice mmcsd Added: head/sys/arm/conf/IMX6-MMCCAM == --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm/conf/IMX6-MMCCAM Wed Sep 13 10:56:02 2017 (r323532) @@ -0,0 +1,23 @@ +# +# IMX6-MMCCAM +# +# Custom kernel for IMX6 plus MMCCAM as opposed to the prior MMC stack. It is +# present to keep it building in tree since it wouldn't work in LINT. +# +# $FreeBSD$ + +#NO_UNIVERSE + +includeIMX6 + +optionsMMCCAM + +# Add CAMDEBUG stuff +optionsCAMDEBUG +options CAM_DEBUG_FLAGS=(CAM_DEBUG_INFO|CAM_DEBUG_PROBE|CAM_DEBUG_PERIPH) + +# pass(4) device +device pass + +nodevice mmc +nodevice mmcsd ___ 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: r323528 - head/cddl/contrib/opensolaris/lib/libzpool/common
Author: avg Date: Wed Sep 13 10:34:31 2017 New Revision: 323528 URL: https://svnweb.freebsd.org/changeset/base/323528 Log: MFV r323527: 5815 libzpool's panic function doesn't set global panicstr, ::status not as useful illumos/illumos-gate@fae6347731c9d3f46b26338313b0422927f29cf6 https://github.com/illumos/illumos-gate/commit/fae6347731c9d3f46b26338313b0422927f29cf6 https://www.illumos.org/issues/5815 When panic() is called from within ztest, the mdb ::status command isn't as useful as it could be since the global panicstr variable isn't updated. We should modify the function to make sure panicstr is set, so ::status can present the error message just like it does on a failed assertion. Reviewed by: Matthew AhrensReviewed by: Sebastien Roy Reviewed by: Gordon Ross Reviewed by: Rich Lowe Approved by: Dan McDonald Author: Prakash Surya MFC after:4 weeks Modified: head/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c Directory Properties: head/cddl/contrib/opensolaris/ (props changed) Modified: head/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c == --- head/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c Wed Sep 13 10:33:09 2017(r323527) +++ head/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c Wed Sep 13 10:34:31 2017(r323528) @@ -735,11 +735,9 @@ static char ce_suffix[CE_IGNORE][2] = { "", "\n", "\n" void vpanic(const char *fmt, va_list adx) { - (void) fprintf(stderr, "error: "); - (void) vfprintf(stderr, fmt, adx); - (void) fprintf(stderr, "\n"); - - abort();/* think of it as a "user-level crash dump" */ + char buf[512]; + (void) vsnprintf(buf, 512, fmt, adx); + assfail(buf, NULL, 0); } 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"
svn commit: r323525 - head/cddl/contrib/opensolaris/lib/libzfs/common
Author: avg Date: Wed Sep 13 10:23:55 2017 New Revision: 323525 URL: https://svnweb.freebsd.org/changeset/base/323525 Log: MFV r323523: 8331 zfs_unshare returns wrong error code for smb unshare failure illumos/illumos-gate@4f4378cc54b7deec3a35c529dc397dbdc325b4bb https://github.com/illumos/illumos-gate/commit/4f4378cc54b7deec3a35c529dc397dbdc325b4bb https://www.illumos.org/issues/8331 zfs_unshare returns EZFS_UNSHARENFSFAILED on error for all share types. Reviewed by: Marcel TelkaReviewed by: Toomas Soome Approved by: Dan McDonald Author: Andrew Stormont MFC after:4 weeks Modified: head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_mount.c Directory Properties: head/cddl/contrib/opensolaris/ (props changed) head/cddl/contrib/opensolaris/lib/libzfs/ (props changed) Modified: head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_mount.c == --- head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_mount.c Wed Sep 13 10:22:09 2017(r323524) +++ head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_mount.c Wed Sep 13 10:23:55 2017(r323525) @@ -24,6 +24,7 @@ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2014 by Delphix. All rights reserved. * Copyright 2016 Igor Kozhukhov + * Copyright 2017 RackTop Systems. */ /* @@ -88,7 +89,7 @@ zfs_share_type_t zfs_is_shared_proto(zfs_handle_t *, c zfs_share_proto_t); /* - * The share protocols table must be in the same order as the zfs_share_prot_t + * The share protocols table must be in the same order as the zfs_share_proto_t * enum in libzfs_impl.h */ typedef struct { @@ -873,7 +874,7 @@ unshare_one(libzfs_handle_t *hdl, const char *name, co /* make sure libshare initialized */ if ((err = zfs_init_libshare(hdl, SA_INIT_SHARE_API)) != SA_OK) { free(mntpt);/* don't need the copy anymore */ - return (zfs_error_fmt(hdl, EZFS_UNSHARENFSFAILED, + return (zfs_error_fmt(hdl, proto_table[proto].p_unshare_err, dgettext(TEXT_DOMAIN, "cannot unshare '%s': %s"), name, _sa_errorstr(err))); } @@ -884,12 +885,13 @@ unshare_one(libzfs_handle_t *hdl, const char *name, co if (share != NULL) { err = zfs_sa_disable_share(share, proto_table[proto].p_name); if (err != SA_OK) { - return (zfs_error_fmt(hdl, EZFS_UNSHARENFSFAILED, + return (zfs_error_fmt(hdl, + proto_table[proto].p_unshare_err, dgettext(TEXT_DOMAIN, "cannot unshare '%s': %s"), name, _sa_errorstr(err))); } } else { - return (zfs_error_fmt(hdl, EZFS_UNSHARENFSFAILED, + return (zfs_error_fmt(hdl, proto_table[proto].p_unshare_err, dgettext(TEXT_DOMAIN, "cannot unshare '%s': not found"), name)); } ___ 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: r323524 - head/cddl/contrib/opensolaris/lib/libzfs/common
Author: avg Date: Wed Sep 13 10:22:09 2017 New Revision: 323524 URL: https://svnweb.freebsd.org/changeset/base/323524 Log: MFV r316932: 6280 libzfs: unshare_one() could fail with EZFS_SHARENFSFAILED illumos/illumos-gate@d1672efb6feac57c42788e27f739dfa3c4f3baf7 https://github.com/illumos/illumos-gate/commit/d1672efb6feac57c42788e27f739dfa3c4f3baf7 https://www.illumos.org/issues/6280 The unshare_one() in libzfs could fail with EZFS_SHARENFSFAILED at line 834 here: 831/* make sure libshare initialized */ 832if ((err = zfs_init_libshare(hdl, SA_INIT_SHARE_API)) != SA_OK) { 833free(mntpt);/* don't need the copy anymore */ 834return (zfs_error_fmt(hdl, EZFS_SHARENFSFAILED, 835dgettext(TEXT_DOMAIN, "cannot unshare '%s': %s"), 836name, _sa_errorstr(err))); 837} The correct error should be EZFS_UNSHARENFSFAILED instead. Reviewed by: Toomas SoomeReviewed by: Dan McDonald Reviewed by: Matthew Ahrens Approved by: Gordon Ross Author: Marcel Telka MFC after:4 weeks Modified: head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_mount.c Directory Properties: head/cddl/contrib/opensolaris/ (props changed) head/cddl/contrib/opensolaris/lib/libzfs/ (props changed) Modified: head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_mount.c == --- head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_mount.c Wed Sep 13 10:17:14 2017(r323523) +++ head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_mount.c Wed Sep 13 10:22:09 2017(r323524) @@ -20,6 +20,7 @@ */ /* + * Copyright 2015 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2014 by Delphix. All rights reserved. * Copyright 2016 Igor Kozhukhov @@ -872,7 +873,7 @@ unshare_one(libzfs_handle_t *hdl, const char *name, co /* make sure libshare initialized */ if ((err = zfs_init_libshare(hdl, SA_INIT_SHARE_API)) != SA_OK) { free(mntpt);/* don't need the copy anymore */ - return (zfs_error_fmt(hdl, EZFS_SHARENFSFAILED, + return (zfs_error_fmt(hdl, EZFS_UNSHARENFSFAILED, dgettext(TEXT_DOMAIN, "cannot unshare '%s': %s"), name, _sa_errorstr(err))); } ___ 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: r323516 - in head/sys: dev/bnxt dev/e1000 kern net sys
In message <4d5ae475-5a38-4429-8b71-dbecdfb0a...@gmail.com>, Ngie Cooper writes : > > > On Sep 12, 2017, at 18:18, Stephen Hurdwrote: > > > > Author: shurd > > Date: Wed Sep 13 01:18:42 2017 > > New Revision: 323516 > > URL: https://svnweb.freebsd.org/changeset/base/323516 > > > > Log: > > Roll up iflib commits from github. This pulls in most of the work done > > by Matt Macy as well as other changes which he has accepted via pull > > request to his github repo at https://github.com/mattmacy/networking/ > > > > This should bring -CURRENT and the github repo into close enough sync to > > allow small feature branches rather than a large chain of interdependant > > patches being developed out of tree. The reset of the synchronization > > should be able to be completed on github by splitting the remaining > > changes that are not yet ready into short feature branches for later > > review as smaller commits. > > > > Here is a summary of changes included in this patch: > > > > 1) More checks when INVARIANTS are enabled for eariler problem > > detection > > 2) Group Task Queue cleanups > > - Fix use of duplicate shortdesc for gtaskqueue malloc type. > >Some interfaces such as memguard(9) use the short description to > >identify malloc types, so duplicates should be avoided. > > 3) Allow gtaskqueues to use ithreads in addition to taskqueues > > - In some cases, this can improve performance > > 4) Better logging when taskqgroup_attach*() fails to set interrupt > > affinity. > > 5) Do not start gtaskqueues until they're needed > > 6) Have mp_ring enqueue function enter the ABDICATED rather than BUSY > > state. This moves the TX to the gtaskq and allows processing to > > continue faster as well as make TX batching more likely. > > 7) Add an ift_txd_errata function to struct if_txrx. This allows > > drivers to inspect/modify mbufs before transmission. > > 8) Add a new IFLIB_NEED_ZERO_CSUM for drivers to indicate they need > > checksums zeroed for checksum offload to work. This avoids modifying > > packet data in the TX path when possible. > > 9) Use ithreads for iflib I/O instead of taskqueues > > 10) Clean up ioctl and support async ioctl functions > > 11) Prefetch two cachlines from each mbuf instead of one up to 128B. We > > often need to parse packet header info beyond 64B. > > 12) Fix potential memory corruption due to fence post error in > > bit_nclear() usage. > > 13) Improved hang detection and handling > > 14) If the packet is smaller than MTU, disable the TSO flags. > > This avoids extra packet parsing when not needed. > > 15) Move TCP header parsing inside the IS_TSO?() test. > > This avoids extra packet parsing when not needed. > > 16) Pass chains of mbufs that are not consumed by lro to if_input() > > rather call if_input() for each mbuf. > > 17) Re-arrange packet header loads to get as much work as possible done > > before a cache stall. > > 18) Lock the context when calling IFDI_ATTACH_PRE()/IFDI_ATTACH_POST()/ > > IFDI_DETACH(); > > 19) Attempt to distribute RX/TX tasks across cores more sensibly, > > especially when RX and TX share an interrupt. RX will attempt to > > take the first threads on a core, and TX will attempt to take > > successive threads. > > 20) Allow iflib_softirq_alloc_generic() to request affinity to the same > > cpus an interrupt has affinity with. This allows TX queues to > > ensure they are serviced by the socket the device is on. > > 21) Add new iflib sysctls to net.iflib: > > - timer_int - interval at which to run per-queue timers in ticks > > - force_busdma > > 22) Add new per-device iflib sysctls to dev.X.Y.iflib > > - rx_budget allows tuning the batch size on the RX path > > - watchdog_events Count of watchdog events seen since load > > 23) Fix error where netmap_rxq_init() could get called before > > IFDI_INIT() > > 24) e1000: Fixed version of r323008: post-cold sleep instead of DELAY > > when waiting for firmware > > - After interrupts are enabled, convert all waits to sleeps > > - Eliminates e1000 software/firmware synchronization busy waits after > >startup > > 25) e1000: Remove special case for budget=1 in em_txrx.c > > - Premature optimization which may actually be incorrect with > >multi-segment packets > > 26) e1000: Split out TX interrupt rather than share an interrupt for > > RX and TX. > > - Allows better performance by keeping RX and TX paths separate > > 27) e1000: Separate igb from em code where suitable > > Much easier to understand separate functions and "if (is_igb)" than > > previous tests like "if (reg_icr & (E1000_ICR_RXSEQ | E1000_ICR_LSC))" > > > > #blamebruno > > > > Reviewed by:sbruno > > Approved by:sbruno (mentor) > > Sponsored by:Limelight Networks > >
svn commit: r323522 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
Author: avg Date: Wed Sep 13 07:09:58 2017 New Revision: 323522 URL: https://svnweb.freebsd.org/changeset/base/323522 Log: slightly simplify zfs_vptocnp It's not necessary to look up the parent's ID to check if the node is the root node of the filesystem. MFC after:2 weeks Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c == --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Wed Sep 13 06:57:52 2017(r323521) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Wed Sep 13 07:09:58 2017(r323522) @@ -5925,7 +5925,6 @@ zfs_vptocnp(struct vop_vptocnp_args *ap) vnode_t *vp = ap->a_vp;; zfsvfs_t *zfsvfs = vp->v_vfsp->vfs_data; znode_t *zp = VTOZ(vp); - uint64_t parent; int ltype; int error; @@ -5936,13 +5935,7 @@ zfs_vptocnp(struct vop_vptocnp_args *ap) * If we are a snapshot mounted under .zfs, run the operation * on the covered vnode. */ - if ((error = sa_lookup(zp->z_sa_hdl, - SA_ZPL_PARENT(zfsvfs), , sizeof (parent))) != 0) { - ZFS_EXIT(zfsvfs); - return (error); - } - - if (zp->z_id != parent || zfsvfs->z_parent == zfsvfs) { + if (zp->z_id != zfsvfs->z_root || zfsvfs->z_parent == zfsvfs) { char name[MAXNAMLEN + 1]; znode_t *dzp; size_t len; ___ 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: r323521 - head/usr.bin/sockstat
Author: tuexen Date: Wed Sep 13 06:57:52 2017 New Revision: 323521 URL: https://svnweb.freebsd.org/changeset/base/323521 Log: Add a command line option for using a wider field for displaying addresses. This allows the table to be consistent when IPv6 addresses have to be printed. While there, document the -v option in the man page. Sponsored by: Netflix, Inc. Modified: head/usr.bin/sockstat/sockstat.1 head/usr.bin/sockstat/sockstat.c Modified: head/usr.bin/sockstat/sockstat.1 == --- head/usr.bin/sockstat/sockstat.1Wed Sep 13 06:07:02 2017 (r323520) +++ head/usr.bin/sockstat/sockstat.1Wed Sep 13 06:57:52 2017 (r323521) @@ -35,7 +35,7 @@ .Nd list open sockets .Sh SYNOPSIS .Nm -.Op Fl 46cLlSsUu +.Op Fl 46cLlSsUuvw .Op Fl j Ar jid .Op Fl p Ar ports .Op Fl P Ar protocols @@ -97,6 +97,10 @@ Show .Dv AF_LOCAL .Pq Ux sockets. +.It Fl v +Verbose mode. +.It Fl w +Use wider field size for displaying addresses. .El .Pp If neither Modified: head/usr.bin/sockstat/sockstat.c == --- head/usr.bin/sockstat/sockstat.cWed Sep 13 06:07:02 2017 (r323520) +++ head/usr.bin/sockstat/sockstat.cWed Sep 13 06:57:52 2017 (r323521) @@ -78,6 +78,7 @@ static int opt_s; /* Show protocol state if applicab static int opt_U; /* Show remote UDP encapsulation port number */ static int opt_u; /* Show Unix domain sockets */ static int opt_v; /* Verbose mode */ +static int opt_w; /* Wide print area for addresses */ /* * Default protocols to use if no -P was defined. @@ -1020,7 +1021,8 @@ displaysock(struct sock *s, int pos) faddr = s->faddr; first = 1; while (laddr != NULL || faddr != NULL) { - while (pos < 36) + offset = 36; + while (pos < offset) pos += xprintf(" "); switch (s->family) { case AF_INET: @@ -1030,10 +1032,12 @@ displaysock(struct sock *s, int pos) if (s->family == AF_INET6 && pos >= 58) pos += xprintf(" "); } - while (pos < 58) + offset += opt_w ? 46 : 22; + while (pos < offset) pos += xprintf(" "); if (faddr != NULL) pos += printaddr(>address); + offset += opt_w ? 46 : 22; break; case AF_UNIX: if ((laddr == NULL) || (faddr == NULL)) @@ -1048,6 +1052,7 @@ displaysock(struct sock *s, int pos) p = *(void **)&(faddr->address); if (p == NULL) { pos += xprintf("(not connected)"); + offset += opt_w ? 92 : 44; break; } pos += xprintf("-> "); @@ -1065,11 +1070,11 @@ displaysock(struct sock *s, int pos) pos += xprintf("??"); else pos += printaddr(_tmp->laddr->address); + offset += opt_w ? 92 : 44; break; default: abort(); } - offset = 80; if (opt_U) { if (faddr != NULL && s->proto == IPPROTO_SCTP && @@ -1147,9 +1152,10 @@ display(void) struct sock *s; int hash, n, pos; - printf("%-8s %-10s %-5s %-2s %-6s %-21s %-21s", + printf("%-8s %-10s %-5s %-2s %-6s %-*s %-*s", "USER", "COMMAND", "PID", "FD", "PROTO", - "LOCAL ADDRESS", "FOREIGN ADDRESS"); + opt_w ? 45 : 21, "LOCAL ADDRESS", + opt_w ? 45 : 21, "FOREIGN ADDRESS"); if (opt_U) printf(" %-6s", "ENCAPS"); if (opt_s) { @@ -1228,7 +1234,7 @@ static void usage(void) { fprintf(stderr, - "usage: sockstat [-46cLlSsu] [-j jid] [-p ports] [-P protocols]\n"); + "usage: sockstat [-46cLlSsUuvw] [-j jid] [-p ports] [-P protocols]\n"); exit(1); } @@ -1239,7 +1245,7 @@ main(int argc, char *argv[]) int o, i; opt_j = -1; - while ((o = getopt(argc, argv, "46cj:Llp:P:SsUuv")) != -1) + while ((o = getopt(argc, argv, "46cj:Llp:P:SsUuvw")) != -1) switch (o) { case '4': opt_4 = 1; @@ -1279,6 +1285,9 @@ main(int argc, char *argv[]) break; case 'v': ++opt_v; + break; + case 'w': +
Re: svn commit: r323516 - in head/sys: dev/bnxt dev/e1000 kern net sys
> On Sep 12, 2017, at 18:18, Stephen Hurdwrote: > > Author: shurd > Date: Wed Sep 13 01:18:42 2017 > New Revision: 323516 > URL: https://svnweb.freebsd.org/changeset/base/323516 > > Log: > Roll up iflib commits from github. This pulls in most of the work done > by Matt Macy as well as other changes which he has accepted via pull > request to his github repo at https://github.com/mattmacy/networking/ > > This should bring -CURRENT and the github repo into close enough sync to > allow small feature branches rather than a large chain of interdependant > patches being developed out of tree. The reset of the synchronization > should be able to be completed on github by splitting the remaining > changes that are not yet ready into short feature branches for later > review as smaller commits. > > Here is a summary of changes included in this patch: > > 1) More checks when INVARIANTS are enabled for eariler problem > detection > 2) Group Task Queue cleanups > - Fix use of duplicate shortdesc for gtaskqueue malloc type. >Some interfaces such as memguard(9) use the short description to >identify malloc types, so duplicates should be avoided. > 3) Allow gtaskqueues to use ithreads in addition to taskqueues > - In some cases, this can improve performance > 4) Better logging when taskqgroup_attach*() fails to set interrupt > affinity. > 5) Do not start gtaskqueues until they're needed > 6) Have mp_ring enqueue function enter the ABDICATED rather than BUSY > state. This moves the TX to the gtaskq and allows processing to > continue faster as well as make TX batching more likely. > 7) Add an ift_txd_errata function to struct if_txrx. This allows > drivers to inspect/modify mbufs before transmission. > 8) Add a new IFLIB_NEED_ZERO_CSUM for drivers to indicate they need > checksums zeroed for checksum offload to work. This avoids modifying > packet data in the TX path when possible. > 9) Use ithreads for iflib I/O instead of taskqueues > 10) Clean up ioctl and support async ioctl functions > 11) Prefetch two cachlines from each mbuf instead of one up to 128B. We > often need to parse packet header info beyond 64B. > 12) Fix potential memory corruption due to fence post error in > bit_nclear() usage. > 13) Improved hang detection and handling > 14) If the packet is smaller than MTU, disable the TSO flags. > This avoids extra packet parsing when not needed. > 15) Move TCP header parsing inside the IS_TSO?() test. > This avoids extra packet parsing when not needed. > 16) Pass chains of mbufs that are not consumed by lro to if_input() > rather call if_input() for each mbuf. > 17) Re-arrange packet header loads to get as much work as possible done > before a cache stall. > 18) Lock the context when calling IFDI_ATTACH_PRE()/IFDI_ATTACH_POST()/ > IFDI_DETACH(); > 19) Attempt to distribute RX/TX tasks across cores more sensibly, > especially when RX and TX share an interrupt. RX will attempt to > take the first threads on a core, and TX will attempt to take > successive threads. > 20) Allow iflib_softirq_alloc_generic() to request affinity to the same > cpus an interrupt has affinity with. This allows TX queues to > ensure they are serviced by the socket the device is on. > 21) Add new iflib sysctls to net.iflib: > - timer_int - interval at which to run per-queue timers in ticks > - force_busdma > 22) Add new per-device iflib sysctls to dev.X.Y.iflib > - rx_budget allows tuning the batch size on the RX path > - watchdog_events Count of watchdog events seen since load > 23) Fix error where netmap_rxq_init() could get called before > IFDI_INIT() > 24) e1000: Fixed version of r323008: post-cold sleep instead of DELAY > when waiting for firmware > - After interrupts are enabled, convert all waits to sleeps > - Eliminates e1000 software/firmware synchronization busy waits after >startup > 25) e1000: Remove special case for budget=1 in em_txrx.c > - Premature optimization which may actually be incorrect with >multi-segment packets > 26) e1000: Split out TX interrupt rather than share an interrupt for > RX and TX. > - Allows better performance by keeping RX and TX paths separate > 27) e1000: Separate igb from em code where suitable > Much easier to understand separate functions and "if (is_igb)" than > previous tests like "if (reg_icr & (E1000_ICR_RXSEQ | E1000_ICR_LSC))" > > #blamebruno > > Reviewed by:sbruno > Approved by:sbruno (mentor) > Sponsored by:Limelight Networks > Differential Revision:https://reviews.freebsd.org/D12235 *gasps at the LoC count and number of changed drivers* Could someone please better break this up in the future..? Thank you, -Ngie ___ svn-src-head@freebsd.org
svn commit: r323520 - head/sys/dev/cxgbe
Author: np Date: Wed Sep 13 06:07:02 2017 New Revision: 323520 URL: https://svnweb.freebsd.org/changeset/base/323520 Log: cxgbe(4): Ignore capabilities that depend on TOE when the firmware reports TOE is not available. MFC after:1 week Sponsored by: Chelsio Communications Modified: head/sys/dev/cxgbe/t4_main.c Modified: head/sys/dev/cxgbe/t4_main.c == --- head/sys/dev/cxgbe/t4_main.cWed Sep 13 04:32:23 2017 (r323519) +++ head/sys/dev/cxgbe/t4_main.cWed Sep 13 06:07:02 2017 (r323520) @@ -3576,6 +3576,18 @@ get_params__post_init(struct adapter *sc) READ_CAPS(iscsicaps); READ_CAPS(fcoecaps); + /* +* The firmware attempts memfree TOE configuration for -SO cards and +* will report toecaps=0 if it runs out of resources (this depends on +* the config file). It may not report 0 for other capabilities +* dependent on the TOE in this case. Set them to 0 here so that the +* driver doesn't bother tracking resources that will never be used. +*/ + if (sc->toecaps == 0) { + sc->iscsicaps = 0; + sc->rdmacaps = 0; + } + if (sc->niccaps & FW_CAPS_CONFIG_NIC_ETHOFLD) { param[0] = FW_PARAM_PFVF(ETHOFLD_START); param[1] = FW_PARAM_PFVF(ETHOFLD_END); ___ 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: r323508 - head/usr.sbin/bsdinstall/partedit
> On Sep 12, 2017, at 15:19, Ravi Pokalawrote: > > Author: rpokala > Date: Tue Sep 12 22:19:21 2017 > New Revision: 323508 > URL: https://svnweb.freebsd.org/changeset/base/323508 > > Log: > When doing a non-interactive installation, don't display an interactive > warning about a filesystem which doesn't have a mountpoint. Presumably, the > person who wrote the install script knew what they were doing. This seems very counterintuitive. It should fail citing the error, not prompt. This only mutes the prompt. Thanks, -Ngie ___ 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"