-
Notifications
You must be signed in to change notification settings - Fork 530
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Segment fault is triggered in course of Virtio-gpu rebooting test #7296
Labels
status: new
The issue status: new for creation
Comments
[External_System_ID] ACRN-8745 |
yakuizhao
added a commit
to yakuizhao/acrn-hypervisor
that referenced
this issue
Apr 19, 2022
In order to support the VGA op, one vga_thread is created. But in course of virtio_gpu_reset, it will also create one vga_thread. This is incorrect. v1->v2: the thread_id of vga_thread is treated as read-only after the thread is created. One thread_status based on atomic type indicates the life_cycle of vga_thread. v2->v3: Add the vga_thread_mtx in course of changing life_cycle of vga_thread Tracked-On: projectacrn#7296 Acked-by: Wang Yu1 <[email protected]> Signed-off-by: Zhao Yakui <[email protected]>
yakuizhao
added a commit
to yakuizhao/acrn-hypervisor
that referenced
this issue
Apr 19, 2022
This is not needed as it is reconfigured in course of vga_thread_loop. At the same time it is not thread-safe as the 3D api is involved in vdpy_surface_set. v2->v3: move the initialization of vga_surface width/height into vga_thread. Tracked-On: projectacrn#7296 Acked-by: Wang Yu1 <[email protected]> Signed-off-by: Zhao Yakui <[email protected]>
yakuizhao
added a commit
to yakuizhao/acrn-hypervisor
that referenced
this issue
Apr 19, 2022
Otherwise the memory related with vga_context is leaked. v1->v2: Use the pthread_join instead of usleep to wait for the termination of vga_thread. Tracked-On: projectacrn#7296 Acked-by: Wang Yu1 <[email protected]> Signed-off-by: Zhao Yakui <[email protected]>
yakuizhao
added a commit
to yakuizhao/acrn-hypervisor
that referenced
this issue
Apr 19, 2022
Now all the 3D ops are handled in one dedicated thread. As 3D ops are not safe in multi-thread env, some checks are added so that it can indicate that it is not in the expected code path. Tracked-On: projectacrn#7296 Acked-by: Wang Yu1 <[email protected]> Signed-off-by: Zhao Yakui <[email protected]>
acrnsi-robot
pushed a commit
that referenced
this issue
Apr 19, 2022
In order to support the VGA op, one vga_thread is created. But in course of virtio_gpu_reset, it will also create one vga_thread. This is incorrect. v1->v2: the thread_id of vga_thread is treated as read-only after the thread is created. One thread_status based on atomic type indicates the life_cycle of vga_thread. v2->v3: Add the vga_thread_mtx in course of changing life_cycle of vga_thread Tracked-On: #7296 Acked-by: Wang Yu1 <[email protected]> Signed-off-by: Zhao Yakui <[email protected]>
acrnsi-robot
pushed a commit
that referenced
this issue
Apr 19, 2022
This is not needed as it is reconfigured in course of vga_thread_loop. At the same time it is not thread-safe as the 3D api is involved in vdpy_surface_set. v2->v3: move the initialization of vga_surface width/height into vga_thread. Tracked-On: #7296 Acked-by: Wang Yu1 <[email protected]> Signed-off-by: Zhao Yakui <[email protected]>
acrnsi-robot
pushed a commit
that referenced
this issue
Apr 19, 2022
Otherwise the memory related with vga_context is leaked. v1->v2: Use the pthread_join instead of usleep to wait for the termination of vga_thread. Tracked-On: #7296 Acked-by: Wang Yu1 <[email protected]> Signed-off-by: Zhao Yakui <[email protected]>
acrnsi-robot
pushed a commit
that referenced
this issue
Apr 19, 2022
Now all the 3D ops are handled in one dedicated thread. As 3D ops are not safe in multi-thread env, some checks are added so that it can indicate that it is not in the expected code path. Tracked-On: #7296 Acked-by: Wang Yu1 <[email protected]> Signed-off-by: Zhao Yakui <[email protected]>
The issue will be closed as the PR is already merged. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
In course of vm rebooting with virtio-gpu, it will trigger the segment fault under some scenario.
Thread 123 "mevent" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffd37fe640 (LWP 2106)]
0x00007fffd06a45cf in unsafe_free (info=0x7fffc14ba650) at ../src/util/ralloc.c:294
294 info->child = temp->next;
(gdb) bt
#0 0x00007fffd06a45cf in unsafe_free (info=0x7fffc14ba650) at ../src/util/ralloc.c:294
#1 0x00007fffd06a4be3 in unsafe_free (info=) at ../src/util/ralloc.c:295
#2 ralloc_free (ptr=0x7fffc0125d20) at ../src/util/ralloc.c:265
#3 0x00007fffd0c64838 in glsl_type::~glsl_type (this=0x7fffc0125cb0, __in_chrg=) at ../src/compiler/glsl_types.cpp:214
#4 hash_free_type_function (entry=) at ../src/compiler/glsl_types.cpp:516
#5 0x00007fffd06a1b70 in _mesa_hash_table_destroy (ht=0x7fffc0030760,
delete_function=delete_function@
The text was updated successfully, but these errors were encountered: