| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
This will require for AArch64 as we dont have modules yet.
Sponsored by: HEIF5
Sponsored by: ARM Ltd.
Differential Revision: https://reviews.freebsd.org/D1997
|
|
|
|
| |
Submitted by: Ivan Klymenko <fidaj ukr.net> [slighly modified]
|
|
|
|
|
|
|
|
|
|
| |
Use the same scheme implemented to manage credentials.
Code needing to look at process's credentials (as opposed to thred's) is
provided with *_proc variants of relevant functions.
Places which possibly had to take the proc lock anyway still use the proc
pointer to access limits.
|
|
|
|
|
|
|
|
|
| |
Thread credentials are maintained as follows: each thread has a pointer to
creds and a reference on them. The pointer is compared with proc's creds on
userspace<->kernel boundary and updated if needed.
This patch introduces a counter which can be compared instead, so that more
structures can use this scheme without adding more comparisons on the boundary.
|
| |
|
|
|
|
|
|
|
|
| |
execution control and writing the difference between the host TSC and
the guest TSC into the TSC offset in the VMCS upon encountering a
write.
Reviewed by: neel
|
|
|
|
| |
operand when dereferencing futex pointer.
|
|
|
|
|
|
| |
Differential Revision: https://reviews.freebsd.org/D2712
Reviewed by: kib
Sponsored by: EMC / Isilon Storage Division
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
rev. 55. The modern CPUs cache and TLB descriptions looked quite
questionable without the update, e.g. Haswell i7 4770S reported:
Data TLB: 4 KB pages, 4-way set associative, 64 entries
L2 cache: 256 kbytes, 8-way associative, 64 bytes/line
After the update, the report is:
Data TLB: 1 GByte pages, 4-way set associative, 4 entries
Data TLB: 4 KB pages, 4-way set associative, 64 entries
Instruction TLB: 2M/4M pages, fully associative, 8 entries
Instruction TLB: 4KByte pages, 8-way set associative, 64 entries
64-Byte prefetching
Shared 2nd-Level TLB: 4 KByte/2MByte pages, 8-way associative, 1024 entries
L2 cache: 256 kbytes, 8-way associative, 64 bytes/line
Some tags were apparently removed from the table 3-21, Vol. 2A. Keep
them around, but add a comment stating the removal.
Update the format line for cpu_stdext_feature according to the bits
from the SDM rev.55. It appears that Haswells do not store %cs and
%ds values in the FPU save area.
Store content of the %ecx register from the CPUID leaf 0x7
subleaf 0 as cpu_stdext_feature2 and print defined bits from it,
again acording to SDM rev. 55.
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
after decoding the instruction matches the one provided by hardware.
Prior to r283293 'vie->num_valid' used to contain the actual length of
the instruction whereas now it contains the maximum instruction length
possible. This introduced a bug when calculating a RIP-relative base address.
Fix this by using 'vie->num_processed' rather than 'vie->num_valid' as the
length of the emulated instruction.
Reported and tested by: tychon
MFC after: 1 week
|
|
|
|
|
|
|
|
|
| |
though they might be available in hardware.
Use tunable 'hw.vmm.svm.num_asids' to limit the number of ASIDs used by
the hypervisor.
MFC after: 1 week
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since td_name is an array member of struct thread, it can never be NULL,
so the check can be removed. In addition, curproc can never be NULL,
so remove the if statement, and splice the two printfs() together.
While here, remove the u_long cast, and use the correct printf format
specifier curproc->p_pid.
Reviewed by: kib
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D2695
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
buildkernel run.
Some of them were write-only under some kernel options, e.g. variables
keeping values only used by CTR() macros. It costs nothing to the
code readability and correctness to eliminate the warnings in those
cases too by removing the local cached values used only for
single-access.
Review: https://reviews.freebsd.org/D2665
Reviewed by: rodrigc
Looked at by: bjk
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
|
|
|
|
|
|
|
| |
"sleeping" state. This is done by forcing the vcpu to transition to "idle"
by returning to userspace with an exit code of VM_EXITCODE_REQIDLE.
MFC after: 2 weeks
|
|
|
|
|
| |
Sponsored by: The FreeBSD Foundation
MFC after: 1 month
|
|
|
|
|
|
|
| |
This is not the final fix as I need properly cleanup thread resources
before other threads suicide.
Tested by: Ruslan Makhmatkhanov
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
struct definitions out into the compat/linux/linux_socket.h
|
| |
|
| |
|
| |
|
|
|
|
|
| |
The patch developed by Jilles Tjoelker and Andrew Wilcox and
adopted for lemul branch by me.
|
|
|
|
|
|
|
|
| |
Native ABI do not need signal conversion, only emulators may want this. Usually
emulators implements its own sv_sendsig method. For now only ibcs2 emulator does
not have own sv_sendsig implementation and depends on native sendsig() method.
So, remove any extra attempts to convert signal numbers from native sendsig()
methods except from i386 where ibsc2 is living.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Linux sigset always 64 bit on all platforms. In order to move Linux
sigset code to the linux_common module define it as 64 bit int. Move
Linux sigset manipulation routines to the MI path.
2. Move Linux signal number definitions to the MI path. In general, they
are the same on all platforms except for a few signals.
3. Map Linux RT signals to the FreeBSD RT signals and hide signal conversion
tables to avoid conversion errors.
4. Emulate Linux SIGPWR signal via FreeBSD SIGRTMIN signal which is outside
of allowed on Linux signal numbers.
PR: 197216
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
argument is not a null pointer, and the ss_flags member pointed to by ss
contains flags other than SS_DISABLE. However, in fact, Linux also
allows SS_ONSTACK flag which is simply ignored.
For buggy apps (at least mono) ignore other than SS_DISABLE
flags as a Linux do.
While here move MI part of sigaltstack code to the appropriate place.
Reported by: abi at abinet dot ru
|
| |
|
|
|
|
| |
Reported by: trinity
|
| |
|
|
|
|
|
|
|
| |
to emulate posix_fallocate() function.
Differential Revision: https://reviews.freebsd.org/D1523
Reviewed by: emaste
|
| |
|
|
|
|
|
| |
Differential Revision: https://reviews.freebsd.org/D1105
Reviewed by: trasz
|
|
|
|
|
|
|
|
|
| |
access to the semop structs and functions.
Submitted by: cognet@
Differential Revision: https://reviews.freebsd.org/D1095
Reviewed by: trasz
|
| |
|
|
|
|
|
| |
Differential Revision: https://reviews.freebsd.org/D1094
In collaboration with: Jilles Tjoelker
|
|
|
|
|
|
|
| |
all supported Linuxulators.
Differential Revision: https://reviews.freebsd.org/D1093
Reviewed by: trasz
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
around kqueue() to implement epoll subset of functionality.
The kqueue user data are 32bit on i386 which is not enough for
epoll user data, so we keep user data in the proc emuldata.
Initial patch developed by rdivacky@ in 2007, then extended
by Yuri Victorovich @ r255672 and finished by me
in collaboration with mjg@ and jillies@.
Differential Revision: https://reviews.freebsd.org/D1092
|
|
|
|
|
|
|
| |
header file.
Differential Revision: https://reviews.freebsd.org/D1087
Reviewed by: trasz
|
|
|
|
|
|
| |
to check the ABI as it is known.
Differential Revision: https://reviews.freebsd.org/D1086
|
|
|
|
|
|
|
|
|
| |
to determine the kernel version (this saves one uname call).
Temporarily disable the export of a note.Linux section until I figured
out how to change the kernel version in the note.Linux on the fly.
Differential Revision: https://reviews.freebsd.org/D1081
Reviewed by: trasz
|
|
|
|
|
|
| |
glibc. At list since glibc version 2.16 using AT_RANDOM is mandatory.
Differential Revision: https://reviews.freebsd.org/D1080
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The AT_EACCESS and AT_SYMLINK_NOFOLLOW flags are actually implemented
within the glibc wrapper function for faccessat(). If either of these
flags are specified, then the wrapper function employs fstatat() to
determine access permissions.
Differential Revision: https://reviews.freebsd.org/D1078
Reviewed by: trasz
|
| |
|
|
|
|
| |
Differential Revision: https://reviews.freebsd.org/D1076
|
|
|
|
|
|
|
|
|
|
| |
thread emuldata to proc emuldata as it was originally intended.
As we can have both 64 & 32 bit Linuxulator running any eventhandler
can be called twice for us. To prevent this move eventhandlers code
from linux_emul.c to the linux_common.ko module.
Differential Revision: https://reviews.freebsd.org/D1073
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
following primary purposes:
1. Remove the dependency of linsysfs and linprocfs modules from linux.ko,
which will be architecture specific on amd64.
2. Incorporate into linux_common.ko general code for platforms on which
we'll support two Linuxulator modules (for both instruction set - 32 & 64 bit).
3. Move malloc(9) declaration to linux_common.ko, to enable getting memory
usage statistics properly.
Currently linux_common.ko incorporates a code from linux_mib.c and linux_util.c
and linprocfs, linsysfs and linux kernel modules depend on linux_common.ko.
Temporarily remove dtrace garbage from linux_mib.c and linux_util.c
Differential Revision: https://reviews.freebsd.org/D1072
In collaboration with: Vassilis Laganakos.
Reviewed by: trasz
|