s5z / zsim

A fast and scalable x86-64 multicore simulator
GNU General Public License v2.0
335 stars 185 forks source link

Failed assertion on build/opt/ooo_core.cpp:370: skylake-2: loadIdx(3) != loads (4) #192

Closed sarabjeetsingh007 closed 11 months ago

sarabjeetsingh007 commented 6 years ago

I am repeatedly facing this assertion while running workloads on ZSim with a Skylake configuration.

[S 0] WARN: [0] ContextChange, reason SIGNAL, inSyscall 0 [S 1] Failed assertion on build/opt/ooo_core.cpp:370: skylake-2: loadIdx(3) != loads (4) [S 1] [0] Internal exception detected: [S 1] [0] Code: 1 [S 1] [0] Address: 0x7ffff629946a [S 1] [0] Description: Exception Code: ACCESS_INVALID_ADDRESS. Exception Address = 0x7ffff629946a. Access Type: UNKNOWN. Access Address = 0x000000000 [S 1] [0] Caused by invalid access to address 0x0 [S 1] [0] Backtrace (9/40 max frames) [S 1] [0] /home/sarabjeet.singh/Desktop/Simulators/instances/zsim_test_510_parest_r/build/opt/zsim.cpp:1392 / InternalExceptionHandler [S 1] [0] :? / LEVEL_PINCLIENT::IEH_CALLBACKS::NotifyInternalException(unsigned int, LEVEL_BASE::EXCEPTION_INFO, LEVEL_VM::CONTEXT) [S 1] [0] /home/sarabjeet.singh/Desktop/Simulators/pin-2.14-71313-gcc.4.4.7-linux/intel64/bin/pinbin(_ZN8LEVEL_VM12SIGNALS_IMPL19InternalHandlerSyncEiPN7BARECRT8SIGXINFOEPN5PINVM11ISIGCONTEXTEPPKNS_14SCT_ATTRIBUTESEPNS_5PCTXTEPj+0x444) [0x3043a9454] [S 1] [0] /home/sarabjeet.singh/Desktop/Simulators/pin-2.14-71313-gcc.4.4.7-linux/intel64/bin/pinbin(_ZN8LEVEL_VM12SIGNALS_IMPL20HandlePhysicalSignalEPN7BARECRT8SIGXINFOEPN5PINVM11ISIGCONTEXTE+0x124) [0x3043aa1f4] [S 1] [0] /home/sarabjeet.singh/Desktop/Simulators/pin-2.14-71313-gcc.4.4.7-linux/intel64/bin/pinbin(_ZN5PINVM28SIGNAL_DETAILS_LINUX_INTEL6415InternalHandlerEiPN7BARECRT8SIGXINFOEPv+0xe8) [0x304438c88] [S 1] [0] /home/sarabjeet.singh/Desktop/Simulators/pin-2.14-71313-gcc.4.4.7-linux/intel64/bin/pinbin(BARECRT_SigReturnRt+0) [0x30446603c] [S 1] [0] /home/sarabjeet.singh/Desktop/Simulators/instances/zsim_test_510_parest_r/build/opt/ooo_core.h:167 / WindowStructure<1024u, 36u>::advancePos(unsigned long&) [S 1] [0] /home/sarabjeet.singh/Desktop/Simulators/instances/zsim_test_510_parest_r/build/opt/ooo_core.cpp:518 / OOOCore::BblFunc(unsigned int, unsigned long, BblInfo*) [S 1] [0] [0x7fffe495609c] Pin app terminated abnormally due to signal 11.

Any ideas what might be causing this? Thanks!

hlitz commented 6 years ago

Skylake has new 3 operand ins (FMA) that the decoder can't handle. Fix the decoder or ignore one of the operands in the Ins() constructor. By doing so you are ignoring one register dependency but it is easier to implement

On Mar 14, 2018 9:33 PM, "Sarabjeet Singh" notifications@github.com wrote:

I am repeatedly facing this assertion while running workloads on ZSim with a Skylake configuration.

[S 0] WARN: [0] ContextChange, reason SIGNAL, inSyscall 0 [S 1] Failed assertion on build/opt/ooo_core.cpp:370: skylake-2: loadIdx(3) != loads (4) [S 1] [0] Internal exception detected: [S 1] [0] Code: 1 [S 1] [0] Address: 0x7ffff629946a [S 1] [0] Description: Exception Code: ACCESS_INVALIDADDRESS. Exception Address = 0x7ffff629946a. Access Type: UNKNOWN. Access Address = 0x000000000 [S 1] [0] Caused by invalid access to address 0x0 [S 1] [0] Backtrace (9/40 max frames) [S 1] [0] /home/sarabjeet.singh/Desktop/Simulators/instances/zsim test_510_parest_r/build/opt/zsim.cpp:1392 / InternalExceptionHandler [S 1] [0] :? / LEVEL_PINCLIENT::IEH_CALLBACKS::NotifyInternalException(unsigned int, LEVEL_BASE::EXCEPTION_INFO, LEVEL_VM::CONTEXT) [S 1] [0] /home/sarabjeet.singh/Desktop/Simulators/pin-2.14-71313-gcc. 4.4.7-linux/intel64/bin/pinbin(_ZN8LEVELVM12SIGNALS IMPL19InternalHandlerSyncEiPN7BARECRT8SIGXINFOEPN5PINVM11ISI GCONTEXTEPPKNS_14SCT_ATTRIBUTESEPNS_5PCTXTEPj+0x444) [0x3043a9454] [S 1] [0] /home/sarabjeet.singh/Desktop/Simulators/pin-2.14-71313-gcc. 4.4.7-linux/intel64/bin/pinbin(_ZN8LEVELVM12SIGNALS IMPL20HandlePhysicalSignalEPN7BARECRT8SIGXINFOEPN5PINVM11ISIGCONTEXTE+0x124) [0x3043aa1f4] [S 1] [0] /home/sarabjeet.singh/Desktop/Simulators/pin-2.14-71313-gcc. 4.4.7-linux/intel64/bin/pinbin(_ZN5PINVM28SIGNAL_DETAILSLINUX INTEL6415InternalHandlerEiPN7BARECRT8SIGXINFOEPv+0xe8) [0x304438c88] [S 1] [0] /home/sarabjeet.singh/Desktop/Simulators/pin-2.14-71313-gcc. 4.4.7-linux/intel64/bin/pinbin(BARECRTSigReturnRt+0) [0x30446603c] [S 1] [0] /home/sarabjeet.singh/Desktop/Simulators/instances/zsim test_510_parest_r/build/opt/ooocore.h:167 / WindowStructure<1024u, 36u>::advancePos(unsigned long&) [S 1] [0] /home/sarabjeet.singh/Desktop/Simulators/instances/zsim test_510_parest_r/build/opt/ooo_core.cpp:518 / OOOCore::BblFunc(unsigned int, unsigned long, BblInfo*) [S 1] [0] [0x7fffe495609c] Pin app terminated abnormally due to signal 11.

