Commit Graph

268470 Commits

Author SHA1 Message Date
sevan 15b1cdc101 SPAN 2019-06-30 11:22:54 +00:00
sevan a8ded70395 Add John von Neumann's date of death 2019-06-30 11:21:40 +00:00
jmcneill d19bfddd67 Fix size of LPI pending table allocation and enable caching of LPI conf
and pending tables where possible.
2019-06-30 11:11:38 +00:00
jmcneill 5323cdc0f9 Enable caching of ITS tables when possible 2019-06-30 10:10:19 +00:00
martin 6f7dec319e Provide the compat structures even if not building 64bit kernels, as
we have same-bitness netbsd32 emulations for different ABIs on some
architectures.
2019-06-30 08:49:21 +00:00
tsutsui 3dd15d69a9 Pull OpenBSD/luna88k board.h to define SX9100 board device addresses.
Also replace magic addresses with macro where appropriate.
2019-06-30 05:04:48 +00:00
tsutsui 1c325a17ef Misc KNF. 2019-06-30 02:11:56 +00:00
christos 0d31660187 PR/54329: Raphael Ross: According to https://www.gnu.org/software/termutils/\
manual/termcap-1.3/html_chapter/termcap_4.html#SEC23 the cursor move multiple
escapes have undefined results when moving out of the screen. Stop using DO
to move down multiple lines and use a loop of newlines instead.
2019-06-29 21:35:09 +00:00
sevan 168837a76f Add rcsid 2019-06-29 20:50:01 +00:00
kamil 4067fe4673 Appease GCC and initialize arps_ip
Fixes build as GCC errors with maybe-uninitialized that is a false
positive.
2019-06-29 17:42:36 +00:00
jmcneill d188a32897 Restore original size calculation for MAPD and don't disable MSI/MSIX on devices before making changes 2019-06-29 16:48:07 +00:00
tsutsui 9580ea7c3d Make local functions static. 2019-06-29 16:41:18 +00:00
tsutsui 3a86ac9f54 Misc cosmetics and cleanup. 2019-06-29 16:37:49 +00:00
tsutsui 55f3b092ce Misc KNF and cleanup. 2019-06-29 16:29:24 +00:00
jmcneill 88b0a22719 Fix name of suspend voltage selector property 2019-06-29 14:45:10 +00:00
jmcneill e01058dafe Rename lpi pic to gicv3-its when an ITS is found 2019-06-29 13:30:59 +00:00
jmcneill 8a273b316a Add support for multiple PMUs 2019-06-29 12:53:05 +00:00
maxv e4c2eafeb5 Fix bug, don't release the reflock if we didn't take it in the first place.
Looks like there are other locking issues in here.

Reported-by: syzbot+81d2c90809163ab1e13c@syzkaller.appspotmail.com
2019-06-29 11:37:17 +00:00
maxv e27db06e76 The big pool allocators use pool_page_alloc(), which allocates page-aligned
storage. So if we switch to a big pool, set PR_NOALIGN, because the address
of the storage is not aligned to the item size.

Should fix PR/54319.
2019-06-29 11:13:23 +00:00
sevan 407a3ea435 GARP MMRP MRP MVR MWRP PAGP PVRST SABRE SAGE SRR STRG WTD 2019-06-29 10:34:59 +00:00
skrll ad07d16c7a Remove an item that doesn't need to happen 2019-06-29 07:47:41 +00:00
skrll fce290c58b Whitespace 2019-06-29 07:46:19 +00:00
wiz 7efe4d75bf expat 2.2.7 is out. 2019-06-29 06:57:48 +00:00
tsutsui 0ce3fa4923 Remove obsolete stuff. 2019-06-29 03:22:52 +00:00
tsutsui 1a2940fbf6 Fix PR/54325 (use of dangling pointer). 2019-06-29 03:19:49 +00:00
tsutsui 205de7b290 TAB/space cleanup. 2019-06-29 03:10:51 +00:00
tsutsui 3c8d6706ec Handle sti(4) graphics at sgc on HP9000/425t properly. PR port-hp300/54255
Should be pulled up to netbsd-8.
2019-06-29 02:41:17 +00:00
christos ff577b0cb5 Revert previous and do the off == 1 case after we've taken the mask. 2019-06-28 23:25:12 +00:00
tsutsui c1ee8c0e37 Fix lingering page size comments.
Pointed out by christos@ on port-m68k@:
http://mail-index.netbsd.org/port-m68k/2019/06/06/msg000726.html

