Comments (12)
These passed on my ADL using latest driver master branch.
from libva-utils.
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.
kernel: 5.19.0-15-generic
from libva-utils.
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.
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.
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.
@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.
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.
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.
Thanks for reporting this issue. We are trying to isolate the culprit change. Please stay tuned.
from libva-utils.
Could you help try above fix in media driver?
from libva-utils.
Yes, the fix worked and unit test is now fast.
from libva-utils.
Related Issues (20)
- 2.16.0: test suite is failing HOT 1
- amdgpu driver hang when encoding frame by h264encode.c HOT 4
- vaDeriveImage returns VA_STATUS_ERROR_OPERATION_FAILED HOT 2
- av1encode floating point exception on missing intra_period flag HOT 1
- av1encode help menu missing key information HOT 1
- Install on CentOS 7 HOT 1
- Retag of 2.18.1 HOT 2
- Libva-utils 2.18.1 need more recent libva-dev ?
- move to C++14?
- extend testing with real Intel GPUs as part of the CI process
- v2.18.2 tagged but not released? HOT 3
- prefix test names with libva_ HOT 2
- av1encode: Add "VAEntrypointEncSlice" entrypoint support
- Force clang-format for pre-commit code check
- hevcencode:broken output stream HOT 2
- Truncate the name nvidia(nvid), amdgpu(amdg), libva error: vaGetDriverNames() failed with unknown libva error
- vainfo vaGetDriverNames error HOT 6
- 3D LUT testing files missing HOT 1
- hevcencode test code produces corrupted output on Tiger Lake HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from libva-utils.