From mboxrd@z Thu Jan 1 00:00:00 1970
From: bugzilla-daemon@freedesktop.org
Subject: [Bug 109695] qemu using spice gl and sandbox resourcecontrol=deny
crashes with SIGSYS on radeonsi
Date: Thu, 21 Feb 2019 17:15:56 +0000
Message-ID:
References:
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="===============1588041043=="
Return-path:
Received: from culpepper.freedesktop.org (culpepper.freedesktop.org
[IPv6:2610:10:20:722:a800:ff:fe98:4b55])
by gabe.freedesktop.org (Postfix) with ESMTP id 09ABC897EB
for ; Thu, 21 Feb 2019 17:15:56 +0000 (UTC)
In-Reply-To:
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
Errors-To: dri-devel-bounces@lists.freedesktop.org
Sender: "dri-devel"
To: dri-devel@lists.freedesktop.org
List-Id: dri-devel@lists.freedesktop.org
--===============1588041043==
Content-Type: multipart/alternative; boundary="15507693550.84EF07f0B.6126"
Content-Transfer-Encoding: 7bit
--15507693550.84EF07f0B.6126
Date: Thu, 21 Feb 2019 17:15:55 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Bugzilla-URL: http://bugs.freedesktop.org/
Auto-Submitted: auto-generated
https://bugs.freedesktop.org/show_bug.cgi?id=3D109695
--- Comment #2 from Ahzo@tutanota.com ---
To check for the availability of the syscall, one can try it in a child pro=
cess
and see if the child is terminated by a signal, e.g. like this:
#include
#include
#include
#include
#include
static bool
can_set_affinity()
{
pid_t pid =3D fork();
int status =3D 0;
if (!pid) {
/* Disable coredumps, because a SIGSYS crash is expected. */
struct rlimit limit =3D { 0 };
limit.rlim_cur =3D 1;
limit.rlim_max =3D 1;
setrlimit(RLIMIT_CORE, &limit);
/* Test the syscall in the child process. */
syscall(SYS_sched_setaffinity, 0, 0, 0);
_exit(0);
} else if (pid < 0) {
return false;
}
if (waitpid(pid, &status, 0) < 0) {
return false;
}
if (WIFSIGNALED(status)) {
/* The child process was terminated by a signal,
* thus the syscall cannot be used.
*/
return false;
}
return true;
}
--=20
You are receiving this mail because:
You are the assignee for the bug.=
--15507693550.84EF07f0B.6126
Date: Thu, 21 Feb 2019 17:15:55 +0000
MIME-Version: 1.0
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Bugzilla-URL: http://bugs.freedesktop.org/
Auto-Submitted: auto-generated
Commen=
t # 2
on bug 10969=
5
from Ahzo@tutanota.co=
m
To check for the availability of the syscall, one can try it i=
n a child process
and see if the child is terminated by a signal, e.g. like this:
#include <stdbool.h>
#include <unistd.h>
#include <sys/resource.h>
#include <sys/syscall.h>
#include <sys/wait.h>
static bool
can_set_affinity()
{
pid_t pid =3D fork();
int status =3D 0;
if (!pid) {
/* Disable coredumps, because a SIGSYS crash is expected. */
struct rlimit limit =3D { 0 };
limit.rlim_cur =3D 1;
limit.rlim_max =3D 1;
setrlimit(RLIMIT_CORE, &limit);
/* Test the syscall in the child process. */
syscall(SYS_sched_setaffinity, 0, 0, 0);
_exit(0);
} else if (pid < 0) {
return false;
}
if (waitpid(pid, &status, 0) < 0) {
return false;
}
if (WIFSIGNALED(status)) {
/* The child process was terminated by a signal,
* thus the syscall cannot be used.
*/
return false;
}
return true;
}
You are receiving this mail because:
- You are the assignee for the bug.
=
--15507693550.84EF07f0B.6126--
--===============1588041043==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs
IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz
dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs
--===============1588041043==--