Any ideas what might be causing this? Thanks!

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/s5z/zsim/issues/192, or mute the thread https://github.com/notifications/unsubscribe-auth/ADZKfrjb7ONk7ivOPLDFAk0VAGEwecxLks5tee8YgaJpZM4Srir9 .

sarabjeetsingh007 commented 6 years ago

@hlitz Thanks for the reply, however by a Skylake configuration, I mean that I am only implementing that in the cfg files, which is:

`

sys = {
    lineSize = 64;
    frequency = 3600;

    cores = {
    skylake = {
        type = "OOO";
        cores = 8;
        icache = "l1i_skylake";
        dcache = "l1d_skylake";
    };
    };

    caches = {
    l1d_skylake = {
        caches = 8;
        size = 32768;
        array = {
            type = "SetAssoc";      
            ways = 8;
        };
        latency = 4;
    };

    l1i_skylake = {
        caches = 8;
        size = 32768; 
        array = {
            type = "SetAssoc";
            ways = 8;
        };
        latency = 3;    
    };

    l2_skylake = {
        caches = 8;
        size = 1048576; 
        latency = 14;
        array = {
            type = "SetAssoc";
            ways = 16;
        };
        children = "l1i_skylake|l1d_skylake";
    };

    l3_skylake = {
        caches = 1;
        //banks = 6;
        size = 11534336; 
        latency = 50;

        array = {
            type = "SetAssoc";
            //hash = "H3";
            ways = 11;
        };
        children = "l2_skylake";
            nonInclusiveHack = true;
    };
    };

    mem = {
    //type = "DDR";
    controllers = 4;
    //tech = "DDR3-1066-CL8";
        type = "DRAMSim";
        capacityMB=8192;
        techIni = "/home/sarabjeet.singh/Desktop/Simulators/zsim-master/DRAMSim2/ini/DDR4_2666.ini";
        systemIni = "/home/sarabjeet.singh/Desktop/Simulators/zsim-master/DRAMSim2/system.ini.example";
        outputDir = "/home/sarabjeet.singh/Desktop/Simulators/zsim-master/DRAMSim2/zsimSPEC";
        traceName = "/home/sarabjeet.singh/Desktop/Simulators/zsim-master/DRAMSim2/traces";
        latency = 1; 

    }; 
};

sim = {
    pinOptions = "-injection child";
};

process0 = {
    command = "./run_benchmark.sh";
};

`

Does this still cause the decoder issue?

cengizandak commented 6 years ago

I am facing a similar problem when I run a Dacapo Benchmark. I do not know how to solve it though, is there a problem with the Pin ?

hlitz commented 6 years ago

The configuration does not matter. You are probably compiling on a machine that supports instructions which are not supported by zsim. Modify the Decoder or try compiling to an older ISA extension, eg disable avx etc

On Tue, Jun 19, 2018, 9:59 AM cengizandak notifications@github.com wrote:

I am facing a similar problem when I run a Dacapo Benchmark. I do not know how to solve it though, is there a problem with the Pin ?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/s5z/zsim/issues/192#issuecomment-398471493, or mute the thread https://github.com/notifications/unsubscribe-auth/ADZKfjZKPQWM25K0E1cpEqSditFaNRoAks5t-S3_gaJpZM4Srir9 .

cengizandak commented 6 years ago

What do you mean @hlitz? If we do not know the source code of the application or the vm, what are we supposed to do to? Could you kindly provide information about that?

hlitz commented 6 years ago

options:

For 1 and 2 I would start printing out the opcode of the failing instruction, use XED to print a human-readable string of the instruction

On Tue, Jun 19, 2018 at 12:12 PM cengizandak notifications@github.com wrote:

What do you mean @hlitz https://github.com/hlitz? If we do not know the source code of the application or the vm, what are we supposed to do to? Could you kindly provide information about that?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/s5z/zsim/issues/192#issuecomment-398512511, or mute the thread https://github.com/notifications/unsubscribe-auth/ADZKfkPCEc_g8jxjrwuu3HaKMybdQTsQks5t-U04gaJpZM4Srir9 .

cengizandak commented 6 years ago

Thanks for the information @hlitz , so it looks like some time-consuming modifications should be done in order to further appropriately.