Commit Graph

16 Commits

Author SHA1 Message Date
Carsten Haitzler d19e435ff9 reduce syscalls on opening files - roll CLOEXEC into open
on linux open supports() O_CLOEXEC. add test case for this in meson
build and ifdef. this rolls 3 syscalls into 1 as we were doing open,
then fnctl to get and fcntl to set flags.

less syscalls is a good thing as syscalls are not cheap on some
architectures or systems. I've seen a syscall on 1 system take 2-3x
as long as another and another syscall in the same 2 system
comparison take 10x as long. depending on the syscall you may only
have a budget of something like 5000 syscalls "per frame" (60fps)
before you spend all of your frame time just in syscalls not
doing any processing, so we should keep these down if possible
and that is what this does.
2019-07-26 11:43:17 +01:00
Carsten Haitzler a5c8e883d8 eina mmap safety - only map zeropages if it's an eina file that sigbuses
restrict mapping /dev/zero to only eina files having a sigbus
reported. the mmap was before all our file access used eina_file i
think thus the raw mmap of it. now walk all eina files and find the
candidate and only then if it exists flag is as having a faulty i/o
backing and map the zerto pages then return, otherwise call abort.
more restricted mapping and perhaps a fix for not trapping non-efl
issues.

@fix
2017-08-30 12:03:41 +09:00
Carsten Haitzler f077fb1e0d eina mmap - fix warnings thanks to missing include
add include for eina_file.h
2017-04-21 16:38:40 +09:00
Cedric BAIL b2893dfc77 eina: use new API eina_file_close_on_exec. 2017-04-18 16:54:03 -07:00
Carsten Haitzler 6bd34e2ae9 eina mmap safety handler - fix on systems without some sibgus types
this fixes 615456aae8 to compile on
systems without MCERR sigbus types.
2015-01-14 19:16:35 +09:00
Carsten Haitzler 615456aae8 eina - mmap safety handler - fix to only handle sigbus's from io
@fix

this fixes the eina mmap safety handler to only  handle what comes
from actual i/o errors (not actual corrupt/hw memory faults or invalid
objects), and if it's not a sigbus eina mmap should handle then pass
it onto the previous handler before eina mmap took over.
2015-01-13 19:30:11 +09:00
Cedric BAIL caa2ec1b29 eina: leave a comment for CID 1039688. 2014-06-05 22:26:07 +02:00
Cedric BAIL 1027e7d59c eina: avoid warning. 2013-11-10 12:07:59 +01:00
Cedric BAIL da559ee5d0 eina: use portable infrastructure to detect page size. 2013-11-10 09:26:12 +01:00
Cedric Bail 8d5e33077e efl: use HAVE_FCNTL around call to fcntl. 2013-03-10 23:10:27 +09:00
Cedric BAIL 884c31df41 eina: fix siginfo detection.
Signal are not a portable way to detect memory mapped file corruption.
So let's disable it for system without signal and later find a way to
detect it on other system.
2013-02-18 16:46:52 +09:00
Lucas De Marchi f60bfe38d6 efl: Remove check for siginfo.h and siginfo_t
SVN revision: 82579
2013-01-10 20:25:35 +00:00
Cedric BAIL 88ba56d9d5 efl: don't leak fd on exec.
SVN revision: 80434
2012-12-07 11:01:41 +00:00
Vincent Torri 7fe3d35994 merge: __UNUSED__ --> EINA_UNUSED and some fixes in eo.
SVN revision: 77542
2012-10-05 20:09:47 +00:00
Carsten Haitzler fbfb3ec61a port mmap safety fix to efl tree.
SVN revision: 77115
2012-09-27 03:46:03 +00:00
Vincent Torri 785f2a6b3a merge : add eina
currently, examples, tests and benchmark are not set. That's the next things i'll do


SVN revision: 76710
2012-09-16 10:57:48 +00:00