Open
Bug 1536109
Opened 6 years ago
Updated 3 years ago
NSPRIOInterposer doesn't interpose nsLocalFile.exists
Categories
(Core :: Gecko Profiler, enhancement, P2)
Core
Gecko Profiler
Tracking
()
NEW
People
(Reporter: florian, Unassigned)
References
(Blocks 1 open bug)
Details
On Windows, calling nsLocalFile.exists will show a 'stat' marker in the profile when profiling with the mainthreadio feature.
On Linux/OSX we don't have markers when calling nsLocalFile.exists. We still have 'stat' markers when the some code queries the size of a file.
This is because NSPRIOInterposer interposes FileInfo and FileInfo64, but not 'access' which is used directly by nsLocalFileUnix.
Comment 1•6 years ago
|
||
Does this explain all the stats that get reported in bug 1579607 and the last few comments of bug 1543752 , or should there be a separate bug for incomplete reports of stat
on Linux?
Flags: needinfo?(florian)
Reporter | ||
Comment 2•6 years ago
|
||
My understanding is that:
- On Windows we intercept the I/O syscalls at the operating system level (PoisonIOInterposer).
- On Unix we instead intercept it within the gecko platform (NSPRIOInterposer), which means that we get I/O markers for main thread I/O done by Gecko code, but not for main thread I/O done by OS functions we are calling (eg. gtk functions). I think this is the reason for not seeing bug 1579607 in profiles.
- The NSPRIOInterposer support for stat calls is incomplete: it will produce markers when some code is checking the file size or last modified date of a file, but won't produce markers when checking if a file exists. This is what this bug is about.
Flags: needinfo?(florian)
Updated•3 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•