Ryan Houdek
783ceb2d56
Use epoll syscalls directly
2021-05-11 18:51:06 -07:00
Ryan Houdek
eb02afe952
Merge pull request #1013 from Sonicadvance1/fix_openat_symlinks
...
Handles symlinks in rootfs in openat
2021-05-11 17:52:07 -07:00
Ryan Houdek
e282fd2221
Merge pull request #1016 from Sonicadvance1/ioctl32_micro_optimization
...
Microoptimization for the DRM ioctls
2021-05-10 21:14:16 -07:00
Ryan Houdek
83b4188569
Microoptimization for the DRM ioctls
...
For DRM applications have a three FD deep MRU cached for faster lookups of FD to DRM handlers.
In a completely DRM ioctl bound situation like es2gears or GL application without threaded context
Then this puts us /nearly/ at the performance of calling the ioctl32 handler directly.
Sadly there is overhead that can't be overcome so this is the best that can be done from userland
2021-05-06 02:55:22 -07:00
Ryan Houdek
36fdd7f6e2
FEXConfig: Fixes INotify watcher never coming up
...
Inverted this check on accident
2021-05-05 19:44:31 -07:00
Ryan Houdek
9be67fb22a
Merge pull request #1009 from Sonicadvance1/handle_self
...
Handle more cases of an application pinging self
2021-05-05 14:51:11 -07:00
Ryan Houdek
cb9286c11e
Merge pull request #1012 from Sonicadvance1/fix_ioctl_errors
...
Fixes ioctl returning error
2021-05-05 14:50:46 -07:00
Ryan Houdek
19e45544fb
Handles symlinks in rootfs in openat
...
This fixes an issue where rootfs has symlinks to other things in the rootfs so we need to track it through.
Relies on #1009 to be merged first.
Fixes any application that relies on libblas, mpv for example.
2021-05-04 22:13:52 -07:00
Ryan Houdek
d9d5303aa0
Fixes ioctl returning error
...
Fixes evdev device description at the very least
2021-05-04 18:45:25 -07:00
Ryan Houdek
ac97c05271
Handle more cases of an application pinging self
...
AppImage uses this to inspect its own executable to ensure it is an AppImage file.
2021-05-04 18:09:15 -07:00
Stefanos Kornilios Mitsis Poiitidis
6b12c1768f
AOTIR: Add install rule for FEXUpdateAOTIRCache
2021-05-04 12:33:59 +03:00
Ryan Houdek
47e823b773
Updates binfmt_misc files to support AppImage
...
AppImage files stick additional data in the ABI Version and PAD areas that it was getting blocked on.
2021-05-03 18:08:00 -07:00
Ryan Houdek
fd6d33d197
Merge pull request #996 from FEX-Emu/skmp/aotirgen
...
AOTIR: Offline Generation
2021-05-03 15:58:57 -07:00
Ryan Houdek
3399052eaa
Make sure to setup ioctl32 handler table
2021-05-02 14:30:23 -07:00
Ryan Houdek
3df951695e
Adds Nouveau and Lima ioctl32 handlers
2021-05-02 13:05:46 -07:00
Stefanos Kornilios Mitsis Poiitidis
d6b7f32d33
AOTGen: Cleanup unwind symbol logic, add to x86-32 binaries
2021-05-02 11:08:12 +03:00
Stefanos Kornilios Mitsis Poiitidis
6dc69063f3
Merge pull request #1005 from Sonicadvance1/remove_numa
...
Remove reliance on librt and libnuma
2021-05-02 09:50:10 +03:00
Stefanos Kornilios Mitsis Poiitidis
2916c4f34c
Merge pull request #1004 from Sonicadvance1/redirect_self
...
Redirect applications using execve with self
2021-05-02 09:49:55 +03:00
Stefanos Kornilios Mitsis Poiitidis
04137d0da5
Merge pull request #1002 from Sonicadvance1/sigtimedwait
...
Initial base implementation of sigtimedwait
2021-05-02 09:49:49 +03:00
Stefanos Kornilios Mitsis Poiitidis
afa81294c9
Merge pull request #1001 from Sonicadvance1/more_ioctl32_emulation
...
More ioctl32 emulation
2021-05-02 09:49:44 +03:00
Ryan Houdek
86bdbe65e5
Implements missed x86-32 message queue syscalls
...
Nothing hit these but good to have them implemented
2021-05-01 17:40:33 -07:00
Ryan Houdek
63dee0e132
Remove reliance on librt and libnuma
...
These can fall down the raw syscall path
2021-05-01 17:40:33 -07:00
Ryan Houdek
6618bb809b
Redirect applications using execve with self
...
Fixes a step in the Java JRE and shapez.io
2021-05-01 11:09:44 -07:00
Ryan Houdek
9498a41f9b
More ioctl32 emulation
...
More DRM and i915 things, then wireless for some reason renderdoc relies on it
2021-05-01 09:40:02 -07:00
Ryan Houdek
1340ffabe4
Workaround fixes in sendmsg/recvmsg
...
Rebased and cleaned up #933
Needs to be larger allocations than what was originally proposed by #933
2021-05-01 09:37:01 -07:00
Ryan Houdek
b5115e096f
Initial base implementation of sigtimedwait
2021-05-01 09:35:29 -07:00
Ryan Houdek
a8881e8835
Adds option to force 32-bit allocator
2021-05-01 09:19:55 -07:00
Ryan Houdek
a19c0184a6
Keep using the 32-bit allocator if the kernel is old
...
Works around the Xavier boards running kernel 4.9
2021-05-01 09:06:39 -07:00
Ryan Houdek
2d0dced9e7
Work around old asound headers
2021-05-01 09:06:39 -07:00
Ryan Houdek
52cb96d630
Work around old DRM headers for i915
2021-05-01 09:06:39 -07:00
Ryan Houdek
c83a5d1bc3
Allow some more clone flags through with info log
2021-05-01 09:06:39 -07:00
Ryan Houdek
c20777d558
Change these log messages so we know which one failed
2021-05-01 09:06:38 -07:00
Ryan Houdek
9a0fc4e7e8
Workaround quick with memory allocator. Aligned 4GB regions are hard to allocate
2021-05-01 07:39:14 -07:00
Ryan Houdek
237865e064
Adds ioctl verification to struct verifier
2021-05-01 07:39:14 -07:00
Ryan Houdek
45223cc7e7
Adds initial ioctl emulation code
2021-05-01 07:39:14 -07:00
Ryan Houdek
b6344c4753
Removes old 32-bit allocator usage
...
Replaces with using host side allocations since we always have a 64-bit allocator in this case
2021-05-01 07:39:14 -07:00
Ryan Houdek
5143100a73
Switches more usages of memory allocation routines over to FEX internal
2021-05-01 07:39:14 -07:00
Stefanos Kornilios Mitsis Poiitidis
ab44f800f7
AOTgen: Cleaner interfaces, use LogMan
2021-05-01 09:40:50 +03:00
Stefanos Kornilios Mitsis Poiitidis
4bd997adaa
AOT: Postfix ir files with .aotir
2021-05-01 09:40:50 +03:00
Stefanos Kornilios Mitsis Poiitidis
244ef94e9b
AOTIR: Generate list of files with code, add Scripts/FEXUpdateAOTIRCache.sh to generate all files
2021-05-01 09:40:50 +03:00
Stefanos Kornilios Mitsis Poiitidis
a85ef061d1
AOITR: Add AOTIRGenerate fo FEXLoader option that does generation
2021-05-01 09:40:50 +03:00
Stefanos Kornilios Mitsis Poiitidis
ce9324f50f
Kinda-parse unwind table
2021-05-01 09:40:49 +03:00
Stefanos Kornilios Mitsis Poiitidis
0897fc4a0a
pretrans wip
2021-05-01 09:40:49 +03:00
Ryan Houdek
73e61b0c8e
Switches default logging output to stderr
...
stdout is too likely to break something
2021-04-30 18:28:45 -07:00
Ryan Houdek
a30866a886
Merge pull request #976 from FEX-Emu/skmp/aotir-mmap
...
AOTIR: Switch over to mmap-based loading
2021-04-30 18:24:54 -07:00
Ryan Houdek
f6cc75de87
Fixes SDL2 interface check...again.
2021-04-30 01:55:08 -07:00
Stefanos Kornilios Mitsis Poiitidis
32b4b02302
AOTIR: mmap based loading
2021-04-28 13:08:43 +03:00
Stefanos Kornilios Mitsis Poiitidis
aae4de106a
Merge pull request #992 from Sonicadvance1/optimize_cpuid
...
Optimizes CPUID generation a bit
2021-04-28 09:12:09 +03:00
Ryan Houdek
b17464d81a
Oops: Missed line on FEXConfig SDL2
2021-04-27 16:51:12 -07:00
Ryan Houdek
34a5eb6d6f
Optimizes CPUID generation a bit
...
The flags calculation is fairly intensive and we were doing it for every core.
Do it once then duplicate it per core instead
Improves generation time quite significantly. A couple of milliseconds converted to half a millisecond
Slight improvement to startup time
2021-04-27 01:09:28 -07:00