[haiku-bugs] Re: [Haiku] #16382: ASSERT FAILED: gFPUSaveLength <= sizeof(sInitialState.fpu_state)

  • From: "Haiku" <trac@xxxxxxxxxxxx>
  • To: undisclosed-recipients: ;
  • Date: Tue, 14 Jul 2020 10:08:55 -0000

#16382: ASSERT FAILED: gFPUSaveLength <= sizeof(sInitialState.fpu_state)
----------------------------+----------------------
  Reporter:  HAL            |      Owner:  korli
      Type:  bug            |     Status:  assigned
  Priority:  normal         |  Milestone:  R1/beta3
 Component:  System/Kernel  |    Version:  R1/beta2
Resolution:                 |   Keywords:
Blocked By:                 |   Blocking:
  Platform:  x86-64         |
----------------------------+----------------------
Comment (by pulkomandy):

 If I understand correctly, we get the size from the CPUID, this gives the
 max size that the CPU supports. But we can enable and disable specific
 register sets we have storage space for.

 The list of things that can be saved is here:
 https://xem.github.io/minix86/manual/intel-x86-and-64-manual-
 vol1/o_7281d5ea06a5b67a-307.html

 Could you show the output of cat /proc/cpuinfo on Linux to make sure which
 CPU you have and which instructions it supports?

 Currently we have 1024 bytes of storage available, which would be enough
 for AVX2, but not for MPX (would need 1056 bytes) nor AVX512 (would need
 2560 bytes). The state may be compressed by XSAVEC and XSAVEOPT if
 available, but there is no guarantee they can actually make things
 smaller.

 I think we should bump the space to 2560 bytes already and start getting
 ready for AVX512? (this is in
 headers/private/kernel/arch/x86/arch_thread_types.h struct arch_thread)

 I have put a change doing this at https://review.haiku-
 os.org/c/haiku/+/3031 . It would be great if you could test it and let us
 know if that fixes the problem for you.
-- 
Ticket URL: <https://dev.haiku-os.org/ticket/16382#comment:7>
Haiku <https://dev.haiku-os.org>
The Haiku operating system.

Other related posts: