kanhaiya Lal yadav | 31 Aug 07:50 2015
Picon

stevin, please add me to your LinkedIn network

 
 
Hi stevin,
I'd like to connect with you on LinkedIn.
kanhaiya Lal yadav
Chief Engineer at Samsung India Software Center, Noida, NCR
Accept
View Profile
© 2015 LinkedIn Ireland Limited. LinkedIn, the LinkedIn logo, and InMail are registered trademarks of LinkedIn Corporation in the United States and/or other countries. All rights reserved.
You are receiving Invitation emails. Unsubscribe
This email was intended for stevin zhang (Information Technology and Services Professional). Learn why we included this.
LinkedIn is a registered business name of LinkedIn Ireland Limited.
Registered in Ireland as a private limited company, Company Number 477441
Registered Office: 70 Sir John Rogersons Quay, Dublin 2
_______________________________________________
webkit-dev mailing list
webkit-dev <at> lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev
Konovalov, Vadim | 26 Aug 19:58 2015

what command used to install compiled webkitgtk?

after

 

  build-webkit --gtk --prefix=/foo/bar

 

then I want to install so installation goes to the said prefix, how should I do that?

(I've searched but haven't found the answer)

 

Thanks in advance!

 

_______________________________________________
webkit-dev mailing list
webkit-dev <at> lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev
Bryan Woodruff | 26 Aug 18:46 2015

(Legacy 2.1.1) LLINT: _llint_program_prologue CodeBlock::m_instructions[0] is NULL

Apologies in advance for cross-posting – not seeing any activity on webkit-help.

 

Caveat: Due to divergence in the code base and the target platform, I’m working with an older port based on v2.1.1.  But, I believe my question is broad enough that someone may be able to help point me in the right area.

 

I’m enabling LLINT which was not enabled for the port we’re working with in this version.   In the dispatch to llint_program_prologue, the CodeBlock.m_instructions[0] points to the value 0 which results into a jmp to 0 and a subsequent access violation.

 

I’m looking to understand what conditions cause CodeBlock.m_instructions[0] to not point to code.   Both JIT and LLINT are enabled.

 

JSC::prepareForExecution builds a CTI stub with programEntryThunkGenerator, the prologue thunk executes and lands in the prologue code.  I verified that the CodeBlock processed in prologue is the CodeBlock set up by this stack:

 

x!JSC::prepareForExecution<JSC::ProgramCodeBlock>(JSC::ExecState *, WTF::OwnPtr<JSC::ProgramCodeBlock> & {...}, JSC::JITCode & {...}, JSC::JITCode::JITType BaselineJIT, unsigned int) executionharness.h line 42

x!JSC::ProgramExecutable::compileInternal(JSC::ExecState *, JSC::JSScope *, JSC::JITCode::JITType BaselineJIT, unsigned int) executable.cpp line 328 + 19 bytes

x!JSC::ProgramExecutable::compile(JSC::ExecState *, JSC::JSScope *) executable.h line 514 + 19 bytes

 

Note that this code path is not taken as the profiler is not enabled, I’m not clear as to the design if this would impact this 0 index of m_instructions or not.

 

        if (exec->vm().m_perBytecodeProfiler)

            exec->vm().m_perBytecodeProfiler->ensureBytecodesFor(codeBlock.get());

 

After the prepareForExecution and going through the thunk, it’s the processing of the CodeBlock that lands the instruction pointer at 0.  The offset of m_instructions looks correct comparing the offset with other assembly generated for other modules (including CodeBlock.cpp itself).   Inspecting the CodeBlock object and m_instructions[0] verifies it has a 0 in this entry.   I am assuming this is unexpected – but I don’t understand where this is supposed to be set up when tracing step-by-step through this code path.

 

Any suggestions/pointers appreciated.

 

Thanks!

 

 

_llint_program_prologue:

    prologue(notFunctionCodeBlockGetter, notFunctionCodeBlockSetter, _llint_entry_osr, _llint_trace_prologue)

    dispatch(0)

 

 

    # Set up the PC.

   if JSVALUE64

        loadp CodeBlock::m_instructions[t1], PB

        move 0, PC

    else

        loadp CodeBlock::m_instructions[t1], PC

    end

 

_______________________________________________
webkit-dev mailing list
webkit-dev <at> lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev
Vienneau, Christopher | 26 Aug 00:20 2015

Re: Running WinCairo without JIT

I’ve got it sorted out, seems the steps needed to disable JIT for WinCairo are:

 

1 – Add the following near the top of wtf\Platform.h: #define ENABLE_JIT 0   

2 – Make sure the following file is excluded from the build (in the non-JIT path, it’s not actual assembly so shouldn’t be sent to masm): JavaScriptCore\DerivedSources\LowLevelInterpreter.asm

3 – Modify Source\JavaScriptCore\JavaScriptCore.vcxproj\LLInt\LLIntAssembly\build-LLIntAssembly.pl line 65 as the comment indicates:

# If you want to enable the LLINT C loop, set OUTPUTFILENAME to "LLIntAssembly.h"

my $OUTPUTFILENAME = File::Spec->catfile($DERIVED_SOURCES_DIR, 'LLIntAssembly.h');

 

Cheers

 

Chris

 

From: Vienneau, Christopher
Sent: Tuesday, August 25, 2015 12:18 PM
To: 'Alex Christensen' <achristensen <at> apple.com>; WebKit Development <webkit-dev <at> lists.webkit.org>
Subject: RE: Running WinCairo without JIT

 

>> If you are trying to include LLIntAssembly.h on Windows, you’re doing something wrong

Ok, perhaps there is a bug here then.  As noted in my first mail the steps I take in an attempt to disable JIT is:

1)

C:\cygwin\home\cvienneau\WebKit-r188436\Source\WTF\wtf\Platform.h (line 698)

#define ENABLE_JIT 0

 

2)

Change type of LowLevelInterpreterWin.asm in VS project so that it isn’t built:

(Item Type) "Microsoft Macro Assembler" -> "Text"

I presume this needs to be done since the sln is not generated.  Is that the right approach?

 

3)

After I do this then the C_LOOP path will take over, so now in:

C:\cygwin\home\cvienneau\WebKit-r188436\Source\JavaScriptCore\llint\LowLevelInterpreter.cpp (line 425)

It does an:

#include "LLIntAssembly.h"

 

If you’re telling me it should never do this include on windows then perhaps its missing a #define here?  Let’s assume for a second that that’s all that is missing so I comment out the include for my next build, it does compile fine however I get a crash when I encounter any JavaScript.  The crash originate from:

 

C:\cygwin\home\cvienneau\WebKit-r188436\Source\JavaScriptCore\llint\LowLevelInterpreter.cpp  (line 482)

Where is it just returning a default JSValue();

 

    return JSValue(); // to suppress a compiler warning.

} // Interpreter::llintCLoopExecute()

 

} // namespace JSC

 

>             JavaScriptCore.dll!JSC::LLInt::CLoop::execute(JSC::OpcodeID entryOpcodeID, void * executableAddress, JSC::VM * vm, JSC::ProtoCallFrame * protoCallFrame, bool isInitializationPass) Line 482  C++

               JavaScriptCore.dll!vmEntryToJavaScript(void * executableAddress, JSC::VM * vm, JSC::ProtoCallFrame * protoCallFrame) Line 100              C++

               JavaScriptCore.dll!JSC::JITCode::execute(JSC::VM * vm, JSC::ProtoCallFrame * protoCallFrame) Line 82 C++

               JavaScriptCore.dll!JSC::Interpreter::execute(JSC::ProgramExecutable * program, JSC::ExecState * callFrame, JSC::JSObject * thisObj) Line 884               C++

               JavaScriptCore.dll!JSC::evaluate(JSC::ExecState * exec, const JSC::SourceCode & source, JSC::JSValue thisValue, WTF::NakedPtr<JSC::Exception> & returnedException) Line 101          C++

               WebKit.dll!WebCore::ScriptController::evaluateInWorld(const WebCore::ScriptSourceCode & sourceCode, WebCore::DOMWrapperWorld & world) Line 164             C++

               WebKit.dll!WebCore::ScriptController::evaluate(const WebCore::ScriptSourceCode & sourceCode) Line 181                C++

               WebKit.dll!WebCore::ScriptElement::executeScript(const WebCore::ScriptSourceCode & sourceCode) Line 309         C++

               WebKit.dll!WebCore::ScriptElement::prepareScript(const WTF::TextPosition & scriptStartPosition, WebCore::ScriptElement::LegacyTypeSupport supportLegacyTypes) Line 242     C++

               WebKit.dll!WebCore::HTMLScriptRunner::runScript(WebCore::Element * script, const WTF::TextPosition & scriptStartPosition) Line 310        C++

               WebKit.dll!WebCore::HTMLScriptRunner::execute(WTF::PassRefPtr<WebCore::Element> scriptElement, const WTF::TextPosition & scriptStartPosition) Line 179  C++

               WebKit.dll!WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder() Line 195            C++

                WebKit.dll!WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode mode) Line 259 C++

               WebKit.dll!WebCore::HTMLDocumentParser::append(WTF::PassRefPtr<WTF::StringImpl> inputSource) Line 393         C++

               WebKit.dll!WebCore::DecodedDataDocumentParser::appendBytes(WebCore::DocumentWriter & writer, const char * data, unsigned __int64 length) Line 50          C++

               WebKit.dll!WebCore::DocumentLoader::commitData(const char * bytes, unsigned __int64 length) Line 867                C++

               WebKit.dll!WebFrameLoaderClient::committedLoad(WebCore::DocumentLoader * loader, const char * data, int length) Line 700              C++

               WebKit.dll!WebCore::DocumentLoader::commitLoad(const char * data, int length) Line 784        C++

               WebKit.dll!WebCore::DocumentLoader::dataReceived(WebCore::CachedResource * resource, const char * data, int length) Line 890              C++

               WebKit.dll!WebCore::CachedRawResource::notifyClientsDataWasReceived(const char * data, unsigned int length) Line 118                C++

               WebKit.dll!WebCore::CachedRawResource::addDataBuffer(WebCore::SharedBuffer & data) Line 70      C++

               WebKit.dll!WebCore::SubresourceLoader::didReceiveDataOrBuffer(const char * data, int length, WTF::PassRefPtr<WebCore::SharedBuffer> prpBuffer, __int64 encodedDataLength, WebCore::DataPayloadType dataPayloadType) Line 295          C++

               WebKit.dll!WebCore::SubresourceLoader::didReceiveData(const char * data, unsigned int length, __int64 encodedDataLength, WebCore::DataPayloadType dataPayloadType) Line 271    C++

               WebKit.dll!WebCore::writeCallback(void * ptr, unsigned __int64 size, unsigned __int64 nmemb, void * data) Line 335                C++

               libcurl.dll!000007fedfa63510()    Unknown

               libcurl.dll!000007fedfa432af()     Unknown

               libcurl.dll!000007fedfa5601d()    Unknown

               libcurl.dll!000007fedfa713b4()    Unknown

               libcurl.dll!000007fedfa71ca5()     Unknown

               libcurl.dll!000007fedfa5d033()    Unknown

               libcurl.dll!000007fedfa5d5f0()     Unknown

               WebKit.dll!WebCore::ResourceHandleManager::downloadTimerCallback() Line 650        C++

               WebKit.dll!WebCore::ThreadTimers::sharedTimerFiredInternal() Line 135            C++

               WebKit.dll!WebCore::TimerWindowWndProc(HWND__ * hWnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 93              C++

               [External Code]

               WebKit.dll!WebKitMessageLoop::run(HACCEL__ * hAccelTable) Line 89                C++

               WinLauncher.dll!0000000180006f97()      Unknown

               WinLauncher.exe!00000001400016af()   Unknown

               WinLauncher.exe!0000000140003382()  Unknown

               [External Code]

 

Later causing this crash in the form of a RELEASE_ASSERT(result); C:\cygwin\home\cvienneau\WebKit-r188436\Source\JavaScriptCore\runtime\Completion.cpp (line 107)

                WTF.dll!WTFCrash() Line 321      C++

>             JavaScriptCore.dll!JSC::evaluate(JSC::ExecState * exec, const JSC::SourceCode & source, JSC::JSValue thisValue, WTF::NakedPtr<JSC::Exception> & returnedException) Line 107          C++

               WebKit.dll!WebCore::ScriptController::evaluateInWorld(const WebCore::ScriptSourceCode & sourceCode, WebCore::DOMWrapperWorld & world) Line 164             C++

               WebKit.dll!WebCore::ScriptController::evaluate(const WebCore::ScriptSourceCode & sourceCode) Line 181                C++

               WebKit.dll!WebCore::ScriptElement::executeScript(const WebCore::ScriptSourceCode & sourceCode) Line 309         C++

               WebKit.dll!WebCore::ScriptElement::prepareScript(const WTF::TextPosition & scriptStartPosition, WebCore::ScriptElement::LegacyTypeSupport supportLegacyTypes) Line 242     C++

               WebKit.dll!WebCore::HTMLScriptRunner::runScript(WebCore::Element * script, const WTF::TextPosition & scriptStartPosition) Line 310        C++

               WebKit.dll!WebCore::HTMLScriptRunner::execute(WTF::PassRefPtr<WebCore::Element> scriptElement, const WTF::TextPosition & scriptStartPosition) Line 179  C++

               WebKit.dll!WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder() Line 195            C++

                WebKit.dll!WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode mode) Line 259 C++

               WebKit.dll!WebCore::HTMLDocumentParser::append(WTF::PassRefPtr<WTF::StringImpl> inputSource) Line 393         C++

               WebKit.dll!WebCore::DecodedDataDocumentParser::appendBytes(WebCore::DocumentWriter & writer, const char * data, unsigned __int64 length) Line 50          C++

               WebKit.dll!WebCore::DocumentLoader::commitData(const char * bytes, unsigned __int64 length) Line 867                C++

               WebKit.dll!WebFrameLoaderClient::committedLoad(WebCore::DocumentLoader * loader, const char * data, int length) Line 700              C++

               WebKit.dll!WebCore::DocumentLoader::commitLoad(const char * data, int length) Line 784        C++

               WebKit.dll!WebCore::DocumentLoader::dataReceived(WebCore::CachedResource * resource, const char * data, int length) Line 890              C++

               WebKit.dll!WebCore::CachedRawResource::notifyClientsDataWasReceived(const char * data, unsigned int length) Line 118                C++

               WebKit.dll!WebCore::CachedRawResource::addDataBuffer(WebCore::SharedBuffer & data) Line 70      C++

               WebKit.dll!WebCore::SubresourceLoader::didReceiveDataOrBuffer(const char * data, int length, WTF::PassRefPtr<WebCore::SharedBuffer> prpBuffer, __int64 encodedDataLength, WebCore::DataPayloadType dataPayloadType) Line 295          C++

               WebKit.dll!WebCore::SubresourceLoader::didReceiveData(const char * data, unsigned int length, __int64 encodedDataLength, WebCore::DataPayloadType dataPayloadType) Line 271    C++

               WebKit.dll!WebCore::writeCallback(void * ptr, unsigned __int64 size, unsigned __int64 nmemb, void * data) Line 335                C++

               libcurl.dll!000007fedfa63510()    Unknown

               libcurl.dll!000007fedfa432af()     Unknown

               libcurl.dll!000007fedfa5601d()    Unknown

               libcurl.dll!000007fedfa713b4()    Unknown

               libcurl.dll!000007fedfa71ca5()     Unknown

               libcurl.dll!000007fedfa5d033()    Unknown

               libcurl.dll!000007fedfa5d5f0()     Unknown

               WebKit.dll!WebCore::ResourceHandleManager::downloadTimerCallback() Line 650        C++

               WebKit.dll!WebCore::ThreadTimers::sharedTimerFiredInternal() Line 135            C++

               WebKit.dll!WebCore::TimerWindowWndProc(HWND__ * hWnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 93              C++

               [External Code]

               WebKit.dll!WebKitMessageLoop::run(HACCEL__ * hAccelTable) Line 89                C++

               WinLauncher.dll!0000000180006f97()      Unknown

               WinLauncher.exe!00000001400016af()   Unknown

               WinLauncher.exe!0000000140003382()  Unknown

               [External Code]

 

Have I taken incorrect steps to disable JIT or is there a bug?

 

From: Alex Christensen [mailto:achristensen <at> apple.com]
Sent: Tuesday, August 25, 2015 10:42 AM
To: Vienneau, Christopher <cvienneau <at> ea.com>
Cc: webkit-dev-request <at> lists.webkit.org
Subject: Re: Running WinCairo without JIT

 

LLIntAssembly.h should never be needed or used on Windows.  The reason we have LowLevelInterpreterWin.asm instead is that Visual Studio has a limit on the number of characters (65535 IIRC) in an inline assembly string and so we put that assembly in a different file.  If you are trying to include LLIntAssembly.h on Windows, you’re doing something wrong.

 

Alex

 

 

On Aug 24, 2015, at 6:08 PM, Vienneau, Christopher <cvienneau <at> ea.com> wrote:

 

LLIntAssembly.h

 

_______________________________________________
webkit-dev mailing list
webkit-dev <at> lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev
Vienneau, Christopher | 25 Aug 21:18 2015

Re: Running WinCairo without JIT

>> If you are trying to include LLIntAssembly.h on Windows, you’re doing something wrong

Ok, perhaps there is a bug here then.  As noted in my first mail the steps I take in an attempt to disable JIT is:

1)

C:\cygwin\home\cvienneau\WebKit-r188436\Source\WTF\wtf\Platform.h (line 698)

#define ENABLE_JIT 0

 

2)

Change type of LowLevelInterpreterWin.asm in VS project so that it isn’t built:

(Item Type) "Microsoft Macro Assembler" -> "Text"

I presume this needs to be done since the sln is not generated.  Is that the right approach?

 

3)

After I do this then the C_LOOP path will take over, so now in:

C:\cygwin\home\cvienneau\WebKit-r188436\Source\JavaScriptCore\llint\LowLevelInterpreter.cpp (line 425)

It does an:

#include "LLIntAssembly.h"

 

If you’re telling me it should never do this include on windows then perhaps its missing a #define here?  Let’s assume for a second that that’s all that is missing so I comment out the include for my next build, it does compile fine however I get a crash when I encounter any JavaScript.  The crash originate from:

 

C:\cygwin\home\cvienneau\WebKit-r188436\Source\JavaScriptCore\llint\LowLevelInterpreter.cpp  (line 482)

Where is it just returning a default JSValue();

 

    return JSValue(); // to suppress a compiler warning.

} // Interpreter::llintCLoopExecute()

 

} // namespace JSC

 

>             JavaScriptCore.dll!JSC::LLInt::CLoop::execute(JSC::OpcodeID entryOpcodeID, void * executableAddress, JSC::VM * vm, JSC::ProtoCallFrame * protoCallFrame, bool isInitializationPass) Line 482  C++

               JavaScriptCore.dll!vmEntryToJavaScript(void * executableAddress, JSC::VM * vm, JSC::ProtoCallFrame * protoCallFrame) Line 100              C++

               JavaScriptCore.dll!JSC::JITCode::execute(JSC::VM * vm, JSC::ProtoCallFrame * protoCallFrame) Line 82 C++

               JavaScriptCore.dll!JSC::Interpreter::execute(JSC::ProgramExecutable * program, JSC::ExecState * callFrame, JSC::JSObject * thisObj) Line 884               C++

               JavaScriptCore.dll!JSC::evaluate(JSC::ExecState * exec, const JSC::SourceCode & source, JSC::JSValue thisValue, WTF::NakedPtr<JSC::Exception> & returnedException) Line 101          C++

               WebKit.dll!WebCore::ScriptController::evaluateInWorld(const WebCore::ScriptSourceCode & sourceCode, WebCore::DOMWrapperWorld & world) Line 164             C++

               WebKit.dll!WebCore::ScriptController::evaluate(const WebCore::ScriptSourceCode & sourceCode) Line 181                C++

               WebKit.dll!WebCore::ScriptElement::executeScript(const WebCore::ScriptSourceCode & sourceCode) Line 309         C++

               WebKit.dll!WebCore::ScriptElement::prepareScript(const WTF::TextPosition & scriptStartPosition, WebCore::ScriptElement::LegacyTypeSupport supportLegacyTypes) Line 242     C++

               WebKit.dll!WebCore::HTMLScriptRunner::runScript(WebCore::Element * script, const WTF::TextPosition & scriptStartPosition) Line 310        C++

               WebKit.dll!WebCore::HTMLScriptRunner::execute(WTF::PassRefPtr<WebCore::Element> scriptElement, const WTF::TextPosition & scriptStartPosition) Line 179  C++

               WebKit.dll!WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder() Line 195            C++

                WebKit.dll!WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode mode) Line 259 C++

               WebKit.dll!WebCore::HTMLDocumentParser::append(WTF::PassRefPtr<WTF::StringImpl> inputSource) Line 393         C++

               WebKit.dll!WebCore::DecodedDataDocumentParser::appendBytes(WebCore::DocumentWriter & writer, const char * data, unsigned __int64 length) Line 50          C++

               WebKit.dll!WebCore::DocumentLoader::commitData(const char * bytes, unsigned __int64 length) Line 867                C++

               WebKit.dll!WebFrameLoaderClient::committedLoad(WebCore::DocumentLoader * loader, const char * data, int length) Line 700              C++

               WebKit.dll!WebCore::DocumentLoader::commitLoad(const char * data, int length) Line 784        C++

               WebKit.dll!WebCore::DocumentLoader::dataReceived(WebCore::CachedResource * resource, const char * data, int length) Line 890              C++

               WebKit.dll!WebCore::CachedRawResource::notifyClientsDataWasReceived(const char * data, unsigned int length) Line 118                C++

               WebKit.dll!WebCore::CachedRawResource::addDataBuffer(WebCore::SharedBuffer & data) Line 70      C++

               WebKit.dll!WebCore::SubresourceLoader::didReceiveDataOrBuffer(const char * data, int length, WTF::PassRefPtr<WebCore::SharedBuffer> prpBuffer, __int64 encodedDataLength, WebCore::DataPayloadType dataPayloadType) Line 295          C++

               WebKit.dll!WebCore::SubresourceLoader::didReceiveData(const char * data, unsigned int length, __int64 encodedDataLength, WebCore::DataPayloadType dataPayloadType) Line 271    C++

               WebKit.dll!WebCore::writeCallback(void * ptr, unsigned __int64 size, unsigned __int64 nmemb, void * data) Line 335                C++

               libcurl.dll!000007fedfa63510()    Unknown

               libcurl.dll!000007fedfa432af()     Unknown

               libcurl.dll!000007fedfa5601d()    Unknown

               libcurl.dll!000007fedfa713b4()    Unknown

               libcurl.dll!000007fedfa71ca5()     Unknown

               libcurl.dll!000007fedfa5d033()    Unknown

               libcurl.dll!000007fedfa5d5f0()     Unknown

               WebKit.dll!WebCore::ResourceHandleManager::downloadTimerCallback() Line 650        C++

               WebKit.dll!WebCore::ThreadTimers::sharedTimerFiredInternal() Line 135            C++

               WebKit.dll!WebCore::TimerWindowWndProc(HWND__ * hWnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 93              C++

               [External Code]

               WebKit.dll!WebKitMessageLoop::run(HACCEL__ * hAccelTable) Line 89                C++

               WinLauncher.dll!0000000180006f97()      Unknown

               WinLauncher.exe!00000001400016af()   Unknown

               WinLauncher.exe!0000000140003382()  Unknown

               [External Code]

 

Later causing this crash in the form of a RELEASE_ASSERT(result); C:\cygwin\home\cvienneau\WebKit-r188436\Source\JavaScriptCore\runtime\Completion.cpp (line 107)

                WTF.dll!WTFCrash() Line 321      C++

>             JavaScriptCore.dll!JSC::evaluate(JSC::ExecState * exec, const JSC::SourceCode & source, JSC::JSValue thisValue, WTF::NakedPtr<JSC::Exception> & returnedException) Line 107          C++

               WebKit.dll!WebCore::ScriptController::evaluateInWorld(const WebCore::ScriptSourceCode & sourceCode, WebCore::DOMWrapperWorld & world) Line 164             C++

               WebKit.dll!WebCore::ScriptController::evaluate(const WebCore::ScriptSourceCode & sourceCode) Line 181                C++

               WebKit.dll!WebCore::ScriptElement::executeScript(const WebCore::ScriptSourceCode & sourceCode) Line 309         C++

               WebKit.dll!WebCore::ScriptElement::prepareScript(const WTF::TextPosition & scriptStartPosition, WebCore::ScriptElement::LegacyTypeSupport supportLegacyTypes) Line 242     C++

               WebKit.dll!WebCore::HTMLScriptRunner::runScript(WebCore::Element * script, const WTF::TextPosition & scriptStartPosition) Line 310        C++

               WebKit.dll!WebCore::HTMLScriptRunner::execute(WTF::PassRefPtr<WebCore::Element> scriptElement, const WTF::TextPosition & scriptStartPosition) Line 179  C++

               WebKit.dll!WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder() Line 195            C++

                WebKit.dll!WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode mode) Line 259 C++

               WebKit.dll!WebCore::HTMLDocumentParser::append(WTF::PassRefPtr<WTF::StringImpl> inputSource) Line 393         C++

               WebKit.dll!WebCore::DecodedDataDocumentParser::appendBytes(WebCore::DocumentWriter & writer, const char * data, unsigned __int64 length) Line 50          C++

               WebKit.dll!WebCore::DocumentLoader::commitData(const char * bytes, unsigned __int64 length) Line 867                C++

               WebKit.dll!WebFrameLoaderClient::committedLoad(WebCore::DocumentLoader * loader, const char * data, int length) Line 700              C++

               WebKit.dll!WebCore::DocumentLoader::commitLoad(const char * data, int length) Line 784        C++

               WebKit.dll!WebCore::DocumentLoader::dataReceived(WebCore::CachedResource * resource, const char * data, int length) Line 890              C++

               WebKit.dll!WebCore::CachedRawResource::notifyClientsDataWasReceived(const char * data, unsigned int length) Line 118                C++

               WebKit.dll!WebCore::CachedRawResource::addDataBuffer(WebCore::SharedBuffer & data) Line 70      C++

               WebKit.dll!WebCore::SubresourceLoader::didReceiveDataOrBuffer(const char * data, int length, WTF::PassRefPtr<WebCore::SharedBuffer> prpBuffer, __int64 encodedDataLength, WebCore::DataPayloadType dataPayloadType) Line 295          C++

               WebKit.dll!WebCore::SubresourceLoader::didReceiveData(const char * data, unsigned int length, __int64 encodedDataLength, WebCore::DataPayloadType dataPayloadType) Line 271    C++

               WebKit.dll!WebCore::writeCallback(void * ptr, unsigned __int64 size, unsigned __int64 nmemb, void * data) Line 335                C++

               libcurl.dll!000007fedfa63510()    Unknown

               libcurl.dll!000007fedfa432af()     Unknown

               libcurl.dll!000007fedfa5601d()    Unknown

               libcurl.dll!000007fedfa713b4()    Unknown

               libcurl.dll!000007fedfa71ca5()     Unknown

               libcurl.dll!000007fedfa5d033()    Unknown

               libcurl.dll!000007fedfa5d5f0()     Unknown

               WebKit.dll!WebCore::ResourceHandleManager::downloadTimerCallback() Line 650        C++

               WebKit.dll!WebCore::ThreadTimers::sharedTimerFiredInternal() Line 135            C++

               WebKit.dll!WebCore::TimerWindowWndProc(HWND__ * hWnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 93              C++

               [External Code]

               WebKit.dll!WebKitMessageLoop::run(HACCEL__ * hAccelTable) Line 89                C++

               WinLauncher.dll!0000000180006f97()      Unknown

               WinLauncher.exe!00000001400016af()   Unknown

               WinLauncher.exe!0000000140003382()  Unknown

               [External Code]

 

Have I taken incorrect steps to disable JIT or is there a bug?

 

From: Alex Christensen [mailto:achristensen <at> apple.com]
Sent: Tuesday, August 25, 2015 10:42 AM
To: Vienneau, Christopher <cvienneau <at> ea.com>
Cc: webkit-dev-request <at> lists.webkit.org
Subject: Re: Running WinCairo without JIT

 

LLIntAssembly.h should never be needed or used on Windows.  The reason we have LowLevelInterpreterWin.asm instead is that Visual Studio has a limit on the number of characters (65535 IIRC) in an inline assembly string and so we put that assembly in a different file.  If you are trying to include LLIntAssembly.h on Windows, you’re doing something wrong.

 

Alex

 

 

On Aug 24, 2015, at 6:08 PM, Vienneau, Christopher <cvienneau <at> ea.com> wrote:

 

LLIntAssembly.h

 

_______________________________________________
webkit-dev mailing list
webkit-dev <at> lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev
조진철 | 25 Aug 05:27 2015

Svn server is very slow to get full code.

Hi webkit-dev.


I am getting webkit full source through svn.
But the svn server is so slow that I cannot get it.
It looks like something wrong. 

WebKit-Git works as well.

Could anybody check it?

Thanks.
___________

Jincheol Jo
Naver Labs / Software Engineer.

_______________________________________________
webkit-dev mailing list
webkit-dev <at> lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev
Vienneau, Christopher | 21 Aug 23:42 2015

WinCairo Stability

Hi,

 

I grabbed the latest WinCairo (r188436) a few days ago and did a few tests with the debug build.  I’ve only tried a small selection of pages but I’m seeing frequent asserts/crashes, for example see the attached callstacks from espn.com, facebook.com and html5test.com.

 

Are these known issues?

Is it good to pull directly from ML or is there are more stable branch I should be pulling from?

 

Thanks

 

Chris Vienneau

 

 

>	WTF.dll!WTFCrash() Line 321	C++
 	WebKit.dll!WebCore::applyFontTransforms(WebCore::GlyphBuffer * glyphBuffer, bool ltr, int &
lastGlyphCount, const WebCore::Font * font, WebCore::WidthIterator & iterator, unsigned int
typesettingFeatures, bool force,
WTF::Vector<std::pair<int,WebCore::OriginalAdvancesForCharacterTreatedAsSpace>,64,WTF::CrashOnOverflow,16>
& charactersTreatedAsSpace) Line 102	C++

	WebKit.dll!WebCore::WidthIterator::advanceInternal<WebCore::SurrogatePairAwareTextIterator>(WebCore::SurrogatePairAwareTextIterator
& textIterator, WebCore::GlyphBuffer * glyphBuffer) Line 430	C++
 	WebKit.dll!WebCore::WidthIterator::advance(int offset, WebCore::GlyphBuffer * glyphBuffer)
Line 459	C++
 	WebKit.dll!WebCore::FontCascade::getGlyphsAndAdvancesForSimpleText(const WebCore::TextRun &
run, int from, int to, WebCore::GlyphBuffer & glyphBuffer,
WebCore::FontCascade::ForTextEmphasisOrNot forTextEmphasis) Line 1283	C++
 	WebKit.dll!WebCore::FontCascade::drawSimpleText(WebCore::GraphicsContext * context, const
WebCore::TextRun & run, const WebCore::FloatPoint & point, int from, int to) Line 1306	C++
 	WebKit.dll!WebCore::FontCascade::drawText(WebCore::GraphicsContext * context, const
WebCore::TextRun & run, const WebCore::FloatPoint & point, int from, int to,
WebCore::FontCascade::CustomFontNotReadyAction customFontNotReadyAction) Line 320	C++
 	WebKit.dll!WebCore::GraphicsContext::drawText(const WebCore::FontCascade & font, const
WebCore::TextRun & run, const WebCore::FloatPoint & point, int from, int to) Line 319	C++
 	WebKit.dll!WebCore::drawTextOrEmphasisMarks(WebCore::GraphicsContext & context, const
WebCore::FontCascade & font, const WebCore::TextRun & textRun, const WTF::AtomicString &
emphasisMark, int emphasisMarkOffset, const WebCore::FloatPoint & point, const int from, const int
to) Line 63	C++
 	WebKit.dll!WebCore::paintTextWithShadows(WebCore::GraphicsContext & context, const
WebCore::FontCascade & font, const WebCore::TextRun & textRun, const WTF::AtomicString &
emphasisMark, int emphasisMarkOffset, int startOffset, int endOffset, int truncationPoint, const
WebCore::FloatPoint & textOrigin, const WebCore::FloatRect & boxRect, const WebCore::ShadowData *
shadow, bool stroked, bool horizontal) Line 139	C++
 	WebKit.dll!WebCore::TextPainter::paintText() Line 166	C++
 	WebKit.dll!WebCore::InlineTextBox::paint(WebCore::PaintInfo & paintInfo, const
WebCore::LayoutPoint & paintOffset, WebCore::LayoutUnit __formal, WebCore::LayoutUnit __formal)
Line 617	C++
 	WebKit.dll!WebCore::InlineFlowBox::paint(WebCore::PaintInfo & paintInfo, const
WebCore::LayoutPoint & paintOffset, WebCore::LayoutUnit lineTop, WebCore::LayoutUnit
lineBottom) Line 1193	C++
 	WebKit.dll!WebCore::InlineFlowBox::paint(WebCore::PaintInfo & paintInfo, const
WebCore::LayoutPoint & paintOffset, WebCore::LayoutUnit lineTop, WebCore::LayoutUnit
lineBottom) Line 1193	C++
 	WebKit.dll!WebCore::RootInlineBox::paint(WebCore::PaintInfo & paintInfo, const
WebCore::LayoutPoint & paintOffset, WebCore::LayoutUnit lineTop, WebCore::LayoutUnit
lineBottom) Line 187	C++
 	WebKit.dll!WebCore::RenderLineBoxList::paint(WebCore::RenderBoxModelObject * renderer,
WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 265	C++
 	WebKit.dll!WebCore::RenderBlockFlow::paintInlineChildren(WebCore::PaintInfo & paintInfo,
const WebCore::LayoutPoint & paintOffset) Line 3454	C++
 	WebKit.dll!WebCore::RenderBlock::paintContents(WebCore::PaintInfo & paintInfo, const
WebCore::LayoutPoint & paintOffset) Line 1435	C++
 	WebKit.dll!WebCore::RenderBlock::paintObject(WebCore::PaintInfo & paintInfo, const
WebCore::LayoutPoint & paintOffset) Line 1588	C++
 	WebKit.dll!WebCore::RenderBlock::paint(WebCore::PaintInfo & paintInfo, const
WebCore::LayoutPoint & paintOffset) Line 1415	C++
 	WebKit.dll!WebCore::RenderLayer::paintForegroundForFragmentsWithPhase(WebCore::PaintPhase
phase, const WTF::Vector<WebCore::LayerFragment,1,WTF::CrashOnOverflow,16> & layerFragments,
WebCore::GraphicsContext * context, const WebCore::RenderLayer::LayerPaintingInfo &
localPaintingInfo, unsigned int paintBehavior, WebCore::RenderObject *
subtreePaintRootForRenderer) Line 4732	C++
 	WebKit.dll!WebCore::RenderLayer::paintForegroundForFragments(const
WTF::Vector<WebCore::LayerFragment,1,WTF::CrashOnOverflow,16> & layerFragments,
WebCore::GraphicsContext * context, WebCore::GraphicsContext * transparencyLayerContext, const
WebCore::LayoutRect & transparencyPaintDirtyRect, bool haveTransparency, const
WebCore::RenderLayer::LayerPaintingInfo & localPaintingInfo, unsigned int paintBehavior,
WebCore::RenderObject * subtreePaintRootForRenderer, bool selectionOnly) Line 4700	C++
 	WebKit.dll!WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext * context,
const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4328	C++
 	WebKit.dll!WebCore::RenderLayer::paintLayerContentsAndReflection(WebCore::GraphicsContext
* context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags)
Line 3983	C++
 	WebKit.dll!WebCore::RenderLayer::paintLayer(WebCore::GraphicsContext * context, const
WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 3965	C++
 	WebKit.dll!WebCore::RenderLayer::paintList(WTF::Vector<WebCore::RenderLayer
*,0,WTF::CrashOnOverflow,16> * list, WebCore::GraphicsContext * context, const
WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4431	C++
 	WebKit.dll!WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext * context,
const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4339	C++
 	WebKit.dll!WebCore::RenderLayer::paintLayerContentsAndReflection(WebCore::GraphicsContext
* context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags)
Line 3983	C++
 	WebKit.dll!WebCore::RenderLayer::paintLayer(WebCore::GraphicsContext * context, const
WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 3965	C++
 	WebKit.dll!WebCore::RenderLayer::paintList(WTF::Vector<WebCore::RenderLayer
*,0,WTF::CrashOnOverflow,16> * list, WebCore::GraphicsContext * context, const
WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4431	C++
 	WebKit.dll!WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext * context,
const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4339	C++
 	WebKit.dll!WebCore::RenderLayer::paintLayerContentsAndReflection(WebCore::GraphicsContext
* context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags)
Line 3983	C++
 	WebKit.dll!WebCore::RenderLayer::paintLayer(WebCore::GraphicsContext * context, const
WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 3965	C++
 	WebKit.dll!WebCore::RenderLayer::paintList(WTF::Vector<WebCore::RenderLayer
*,0,WTF::CrashOnOverflow,16> * list, WebCore::GraphicsContext * context, const
WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4431	C++
 	WebKit.dll!WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext * context,
const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4339	C++
 	WebKit.dll!WebCore::RenderLayer::paintLayerContentsAndReflection(WebCore::GraphicsContext
* context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags)
Line 3983	C++
 	WebKit.dll!WebCore::RenderLayer::paintLayer(WebCore::GraphicsContext * context, const
WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 3965	C++
 	WebKit.dll!WebCore::RenderLayer::paintList(WTF::Vector<WebCore::RenderLayer
*,0,WTF::CrashOnOverflow,16> * list, WebCore::GraphicsContext * context, const
WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4431	C++
 	WebKit.dll!WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext * context,
const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4339	C++
 	WebKit.dll!WebCore::RenderLayer::paintLayerContentsAndReflection(WebCore::GraphicsContext
* context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags)
Line 3983	C++
 	WebKit.dll!WebCore::RenderLayer::paintLayer(WebCore::GraphicsContext * context, const
WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 3965	C++
 	WebKit.dll!WebCore::RenderLayer::paint(WebCore::GraphicsContext * context, const
WebCore::LayoutRect & damageRect, const WebCore::LayoutSize & subpixelAccumulation, unsigned int
paintBehavior, WebCore::RenderObject * subtreePaintRoot, unsigned int paintFlags) Line 3771	C++
 	WebKit.dll!WebCore::FrameView::paintContents(WebCore::GraphicsContext * context, const
WebCore::IntRect & dirtyRect) Line 4048	C++
 	WebKit.dll!WebCore::ScrollView::paint(WebCore::GraphicsContext * context, const
WebCore::IntRect & rect) Line 1218	C++
 	WebKit.dll!AcceleratedCompositingContext::paintContents(const WebCore::GraphicsLayer *
__formal, WebCore::GraphicsContext & context, unsigned int __formal, const WebCore::FloatRect &
rectToPaint) Line 389	C++
 	WebKit.dll!WebCore::GraphicsLayer::paintGraphicsLayerContents(WebCore::GraphicsContext &
context, const WebCore::FloatRect & clip) Line 413	C++
 	WebKit.dll!WebCore::BitmapTexture::updateContents(WebCore::TextureMapper * textureMapper,
WebCore::GraphicsLayer * sourceLayer, const WebCore::IntRect & targetRect, const
WebCore::IntPoint & offset, WebCore::BitmapTexture::UpdateContentsFlag updateContentsFlag)
Line 52	C++
 	WebKit.dll!WebCore::TextureMapperTile::updateContents(WebCore::TextureMapper *
textureMapper, WebCore::GraphicsLayer * sourceLayer, const WebCore::IntRect & dirtyRect,
WebCore::BitmapTexture::UpdateContentsFlag updateContentsFlag) Line 69	C++
 	WebKit.dll!WebCore::TextureMapperTiledBackingStore::updateContents(WebCore::TextureMapper
* textureMapper, WebCore::GraphicsLayer * sourceLayer, const WebCore::FloatSize & totalSize, const
WebCore::IntRect & dirtyRect, WebCore::BitmapTexture::UpdateContentsFlag updateContentsFlag)
Line 150	C++
 	WebKit.dll!WebCore::GraphicsLayerTextureMapper::updateBackingStoreIfNeeded() Line 551	C++
 	WebKit.dll!WebCore::GraphicsLayerTextureMapper::updateBackingStoreIncludingSubLayers()
Line 521	C++
 	WebKit.dll!WebCore::GraphicsLayerTextureMapper::updateBackingStoreIncludingSubLayers()
Line 526	C++
 	WebKit.dll!AcceleratedCompositingContext::flushPendingLayerChanges() Line 344	C++
 	WebKit.dll!AcceleratedCompositingContext::flushAndRenderLayers() Line 369	C++
 	WebKit.dll!AcceleratedCompositingContext::layerFlushTimerFired() Line 380	C++
 	WebKit.dll!AcceleratedCompositingContext::LayerFlushTimer::fired() Line 89	C++
 	WebKit.dll!WebCore::ThreadTimers::sharedTimerFiredInternal() Line 132	C++
 	WebKit.dll!WebCore::ThreadTimers::sharedTimerFired() Line 108	C++
 	WebKit.dll!WebCore::TimerWindowWndProc(HWND__ * hWnd, unsigned int message, unsigned int wParam,
long lParam) Line 92	C++
 	[External Code]	
 	[Frames below may be incorrect and/or missing, no symbols loaded for user32.dll]	
 	WebKit.dll!WebKitMessageLoop::run(HACCEL__ * hAccelTable) Line 96	C++
 	WinLauncher.dll!1000b1e5()	Unknown
 	WinLauncher.dll!1000d868()	Unknown
 	WinLauncher.exe!004013f7()	Unknown
 	[External Code]	
 	WinLauncher.exe!00403ee2()	Unknown
 	WinLauncher.exe!0040387f()	Unknown
 	[External Code]	
>	WTF.dll!WTFCrash() Line 321	C++
 	JavaScriptCore.dll!JSC::DFG::ConstantFoldingPhase::foldConstants(JSC::DFG::BasicBlock *
block) Line 224	C++
 	JavaScriptCore.dll!JSC::DFG::ConstantFoldingPhase::run() Line 63	C++

	JavaScriptCore.dll!JSC::DFG::runAndLog<JSC::DFG::ConstantFoldingPhase>(JSC::DFG::ConstantFoldingPhase
& phase) Line 77	C++
 	JavaScriptCore.dll!JSC::DFG::runPhase<JSC::DFG::ConstantFoldingPhase>(JSC::DFG::Graph &
graph) Line 87	C++
 	JavaScriptCore.dll!JSC::DFG::performConstantFolding(JSC::DFG::Graph & graph) Line 774	C++
 	JavaScriptCore.dll!JSC::DFG::Plan::compileInThreadImpl(JSC::DFG::LongLivedState &
longLivedState) Line 298	C++
 	JavaScriptCore.dll!JSC::DFG::Plan::compileInThread(JSC::DFG::LongLivedState &
longLivedState, JSC::DFG::ThreadData * threadData) Line 183	C++
 	JavaScriptCore.dll!JSC::DFG::compileImpl(JSC::VM & vm, JSC::CodeBlock * codeBlock,
JSC::CodeBlock * profiledDFGCodeBlock, JSC::DFG::CompilationMode mode, unsigned int
osrEntryBytecodeIndex, const
JSC::Operands<JSC::JSValue,JSC::OperandValueTraits<JSC::JSValue> > & mustHandleValues,
WTF::PassRefPtr<JSC::DeferredCompilationCallback> callback) Line 103	C++
 	JavaScriptCore.dll!JSC::DFG::compile(JSC::VM & vm, JSC::CodeBlock * codeBlock, JSC::CodeBlock *
profiledDFGCodeBlock, JSC::DFG::CompilationMode mode, unsigned int osrEntryBytecodeIndex, const
JSC::Operands<JSC::JSValue,JSC::OperandValueTraits<JSC::JSValue> > & mustHandleValues,
WTF::PassRefPtr<JSC::DeferredCompilationCallback> passedCallback) Line 120	C++
 	JavaScriptCore.dll!operationOptimize(JSC::ExecState * exec, int bytecodeIndex) Line 1177	C++
 	[External Code]	
 	[Frames below may be incorrect and/or missing]	
 	JavaScriptCore.dll!llint_entry() Line 7239	Unknown
 	JavaScriptCore.dll!llint_entry() Line 7272	Unknown
 	JavaScriptCore.dll!llint_entry() Line 7272	Unknown
 	JavaScriptCore.dll!vmEntryToJavaScript() Line 110	Unknown
 	JavaScriptCore.dll!JSC::JITCode::execute(JSC::VM * vm, JSC::ProtoCallFrame * protoCallFrame)
Line 81	C++
 	JavaScriptCore.dll!JSC::Interpreter::executeCall(JSC::ExecState * callFrame, JSC::JSObject *
function, JSC::CallType callType, const JSC::CallData & callData, JSC::JSValue thisValue, const
JSC::ArgList & args) Line 947	C++
 	JavaScriptCore.dll!JSC::call(JSC::ExecState * exec, JSC::JSValue functionObject, JSC::CallType
callType, const JSC::CallData & callData, JSC::JSValue thisValue, const JSC::ArgList & args) Line 39	C++
 	JavaScriptCore.dll!JSC::boundFunctionCall(JSC::ExecState * exec) Line 54	C++
 	[External Code]	
 	JavaScriptCore.dll!llint_entry() Line 7407	Unknown
 	JavaScriptCore.dll!vmEntryToJavaScript() Line 110	Unknown
 	JavaScriptCore.dll!JSC::JITCode::execute(JSC::VM * vm, JSC::ProtoCallFrame * protoCallFrame)
Line 81	C++
 	JavaScriptCore.dll!JSC::Interpreter::executeCall(JSC::ExecState * callFrame, JSC::JSObject *
function, JSC::CallType callType, const JSC::CallData & callData, JSC::JSValue thisValue, const
JSC::ArgList & args) Line 947	C++
 	JavaScriptCore.dll!JSC::call(JSC::ExecState * exec, JSC::JSValue functionObject, JSC::CallType
callType, const JSC::CallData & callData, JSC::JSValue thisValue, const JSC::ArgList & args) Line 39	C++
 	JavaScriptCore.dll!JSC::call(JSC::ExecState * exec, JSC::JSValue functionObject, JSC::CallType
callType, const JSC::CallData & callData, JSC::JSValue thisValue, const JSC::ArgList & args,
WTF::NakedPtr<JSC::Exception> & returnedException) Line 44	C++
 	WebKit.dll!WebCore::JSMainThreadExecState::call(JSC::ExecState * exec, JSC::JSValue
functionObject, JSC::CallType callType, const JSC::CallData & callData, JSC::JSValue thisValue,
const JSC::ArgList & args, WTF::NakedPtr<JSC::Exception> & returnedException) Line 56	C++
 	WebKit.dll!WebCore::ScheduledAction::executeFunctionInContext(JSC::JSGlobalObject *
globalObject, JSC::JSValue thisValue, WebCore::ScriptExecutionContext & context) Line 104	C++
 	WebKit.dll!WebCore::ScheduledAction::execute(WebCore::Document & document) Line 126	C++
 	WebKit.dll!WebCore::ScheduledAction::execute(WebCore::ScriptExecutionContext & context) Line 79	C++
 	WebKit.dll!WebCore::DOMTimer::fired() Line 368	C++
 	WebKit.dll!WebCore::ThreadTimers::sharedTimerFiredInternal() Line 132	C++
 	WebKit.dll!WebCore::ThreadTimers::sharedTimerFired() Line 108	C++
 	WebKit.dll!WebCore::TimerWindowWndProc(HWND__ * hWnd, unsigned int message, unsigned int wParam,
long lParam) Line 92	C++
 	[External Code]	
 	WebKit.dll!WebKitMessageLoop::run(HACCEL__ * hAccelTable) Line 96	C++
 	WinLauncher.dll!1000b1e5()	Unknown
 	WinLauncher.dll!1000d868()	Unknown
 	WinLauncher.exe!004013f7()	Unknown
 	[External Code]	
 	WinLauncher.exe!00403ee2()	Unknown
 	WinLauncher.exe!0040387f()	Unknown
 	[External Code]	
>	WTF.dll!WTFCrash() Line 321	C++
 	WebKit.dll!WebCore::applyFontTransforms(WebCore::GlyphBuffer * glyphBuffer, bool ltr, int &
lastGlyphCount, const WebCore::Font * font, WebCore::WidthIterator & iterator, unsigned int
typesettingFeatures, bool force,
WTF::Vector<std::pair<int,WebCore::OriginalAdvancesForCharacterTreatedAsSpace>,64,WTF::CrashOnOverflow,16>
& charactersTreatedAsSpace) Line 102	C++

	WebKit.dll!WebCore::WidthIterator::advanceInternal<WebCore::SurrogatePairAwareTextIterator>(WebCore::SurrogatePairAwareTextIterator
& textIterator, WebCore::GlyphBuffer * glyphBuffer) Line 430	C++
 	WebKit.dll!WebCore::WidthIterator::advance(int offset, WebCore::GlyphBuffer * glyphBuffer)
Line 459	C++
 	WebKit.dll!WebCore::FontCascade::getGlyphsAndAdvancesForSimpleText(const WebCore::TextRun &
run, int from, int to, WebCore::GlyphBuffer & glyphBuffer,
WebCore::FontCascade::ForTextEmphasisOrNot forTextEmphasis) Line 1283	C++
 	WebKit.dll!WebCore::FontCascade::drawSimpleText(WebCore::GraphicsContext * context, const
WebCore::TextRun & run, const WebCore::FloatPoint & point, int from, int to) Line 1306	C++
 	WebKit.dll!WebCore::FontCascade::drawText(WebCore::GraphicsContext * context, const
WebCore::TextRun & run, const WebCore::FloatPoint & point, int from, int to,
WebCore::FontCascade::CustomFontNotReadyAction customFontNotReadyAction) Line 320	C++
 	WebKit.dll!WebCore::GraphicsContext::drawText(const WebCore::FontCascade & font, const
WebCore::TextRun & run, const WebCore::FloatPoint & point, int from, int to) Line 319	C++
 	WebKit.dll!WebCore::SimpleLineLayout::paintFlow(const WebCore::RenderBlockFlow & flow, const
WebCore::SimpleLineLayout::Layout & layout, WebCore::PaintInfo & paintInfo, const
WebCore::LayoutPoint & paintOffset) Line 93	C++
 	WebKit.dll!WebCore::RenderBlockFlow::paintInlineChildren(WebCore::PaintInfo & paintInfo,
const WebCore::LayoutPoint & paintOffset) Line 3450	C++
 	WebKit.dll!WebCore::RenderBlock::paintContents(WebCore::PaintInfo & paintInfo, const
WebCore::LayoutPoint & paintOffset) Line 1435	C++
 	WebKit.dll!WebCore::RenderBlock::paintObject(WebCore::PaintInfo & paintInfo, const
WebCore::LayoutPoint & paintOffset) Line 1588	C++
 	WebKit.dll!WebCore::RenderBlock::paint(WebCore::PaintInfo & paintInfo, const
WebCore::LayoutPoint & paintOffset) Line 1415	C++
 	WebKit.dll!WebCore::RenderLayer::paintForegroundForFragmentsWithPhase(WebCore::PaintPhase
phase, const WTF::Vector<WebCore::LayerFragment,1,WTF::CrashOnOverflow,16> & layerFragments,
WebCore::GraphicsContext * context, const WebCore::RenderLayer::LayerPaintingInfo &
localPaintingInfo, unsigned int paintBehavior, WebCore::RenderObject *
subtreePaintRootForRenderer) Line 4732	C++
 	WebKit.dll!WebCore::RenderLayer::paintForegroundForFragments(const
WTF::Vector<WebCore::LayerFragment,1,WTF::CrashOnOverflow,16> & layerFragments,
WebCore::GraphicsContext * context, WebCore::GraphicsContext * transparencyLayerContext, const
WebCore::LayoutRect & transparencyPaintDirtyRect, bool haveTransparency, const
WebCore::RenderLayer::LayerPaintingInfo & localPaintingInfo, unsigned int paintBehavior,
WebCore::RenderObject * subtreePaintRootForRenderer, bool selectionOnly) Line 4700	C++
 	WebKit.dll!WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext * context,
const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4328	C++
 	WebKit.dll!WebCore::RenderLayerBacking::paintIntoLayer(const WebCore::GraphicsLayer *
graphicsLayer, WebCore::GraphicsContext * context, const WebCore::IntRect & paintDirtyRect,
unsigned int paintBehavior, unsigned int paintingPhase) Line 2308	C++
 	WebKit.dll!WebCore::RenderLayerBacking::paintContents(const WebCore::GraphicsLayer *
graphicsLayer, WebCore::GraphicsContext & context, unsigned int paintingPhase, const
WebCore::FloatRect & clip) Line 2346	C++
 	WebKit.dll!WebCore::GraphicsLayer::paintGraphicsLayerContents(WebCore::GraphicsContext &
context, const WebCore::FloatRect & clip) Line 413	C++
 	WebKit.dll!WebCore::BitmapTexture::updateContents(WebCore::TextureMapper * textureMapper,
WebCore::GraphicsLayer * sourceLayer, const WebCore::IntRect & targetRect, const
WebCore::IntPoint & offset, WebCore::BitmapTexture::UpdateContentsFlag updateContentsFlag)
Line 52	C++
 	WebKit.dll!WebCore::TextureMapperTile::updateContents(WebCore::TextureMapper *
textureMapper, WebCore::GraphicsLayer * sourceLayer, const WebCore::IntRect & dirtyRect,
WebCore::BitmapTexture::UpdateContentsFlag updateContentsFlag) Line 69	C++
 	WebKit.dll!WebCore::TextureMapperTiledBackingStore::updateContents(WebCore::TextureMapper
* textureMapper, WebCore::GraphicsLayer * sourceLayer, const WebCore::FloatSize & totalSize, const
WebCore::IntRect & dirtyRect, WebCore::BitmapTexture::UpdateContentsFlag updateContentsFlag)
Line 150	C++
 	WebKit.dll!WebCore::GraphicsLayerTextureMapper::updateBackingStoreIfNeeded() Line 551	C++
 	WebKit.dll!WebCore::GraphicsLayerTextureMapper::updateBackingStoreIncludingSubLayers()
Line 521	C++
 	WebKit.dll!WebCore::GraphicsLayerTextureMapper::updateBackingStoreIncludingSubLayers()
Line 526	C++
 	WebKit.dll!WebCore::GraphicsLayerTextureMapper::updateBackingStoreIncludingSubLayers()
Line 526	C++
 	WebKit.dll!WebCore::GraphicsLayerTextureMapper::updateBackingStoreIncludingSubLayers()
Line 526	C++
 	WebKit.dll!WebCore::GraphicsLayerTextureMapper::updateBackingStoreIncludingSubLayers()
Line 526	C++
 	WebKit.dll!WebCore::GraphicsLayerTextureMapper::updateBackingStoreIncludingSubLayers()
Line 526	C++
 	WebKit.dll!WebCore::GraphicsLayerTextureMapper::updateBackingStoreIncludingSubLayers()
Line 526	C++
 	WebKit.dll!WebCore::GraphicsLayerTextureMapper::updateBackingStoreIncludingSubLayers()
Line 526	C++
 	WebKit.dll!AcceleratedCompositingContext::flushPendingLayerChanges() Line 344	C++
 	WebKit.dll!AcceleratedCompositingContext::flushAndRenderLayers() Line 369	C++
 	WebKit.dll!AcceleratedCompositingContext::layerFlushTimerFired() Line 380	C++
 	WebKit.dll!AcceleratedCompositingContext::LayerFlushTimer::fired() Line 89	C++
 	WebKit.dll!WebCore::ThreadTimers::sharedTimerFiredInternal() Line 132	C++
 	WebKit.dll!WebCore::ThreadTimers::sharedTimerFired() Line 108	C++
 	WebKit.dll!WebCore::TimerWindowWndProc(HWND__ * hWnd, unsigned int message, unsigned int wParam,
long lParam) Line 92	C++
 	[External Code]	
 	[Frames below may be incorrect and/or missing, no symbols loaded for user32.dll]	
 	WebKit.dll!WebKitMessageLoop::run(HACCEL__ * hAccelTable) Line 96	C++
 	WinLauncher.dll!1000b1e5()	Unknown
 	WinLauncher.dll!1000d868()	Unknown
 	WinLauncher.exe!004013f7()	Unknown
 	[External Code]	
 	WinLauncher.exe!00403ee2()	Unknown
 	WinLauncher.exe!0040387f()	Unknown
 	[External Code]	
_______________________________________________
webkit-dev mailing list
webkit-dev <at> lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev
Andrunko | 20 Aug 20:39 2015
Picon

Request for editbugs privilege on bugzilla

Hi all,

I would like to request editbugs privilege on bugzilla (I went to
close #124167 in favor of #148028 but dont have permission) - I am a
committer.

Please let me know if I should ask someplace else instead.

BR,
Andre

--

-- 
Andre Moreira Magalhaes (andrunko)
--------------------------------------------------------
Jabber: andrunko <at> gmail.com
Skype: andrunko
IRC: andrunko <at> freenode
Filip Pizlo | 19 Aug 22:08 2015
Picon

PSA: you should use WTF::Lock and WTF::Condition instead of WTF::SpinLock, WTF::Mutex, WTF::ThreadCondition, std::mutex, std::condition_variable, or std::condition_variable_any

Hi everyone,

Over the past two weeks or so I’ve been doing some work to improve the locking primitives that we use in WebKit.  These new primitives have landed, and they are simply called Lock and Condition.  You should use Lock instead of SpinLock, Mutex, or std::mutex, because it combines the best qualities of those other locks into one simple implementation.  You should use Condition instead of WTF::ThreadCondition, std::condition_variable, or std::condition_variable_any because Condition is always smaller and faster.  Also, Condition has a richer API for timed wait, which allows you to use either std::chrono time or the double-based time from <wtf/CurrentTime.h>.  It can even use our notion of monotonic time.

Prior to this change, we had to choose between WTF::SpinLock, which was fast, and WTF::Mutex/std::mutex, which didn’t waste CPU cycles during contention.  After this change, we no longer have to make such choices: the new Lock is fast and doesn’t waste CPU cycles.

I’ve already landed changes to all of WebKit that replace all uses of those other locking primitives with Lock/Condition.

The specific benefits of these new primitives are:

- Lock and Condition take 1 byte of space.  That’s the total space that they will ever consume.  Contention is handled using thread local data structures managed by WTF::ParkingLot and that space usage is O(number of threads).  By comparison, WTF::Mutex and std::mutex take 64 bytes on Darwin.  They are usually take a lot of space on all OSes.  WTF::SpinLock takes 4 bytes.  So, Lock is 4x more compact than SpinLock and 64x more compact than std::mutex/WTF::Mutex.

- Lock is “adaptive”: it will not waste CPU time or power when a lock is held for a long time.  SpinLock will peg a CPU at 100% while it’s trying to acquire a lock, which makes SpinLock unsuitable for any critical section that may be held for a while.  This means never using SpinLock in critical sections that do I/O or that may block on other locks.  Lock doesn’t have this problem; like std::mutex and WTF::Mutex, it has the ability to block threads indefinitely while waking them up as soon as the lock is available again.  WTF::Lock behaves like a spinlock so long as no thread waits for too long (currently, too long = 40 spins), and otherwise turns into a queue-based lock with barging (a hot thread that calls lock() just as another thread is dequeued may barge in, which increases throughput and somewhat avoids the convoy problem) and random fairness (in the long term, every contending thread has an equal shot at getting the lock) and thundering herd avoidance (unlock could cause one thread to try to contend for the lock, but it won’t ever wake up threads only to have them go back to sleep).

- Lock is very fast in the uncontended case.  Locking and unlocking fast paths are just inline CAS instructions (or LL/SC sequences on ARM and friends).  This makes Lock about 3x faster than some system mutexes, and within 2x of a spin lock.  For Lock performance details, see http://trac.webkit.org/changeset/188169/trunk/Source/WTF/ChangeLoghttp://trac.webkit.org/changeset/188323/trunk/Source/WTF/ChangeLog, and http://trac.webkit.org/changeset/188374/trunk/Source/WTF/ChangeLog.

- Lock is very fast in the case of microcontention.  Microcontention is when you have multiple threads all piling up on a lock that is held for a short time.  You may remember that this case is important in WebKit, in particular in our parallel GC: https://trac.webkit.org/changeset/117478https://www.webkit.org/blog/2136/on-spinlocks-and-sleep/.  Well, Lock takes all of the good ideas from the WTF::SpinLock, which was our previous best answer for microcontention.  Lock is up to 100x faster than WTF::Mutex and std::mutex in case of microcontention on some OSes.

- Condition::notifyOne()/notifyAll() are just a fast inlined load-and-branch in the case that nobody is waiting on the condition.  This feature, combined with the fact that Condition can be used with Lock, and the fact that Lock is very fast to acquire and release, means that producer/consumer scenarios can run up to 58x faster with Lock/Condition than with Mutex/ThreadCondition or std::mutex/std::condition_variable.  For Condition performance details, see http://trac.webkit.org/changeset/188594/trunk/Source/WTF/ChangeLog and http://trac.webkit.org/changeset/188605/trunk/Source/WTF/ChangeLog.

The algorithms used for Lock and Condition have novelty in them, but the overall heuristics are consistent with what I take to be existing best practices as documented in other places.  The way that Lock handles contention is most similar to how Jikes RVM did it.  That algorithm is best documented in http://www.filpizlo.com/papers/pizlo-pppj2011-fable.pdf (though ignore all of the stuff about biasing and inflation of “thin” locks - WTF::Lock doesn’t do any of that).  That basic algorithm had been around for a while and took in many influences (see that paper for citations to other relevant stuff).

FWIW, in parallel and concurrent code in JSC, switching over to Lock/Condition from the other primitives gave us speed-ups on SunSpider and Kraken, as well as speed-ups on some Octane subtests.  Both parallel GC and concurrent/parallel JIT appeared to be happy with this change.

Another nice outcome of this work is that the underlying queueing mechanism used by both Lock and Condition is available for implementing other locking protocols.  It’s called ParkingLot, because its job is to allow you to “park” threads that shouldn’t run until someone else “unparks” them.  Any valid memory address can be used as a handle for a ParkingLot queue.  ParkingLot can be used to implement any locking protocol that uses futexes (https://www.kernel.org/doc/ols/2002/ols2002-pages-479-495.pdf) - just use “parkConditionally” whenever you would have used “FUTEX_WAIT” and use “unparkOne” when you would have used “FUTEX_WAKE”, but it can also do a lot more than that, since it allows you to pass std::function callbacks that run while ParkingLot holds its internal queue lock.  This is what enables Lock to avoid the thundering herd and enables Condition to have a lock-free notify fast path when nobody is waiting.  In theory, you can use ParkingLot to implement completely fair locks, counting semaphores, read-write locks, and other things.  It’ll also come in handy for implementing new locking primitives for things like WebAssembly.

TL;DR.  Don’t use WTF::SpinLock, WTF::Mutex, std::mutex, WTF::ThreadCondition, std::condition_variable, or std::condition_variable_any.  They waste CPU time and they waste memory.  Use WTF::Lock and WTF::Condition instead.

-Filip


_______________________________________________
webkit-dev mailing list
webkit-dev <at> lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev
조진철 | 18 Aug 13:21 2015

Implementing DragEvent and move MouseEvent.dataTransfer to DragEvent

Hi webkit-devI would like to implement DragEvent and move MouseEvent.dataTransfer to DragEvent. Such is the spec: https://html.spec.whatwg.org/multipage/interaction.html#dragevent Gecko and Chromium already has the DragEvent interface and has the dataTransfer attribute only on that interface. Actually I added this in chromium as follows http://src.chromium.org/viewvc/blink?view=revision&revision=200649
The change seems fairly low risk.Bug url : https://bugs.webkit.org/show_bug.cgi?id=148124I welcome any comments you may have.Thanks.

 

이 메일은 나눔글꼴로 작성되었습니다. 설치하기

Jincheol Jo
Naver Labs
/ Software Engineer


 
_______________________________________________
webkit-dev mailing list
webkit-dev <at> lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev
Simon Fraser | 15 Aug 08:28 2015
Picon

Implementing CSS "will-change"

I intend to implement the CSS will-change property, as specified here:


Since this is already supported unperfected by Firefox and Chrome, I will implement it unprefixed, and without an ENABLE flag.

Work will be done via this bug:


Simon

_______________________________________________
webkit-dev mailing list
webkit-dev <at> lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev

Gmane