On Tue, May 20, 2025 at 12:27:00PM +0200, Tomeu Vizoso wrote:
Using the DRM GPU scheduler infrastructure, with a scheduler for each core.
Userspace can decide for a series of tasks to be executed sequentially in the same core, so SRAM locality can be taken advantage of.
The job submission code was initially based on Panfrost.
v2:
- Remove hardcoded number of cores
- Misc. style fixes (Jeffrey Hugo)
- Repack IOCTL struct (Jeffrey Hugo)
v3:
- Adapt to a split of the register block in the DT bindings (Nicolas Frattaroli)
- Make use of GPL-2.0-only for the copyright notice (Jeff Hugo)
- Use drm_* logging functions (Thomas Zimmermann)
- Rename reg i/o macros (Thomas Zimmermann)
- Add padding to ioctls and check for zero (Jeff Hugo)
- Improve error handling (Nicolas Frattaroli)
Signed-off-by: Tomeu Vizoso tomeu@tomeuvizoso.net
diff --git a/drivers/accel/rocket/rocket_job.c b/drivers/accel/rocket/rocket_job.c new file mode 100644 index 0000000000000000000000000000000000000000..aee6ebdb2bd227439449fdfcab3ce7d1e39cd4c4 --- /dev/null +++ b/drivers/accel/rocket/rocket_job.c @@ -0,0 +1,723 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* Copyright 2019 Linaro, Ltd, Rob Herring robh@kernel.org */ +/* Copyright 2019 Collabora ltd. */ +/* Copyright 2024-2025 Tomeu Vizoso tomeu@tomeuvizoso.net */
+#include <drm/drm_print.h> +#include <drm/drm_file.h> +#include <drm/drm_gem.h> +#include <drm/rocket_accel.h> +#include <linux/interrupt.h> +#include <linux/platform_device.h> +#include <linux/pm_runtime.h>
+#include "rocket_core.h" +#include "rocket_device.h" +#include "rocket_drv.h" +#include "rocket_job.h" +#include "rocket_registers.h"
+#define JOB_TIMEOUT_MS 500
+static struct rocket_job * +to_rocket_job(struct drm_sched_job *sched_job) +{
- return container_of(sched_job, struct rocket_job, base);
+}
+struct rocket_fence {
- struct dma_fence base;
- struct drm_device *dev;
- /* rocket seqno for signaled() test */
- u64 seqno;
- int queue;
AFAICT, you are not using any of the elements here. So you can just drop rocket_fence and use dma_fence.
Rob
linaro-mm-sig@lists.linaro.org