Volk library invalid opcode exception

On Mon, Apr 16, 2012 at 5:50 AM, Joanna Rutkowska <
[email protected]> wrote:

Interestingly, I tried another kernel in the VM (essentially a vanilla
pcntxt_mask = eax + ((u64)edx << 32);
pcntxt_mask = pcntxt_mask & XCNTXT_MASK;
#define XSTATE_FPSSE (XSTATE_FP | XSTATE_SSE)

So, what am I missing?

Can you point out which kernels do you use that you have AVX working fine?

Linux smidgen 3.0.0-17-generic #30-Ubuntu SMP Thu Mar 8 20:45:39 UTC
2012
x86_64 x86_64 x86_64 GNU/Linux

I really do think it’s a Xen issue; do you have a kernel you can try to
run
outside the hypervisor?

In any case, it’s mostly a moot point, as there are very few Volk
kernels
which make use of AVX, and those which do don’t appear to be
significantly
faster than their SSE3 counterparts. I think that’s due to either memory
bandwidth or instruction promotion of SSE3 intrinsics, but that’s a
different story.

–n

On Mon, Apr 16, 2012 at 11:25 AM, Nick F. [email protected] wrote:

AVX-capable processor, of course).
{
/*
#define XSTATE_SSE 0x2
(and Xen should emulate this and allow for this, as indicated in the

I really do think it’s a Xen issue; do you have a kernel you can try to run
outside the hypervisor?

In any case, it’s mostly a moot point, as there are very few Volk kernels
which make use of AVX, and those which do don’t appear to be significantly
faster than their SSE3 counterparts. I think that’s due to either memory
bandwidth or instruction promotion of SSE3 intrinsics, but that’s a
different story.

–n

That’s true for right now, but we will hopefully be using more AVX
instructions to help those processors that can make use of them. Since
there’s all sorts of version issues out there with kernels,
hypervisors, GCC, etc., we’re going to be going through a few of these
growing pains to get the best and most stable use out of our systems.

In the meantime, great job coming up with a patch for it so quickly,
and hopefully the new build system for Volk that you, Josh, et al. are
working on will help this even more.

Tom

On Mon, Apr 16, 2012 at 05:20, Joanna Rutkowska
[email protected] wrote:

Joanna, let us know how this works for you. I’m going to be on the
road for the next few days, so I’ll be sparsely available.

Yes, it works! I can now use the gr_add block to add to sin signals, how
cool! :wink:

BTW, as Nick’s patch didn’t apply cleanly on v3.5.3, I pulled from the
git and applied it on top of the HEAD – please let me know if you think
it can get me into troubles to work on GR/GRC build from the HEAD
instead of from some v3.5.x tag.

Thanks for testing. I’ll go ahead and merge this, but I’ll do it in a
way that makes it available for both the master branch (what you’re
calling HEAD) and for the maintenance branch, so that this will
eventually go into tarball releases 3.5.3.1 and 3.6.0.

Johnathan