Giter Site home page Giter Site logo

Comments (12)

uartie avatar uartie commented on July 20, 2024

These passed on my ADL using latest driver master branch.

from libva-utils.

Sherry-Lin avatar Sherry-Lin commented on July 20, 2024

This case is also passed on our regular cycles. Could you try with latest release tag? What's the kernel version you are using?

from libva-utils.

stolk avatar stolk commented on July 20, 2024

kernel: 5.19.0-15-generic

from libva-utils.

stolk avatar stolk commented on July 20, 2024

Ok, I tried building libva / libgmm / media driver from git source, and getting different results:

Worryingly, some tests take far too long:

[ RUN      ] CreateSurfaces/VAAPICreateSurfaces.CreateSurfacesWithConfigAttribs/151
[       OK ] CreateSurfaces/VAAPICreateSurfaces.CreateSurfacesWithConfigAttribs/151 (61620 ms)

I'll do some further digging and see what I can find.

from libva-utils.

stolk avatar stolk commented on July 20, 2024

So when building all from current git (libva, gmmlib, media-driver, libva-utils) the tests all pass.
But I noticed it is quite slow. Is the test supposed to take this long? (25 minutes.)

[----------] Global test environment tear-down
[==========] 17415 tests from 14 test suites ran. (1506134 ms total)
[  PASSED  ] 17415 tests.

from libva-utils.

uartie avatar uartie commented on July 20, 2024

25 mins is way too long!

I just looked at the duration statistics on our CI and see that all platforms used to take ~2-5 minutes. But sometime after July 25 they started to take 18 minutes or more!

This could be a definite red-flag and needs to be investigated.

from libva-utils.

uartie avatar uartie commented on July 20, 2024

@Sherry-Lin can you delegate someone to look into this performance problem? It's likely caused by some change in the driver and could be impacting normal driver usage.

from libva-utils.

uartie avatar uartie commented on July 20, 2024

According to our CI, intel/media-driver@bffd62a2e6f8 was the last known commit where the tests were fast on all platforms. And in our next CI test run, when tests started taking a long time, the only detected change occurred in the driver.

from libva-utils.

stolk avatar stolk commented on July 20, 2024

In case it helps, if I interrupt a slow test, I get this callstack:

#0  __GI___ioctl (fd=fd@entry=3, request=request@entry=1074553951) at ../sysdeps/unix/sysv/linux/ioctl.c:36
#1  0x00007ffff7e5b7b0 in drmIoctl (fd=3, request=1074553951, arg=0x7fffffffd550) at ../xf86drm.c:630
#2  0x00007ffff39b95e6 in mos_gem_bo_start_gtt_access (bo=0x55555613efb0, write_enable=1)
    at /home/stolk/src/media-driver/media_driver/linux/common/os/i915/mos_bufmgr.c:2468
#3  0x00007ffff39b932d in mos_gem_bo_wait_rendering (bo=0x55555613efb0) at /home/stolk/src/media-driver/media_driver/linux/common/os/i915/mos_bufmgr.c:2377
#4  0x00007ffff39b751c in mos_gem_bo_free (bo=0x55555613efb0) at /home/stolk/src/media-driver/media_driver/linux/common/os/i915/mos_bufmgr.c:1570
#5  0x00007ffff39b7a91 in mos_gem_bo_unreference_final (bo=0x55555613efb0, time=111238) at /home/stolk/src/media-driver/media_driver/linux/common/os/i915/mos_bufmgr.c:1702
#6  0x00007ffff39b7bf6 in mos_gem_bo_unreference (bo=0x55555613efb0) at /home/stolk/src/media-driver/media_driver/linux/common/os/i915/mos_bufmgr.c:1732
#7  0x00007ffff39b410a in mos_bo_unreference (bo=0x55555613efb0) at /home/stolk/src/media-driver/media_driver/linux/common/os/i915/mos_bufmgr_api.c:120
#8  0x00007ffff40358d0 in DdiMediaUtil_FreeSurface (surface=0x55555613e850) at /home/stolk/src/media-driver/media_driver/linux/common/ddi/media_libva_util.cpp:1497
#9  0x00007ffff40016f5 in DdiMedia_DestroySurfaces (ctx=0x555556114000, surfaces=0x55555613bcb0, num_surfaces=10)
    at /home/stolk/src/media-driver/media_driver/linux/common/ddi/media_libva.cpp:2580
#10 0x00007ffff7f905c2 in vaDestroySurfaces (dpy=0x55555609ca40, surface_list=0x55555613bcb0, num_surfaces=10) at ../../va/va.c:1217
#11 0x000055555557cc54 in VAAPI::VAAPIFixture::destroySurfaces (this=<optimized out>, surfaces=std::vector of length 10, capacity 10 = {...})
    at ../../test/test_va_api_fixture.cpp:427
#12 0x0000555555598022 in operator() (attribs=std::vector of length 1, capacity 1 = {...}, __closure=0x7fffffffd960) at ../../test/test_va_api_createsurfaces.cpp:215
#13 std::__invoke_impl<void, VAAPI::VAAPICreateSurfaces_CreateSurfacesWithConfigAttribs_Test::TestBody()::<lambda(const VAAPI::SurfaceAttributes&)>&, const std::vector<_VASurfaceAttrib, std::allocator<_VASurfaceAttrib> >&> (__f=...) at /usr/include/c++/12/bits/invoke.h:61
#14 std::__invoke_r<void, VAAPI::VAAPICreateSurfaces_CreateSurfacesWithConfigAttribs_Test::TestBody()::<lambda(const VAAPI::SurfaceAttributes&)>&, const std::vector<_VASurfaceAttrib, std::allocator<_VASurfaceAttrib> >&> (__fn=...) at /usr/include/c++/12/bits/invoke.h:154
#15 std::_Function_handler<void(const std::vector<_VASurfaceAttrib, std::allocator<_VASurfaceAttrib> >&), VAAPI::VAAPICreateSurfaces_CreateSurfacesWithConfigAttribs_Test::TestBody()::<lambda(const VAAPI::SurfaceAttributes&)> >::_M_invoke(const std::_Any_data &, const std::vector<_VASurfaceAttrib, std::allocator<_VASurfaceAttrib> > &) (
    __functor=..., __args#0=std::vector of length 1, capacity 1 = {...}) at /usr/include/c++/12/bits/std_function.h:290
