Problem of using Intel SDE on Win7 machine

Problem of using Intel SDE on Win7 machine

My team needs to use Intel-SDE for AVX instruction emulation so that we can test our tool's support for AVX.

The testing machine is a XSAVE supported CPU with Win7 x64OS. This OS also has AVX private patch from Microsoft kernel team so that Win7 kernel can understand the AVX registers.

When we run a test program, we confirm this OS supports XSAVE and AVX now:

IsProcessorFeaturePresent(PF_XSAVE_ENABLED) returned TRUE
GetEnabledExtendedFeatures() returned 0x3

I downloaded the 1.70 version of Intel SDE on this machine, but I always failed to get it running:

C:\Users\jetan\Desktop\Intel-SDE\Intel-SDE>sde-win.bat

C:\Users\jetan\Desktop\Intel-SDE\Intel-SDE>echo off
A:Source\pin\vm_w\signal_dispatcher_windows.cpp:LEVEL_VM::WIN_SIGNAL_DISPATCHER:
:DispatchException:615: assertion failed: result != RCV_SUCCESS

NO STACK TRACE AVAILABLE
Detach Service Count: 117
Pin 2.6
Copyright (c) 2003-2009, Intel Corporation
@CHARM-VERSION: $Id: version.cpp 24485 2009-01-29 17:53:52Z alexs $
@CHARM-BUILDER: BUILDER
@CHARM-COMPILER: MS-cl 1400
@CHARM-TARGET: ia32
@CHARM-CFLAGS: __OPTIMIZE__=__OPTIMIZE__ __NO_INLINE__=__NO_INLINE__

It also fails for pin tool itself:
C:\Users\jetan\Desktop\Intel-SDE\Intel-SDE>ia32\pin -t ia32\sde-emu.dll -- C:\Users\jetan\Desktop\AVX\il_movd.exe
A:Source\pin\vm_w\signal_dispatcher_windows.cpp:LEVEL_VM::WIN_SIGNAL_DISPATCHER:
:DispatchException:615: assertion failed: result != RCV_SUCCESS

NO STACK TRACE AVAILABLE
Detach Service Count: 95
Pin 2.6
Copyright (c) 2003-2009, Intel Corporation
@CHARM-VERSION: $Id: version.cpp 24485 2009-01-29 17:53:52Z alexs $
@CHARM-BUILDER: BUILDER
@CHARM-COMPILER: MS-cl 1400
@CHARM-TARGET: ia32
@CHARM-CFLAGS: __OPTIMIZE__=__OPTIMIZE__ __NO_INLINE__=__NO_INLINE__

Can you help to find out what I am doing wrong?

Thanks!
Jeffrey

3 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Hi Jeffrey,
Win7 is not yet currently supported by Pin and since SDE is built upon Pin, SDE does not yet support Win7.
You can run SDE on WinXP, Vista or Windows2003 and Linux. There is no requirement that you use an operating system that has AVX support for context switching. In fact, that is not supported at all by the version of SDE you have. SDE keeps the upper 128b of the YMM registers in thread local storage for each thread, so the O/S can be completely oblivious of the new register state. If you are doing something that requires the O/S to know about the YMM registers, then SDE cannot help.

There is a small chance that Win7 might not be the issue you are hitting. It is hard to tell from this information provided. I will check with our windows pin experts to see if they are familiar with this assertion. Thank you for the bug report.

There might be some interaction with your preAVX XSAVE implementation and the fact that xsetbv for AVX code will set the AVX bit in the feature enable mask. Or simply that the emulator is not emulating AVX XSAVE because it detects it on your hardware (You could try "path-to-kit/sde -xsave -- yourapp.exe" to force the AVX XSAVE emulator to run despite the fact that the OS XSAVECPUID bit is probably set in your environment), but I am not optimistic.

Regards,
Mark

Hi, I checked with our Pin windows developers and the assert you hit is a assert for pin's handling of win7 wow64 processes (32b processes on 64b). A fix is being worked on. You might have more luck with 64b processes but win7 is not officially supported yet.

Leave a Comment

Please sign in to add a comment. Not a member? Join today