created | 2020-11-21T18:44:20Z |
---|---|
begin | 2020-06-24T00:00:00Z |
end | 2020-06-25T00:00:00Z |
path | src/sys |
commits | 24 |
date | 2020-06-24T00:40:53Z | |||
---|---|---|---|---|
author | dlg | |||
files | src/sys/arch/sparc64/dev/pyro.c | log | diff | annotate |
message |
remove ifdeffed out code for redistributing pyro eq interrupts over cpus. when sparc64 attaches cpus early during boot, it really just allocates the software state for them (ie, the devices and the cpu_info structs) and fills them in with information from openfirmware, but it doesnt actually spin them up in a physical sense until just before root is mounted. in between that, we now set up pyro with an msi event queue per cpu, and target the interrupts for those event queues at the different cpus. if a device generates an msi interrupt before the cpus are spun up, pyro will fire an interrupt at those cpus, but cos they're not running yet, they don't handle the interrupt, and the event queue never gets processed. because the msi interrupt state is never cleared by the pyro interrupt handler because the cpu didn't run it, any further msi interrupts from that pci device don't cause the eq interrupt to fire again, so it gets stuck. one approach to dealing with this is to target all the event queues that pyro sets up at the boot cpu, and once the other cpus are running we go through and retarget the event queue interrupts at the different cpus. this means the boot cpu works on the other cpus behalf until they're running, and it avoids the eq interrupts being ignored before the other cpus are running. another approach is to spin the cpus up when they're attached, so they'll be set up to process early pyro interrupts, even if they sit at splhigh until after autoconf has run. i had a quick go at this and it didn't go well. the approach we went with was to avoid having the device in question generate interrupts early. i left the redistributing code in the tree so people might discover it if needed, or at least see this description of what's happening. kettenis@ seemed ok with leaving the code in jmatthew@s pci_intr_establish_cpu commit, but removing it after. this is that removal. |
date | 2020-06-24T01:35:29Z | |||
---|---|---|---|---|
author | krw | |||
files | src/sys/dev/ic/qlw.c | log | diff | annotate |
src/sys/dev/pv/xbf.c | log | diff | annotate | |
message |
Nuke some pointless *_dev_probe() and *_dev_free() functions and set/trust the scsiconf.c probing limits. Same as was done to vioblk(4). ok dlg@ |
date | 2020-06-24T01:36:18Z | |||
---|---|---|---|---|
author | krw | |||
files | src/sys/arch/sparc64/dev/vdsk.c | log | diff | annotate |
message |
Nuke some pointless *_dev_probe() and *_dev_free() functions and set/trust the scsiconf.c probing limits. Same as was done to vioblk(4). ok dlg@ |
date | 2020-06-24T06:19:06Z | |||
---|---|---|---|---|
author | dlg | |||
files | src/sys/dev/pci/if_vmx.c | log | diff | annotate |
message |
actually use pci_intr_establish_cpu with cpus from the intrmap. sigh, i don't know how i forgot this. yes jmatthew@ |
date | 2020-06-24T07:46:10Z | |||
---|---|---|---|---|
author | patrick | |||
files | src/sys/dev/usb/umass.c | log | diff | annotate |
message |
Apply sc->sc_xfer_flags to control transfers as well. These are used so that in polled-mode the USB transfers are marked synchronous. In case that sending commands to the USB mass storage fails, the control transfers are used to reset the device. Without the synchronous flag, the STOP command sent by sd(4) on powerdown would wait for completion indefinitely, possibly hanging the machine. ok gerhard@ |
date | 2020-06-24T08:52:53Z | |||
---|---|---|---|---|
author | mvs | |||
files | src/sys/net/if_pppx.c | log | diff | annotate |
message |
Fix `IFF_RUNNING' bit handling for pppx(4) and pppac(4). ok mpi@ |
date | 2020-06-24T09:43:20Z | |||
---|---|---|---|---|
author | patrick | |||
files | src/sys/dev/usb/xhci.c | log | diff | annotate |
message |
Acknowledge xhci(4) interrupts before calling usb_schedsoftintr(). On powerdown (halt -p), sd(4)'s suspend function tries to powerdown a USB mass storage using a STOP command. In that case we are already cold and splhigh(), so that the xhci is supposed to run in polling- mode. usb_schedsoftintr() behaves differently when running in polling-mode. Instead of scheduling a soft interrupt, it immediately dequeues from the event queue. But dequeueing means touching the xhci registers. Apparently we need to acknowledge the interrupts before touching those registers, the hardware doesn't like it otherwise and we will never get an interrupt status for the second transfer. ok gerhard@ |
date | 2020-06-24T11:17:21Z | |||
---|---|---|---|---|
author | dlg | |||
files | src/sys/dev/pci/if_ixl.c | log | diff | annotate |
message |
get rid of the per device sff lock because we only use the global one. no functional change |
date | 2020-06-24T16:07:53Z | |||
---|---|---|---|---|
author | krw | |||
files | src/sys/scsi/scsiconf.h | log | diff | annotate |
message |
Adapters that do not appear as a target on the SCSI bus must set 'adapter_target' to a value greater than or equal to 'adapater_buswidth' to allow all possible targets to be probed. Add SDEV_NO_ADAPTER_TARGET (0xffff), a value guaranteed to be greater than or equal to the u_int16_t 'adapter_buswidth'. ok dlg@ as part of a larger diff. |
date | 2020-06-24T17:24:35Z | |||
---|---|---|---|---|
author | fcambus | |||
files | src/sys/dev/wsfont/bold8x16-iso1.h | log | diff | annotate |
src/sys/dev/wsfont/bold8x16.h | log | diff | annotate | |
src/sys/dev/wsfont/gallant12x22.h | log | diff | annotate | |
message |
Use C99 initializers in wsdisplay_font struct definitions for "Boldface", "Boldface.iso1", and "Gallant". OK mpi@ |
date | 2020-06-24T18:33:50Z | |||
---|---|---|---|---|
author | krw | |||
files | src/sys/dev/ic/mfi.c | log | diff | annotate |
src/sys/dev/pci/mfii.c | log | diff | annotate | |
src/sys/dev/pci/mpii.c | log | diff | annotate | |
src/sys/dev/pci/vmwpvs.c | log | diff | annotate | |
message |
Use SDEV_NO_ADAPTER_TARGET instead of -1 to indicate the adapter is not a target on the bus. ok dlg@ as part of a larger diff. |
date | 2020-06-24T18:47:56Z | |||
---|---|---|---|---|
author | krw | |||
files | src/sys/arch/sparc64/dev/vdsk.c | log | diff | annotate |
message |
Use SDEV_NO_ADAPTER_TARGET instead of the value of adapter_buswidth to indicate the adapter is not a target on the bus. ok dlg@ as part of a larger diff. |
date | 2020-06-24T18:47:57Z | |||
---|---|---|---|---|
author | krw | |||
files | src/sys/dev/ic/gdt_common.c | log | diff | annotate |
src/sys/dev/ic/qla.c | log | diff | annotate | |
src/sys/dev/pv/vioblk.c | log | diff | annotate | |
src/sys/dev/pv/xbf.c | log | diff | annotate | |
message |
Use SDEV_NO_ADAPTER_TARGET instead of the value of adapter_buswidth to indicate the adapter is not a target on the bus. ok dlg@ as part of a larger diff. |
date | 2020-06-24T18:59:30Z | |||
---|---|---|---|---|
author | krw | |||
files | src/sys/dev/softraid.c | log | diff | annotate |
src/sys/dev/vscsi.c | log | diff | annotate | |
src/sys/dev/ata/atascsi.c | log | diff | annotate | |
src/sys/dev/ic/aac.c | log | diff | annotate | |
src/sys/dev/ic/ami.c | log | diff | annotate | |
src/sys/dev/ic/cac.c | log | diff | annotate | |
src/sys/dev/ic/ciss.c | log | diff | annotate | |
src/sys/dev/ic/twe.c | log | diff | annotate | |
src/sys/dev/pci/arc.c | log | diff | annotate | |
src/sys/dev/pci/ips.c | log | diff | annotate | |
src/sys/dev/pci/mfii.c | log | diff | annotate | |
src/sys/dev/pci/qle.c | log | diff | annotate | |
src/sys/dev/pv/hvs.c | log | diff | annotate | |
src/sys/dev/pv/vioscsi.c | log | diff | annotate | |
src/sys/scsi/mpath.c | log | diff | annotate | |
message |
Use SDEV_NO_ADAPTER_TARGET instead of the value that is being aassigned to adapter_buswidth to indicate the adapter is not a target on the bus. ok dlg@ as part of a larger diff. |
date | 2020-06-24T19:35:11Z | |||
---|---|---|---|---|
author | krw | |||
files | src/sys/dev/atapiscsi/atapiscsi.c | log | diff | annotate |
message |
Use SDEV_NO_ADAPTER_TARGET instead of '7' to indicate the adapter is not a target on the bus. adapter_buswidth is 2. ok dlg@ as part of a larger diff. |
date | 2020-06-24T20:19:14Z | |||
---|---|---|---|---|
author | kettenis | |||
files | src/sys/arch/powerpc64/powerpc64/db_trace.c | log | diff | annotate |
message |
Terminate stack trace at userland boundary. ok gkoehler@ |
date | 2020-06-24T20:49:11Z | |||
---|---|---|---|---|
author | kettenis | |||
files | src/sys/arch/powerpc64/include/frame.h | log | diff | annotate |
src/sys/arch/powerpc64/powerpc64/locore.S | log | diff | annotate | |
src/sys/arch/powerpc64/powerpc64/machdep.c | log | diff | annotate | |
message | First stab at making signal handling work. |
date | 2020-06-24T22:03:40Z | |||
---|---|---|---|---|
author | cheloha | |||
files | src/sys/arch/i386/i386/apm.c | log | diff | annotate |
src/sys/arch/loongson/dev/apm.c | log | diff | annotate | |
src/sys/arch/sparc64/sparc64/intr.c | log | diff | annotate | |
src/sys/crypto/idgen.c | log | diff | annotate | |
src/sys/dev/pci/drm/include/linux/timekeeping.h | log | diff | annotate | |
src/sys/dev/pv/vmmci.c | log | diff | annotate | |
src/sys/dev/pv/vmt.c | log | diff | annotate | |
message |
kernel: use gettime(9)/getuptime(9) in lieu of time_second(9)/time_uptime(9) time_second(9) and time_uptime(9) are widely used in the kernel to quickly get the system UTC or system uptime as a time_t. However, time_t is 64-bit everywhere, so it is not generally safe to use them on 32-bit platforms: you have a split-read problem if your hardware cannot perform atomic 64-bit reads. This patch replaces time_second(9) with gettime(9), a safer successor interface, throughout the kernel. Similarly, time_uptime(9) is replaced with getuptime(9). There is a performance cost on 32-bit platforms in exchange for eliminating the split-read problem: instead of two register reads you now have a lockless read loop to pull the values from the timehands. This is really not *too* bad in the grand scheme of things, but compared to what we were doing before it is several times slower. There is no performance cost on 64-bit (__LP64__) platforms. With input from visa@, dlg@, and tedu@. Several bugs squashed by visa@. ok kettenis@ |
date | 2020-06-24T22:03:41Z | |||
---|---|---|---|---|
author | cheloha | |||
files | src/sys/dev/acpi/acpi.c | log | diff | annotate |
src/sys/dev/gpio/gpiodcf.c | log | diff | annotate | |
src/sys/dev/ic/aac.c | log | diff | annotate | |
src/sys/dev/ic/ncr53c9x.c | log | diff | annotate | |
src/sys/dev/ic/wd33c93.c | log | diff | annotate | |
src/sys/dev/pci/mfii.c | log | diff | annotate | |
src/sys/dev/usb/udcf.c | log | diff | annotate | |
src/sys/kern/vfs_sync.c | log | diff | annotate | |
message |
kernel: use gettime(9)/getuptime(9) in lieu of time_second(9)/time_uptime(9) time_second(9) and time_uptime(9) are widely used in the kernel to quickly get the system UTC or system uptime as a time_t. However, time_t is 64-bit everywhere, so it is not generally safe to use them on 32-bit platforms: you have a split-read problem if your hardware cannot perform atomic 64-bit reads. This patch replaces time_second(9) with gettime(9), a safer successor interface, throughout the kernel. Similarly, time_uptime(9) is replaced with getuptime(9). There is a performance cost on 32-bit platforms in exchange for eliminating the split-read problem: instead of two register reads you now have a lockless read loop to pull the values from the timehands. This is really not *too* bad in the grand scheme of things, but compared to what we were doing before it is several times slower. There is no performance cost on 64-bit (__LP64__) platforms. With input from visa@, dlg@, and tedu@. Several bugs squashed by visa@. ok kettenis@ |
date | 2020-06-24T22:03:42Z | |||
---|---|---|---|---|
author | cheloha | |||
files | src/sys/kern/sysv_msg.c | log | diff | annotate |
src/sys/kern/sysv_sem.c | log | diff | annotate | |
src/sys/kern/sysv_shm.c | log | diff | annotate | |
src/sys/kern/vfs_syscalls.c | log | diff | annotate | |
src/sys/net/bridgectl.c | log | diff | annotate | |
src/sys/net/if_bridge.c | log | diff | annotate | |
src/sys/net/if_pflow.c | log | diff | annotate | |
src/sys/net/if_ppp.c | log | diff | annotate | |
src/sys/net/pf.c | log | diff | annotate | |
src/sys/net/pf_if.c | log | diff | annotate | |
src/sys/net/pf_ioctl.c | log | diff | annotate | |
src/sys/net/rtsock.c | log | diff | annotate | |
message |
kernel: use gettime(9)/getuptime(9) in lieu of time_second(9)/time_uptime(9) time_second(9) and time_uptime(9) are widely used in the kernel to quickly get the system UTC or system uptime as a time_t. However, time_t is 64-bit everywhere, so it is not generally safe to use them on 32-bit platforms: you have a split-read problem if your hardware cannot perform atomic 64-bit reads. This patch replaces time_second(9) with gettime(9), a safer successor interface, throughout the kernel. Similarly, time_uptime(9) is replaced with getuptime(9). There is a performance cost on 32-bit platforms in exchange for eliminating the split-read problem: instead of two register reads you now have a lockless read loop to pull the values from the timehands. This is really not *too* bad in the grand scheme of things, but compared to what we were doing before it is several times slower. There is no performance cost on 64-bit (__LP64__) platforms. With input from visa@, dlg@, and tedu@. Several bugs squashed by visa@. ok kettenis@ |
date | 2020-06-24T22:03:43Z | |||
---|---|---|---|---|
author | cheloha | |||
files | src/sys/net/if_bpe.c | log | diff | annotate |
src/sys/net/if_pfsync.c | log | diff | annotate | |
src/sys/net/pf_norm.c | log | diff | annotate | |
src/sys/net/pf_table.c | log | diff | annotate | |
src/sys/net/route.c | log | diff | annotate | |
src/sys/netinet/if_ether.c | log | diff | annotate | |
src/sys/netinet/ip_ipsp.c | log | diff | annotate | |
src/sys/netinet/ip_output.c | log | diff | annotate | |
src/sys/netinet/ip_spd.c | log | diff | annotate | |
src/sys/netinet/ipsec_input.c | log | diff | annotate | |
src/sys/netinet/ipsec_output.c | log | diff | annotate | |
message |
kernel: use gettime(9)/getuptime(9) in lieu of time_second(9)/time_uptime(9) time_second(9) and time_uptime(9) are widely used in the kernel to quickly get the system UTC or system uptime as a time_t. However, time_t is 64-bit everywhere, so it is not generally safe to use them on 32-bit platforms: you have a split-read problem if your hardware cannot perform atomic 64-bit reads. This patch replaces time_second(9) with gettime(9), a safer successor interface, throughout the kernel. Similarly, time_uptime(9) is replaced with getuptime(9). There is a performance cost on 32-bit platforms in exchange for eliminating the split-read problem: instead of two register reads you now have a lockless read loop to pull the values from the timehands. This is really not *too* bad in the grand scheme of things, but compared to what we were doing before it is several times slower. There is no performance cost on 64-bit (__LP64__) platforms. With input from visa@, dlg@, and tedu@. Several bugs squashed by visa@. ok kettenis@ |
date | 2020-06-24T22:03:44Z | |||
---|---|---|---|---|
author | cheloha | |||
files | src/sys/netinet6/in6.c | log | diff | annotate |
src/sys/netinet6/in6.h | log | diff | annotate | |
src/sys/netinet6/ip6_forward.c | log | diff | annotate | |
src/sys/netinet6/ip6_id.c | log | diff | annotate | |
src/sys/netinet6/ip6_mroute.c | log | diff | annotate | |
src/sys/netinet6/nd6.c | log | diff | annotate | |
src/sys/nfs/nfs_subs.c | log | diff | annotate | |
src/sys/nfs/nfs_vnops.c | log | diff | annotate | |
src/sys/ufs/ext2fs/ext2fs_alloc.c | log | diff | annotate | |
src/sys/ufs/ext2fs/ext2fs_vfsops.c | log | diff | annotate | |
message |
kernel: use gettime(9)/getuptime(9) in lieu of time_second(9)/time_uptime(9) time_second(9) and time_uptime(9) are widely used in the kernel to quickly get the system UTC or system uptime as a time_t. However, time_t is 64-bit everywhere, so it is not generally safe to use them on 32-bit platforms: you have a split-read problem if your hardware cannot perform atomic 64-bit reads. This patch replaces time_second(9) with gettime(9), a safer successor interface, throughout the kernel. Similarly, time_uptime(9) is replaced with getuptime(9). There is a performance cost on 32-bit platforms in exchange for eliminating the split-read problem: instead of two register reads you now have a lockless read loop to pull the values from the timehands. This is really not *too* bad in the grand scheme of things, but compared to what we were doing before it is several times slower. There is no performance cost on 64-bit (__LP64__) platforms. With input from visa@, dlg@, and tedu@. Several bugs squashed by visa@. ok kettenis@ |
date | 2020-06-24T22:03:45Z | |||
---|---|---|---|---|
author | cheloha | |||
files | src/sys/ufs/ffs/ffs_vfsops.c | log | diff | annotate |
src/sys/ufs/ufs/inode.h | log | diff | annotate | |
src/sys/ufs/ufs/ufs_quota.c | log | diff | annotate | |
src/sys/uvm/uvm_meter.c | log | diff | annotate | |
message |
kernel: use gettime(9)/getuptime(9) in lieu of time_second(9)/time_uptime(9) time_second(9) and time_uptime(9) are widely used in the kernel to quickly get the system UTC or system uptime as a time_t. However, time_t is 64-bit everywhere, so it is not generally safe to use them on 32-bit platforms: you have a split-read problem if your hardware cannot perform atomic 64-bit reads. This patch replaces time_second(9) with gettime(9), a safer successor interface, throughout the kernel. Similarly, time_uptime(9) is replaced with getuptime(9). There is a performance cost on 32-bit platforms in exchange for eliminating the split-read problem: instead of two register reads you now have a lockless read loop to pull the values from the timehands. This is really not *too* bad in the grand scheme of things, but compared to what we were doing before it is several times slower. There is no performance cost on 64-bit (__LP64__) platforms. With input from visa@, dlg@, and tedu@. Several bugs squashed by visa@. ok kettenis@ |
date | 2020-06-24T22:36:31Z | |||
---|---|---|---|---|
author | dlg | |||
files | src/sys/dev/pci/if_ixl.c | log | diff | annotate |
message |
set IFQ_SET_MAXLEN to the number of slots on the tx ring, not 1. this effectively enables tx mitigation on this chip. hrvoje popovski tested it and discovered it adds about 20% to forwarding performance on his test machine, and brings it more in line with ix(4) performance. jmatthew thinks i copied setting it to 1 from myx, but myx resets it to a proper value later on when it figures out what the chip is capable of. how embarrassment. |