diff options
author | David Riley <davidriley@chromium.org> | 2019-01-28 16:59:18 -0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2019-01-31 18:18:44 -0800 |
commit | fccfc05f672cf746ea309d0b220ea9ceeac1f758 (patch) | |
tree | d154ab1c16be88f281e828d4dd92582fecfaffb4 | |
parent | cc86d7d723f241e7982f95940b0e3d152561ada0 (diff) | |
download | crosvm-fccfc05f672cf746ea309d0b220ea9ceeac1f758.tar crosvm-fccfc05f672cf746ea309d0b220ea9ceeac1f758.tar.gz crosvm-fccfc05f672cf746ea309d0b220ea9ceeac1f758.tar.bz2 crosvm-fccfc05f672cf746ea309d0b220ea9ceeac1f758.tar.lz crosvm-fccfc05f672cf746ea309d0b220ea9ceeac1f758.tar.xz crosvm-fccfc05f672cf746ea309d0b220ea9ceeac1f758.tar.zst crosvm-fccfc05f672cf746ea309d0b220ea9ceeac1f758.zip |
devices: gpu: dup stdout to stderr to allow virglrenderer logging
By default virglrenderer logs to stderr with VREND_DEBUG. dup stdout which is logged via logger to stderr so that virglrenderer logs can be seen. BUG=chromium:925590 TEST=cat /var/log/messages Change-Id: I3e1a5056dab9cfd895867b1835b421b144ee536b Reviewed-on: https://chromium-review.googlesource.com/1441352 Commit-Ready: David Riley <davidriley@chromium.org> Tested-by: David Riley <davidriley@chromium.org> Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Zach Reizner <zachr@chromium.org>
-rw-r--r-- | devices/src/virtio/gpu/mod.rs | 9 | ||||
-rw-r--r-- | seccomp/x86_64/gpu_device.policy | 1 |
2 files changed, 9 insertions, 1 deletions
diff --git a/devices/src/virtio/gpu/mod.rs b/devices/src/virtio/gpu/mod.rs index 16a9bc3..8da15f5 100644 --- a/devices/src/virtio/gpu/mod.rs +++ b/devices/src/virtio/gpu/mod.rs @@ -23,7 +23,7 @@ use std::time::Duration; use data_model::*; -use sys_util::{EventFd, GuestAddress, GuestMemory, PollContext, PollToken}; +use sys_util::{Error, EventFd, GuestAddress, GuestMemory, PollContext, PollToken}; use self::gpu_buffer::Device; use self::gpu_display::*; @@ -772,6 +772,13 @@ impl VirtioDevice for Gpu { } }; + if cfg!(debug_assertions) { + let ret = unsafe { libc::dup2(libc::STDOUT_FILENO, libc::STDERR_FILENO) }; + if ret == -1 { + warn!("unable to dup2 stdout to stderr: {}", Error::last()); + } + } + let renderer = match Renderer::init() { Ok(r) => r, Err(e) => { diff --git a/seccomp/x86_64/gpu_device.policy b/seccomp/x86_64/gpu_device.policy index a5a37ba..8e184fb 100644 --- a/seccomp/x86_64/gpu_device.policy +++ b/seccomp/x86_64/gpu_device.policy @@ -59,3 +59,4 @@ fcntl: arg1 == F_DUPFD_CLOEXEC lstat: 1 # Allow PR_SET_NAME only. prctl: arg0 == 15 +dup2: 1 |