XXX: we also need MAX_PAGE_SIZE in somewhere for newer jemalloc?
2019-06-28 15:17:43 +00:00
jmcneill 2c51bb1271 Added "b_ci" field to struct buf.
Welcome to 8.99.49.
2019-06-28 15:10:32 +00:00
jmcneill ea947a44d1 Fix a performance issue where one busy queue can starve all other queues.
In normal operations with multiple queues, the nvme driver will attempt
to schedule I/O requests on the submitting CPU. This breaks down when any
one of the queues becomes full; the driver returns EAGAIN to the disk
layer, which causes the disk layer to stop submitting more requests until
the blocked request is consumed. When space becomes available in the full
queue, it pulls the next buffer from the bufq and fills the queue again,
until finally hitting EAGAIN and preventing other queues from processing
requests.

Two changes here to fix the problem:

 - When processing requests from the bufq, attempt to assign them to the
   queue associated with the CPU that originated the request.
 - If that queue is busy, try to find another queue with available space
   before returning EAGAIN. This way, only when all queues are full will
   the disk layer stop submitting more requests.

Now for some real numbers. On a Rockchip RK3399 board (6 CPUs), with 6
concurrent readers:

Old code:
	4294967296 bytes transferred in 52.420 secs (81933752 bytes/sec)
	4294967296 bytes transferred in 53.969 secs (79582117 bytes/sec)
	4294967296 bytes transferred in 55.391 secs (77539082 bytes/sec)
	4294967296 bytes transferred in 55.649 secs (77179595 bytes/sec)
	4294967296 bytes transferred in 56.102 secs (76556402 bytes/sec)
	4294967296 bytes transferred in 72.901 secs (58915066 bytes/sec)

New code:
	4294967296 bytes transferred in 37.171 secs (115546186 bytes/sec)
	4294967296 bytes transferred in 37.611 secs (114194445 bytes/sec)
	4294967296 bytes transferred in 37.655 secs (114061009 bytes/sec)
	4294967296 bytes transferred in 38.247 secs (112295534 bytes/sec)
	4294967296 bytes transferred in 38.496 secs (111569183 bytes/sec)
	4294967296 bytes transferred in 38.595 secs (111282997 bytes/sec)
2019-06-28 15:08:47 +00:00
jmcneill 5c5c42d67e Store a reference to the CPU that submitted the I/O request with the
request itself.
2019-06-28 14:56:45 +00:00
sevan 4c793a8fd3 RADIUS SCCP TACACS XTACACS 2019-06-28 10:47:12 +00:00
ozaki-r 2ed6d11366 tests: test state transitions of neighbor caches 2019-06-28 06:46:04 +00:00
ozaki-r 0ec6d93dcf nd6: restore a missing reachability confirmation
On sending a packet over a STALE cache, the cache should be tried a reachability
confirmation, which is described in RFC 2461/4861 7.3.3.  On the fast path in
nd6_resolve, however, the treatment for STALE caches has been skipped
accidentally.  So STALE caches never be back to the REACHABLE state.

To fix the issue, branch to the fast path only when the cache entry is the
REACHABLE state and leave other caches to the slow path that includes the
treatment.  To this end we need to allow to return a link-layer address if a
valid address is available on the slow path too, which is the same behavior as
FreeBSD and OpenBSD.
2019-06-28 06:45:16 +00:00
mrg 05bd368781 more smp cleanup for ure(4)/axen(4)/cdce(4):
- convert IFF_ALLMULTI to ETHER_F_ALLMULTI, using ETHER_LOCK()
- remove IFF_OACTIVE use, and simply check the ring count in start
- assert/take more locks
- XXX: IFF_RUNNING is not properly protected (all driver problem)
- fix axen_timer setting so it actually runs
- document a locking issue in stop callback:
  stop is called with the softc lock held, but the lock order
  in all other places is ifnet -> softc -> rx -> tx, so taking
  ifnet lock when softc lock is held would be problematic
