Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Simon Marchi <simon.marchi@polymtl.ca>
To: Paul Topley <paul.topley@calnexsol.com>
Cc: gdb@sourceware.org
Subject: Re: ymm register error
Date: Tue, 17 Jul 2018 15:08:00 -0000	[thread overview]
Message-ID: <fff89a4f93a22cb8c5c0060ccda91418@polymtl.ca> (raw)
In-Reply-To: <DB6PR0501MB23733695073ADC48984C9F96E55C0@DB6PR0501MB2373.eurprd05.prod.outlook.com>

On 2018-07-17 07:43, Paul Topley wrote:
> When trying to run gdb server on a skylake-x HEDT platform (i9-7940X)
> I encounter the following error:
> 
> 
> regcache.c:264: A problem internal to GDBserver has been detected.
> Unknown register ymm0h requested
> 
> From what I can tell from furious googling is that the ymm registers
> have changed location from broadwell-e to skylake-x.
> 
> I can see references to the ymm registers in gdb's codebase, with
> apparent positioning related to features like org.gnu.gdb.i386.avx &
> org.gnu.gdb.i386.avx512.
> 
> Being a complete novice around gdb's codebase, I'm not sure if I need
> to enable or state something at configure stage so that the right ymm
> register location is referenced.
> 
> gdb server 8 in ubuntu bionics repos works OK on the skylake-x
> platform, but when I compile myself it does not.
> 
> Is there something specific I need to be stating at compile time to
> "get" gdbserver 8 to work on skylake-x
> 
> Paul

Hi Paul,

I don't have access to a system with this kind of processor, so I can 
only give you pointers on how I would debug this.

My first intuition would be to debug gdbserver, starting at the 
"x86_linux_read_description" function.  There, gdbserver tries to detect 
what features are available on the current processor and create a 
corresponding target description (essentially the list of existing 
registers).  It's possible that it's getting something wrong.  This code 
has also changed in the last few releases, changing from static lists to 
something created more dynamically.  Normally, execution would end up in 
amd64_create_target_description.

You processors supports the AVX instructions and therefore has the ymm0h 
register, so it should enter this condition:

   if (xcr0 & X86_XSTATE_AVX)
     regnum = create_feature_i386_64bit_avx (tdesc, regnum);

But it also has AVX-512, so it should probably also enter this 
condition:

   if (xcr0 & X86_XSTATE_AVX512)
     regnum = create_feature_i386_64bit_avx512 (tdesc, regnum);

Simon


  reply	other threads:[~2018-07-17 15:08 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-17 11:44 Paul Topley
2018-07-17 15:08 ` Simon Marchi [this message]
2018-07-20 10:33 ` Ruslan Kabatsayev

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=fff89a4f93a22cb8c5c0060ccda91418@polymtl.ca \
    --to=simon.marchi@polymtl.ca \
    --cc=gdb@sourceware.org \
    --cc=paul.topley@calnexsol.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox