created | 2018-12-27T19:40:23Z |
---|---|
begin | 2018-07-12T00:00:00Z |
end | 2018-07-13T00:00:00Z |
path | src/sys |
commits | 14 |
date | 2018-07-12T01:23:38Z | |||
---|---|---|---|---|
author | cheloha | |||
files | src/sys/kern/kern_pledge.c | log | diff | annotate |
src/sys/kern/kern_sched.c | log | diff | annotate | |
src/sys/kern/kern_sysctl.c | log | diff | annotate | |
src/sys/sys/proc.h | log | diff | annotate | |
src/sys/sys/sched.h | log | diff | annotate | |
src/sys/sys/sysctl.h | log | diff | annotate | |
message |
Add hw.ncpuonline to count the number of online CPUs. The introduction of hw.smt means that logical CPUs can be disabled after boot and prior to suspend/resume. If hw.smt=0 (the default), there needs to be a way to count the number of hardware threads available on the system at any given time. So, import HW_NCPUONLINE/hw.ncpuonline from NetBSD and document it. hw.ncpu becomes equal to the number of CPUs given to sched_init_cpu() during boot, while hw.ncpuonline is equal to the number of CPUs available to the scheduler in the cpuset "sched_all_cpus". Set_SC_NPROCESSORS_ONLN equal to this new sysctl and keep _SC_NPROCESSORS_CONF equal to hw.ncpu. This is preferable to adding a new sysctl to count the number of configured CPUs and keeping hw.ncpu equal to the number of online CPUs because such a change would break software in the ecosystem that relies on HW_NCPU/hw.ncpu to measure CPU usage and the like. Such software in base includes top(1), systat(1), and snmpd(8), and perhaps others. We don't need additional locking to count the cardinality of a cpuset in this case because the only interfaces that can modify said cardinality are sysctl(2) and ioctl(2), both of which are under the KERNEL_LOCK. Software using HW_NCPU/hw.ncpu to determine optimal parallism will need to be updated to use HW_NCPUONLINE/hw.ncpuonline. Until then, such software may perform suboptimally. However, most changes will be similar to the change included here for libcxx's std::thread:hardware_concurrency(): using HW_NCPUONLINE in lieu of HW_NCPU should be sufficient for determining optimal parallelism for most software if the change to _SC_NPROCESSORS_ONLN is insufficient. Prompted by deraadt. Discussed at length with kettenis, deraadt, and sthen. Lots of patch tweaks from kettenis. ok kettenis, "proceed" deraadt |
date | 2018-07-12T10:15:44Z | |||
---|---|---|---|---|
author | mlarkin | |||
files | src/sys/arch/amd64/amd64/vmm.c | log | diff | annotate |
src/sys/arch/amd64/include/vmmvar.h | log | diff | annotate | |
message |
vmm(8)/vmm(4): send a copy of the guest register state to vmd on exit, avoiding multiple readregs ioctls back to vmm in case register content is needed subsequently. ok phessler |
date | 2018-07-12T10:16:41Z | |||
---|---|---|---|---|
author | mlarkin | |||
files | src/sys/arch/amd64/amd64/vmm.c | log | diff | annotate |
message | zap a blank line |
date | 2018-07-12T12:46:00Z | |||
---|---|---|---|---|
author | fcambus | |||
files | src/sys/arch/amd64/conf/files.amd64 | log | diff | annotate |
message |
Stop building rasops4 on amd64. It was pulled in for efifb, but it is extremely unlikely an EFI system supporting only 4-bit color depth (16 colors) exists. Even if it existed though, on SMALL_KERNEL rasops4_putchar() simply returns EAGAIN so it would not be possible to install the system. For the record, we do not build rasops4 on i386 or on any of our other platforms either. OK kettenis@, mpi@ |
date | 2018-07-12T12:47:57Z | |||
---|---|---|---|---|
author | fcambus | |||
files | src/sys/arch/amd64/amd64/efifb.c | log | diff | annotate |
message |
Remove cases for 1-bit and 4-bit color depths in efifb_ioctl(), as we basically can't run in those modes. OK kettenis@ |
date | 2018-07-12T14:11:11Z | |||
---|---|---|---|---|
author | guenther | |||
files | src/sys/arch/amd64/amd64/cpu.c | log | diff | annotate |
src/sys/arch/amd64/amd64/identcpu.c | log | diff | annotate | |
src/sys/arch/amd64/amd64/locore.S | log | diff | annotate | |
src/sys/arch/amd64/amd64/machdep.c | log | diff | annotate | |
src/sys/arch/amd64/amd64/pmap.c | log | diff | annotate | |
src/sys/arch/amd64/amd64/vector.S | log | diff | annotate | |
src/sys/arch/amd64/conf/ld.script | log | diff | annotate | |
src/sys/arch/amd64/include/asm.h | log | diff | annotate | |
src/sys/arch/amd64/include/codepatch.h | log | diff | annotate | |
message |
Reorganize the Meltdown entry and exit trampolines for syscall and traps so that the "mov %rax,%cr3" is followed by an infinite loop which is avoided because the mapping of the code being executed is changed. This means the sysretq/iretq isn't even present in that flow of instructions in the kernel mapping, so userspace code can't be speculatively reached on the kernel mapping and totally eliminates the conditional jump over the the %cr3 change that supported CPUs without the Meltdown vulnerability. The return paths were probably vulnerable to Spectre v1 (and v1.1/1.2) style attacks, speculatively executing user code post-system-call with the kernel mappings, thus creating cache/TLB/etc side-effects. Would like to apply this technique to the interrupt stubs too, but I'm hitting a bug in clang's assembler which misaligns the code and symbols. While here, when on a CPU not vulnerable to Meltdown, codepatch out the unnecessary bits in cpu_switchto(). Inspiration from sf@, refined over dinner with theo ok mlarkin@ deraadt@ |
date | 2018-07-12T14:22:54Z | |||
---|---|---|---|---|
author | sashan | |||
files | src/sys/sys/queue.h | log | diff | annotate |
message |
- introducing _Q_INVALID to sys/queue.h OK @bluhm, OK @otto, OK @guenther |
date | 2018-07-12T14:24:54Z | |||
---|---|---|---|---|
author | guenther | |||
files | src/sys/arch/amd64/amd64/vector.S | log | diff | annotate |
message |
Unbreak the nmi handler (again): I placed INTR_CLEAR_GPRS in the wrong place and GS.base was horked on return. Also, the frame passed to ddb didn't have the %rbp<-->tf_err swap, which would have confused backtraces. Now if we can just come up with a way to automate testing the NMI handler with qemu... |
date | 2018-07-12T14:28:07Z | |||
---|---|---|---|---|
author | sashan | |||
files | src/sys/net/pf.c | log | diff | annotate |
message |
trade few 'goto unlock: for 'break' in pf_test() OK mpi@, OK henning@, OK jca@ |
date | 2018-07-12T15:13:33Z | |||
---|---|---|---|---|
author | mlarkin | |||
files | src/sys/arch/amd64/include/vmmvar.h | log | diff | annotate |
message | zap an extra newline |
date | 2018-07-12T15:48:02Z | |||
---|---|---|---|---|
author | mlarkin | |||
files | src/sys/arch/i386/i386/vmm.c | log | diff | annotate |
src/sys/arch/i386/include/vmmvar.h | log | diff | annotate | |
message |
unbreak i386 build, thanks to pd@ for noticing. Same diff as I committed earlier for amd64 |
date | 2018-07-12T15:51:50Z | |||
---|---|---|---|---|
author | mpi | |||
files | src/sys/netinet/ip_ah.c | log | diff | annotate |
src/sys/netinet/ip_esp.c | log | diff | annotate | |
src/sys/netinet/ip_ipcomp.c | log | diff | annotate | |
src/sys/netinet/ip_ipsp.h | log | diff | annotate | |
src/sys/netinet/ip_output.c | log | diff | annotate | |
src/sys/netinet/ipsec_output.c | log | diff | annotate | |
src/sys/netinet6/ip6_output.c | log | diff | annotate | |
message |
Introduce ipsec_output_cb() to merge duplicate code and account for dropped packets in the output path. While here fix a memory leak when compression is not needed w/ IPcomp. ok markus@ |
date | 2018-07-12T16:07:35Z | |||
---|---|---|---|---|
author | florian | |||
files | src/sys/net/route.h | log | diff | annotate |
src/sys/netinet6/nd6_nbr.c | log | diff | annotate | |
message |
Introduce RTM_CHGADDRATTR to inform userland on the route socket when an attribute of an address is changed. For now it's used when IPv6 duplicate address detection finishes. With this slaacd(8) can find out if a configured address is not duplicated without the need to poll. OK phessler, benno, claudio |
date | 2018-07-12T22:09:04Z | |||
---|---|---|---|---|
author | deraadt | |||
files | src/sys/arch/amd64/conf/GENERIC.MP | log | diff | annotate |
message |
we will be toggling witness on/off a few times. when it is on, it raises awareness of problems. when it is off, development cycles are faster. let's do the faster cycle for a little while. discussion with naddy |