There is still main thread IO done to blocklist.xml during startup
Categories
(Toolkit :: Blocklist Implementation, defect, P3)
Tracking
()
People
(Reporter: florian, Unassigned)
References
(Depends on 1 open bug)
Details
(Whiteboard: [fxperf:p3])
See this startup profile captured on yesterday's nightly: https://perfht.ml/2EP5doE
Updated•6 years ago
|
Comment 1•6 years ago
|
||
This is a result of the nsFileChannel issue that affects fetch() as well, in bug 1527712.
We could switch to using OS.File but then we'd have to do the XML parsing ourselves, on the main thread.
It seems to me fixing bug 1527712 and/or completing the switch to kinto would be preferable here.
Comment 2•6 years ago
|
||
(In reply to :Gijs (he/him) from comment #1)
We could switch to using OS.File but then we'd have to do the XML parsing ourselves, on the main thread.
... and make sure we don't actually use OS.File before browser firstpaint.
Comment 3•6 years ago
|
||
We don't have great options here, AFAICT, and bug 1527712 is getting some traction, so let's not prio this too highly.
Comment 4•6 years ago
|
||
Florian, how much is left here with bug 1527712 fixed?
Reporter | ||
Comment 5•6 years ago
|
||
(In reply to :Gijs (he/him) from comment #4)
Florian, how much is left here with bug 1527712 fixed?
We still stat blocklist.xml during startup: https://perfht.ml/2K6clTs
The stack is:
NS_ProcessNextEvent(nsIThread *,bool) [xul.dll]
nsThread::ProcessNextEvent(bool,bool *) [xul.dll]
nsresult nsInputStreamReadyEvent::Run() [xul.dll]
nsInputStreamPump::OnInputStreamReady []
nsInputStreamPump::OnStateStart []
nsresult nsInputStreamPump::OnInputStreamReady(class nsIAsyncInputStream *) [xul.dll]
nsBaseChannel::OnStartRequest(nsIRequest *) [xul.dll]
XMLHttpRequestMainThread::OnStartRequest []
nsresult mozilla::dom::XMLHttpRequestMainThread::OnStartRequest(class nsIRequest *) [xul.dll]
mozilla::dom::XMLDocument::StartDocumentLoad(char const *,nsIChannel *,nsILoadGroup *,nsISupports *,nsIStreamListener * *,bool,nsIContentSink *) [xul.dll]
mozilla::dom::Document::StartDocumentLoad(char const *,nsIChannel *,nsILoadGroup *,nsISupports *,nsIStreamListener * *,bool,nsIContentSink *) [xul.dll]
mozilla::dom::Document::RetrieveRelevantHeaders(nsIChannel *) [xul.dll]
nsresult nsLocalFile::GetLastModifiedTime(__int64 *) [xul.dll]
nsLocalFile::ResolveAndStat []
nsresult nsLocalFile::ResolveAndStat() [xul.dll]
static nsresult GetFileInfo(const class nsTString<char16_t> & const, struct PRFileInfo64 *) [xul.dll]
GetFileAttributesExW [KERNELBASE.dll]
Comment 6•5 years ago
|
||
We fixed this by switching away from the XML blocklist.
Description
•