https://gem5-review.googlesource.com/c/public/gem5/+/57749

On Tue, Mar 15, 2022 at 12:59 PM Gabe Black <gabe.bl...@gmail.com> wrote:

> It looks like the problem is that the aapcs test calls ThreadContext which
> returns a TheISA::VecRegContainer, where since that test is for ARM it
> *should* really be working with an ARM VecRegContainer. Because this is
> being built for NULL, that uses the dummy versions which are not complete
> enough to have "as" template methods like the real classes.
>
> I think the solution is either to restrict that test to when building with
> ARM, or to add as<>() to the dummy classes. In the short term the offending
> change can be reverted, or we can wait until this evening when I'll have a
> chance to find a proper fix. This is what is right now probably a unique
> corner case where we have a unit test which is ISA dependent, and while it
> will *become* possible to run reasonably under any build once the
> ThreadContext doesn't build in what data type vector registers should be,
> in the mean time it either won't work because of this problem, or even when
> it would work, it would be operating on an inappropriate data type.
>
> Gabe
>
> On Tue, Mar 15, 2022 at 8:13 AM Jason Lowe-Power <ja...@lowepower.com>
> wrote:
>
>> Looks like the problem is  [gabe.black] arch: Make the DummyVec... types
>> the same size as RegVal.
>>
>> Can you take a look, Gabe?
>>
>> Thanks,
>> Jason
>>
>> On Tue, Mar 15, 2022 at 1:46 AM jenkins-no-reply--- via gem5-dev <
>> gem5-dev@gem5.org> wrote:
>>
>>> See <
>>> https://jenkins.gem5.org/job/nightly/161/display/redirect?page=changes>
>>>
>>> Changes:
>>>
>>> [gabe.black] arch-x86: Fix a bug in the protected mode IRET.
>>>
>>> [gabe.black] arch-x86: Fix writing back 32 bit PTEs in the walker.
>>>
>>> [gabe.black] arch-x86: Detect when entering virtual 8086 mode.
>>>
>>> [gabe.black] arch-x86: Tidy up the page table walker stepWalk method.
>>>
>>> [gabe.black] arch-x86: Use the right bits in the page table walker.
>>>
>>> [gabe.black] arch-x86: Make the flags microops handle reserved bits
>>> better.
>>>
>>> [matthew.poremba] sim-se: Initialize shared page table base upon clone
>>>
>>> [Bobby R. Bruce] util-docker: Adding docker-compose.yaml
>>>
>>> [Bobby R. Bruce] tests,util-docker: Add clang-12 to the compiler tests
>>>
>>> [Bobby R. Bruce] util: Remove util/cloudbuild
>>>
>>> [gabe.black] dev,arch-x86: Make the I8042 reset settings more realistic.
>>>
>>> [gabe.black] dev,arch-x86: Implement some self test 8042 commands.
>>>
>>> [gabe.black] scons: Process the SConsopts files for each variant.
>>>
>>> [gabe.black] scons: Turn a lot of compiler flag vars into env vars.
>>>
>>> [gabe.black] arch-x86: Fix the SAHF and LAHF instructions.
>>>
>>> [gabe.black] arch: Make the DummyVec... types the same size as RegVal.
>>>
>>> [gabe.black] ext,scons: Make kconfiglib available for use in SCons.
>>>
>>> [gabe.black] scons: Make all sticky variables automatically exported.
>>>
>>> [gabe.black] dev: Implement PS/2 keyboard echo and set scan code
>>> commands.
>>>
>>> [gabe.black] arch-x86: Specialize some instructions for virtual 8086
>>> mode.
>>>
>>>
>>> ------------------------------------------
>>> [...truncated 1.17 MB...]
>>> [ RUN      ] LoggingFixture.Warn
>>> [       OK ] LoggingFixture.Warn (0 ms)
>>> [ RUN      ] LoggingFixture.Inform
>>> [       OK ] LoggingFixture.Inform (0 ms)
>>> [ RUN      ] LoggingFixture.Hack
>>> [       OK ] LoggingFixture.Hack (0 ms)
>>> [ RUN      ] LoggingFixture.WarnOnce
>>> [       OK ] LoggingFixture.WarnOnce (0 ms)
>>> [ RUN      ] LoggingFixture.InformOnce
>>> [       OK ] LoggingFixture.InformOnce (0 ms)
>>> [ RUN      ] LoggingFixture.HackOnce
>>> [       OK ] LoggingFixture.HackOnce (0 ms)
>>> [ RUN      ] LoggingFixture.WarnIf
>>> [       OK ] LoggingFixture.WarnIf (0 ms)
>>> [ RUN      ] LoggingFixture.WarnIfOnce
>>> [       OK ] LoggingFixture.WarnIfOnce (0 ms)
>>> [----------] 21 tests from LoggingFixture (0 ms total)
>>>
>>> [----------] Global test environment tear-down
>>> [==========] 34 tests from 2 test suites ran. (1638 ms total)
>>> [  PASSED  ] 34 tests.
>>>  [    LINK]  -> NULL/arch/generic/vec_pred_reg.test.opt
>>> build/NULL/arch/generic/vec_reg.test.opt
>>> --gtest_output=xml:build/NULL/unittests.opt/arch/generic/vec_reg.test.xml
>>> Running main() from
>>> build/NULL/ext/googletest/googletest/src/gtest_main.cc
>>> [==========] Running 8 tests from 2 test suites.
>>> [----------] Global test environment set-up.
>>> [----------] 2 tests from VecReg
>>> [ RUN      ] VecReg.Size
>>> [       OK ] VecReg.Size (0 ms)
>>> [ RUN      ] VecReg.Zero
>>> [       OK ] VecReg.Zero (0 ms)
>>> [----------] 2 tests from VecReg (0 ms total)
>>>
>>> [----------] 6 tests from TwoDifferentVecRegs
>>> [ RUN      ] TwoDifferentVecRegs.Assignment
>>> [       OK ] TwoDifferentVecRegs.Assignment (0 ms)
>>> [ RUN      ] TwoDifferentVecRegs.Equality
>>> [       OK ] TwoDifferentVecRegs.Equality (0 ms)
>>> [ RUN      ] TwoDifferentVecRegs.Inequality
>>> [       OK ] TwoDifferentVecRegs.Inequality (0 ms)
>>> [ RUN      ] TwoDifferentVecRegs.Printing
>>> [       OK ] TwoDifferentVecRegs.Printing (0 ms)
>>> [ RUN      ] TwoDifferentVecRegs.ParseParam
>>> [       OK ] TwoDifferentVecRegs.ParseParam (0 ms)
>>> [ RUN      ] TwoDifferentVecRegs.ShowParam
>>> [       OK ] TwoDifferentVecRegs.ShowParam (0 ms)
>>> [----------] 6 tests from TwoDifferentVecRegs (0 ms total)
>>>
>>> [----------] Global test environment tear-down
>>> [==========] 8 tests from 2 test suites ran. (0 ms total)
>>> [  PASSED  ] 8 tests.
>>>  [SO Param] m5.objects.SimObject, SimObject -> NULL/params/SimObject.hh
>>>  [ENUMDECL] m5.objects.StaticInstFlags, StaticInstFlags ->
>>> NULL/enums/StaticInstFlags.hh
>>>  [ENUMDECL] m5.objects.FuncUnit, OpClass -> NULL/enums/OpClass.hh
>>>  [ENUMDECL] m5.objects.SimObject, ByteOrder -> NULL/enums/ByteOrder.hh
>>> build/NULL/arch/generic/vec_pred_reg.test.opt
>>> --gtest_output=xml:build/NULL/unittests.opt/arch/generic/vec_pred_reg.test.xml
>>> Running main() from
>>> build/NULL/ext/googletest/googletest/src/gtest_main.cc
>>> [==========] Running 14 tests from 3 test suites.
>>> [----------] Global test environment set-up.
>>> [----------] 2 tests from VecPredReg
>>> [ RUN      ] VecPredReg.reset
>>> [       OK ] VecPredReg.reset (0 ms)
>>> [ RUN      ] VecPredReg.set
>>> [       OK ] VecPredReg.set (0 ms)
>>> [----------] 2 tests from VecPredReg (0 ms total)
>>>
>>> [----------] 9 tests from TwoDifferentVecPredRegs
>>> [ RUN      ] TwoDifferentVecPredRegs.Assignment
>>> [       OK ] TwoDifferentVecPredRegs.Assignment (0 ms)
>>> [ RUN      ] TwoDifferentVecPredRegs.Equality
>>> [       OK ] TwoDifferentVecPredRegs.Equality (0 ms)
>>> [ RUN      ] TwoDifferentVecPredRegs.Inequality
>>> [       OK ] TwoDifferentVecPredRegs.Inequality (0 ms)
>>> [ RUN      ] TwoDifferentVecPredRegs.Printing
>>> [       OK ] TwoDifferentVecPredRegs.Printing (0 ms)
>>> [ RUN      ] TwoDifferentVecPredRegs.ParseParam
>>> [       OK ] TwoDifferentVecPredRegs.ParseParam (0 ms)
>>> [ RUN      ] TwoDifferentVecPredRegs.ShowParam
>>> [       OK ] TwoDifferentVecPredRegs.ShowParam (0 ms)
>>> [ RUN      ] TwoDifferentVecPredRegs.View8bit
>>> [       OK ] TwoDifferentVecPredRegs.View8bit (0 ms)
>>> [ RUN      ] TwoDifferentVecPredRegs.View16bit
>>> [       OK ] TwoDifferentVecPredRegs.View16bit (0 ms)
>>> [ RUN      ] TwoDifferentVecPredRegs.View32bit
>>> [       OK ] TwoDifferentVecPredRegs.View32bit (0 ms)
>>> [----------] 9 tests from TwoDifferentVecPredRegs (0 ms total)
>>>
>>> [----------] 3 tests from TwoPackedDifferentVecPredRegs
>>> [ RUN      ] TwoPackedDifferentVecPredRegs.View8bit
>>> [       OK ] TwoPackedDifferentVecPredRegs.View8bit (0 ms)
>>> [ RUN      ] TwoPackedDifferentVecPredRegs.View16bit
>>> [       OK ] TwoPackedDifferentVecPredRegs.View16bit (0 ms)
>>> [ RUN      ] TwoPackedDifferentVecPredRegs.View32bit
>>> [       OK ] TwoPackedDifferentVecPredRegs.View32bit (0 ms)
>>> [----------] 3 tests from TwoPackedDifferentVecPredRegs (0 ms total)
>>>
>>> [----------] Global test environment tear-down
>>> [==========] 14 tests from 3 test suites ran. (0 ms total)
>>> [  PASSED  ] 14 tests.
>>>  [     CXX] NULL/arch/arm/aapcs64.test.cc -> .to
>>> build/NULL/sim/bufval.test.opt
>>> --gtest_output=xml:build/NULL/unittests.opt/sim/bufval.test.xml
>>> build/NULL/sim/byteswap.test.opt
>>> --gtest_output=xml:build/NULL/unittests.opt/sim/byteswap.test.xml
>>> build/NULL/base/pixel.test.opt
>>> --gtest_output=xml:build/NULL/unittests.opt/base/pixel.test.xml
>>> Running main() from
>>> build/NULL/ext/googletest/googletest/src/gtest_main.cc
>>> [==========] Running 12 tests from 4 test suites.
>>> [----------] Global test environment set-up.
>>> [----------] 3 tests from GetUintX
>>> [ RUN      ] GetUintX.BadSize
>>> [       OK ] GetUintX.BadSize (0 ms)
>>> [ RUN      ] GetUintX.LittleEndian
>>> [       OK ] GetUintX.LittleEndian (0 ms)
>>> [ RUN      ] GetUintX.BigEndian
>>> [       OK ] GetUintX.BigEndian (0 ms)
>>> [----------] 3 tests from GetUintX (0 ms total)
>>>
>>> [----------] 3 tests from SetUintX
>>> [ RUN      ] SetUintX.BadSize
>>> [       OK ] SetUintX.BadSize (0 ms)
>>> [ RUN      ] SetUintX.LittleEndian
>>> [       OK ] SetUintX.LittleEndian (0 ms)
>>> [ RUN      ] SetUintX.BigEndian
>>> [       OK ] SetUintX.BigEndian (0 ms)
>>> [----------] 3 tests from SetUintX (0 ms total)
>>>
>>> [----------] 3 tests from PrintUintX
>>> [ RUN      ] PrintUintX.BadSize
>>> [       OK ] PrintUintX.BadSize (0 ms)
>>> [ RUN      ] PrintUintX.LittleEndian
>>> [       OK ] PrintUintX.LittleEndian (0 ms)
>>> [ RUN      ] PrintUintX.BigEndian
>>> [       OK ] PrintUintX.BigEndian (0 ms)
>>> [----------] 3 tests from PrintUintX (0 ms total)
>>>
>>> [----------] 3 tests from PrintByteBuf
>>> [ RUN      ] PrintByteBuf.LittleEndian
>>> [       OK ] PrintByteBuf.LittleEndian (0 ms)
>>> [ RUN      ] PrintByteBuf.BigEndian
>>> [       OK ] PrintByteBuf.BigEndian (0 ms)
>>> [ RUN      ] PrintByteBuf.ChunkSize
>>> [       OK ] PrintByteBuf.ChunkSize (0 ms)
>>> [----------] 3 tests from PrintByteBuf (0 ms total)
>>>
>>> [----------] Global test environment tear-down
>>> [==========] 12 tests from 4 test suites ran. (0 ms total)
>>> [  PASSED  ] 12 tests.
>>> Running main() from
>>> build/NULL/ext/googletest/googletest/src/gtest_main.cc
>>> [==========] Running 8 tests from 1 test suite.
>>> [----------] Global test environment set-up.
>>> [----------] 8 tests from ByteswapTest
>>> [ RUN      ] ByteswapTest.swap_byte64
>>> [       OK ] ByteswapTest.swap_byte64 (0 ms)
>>> [ RUN      ] ByteswapTest.swap_byte32
>>> [       OK ] ByteswapTest.swap_byte32 (0 ms)
>>> [ RUN      ] ByteswapTest.swap_byte16
>>> [       OK ] ByteswapTest.swap_byte16 (0 ms)
>>> [ RUN      ] ByteswapTest.swap_byte
>>> [       OK ] ByteswapTest.swap_byte (0 ms)
>>> [ RUN      ] ByteswapTest.htog
>>> [       OK ] ByteswapTest.htog (0 ms)
>>> [ RUN      ] ByteswapTest.gtoh
>>> [       OK ] ByteswapTest.gtoh (0 ms)
>>> [ RUN      ] ByteswapTest.betole
>>> [       OK ] ByteswapTest.betole (0 ms)
>>> [ RUN      ] ByteswapTest.letobe
>>> [       OK ] ByteswapTest.letobe (0 ms)
>>> [----------] 8 tests from ByteswapTest (0 ms total)
>>>
>>> [----------] Global test environment tear-down
>>> [==========] 8 tests from 1 test suite ran. (0 ms total)
>>> [  PASSED  ] 8 tests.
>>> build/NULL/base/socket.test.opt
>>> --gtest_output=xml:build/NULL/unittests.opt/base/socket.test.xml
>>> Running main() from
>>> build/NULL/ext/googletest/googletest/src/gtest_main.cc
>>> [==========] Running 5 tests from 1 test suite.
>>> [----------] Global test environment set-up.
>>> [----------] 5 tests from FBTest
>>> [ RUN      ] FBTest.PixelConversionRGBA8888
>>> [       OK ] FBTest.PixelConversionRGBA8888 (0 ms)
>>> [ RUN      ] FBTest.PixelConversionRGB565
>>> [       OK ] FBTest.PixelConversionRGB565 (0 ms)
>>> [ RUN      ] FBTest.PixelToMemRGBA8888LE
>>> [       OK ] FBTest.PixelToMemRGBA8888LE (0 ms)
>>> [ RUN      ] FBTest.MemToPixelRGBA8888LE
>>> [       OK ] FBTest.MemToPixelRGBA8888LE (0 ms)
>>> [ RUN      ] FBTest.MemToPixelRGBA8888BE
>>> [       OK ] FBTest.MemToPixelRGBA8888BE (0 ms)
>>> [----------] 5 tests from FBTest (0 ms total)
>>>
>>> [----------] Global test environment tear-down
>>> [==========] 5 tests from 1 test suite ran. (0 ms total)
>>> [  PASSED  ] 5 tests.
>>> Running main() from
>>> build/NULL/ext/googletest/googletest/src/gtest_main.cc
>>> [==========] Running 9 tests from 1 test suite.
>>> [----------] Global test environment set-up.
>>> [----------] 9 tests from SocketTest
>>> [ RUN      ] SocketTest.DefaultBehavior
>>> [       OK ] SocketTest.DefaultBehavior (0 ms)
>>> [ RUN      ] SocketTest.DisableAll
>>> [       OK ] SocketTest.DisableAll (0 ms)
>>> [ RUN      ] SocketTest.ListenToPort
>>> [       OK ] SocketTest.ListenToPort (0 ms)
>>> [ RUN      ] SocketTest.ListenToPortReuseFalse
>>> [       OK ] SocketTest.ListenToPortReuseFalse (0 ms)
>>> [ RUN      ] SocketTest.RelistenWithSameInstanceSamePort
>>> build/NULL/base/socket.cc:125: panic: Socket already listening!
>>> build/NULL/base/socket.cc:125: panic: Socket already listening!
>>> [       OK ] SocketTest.RelistenWithSameInstanceSamePort (0 ms)
>>> [ RUN      ] SocketTest.RelistenWithSameInstanceDifferentPort
>>> [       OK ] SocketTest.RelistenWithSameInstanceDifferentPort (0 ms)
>>> [ RUN      ] SocketTest.RelistenWithDifferentInstanceOnDifferentPort
>>> [       OK ] SocketTest.RelistenWithDifferentInstanceOnDifferentPort (0
>>> ms)
>>> [ RUN      ] SocketTest.RelistenWithDifferentInstanceOnSamePort
>>> [       OK ] SocketTest.RelistenWithDifferentInstanceOnSamePort (0 ms)
>>> [ RUN      ] SocketTest.AcceptError
>>> [       OK ] SocketTest.AcceptError (0 ms)
>>> [----------] 9 tests from SocketTest (0 ms total)
>>>
>>> [----------] Global test environment tear-down
>>> [==========] 9 tests from 1 test suite ran. (0 ms total)
>>> [  PASSED  ] 9 tests.
>>> In file included from build/NULL/arch/arm/aapcs64.test.cc:30:
>>> build/NULL/arch/arm/aapcs64.hh: In static member function 'static Float
>>> gem5::guest_abi::Argument<gem5::Aapcs64, Float, typename
>>> std::enable_if<(is_floating_point_v<Float> ||
>>> IsAapcs64ShortVectorV<Float>), void>::type>::get(gem5::ThreadContext*,
>>> gem5::Aapcs64::State&)':
>>> build/NULL/arch/arm/aapcs64.hh:205:39: error: 'using VecRegContainer =
>>> struct gem5::DummyVecRegContainer' {aka 'struct
>>> gem5::DummyVecRegContainer'} has no member named 'as'
>>>   205 |             return tc->readVecReg(id).as<Float>()[0];
>>>       |                                       ^~
>>> build/NULL/arch/arm/aapcs64.hh:205:47: error: expected
>>> primary-expression before '>' token
>>>   205 |             return tc->readVecReg(id).as<Float>()[0];
>>>       |                                               ^
>>> build/NULL/arch/arm/aapcs64.hh:205:49: error: expected
>>> primary-expression before ')' token
>>>   205 |             return tc->readVecReg(id).as<Float>()[0];
>>>       |                                                 ^
>>> build/NULL/arch/arm/aapcs64.hh: In static member function 'static void
>>> gem5::guest_abi::Result<gem5::Aapcs64, Float, typename
>>> std::enable_if<(is_floating_point_v<Float> ||
>>> IsAapcs64ShortVectorV<Float>), void>::type>::store(gem5::ThreadContext*,
>>> const Float&)':
>>> build/NULL/arch/arm/aapcs64.hh:221:13: error: 'struct
>>> gem5::DummyVecRegContainer' has no member named 'as'
>>>   221 |         reg.as<Float>()[0] = f;
>>>       |             ^~
>>> build/NULL/arch/arm/aapcs64.hh:221:21: error: expected
>>> primary-expression before '>' token
>>>   221 |         reg.as<Float>()[0] = f;
>>>       |                     ^
>>> build/NULL/arch/arm/aapcs64.hh:221:23: error: expected
>>> primary-expression before ')' token
>>>   221 |         reg.as<Float>()[0] = f;
>>>       |                       ^
>>> scons: *** [build/NULL/arch/arm/aapcs64.test.to] Error 1
>>> scons: building terminated because of errors.
>>> *** Summary of Warnings ***
>>> Warning: Deprecated namespaces are not supported by this compiler.
>>>          Please make sure to check the mailing list for deprecation
>>>          announcements.
>>> Build step 'Execute shell' marked build as failure
>>> Archiving artifacts
>>> Recording plot data
>>> _______________________________________________
>>> gem5-dev mailing list -- gem5-dev@gem5.org
>>> To unsubscribe send an email to gem5-dev-le...@gem5.org
>>> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
>>>
>>
_______________________________________________
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to