From 76888a9cca98354fba79067cfae79c19083d90cb Mon Sep 17 00:00:00 2001 From: Kyle Roarty Date: Wed, 30 Jun 2021 15:54:33 -0500 Subject: [PATCH] gpu-compute: Add mmap functionality to GPURenderDriver dGPUs mmap the GPURenderDriver, however it doesn't appear that they do anything with it. This patch implements the mmap function by just returning the address provided, while not doing anything else Change-Id: Ia010a2aebcf7e2c75e22d93dfb440937d1bef3b1 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/47523 Reviewed-by: Matt Sinclair Reviewed-by: Matthew Poremba Maintainer: Matt Sinclair Tested-by: kokoro --- src/gpu-compute/gpu_render_driver.cc | 12 +++++++++++- src/gpu-compute/gpu_render_driver.hh | 3 +++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/gpu-compute/gpu_render_driver.cc b/src/gpu-compute/gpu_render_driver.cc index 260a61fe72..ad75c82ba8 100644 --- a/src/gpu-compute/gpu_render_driver.cc +++ b/src/gpu-compute/gpu_render_driver.cc @@ -41,7 +41,7 @@ GPURenderDriver::GPURenderDriver(const GPURenderDriverParams &p) /* ROCm 4 utilizes the render driver located at /dev/dri/renderDXXX. This * patch implements a very simple driver that just returns a file - * descriptor when opened, as testing has shown that's all that's needed + * descriptor when opened. */ int GPURenderDriver::open(ThreadContext *tc, int mode, int flags) @@ -52,4 +52,14 @@ GPURenderDriver::open(ThreadContext *tc, int mode, int flags) return tgt_fd; } +/* DGPUs try to mmap the driver file. It doesn't appear they do anything + * with it, so we just return the address that's provided + */ +Addr GPURenderDriver::mmap(ThreadContext *tc, Addr start, uint64_t length, + int prot, int tgt_flags, int tgt_fd, off_t offset) +{ + warn_once("GPURenderDriver::mmap returning start address %#x", start); + return start; +} + } // namespace gem5 diff --git a/src/gpu-compute/gpu_render_driver.hh b/src/gpu-compute/gpu_render_driver.hh index f94fdef56e..ab1ddcfc19 100644 --- a/src/gpu-compute/gpu_render_driver.hh +++ b/src/gpu-compute/gpu_render_driver.hh @@ -50,6 +50,9 @@ class GPURenderDriver final : public EmulatedDriver { return -EBADF; } + + Addr mmap(ThreadContext *tc, Addr start, uint64_t length, + int prot, int tgt_flags, int tgt_fd, off_t offset) override; }; } // namespace gem5