- in rxeof check for stopping/dying more often.  i managed to
  trigger a pagefault in cdce_rxeof() when yanking an active
  device as it attempted to usbd_setup_xfer() on closed pipes.
- add missing USBD_MPSAFE and cdce_stopping resetting for cdce(4)

between this and other recent clean ups increase performance of
these drivers mostly.  some numbers (in mbit/sec):

	old:				new:
driver	in	out	in+out		in	out	in+out
----	--	---     ------		--	---	------
cdce	39	32	44		38	33	54
axen	44	34	45		48	37	42
ure	36	34	35		36	38	38

i'm not sure why axen drops a little with in+out.  cdce is
helped quite a lot, and ure a little.  it is disappointing that
ure does not outperform cdce -- it's the same actual hardware,
and the device-specific (ure) should outperform the generic
cdce driver...
2019-06-28 01:57:43 +00:00
maxv 7c8c87789c Fix this fucking shit once and for all, for fuck's sake. 2019-06-27 19:56:10 +00:00
christos 0bbbbda30f remove offs initialization and XXX gcc comment. Offs should always be
initialized. Pointed out by maxv.
2019-06-27 17:09:31 +00:00
christos cfc6bad607 Return an error if the path was too long. Pointed out by maxv 2019-06-27 17:07:51 +00:00
maya 9ed3bfe045 Fix typo in via openchrome driver description (no "s") 2019-06-27 15:47:10 +00:00
jmcneill 488fbedfff Add GPU clocks 2019-06-27 14:51:33 +00:00
uki d4dc8199e7 Add comment/description for new packages 2019-06-27 11:30:21 +00:00
msaitoh 2d54b74548 Don't call set_vfta() if any VLAN is attached.
XXX pullup-8.
2019-06-27 09:56:39 +00:00
msaitoh a52a92b753 Sync with FreeBSD ix-3.3.8 part 2:
- Add missing XFI support into ixgbe_get_link_capabilities_X550em().
2019-06-27 06:00:11 +00:00
msaitoh bec7d0d607 Sync with FreeBSD ix-3.3.8 part 1. No functional change in this part:
- Move ixgbe_toggle_txdctl() to ixgbe_common.c and modify a bit.
   No functional change because this function is currently used for SR-IOV
   and it's not used in NetBSD.
 - Some modification to match the latest netmap API.
 - Modify ixgbe_hic_unlocked(). No functional change because neither
   IXGBE_HOST_INTERFACE_APPLY_UPDATE_CMD(0x38) nor
   IXGBE_HOST_INTERFACE_SHADOW_RAM_READ_CMD(0x31) are used.
 - Add ixgbe_clear_mbx(). No functional change because this function is not
   used yet.
 - Add some not-yet-used register definitions.
 - Whitespace fixes.
2019-06-27 05:55:40 +00:00
christos 4aec02649d This actually needs the netbsd32 stuff present since the struct for the
32 bit syscall has a netbsd32_voidp... This header is used also for
compat/common, so just revert (helped us to fix a bug though :-)
2019-06-27 02:44:54 +00:00
christos 11c2d40176 Include the right stuff so compat_netbsd32_50 compiles. 2019-06-27 02:36:27 +00:00
christos d3bd1955f1 Although this is correct, I will let maxv commit it. Still waiting. 2019-06-27 02:00:30 +00:00
christos a1f8bc5788 don't cast void * 2019-06-27 01:59:30 +00:00
christos 4900847b4b Always include the 32 bit structure and definitions on _LP64 regardless
of compat32 being on or off, because we want the headers to work when
compiling modular kernels. Of course the 32 bit structs do not make sense
on platforms that don't have 32 bit modes (alpha), but we don't have
a define for that and it does not hurt.
2019-06-27 01:58:49 +00:00