summaryrefslogtreecommitdiff
path: root/sys/modules
AgeCommit message (Collapse)Author
2020-08-02Pull up following revision(s) (requested by maxv in ticket #1032):martin
sys/dev/nvmm/x86/nvmm_x86_vmx.c: revision 1.60 (patch) sys/dev/nvmm/x86/nvmm_x86_vmx.c: revision 1.61 (patch) sys/dev/nvmm/nvmm.c: revision 1.30 sys/dev/nvmm/nvmm.c: revision 1.31 sys/dev/nvmm/nvmm.c: revision 1.32 sys/dev/nvmm/nvmm_internal.h: revision 1.15 sys/dev/nvmm/nvmm_internal.h: revision 1.16 sys/dev/nvmm/files.nvmm: revision 1.3 sys/dev/nvmm/x86/nvmm_x86_svm.c: revision 1.62 (patch) sys/dev/nvmm/x86/nvmm_x86_svm.c: revision 1.63 (patch) sys/dev/nvmm/x86/nvmm_x86_vmx.c: revision 1.59 (patch) sys/modules/nvmm/nvmm.ioconf: revision 1.2 Gather the conditions to return from the VCPU loops in nvmm_return_needed(), and use it in nvmm_do_vcpu_run() as well. This fixes two undesired behaviors: - When a VM initializes, the many nested page faults that need processing could cause the calling thread to occupy the CPU too much if we're unlucky and are only getting repeated nested page faults thousands of times in a row. - When the emulator calls nvmm_vcpu_run() and immediately sends a signal to stop the VCPU, it's better to check signals earlier and leave right away, rather than doing a round of VCPU run that could increase the time spent by the emulator waiting for the return. style Register NVMM as an actual pseudo-device. Without PMF handler, to explicitly disallow ACPI suspend if NVMM is running. Should fix PR/55406. Print the backend name when attaching.
2020-02-12Pull up following revision(s) (requested by riastradh in ticket #701):martin
external/cddl/osnet/dev/dtrace/aarch64/dtrace_isa.c: revision 1.2 external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c: revision 1.17 external/cddl/osnet/dist/lib/libdtrace/common/dt_module.c: revision 1.18 sys/modules/cyclic/Makefile: revision 1.5 external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c: revision 1.2 external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c: revision 1.3 sys/arch/aarch64/aarch64/vectors.S: revision 1.10 external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c: revision 1.2 external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c: revision 1.3 external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c: revision 1.4 external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c: revision 1.5 external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c: revision 1.6 sys/arch/aarch64/include/cpu.h: revision 1.20 external/cddl/osnet/dist/lib/libdtrace/common/dt_impl.h: revision 1.9 Create a buffer space of 512 bytes before the trapframe. dtrace fbt needs enough space to emulate an stp x29, x30, [sp,#-FRAMESIZE]! instruction in a function prologue. In the aarch64 instruction encoding, FRAMESIZE can be as large as 512 bytes, so reserve this much space when KDTRACE_HOOKS is enabled. Use db_write_bytes to overwrite kernel text. Tidy up a bit. No functional change intended. aarch64 fbt_invop doesn't actually use the argument, but it would make more sense for it to be the return value and/or first argument register. Certainly it's not `eax'! Tidy up a bit: don't set things we won't use; assert nonzeroness. Use /dev/ksyms, not /netbsd, for the running kernel's symbols. Teach dtrace about el1_trap_exit frames on aarch64. Implement dtrace_getarg and dtrace_getreg while here. Count the number of artificial frames in aarch64 fbt probe correctly. Change the address ranges that aarch64 considers toxic for dtrace. `Toxic' means dtrace forbids D scripts from even attempting to read or write at them. Previously we considered [0, VM_MIN_KERNEL_ADDRESS) toxic, but VM_MIN_KERNEL_ADDRESS is only the minimum address of the kernel map; the direct-mapped region lies below it, and with PMAP_MAP_POOLPAGE we allocate virtual pages for pool backing directly from physical pages through the direct-mapped region. Also, this did not consider I/O mappings to be toxic, which they probably should be. Instead, treat: [0, AARCH64_KSEG_START) and [VM_KERNEL_IO_ADDRESS, 0xfff...ff) as toxic. (The upper bound for 0xfff...ff ought to be inclusive, not exclusive, but I think we'll need another mechanism for expressing that to dtrace!) Switch from db_write_bytes to using direct-mapping. This way there's no dependency on ddb. Define the MULTIPROCESSOR cpu_number() for modules too. Modules should work whether the main kernel is multiprocessor or not. In particular, dtrace should not think cpu_number() is 0 while cpu_index(curcpu()) and curcpu()->ci_index are nonzero, leading to rather spectacularly bogus results... cyclic.kmod needs -Wno-sign-compare for aarch64 CPU_INFO_FOREACH. Provisional workaround; feel free to fix.
2019-12-09Pull up following revision(s) (requested by jmcneill in ticket #525):martin
external/cddl/osnet/dev/dtrace/aarch64/dtrace_isa.c: revision 1.1 distrib/sets/lists/modules/md.i386: revision 1.83 share/mk/bsd.own.mk: revision 1.1168 usr.bin/mkubootimage/mkubootimage.c: revision 1.25 sys/modules/dtrace/Makefile: revision 1.7 usr.bin/mkubootimage/mkubootimage.c: revision 1.26 sys/modules/dtrace/Makefile: revision 1.8 external/cddl/osnet/dist/lib/libdtrace/aarch64/dt_isadep.c: revision 1.2 distrib/sets/lists/modules/mi: revision 1.128 sys/arch/aarch64/include/frame.h: revision 1.3 sys/arch/evbarm/conf/mk.generic64: revision 1.4 external/cddl/osnet/dist/lib/libdtrace/common/dt_link.c: revision 1.12 sys/modules/cyclic/Makefile: revision 1.4 sys/arch/aarch64/conf/Makefile.aarch64: revision 1.16 external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c: revision 1.1 sys/arch/aarch64/aarch64/start.S: revision 1.3 sys/arch/aarch64/aarch64/trap.c: revision 1.22 external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c: revision 1.1 external/cddl/osnet/dev/dtrace/aarch64/dtrace_asm.S: revision 1.1 external/cddl/osnet/dev/fbt/aarch64/fbt_isa.h: revision 1.1 external/cddl/osnet/dev/dtrace/aarch64/regset.h: revision 1.1 external/cddl/osnet/lib/libdtrace/Makefile: revision 1.26 distrib/sets/lists/modules/md.amd64: revision 1.82 usr.bin/mkubootimage/mkubootimage.1: revision 1.13 distrib/sets/lists/modules/ad.arm: revision 1.14 Add KDTRACE_HOOKS support. Define lwp_trapframe() macro dtrace: add support for aarch64 Add syscall_linux back for other arm architectures (accidently removed in previous) Add -u flag for updating headers in place. Fix alignment of .text section by changing load address to 0xffffffc000000000 and adding 64 bytes of padding before the entry point. Update arm64 image header in place Move dtrace_syscall_linux out of mi set list Enable DTrace on aarch64 Fix signed/unsigned comparison
2019-11-21In preparation for the upcoming release, turn off DIAGNOSTIC in mostmartin
kernel configs, modules and libc.
2019-10-28Pull up following revision(s) (requested by maya in ticket #385):martin
distrib/sets/lists/modules/mi: revision 1.127 sys/modules/Makefile: revision 1.230 sys/modules/filemon/Makefile: revision 1.4 (manually adjusted) sys/modules/Makefile: revision 1.229 Disable filemon. It isn't suited for general use (that is, it poses security risks), but the existence of the module means it is auto-loaded when /dev/filemon is opened, which can be done by any user. Thanks Ilja van Sprundel for the heads up. - Continue to build the filemon module, but don't install it. Hopefully this will help us detect any additional bit-rot that might occur. XXX It might be a good idea to modify the file permissions on /dev/filemon XXX to prevent auto-loading of the driver module by non-privileged users.
2019-09-01Pull up following revision(s) (requested by mrg in ticket #135):martin
distrib/sets/lists/comp/mi 1.2279 distrib/sets/lists/modules/mi 1.123 share/man/man9/Makefile 1.438 share/man/man9/usbnet.9 1.1-1.9 sys/dev/ic/rndisreg.h 1.3 sys/dev/usb/TODO 1.47-1.52 sys/dev/usb/TODO.usbmp 1.15,1.16 sys/dev/usb/files.usb 1.157-1.167 sys/dev/usb/if_aue.c 1.155-1.161 sys/dev/usb/if_auereg.h 1.30-1.32 sys/dev/usb/if_axe.c 1.103-1.119 sys/dev/usb/if_axen.c 1.51-1.53,1.55-1.67 sys/dev/usb/if_axenreg.h 1.15 sys/dev/usb/if_cdce.c 1.54-1.67 sys/dev/usb/if_cue.c 1.85,1.86 sys/dev/usb/if_cuereg.h 1.23 sys/dev/usb/if_kue.c 1.97-1.100 sys/dev/usb/if_kuereg.h 1.23,1.24 sys/dev/usb/if_mue.c 1.51-1.55 sys/dev/usb/if_muereg.h 1.6 sys/dev/usb/if_muevar.h 1.9 sys/dev/usb/if_smsc.c 1.46-1.61 sys/dev/usb/if_smscreg.h 1.6 sys/dev/usb/if_smscvar.h delete sys/dev/usb/if_udav.c 1.60-1.71 sys/dev/usb/if_udavreg.h 1.14,1.15 sys/dev/usb/if_upl.c 1.65,1.66 sys/dev/usb/if_ure.c 1.15-1.31 sys/dev/usb/if_urevar.h 1.4,1.5 sys/dev/usb/if_url.c 1.67-1.70 sys/dev/usb/if_urlreg.h 1.14 sys/dev/usb/if_urndis.c 1.22-1.33 sys/dev/usb/if_urtwn.c 1.72 sys/dev/usb/ohci.c 1.290 sys/dev/usb/uhub.c 1.143 sys/dev/usb/usb.c 1.180 sys/dev/usb/usb.h 1.118 sys/dev/usb/usb_mem.c 1.71 sys/dev/usb/usb_subr.c 1.238,1.239 sys/dev/usb/usbdevs 1.772 sys/dev/usb/usbdi.c 1.183,1.186 sys/dev/usb/usbdi.h 1.97 sys/dev/usb/usbdi_util.c 1.75 sys/dev/usb/usbhist.h 1.5,1.6 sys/dev/usb/usbnet.c 1.1-1.24 sys/dev/usb/usbnet.h 1.1-1.14 sys/dev/usb/usbroothub.c 1.9 sys/dev/usb/xhci.c 1.109,1.110 sys/modules/Makefile 1.223 sys/modules/usbnet/Makefile 1.1 usbnet(9): Add common framework for USB network devices. This bring various safety fixes to all updated drivers, and includes locking clean up, detach safety when being used or not, separate rx/tx locks to improve performance, porting to NET_MPSAFE, many edge/error case bugs in drivers fixed, as well as resovling PRs 54303 and 54308. These drivers are converted: axe(4), axen(4), aue(4), cdce(4), cue(4), kue(4), mue(4), smsc(4), udav(4), upl(4), ure(4), url(4), and urndis(4).
2019-07-24Update the NPF kernel module Makefile. Missed in the previous commit.rmind
2019-06-22Set WARNS=3 - signed-vs-unsigned integer comparepgoyette
2019-06-22Add the if_media_80 source file to the module. The module's initializationpgoyette
code was already updated.
2019-06-20Split the ufs code out of the ffs module and into its own module.pgoyette
Adapt chfs and ext2fs modules accordingly.
2019-06-18Include quota compat code by defaultpgoyette
2019-06-18Add quota optionchristos
2019-06-18Add QUOTA definechristos
2019-06-17Add -DQUOTA (Paul Goyette)christos
2019-06-17Add missing file for QUOTAchristos
2019-06-05Switch module solaris to native XDR.hannken
2019-05-08Merge isaki-audio2 branch, the overhaul of audio subsystem.isaki
- Interrupt-oriented system rather than thread-oriented. - Improve stability, quality and performance. - Split playback and record cleanly. Improve halfduplex support. - Many bugs are fixed including deadlocks, resource leaks, abuses, etc. - Simplify audio filter mechanism. The encoding/channels/frequency conversions are completely handled in the upper layer. So the hard- ware driver only converts its hardware encoding (if necessary). - audio_hw_if changes: - Obsoletes query_encoding and add query_format instead. - Obsoletes set_params and add set_format instead. - Remove drain, setfd, mappage. - The call sequences are changed. - ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted. - ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced. - cleanup config attributes: au*conv and mulaw. - All hardware drivers should follow it (I've done as much as possible). Some file paths are changed: - dev/audio.c -> dev/audio/audio.c (rewritten) - dev/audiovar.h -> dev/audio/audiovar.h - dev/audio_dai.h -> dev/audio/audio_dai.h - dev/audio_if.h -> dev/audio/audio_if.h - dev/audiobell.c -> dev/audio/audiobell.c - dev/audiobellvar.h -> dev/audio/audiobellvar.h - dev/mulaw.[ch] -> dev/audio/mulaw.[ch] + dev/audio/alaw.c
2019-05-01No need to define COMPAT_50 any longer. All the compat decisions arepgoyette
made with HOOKs.
2019-04-15Split the COMPAT_50 socket-timeout stuff out of kern/uipc_socket.cpgoyette
and into its own source file, which is now included in the compat_50 module. (Not sure how this got missed during the original [pgoyette-compat] work)
2019-03-31Add the limit nodechristos
2019-03-26Now that the if_srt module has a chance of working (ie, it nowpgoyette
actually attaches/detaches the cdevsw!), add the required srt module to allow module autoload triggered by opening /dev/srtN XXX As noted in the recent commit to if_srt.c, someone(tm) needs XXX to create the /dev/srt* device nodes with major 179. :)
2019-03-24Add a loadable module for tap(4).pgoyette
The code was already modularized, we simply didn't build the loadable module. Note also that since the tap(4) device can be reasonably accessed by either creating a device instance (using ifconfig(8)) or by opening /dev/tap, we need to create both if_tap.kmod and tap.kmod (similar to what is done with tun(4)).
2019-03-23Replace compile-time checking for vlan code with a module hook.pgoyette
Should resolve the errors reported on irc when booting a kernel which has agr without vlan: [ 1.0000000] WARNING: module error: built-in module if_agr can't find builtin dependency `if_vlan' [ 1.0000000] WARNING: module error: built-in module if_agr prerequisite if_vlan failed, error 2
2019-03-23The main compat_netbsd32 module doesn't contain any prior-version-compatpgoyette
code, so we don't need these CPP_FLAGS. The appropriate CPP_FLAGS are included in the Makefiles for the various compat_netbsd32_xx modules.
2019-02-23Install the x86 RESET state at VCPU creation time, for convenience, somaxv
that the libnvmm users can expect a functional VCPU right away.
2019-02-20WARNS=3 for compat_netbsd32_* in order to appease sign-compare warningsrin
for mips64, where NETBSD32_POINTER_TYPE is signed.
2019-02-20Another WARNS=3 modulepgoyette
2019-02-20Another module that needs WARNS=3 to allow signed-vs-unsigned comparespgoyette
2019-02-17For vax, GCC 6.5 and 7.4 cannot compile lfs_inode.c withrin
-DDIAGNOSTIC and -O2/-O1.
2019-02-17Set WARNS=3 to appease sign-compare warnings for mips, mips64, and sparc.rin
2019-02-17Bump default value of WARNS for modules from 3 to 5, andrin
explicitly set WARNS for modules that fail with WARNS=5. Also, turn on -Wno-missing-noreturn for clang for some files. At the moment, among ~ 360 modules, - 2 (lua and zfs) need WARNS=0 - 1 (solaris) needs WARNS=1 - 136 need WARNS=3 (mostly due to sign-compare) - 4 need WARNS=4 - others can be compiled with WARNS=5 Discussed on tech-kern.
2019-02-17Turn on DIAGNOSTIC by default for modules in HEAD.rin
Make us sure that it should be commented out for release branches in a similar manner to kernel configuration files. Discussed on tech-kern.
2019-02-13Add Intel-VMX support in NVMM. This allows us to run hardware-acceleratedmaxv
VMs on Intel CPUs. Overall this implementation is fast and reliable, I am able to run NetBSD VMs with many VCPUs on a quad-core Intel i5. NVMM-Intel applies several optimizations already present in NVMM-AMD, and has a code structure similar to it. No change was needed in the NVMM MI frontend, or in libnvmm. Some differences exist against AMD: - On Intel the ASID space is big, so we don't fall back to a shared ASID when there are more VCPUs executing than available ASIDs in the host, contrary to AMD. There are enough ASIDs for the maximum number of VCPUs supported by NVMM. - On Intel there are two TLBs we need to take care of, one for the host (EPT) and one for the guest (VPID). Changes in EPT paging flush the host TLB, changes to the guest mode flush the guest TLB. - On Intel there is no easy way to set/fetch the VTPR, so we intercept reads/writes to CR8 and maintain a software TPR, that we give to the virtualizer as if it was the effective TPR in the guest. - On Intel, because of SVS, the host CR4 and LSTAR are not static, so we're forced to save them on each VMENTRY. - There is extra Intel weirdness we need to take care of, for example the reserved bits in CR0 and CR4 when accesses trap. While this implementation is functional and can already run many OSes, we likely have a problem on 32bit-PAE guests, because they require special care on Intel CPUs, and currently we don't handle that correctly; such guests may misbehave for now (without altering the host stability). I expect to fix that soon.
2019-02-06Add ure(4): RealTek RTL8152/RTL8153 10/100/Gigabit USB Ethernet device.rin
Ported from OpenBSD. Support for RX/TX checksum offload added by myself.
2019-02-05Prepare the implementation of the ZFS control directory ".zfs".hannken
- Move the stub routines from zfs_stub.c to zfs_ctldir.c and remove now empty file zfs_stub.c - Add stub routines for zfsctl_loadvnode() to initialize control nodes and zfsctl_snapshot() to retrieve ".zfs/snapshot". - Add an initial vnode operations vector for control nodes. - Implement lookup into ".zfs" and lookup ".." from ".zfs/snapshot/<snap>". - Change nodeid of mounted snapshots to the snapshot object id. - Respect "-u" flag to "zfs rename <snapshot> ...".
2019-02-05be sure to only apply zlib.c's -Wno-error=implicit-fallthrough to GCC 7.mrg
push the setting into the rump and module version too.
2019-02-04don't assume _LP64 == supports COMPAT_NETBSD32.mrg
this is not true for alpha, ia64 and arm32 ports, and the first two were not building because of it, and the latter would be missing the oabi support (likely not a big deal, but still wrong.) add a makefile fragment that tells you if it is supported and include it where needed to define COMPAT_NETBSD32 when building the normal kernel (ie, modules & rump.) fixes alpha build, probably fixes ia64 build. XXX: still leaves some netbsd32 code in rf_netbsdkintf.c, that should be moved into some hooks, but first the configuration setup needs to be moved into a common function the netbsd32 code can call into, vs living in the switch case itself.
2019-02-04Don't include puffs_compat in a kernel unless the filesystem ispgoyette
selected along with COMPAT_50. Also, don't include puffs_compat in the main puffs filesystem module; it is part of the compat_50 module. Should address PR kern/53943
2019-02-04apply -Wno-error=implicit-fallthrough to via_dmablit.c.mrg
2019-02-04apply -Wno-error=implicit-fallthrough to ar5212_xmit.c and ar5416_xmit.c.mrg
2019-02-04add -Wno-error=int-in-bool-context or -Wno-error=implicit-fallthroughmrg
for various drm files that would be best ignored or upstream fixed. (could fix savagedrm, no one upstream is that any more.)
2019-02-04- use -Wno-error=implicit-fallthrough with GCC7.mrg
2019-02-03Remove some commented-out stuff accidentally left in the previous commit.pgoyette
It's just comments, NFCI
2019-02-03Don't include the raidframe compat code in the main raid module, thepgoyette
compat code lives in their own compat_raid_xx modules, which will now be autoloaded if needed. While here, extract the compat_netbsd32_raid code into its own module, too. Welcome to 8.99.34
2019-01-27Merge the [pgoyette-compat] branchpgoyette
2019-01-21Build bpfjit and sljit modules on aarch64.alnsn
2019-01-17Add a new example kernel module: mapperkamil
Basic implementation of mmap. Submitted by Akul Pillai.
2018-12-29Retire compat_ibcs2, as discussed on tech-kern@. FreeBSD did the samemaxv
recently.
2018-12-19Remove compat_svr4 and compat_svr4_32, as discussed on tech-kern@ recently,maxv
but also as discussed several times in the past.
2018-11-27Remove the rest of my local change that somehow snuck in to anpgoyette
earlier commit.