#16 0x000055555559e302 in std::function<void (std::vector<_VASurfaceAttrib, std::allocator<_VASurfaceAttrib> > const&)>::operator()(std::vector<_VASurfaceAttrib, std::allocator<_VASurfaceAttrib> > const&) const (__args#0=std::vector of length 1, capacity 1 = {...}, this=0x7fffffffd960) at /usr/include/c++/12/bits/std_function.h:591
#17 VAAPI::VAAPISurfaceFixture::testWithSupportedSurfaceAttributes(std::function<void (std::vector<_VASurfaceAttrib, std::allocator<_VASurfaceAttrib> > const&)> const&) (
    this=<optimized out>, test=...) at ../../test/test_va_api_createsurfaces.cpp:126
#18 0x00005555555991c9 in operator() (attribs=..., __closure=0x555555f977e0) at ../../test/test_va_api_createsurfaces.cpp:226
#19 std::__invoke_impl<void, VAAPI::VAAPICreateSurfaces_CreateSurfacesWithConfigAttribs_Test::TestBody()::<lambda(const VAAPI::ConfigAttributes&)>&, const std::vector<_VAConfigAttrib, std::allocator<_VAConfigAttrib> >&> (__f=...) at /usr/include/c++/12/bits/invoke.h:61
#20 std::__invoke_r<void, VAAPI::VAAPICreateSurfaces_CreateSurfacesWithConfigAttribs_Test::TestBody()::<lambda(const VAAPI::ConfigAttributes&)>&, const std::vector<_VAConfigAttrib, std::allocator<_VAConfigAttrib> >&> (__fn=...) at /usr/include/c++/12/bits/invoke.h:154
#21 std::_Function_handler<void(const std::vector<_VAConfigAttrib, std::allocator<_VAConfigAttrib> >&), VAAPI::VAAPICreateSurfaces_CreateSurfacesWithConfigAttribs_Test::TestBody()::<lambda(const VAAPI::ConfigAttributes&)> >::_M_invoke(const std::_Any_data &, const std::vector<_VAConfigAttrib, std::allocator<_VAConfigAttrib> > &) (
    __functor=..., __args#0=...) at /usr/include/c++/12/bits/std_function.h:290
#22 0x000055555559bbd0 in std::function<void (std::vector<_VAConfigAttrib, std::allocator<_VAConfigAttrib> > const&)>::operator()(std::vector<_VAConfigAttrib, std::allocator<_VAConfigAttrib> > const&) const (__args#0=std::vector of length 1, capacity 1 = {...}, this=0x7fffffffdab0) at /usr/include/c++/12/bits/std_function.h:591
#23 VAAPI::VAAPISurfaceFixture::testWithSupportedConfigAttributes(std::function<void (std::vector<_VAConfigAttrib, std::allocator<_VAConfigAttrib> > const&)> const&) (
    this=this@entry=0x5555561ca2f8, test=...) at ../../test/test_va_api_createsurfaces.cpp:68
#24 0x0000555555598607 in VAAPI::VAAPICreateSurfaces_CreateSurfacesWithConfigAttribs_Test::TestBody (this=0x5555561ca2f0) at ../../test/test_va_api_createsurfaces.cpp:232
#25 0x00005555555ed0ff in testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void> (location=0x5555555f6179 "the test body", method=<optimized out>, 
    object=0x5555561ca2f8) at ../../test/gtest/src/gtest.cc:2607
#26 testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void> (object=object@entry=0x5555561ca2f8, method=<optimized out>, 
    location=location@entry=0x5555555f6179 "the test body") at ../../test/gtest/src/gtest.cc:2643
#27 0x00005555555ddbd6 in testing::Test::Run (this=0x5555561ca2f8) at ../../test/gtest/src/gtest.cc:2682
#28 testing::Test::Run (this=0x5555561ca2f8) at ../../test/gtest/src/gtest.cc:2672
#29 0x00005555555ddd55 in testing::TestInfo::Run (this=0x5555557275d0) at ../../test/gtest/src/gtest.cc:2861
#30 testing::TestInfo::Run (this=0x5555557275d0) at ../../test/gtest/src/gtest.cc:2833
#31 0x00005555555dde59 in testing::TestSuite::Run (this=0x5555556cf7f0) at ../../test/gtest/src/gtest.cc:3015
#32 testing::TestSuite::Run (this=0x5555556cf7f0) at ../../test/gtest/src/gtest.cc:2993
#33 0x00005555555dfa64 in testing::internal::UnitTestImpl::RunAllTests (this=0x5555556320b0) at ../../test/gtest/src/gtest.cc:5855

from libva-utils.

Sherry-Lin avatar Sherry-Lin commented on July 20, 2024

Thanks for reporting this issue. We are trying to isolate the culprit change. Please stay tuned.

from libva-utils.

Jexu avatar Jexu commented on July 20, 2024

Could you help try above fix in media driver?

from libva-utils.

stolk avatar stolk commented on July 20, 2024

Yes, the fix worked and unit test is now fast.

from libva-utils.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.