Re: [PATCH drm-next v6 02/13] drm: manager to keep track of GPUs VA mappings

2023-07-07 Thread Matthew Brost
On Fri, Jul 07, 2023 at 02:52:41PM +0200, Boris Brezillon wrote: > On Fri, 7 Jul 2023 14:41:23 +0200 > Danilo Krummrich wrote: > > > >> + va__ && (va__->va.addr < (end__)) && \ > > >> + !list_entry_is_head(va__, &(mgr__)->rb.list, rb.entry); \ > > >> + va__ = l

Re: [PATCH drm-next v6 02/13] drm: manager to keep track of GPUs VA mappings

2023-07-07 Thread Boris Brezillon
On Fri, 7 Jul 2023 14:41:23 +0200 Danilo Krummrich wrote: > >> + va__ && (va__->va.addr < (end__)) && \ > >> + !list_entry_is_head(va__, &(mgr__)->rb.list, rb.entry); \ > >> + va__ = list_next_entry(va__, rb.entry)) > > > > If you define: > > > > static inline struct drm_gpu

Re: [PATCH drm-next v6 02/13] drm: manager to keep track of GPUs VA mappings

2023-07-07 Thread Danilo Krummrich
On 7/7/23 13:00, Boris Brezillon wrote: On Fri, 30 Jun 2023 00:25:18 +0200 Danilo Krummrich wrote: +/** + * drm_gpuva_for_each_va_range - iternator to walk over a range of &drm_gpuvas + * @va__: &drm_gpuva structure to assign to in each iteration step + * @mgr__: &drm_gpuva_manager to walk ove

Re: [PATCH drm-next v6 02/13] drm: manager to keep track of GPUs VA mappings

2023-07-07 Thread Danilo Krummrich
On 7/7/23 09:57, Boris Brezillon wrote: On Thu, 6 Jul 2023 20:26:42 +0200 Boris Brezillon wrote: On Fri, 30 Jun 2023 00:25:18 +0200 Danilo Krummrich wrote: +#ifdef CONFIG_LOCKDEP +typedef struct lockdep_map *lockdep_map_p; +#define drm_gpuva_manager_ext_assert_held(mgr) \ + lo

Re: [PATCH drm-next v6 02/13] drm: manager to keep track of GPUs VA mappings

2023-07-07 Thread Boris Brezillon
On Fri, 30 Jun 2023 00:25:18 +0200 Danilo Krummrich wrote: > +/** > + * drm_gpuva_for_each_va_range - iternator to walk over a range of > &drm_gpuvas > + * @va__: &drm_gpuva structure to assign to in each iteration step > + * @mgr__: &drm_gpuva_manager to walk over > + * @start__: starting offse

Re: [PATCH drm-next v6 02/13] drm: manager to keep track of GPUs VA mappings

2023-07-07 Thread Boris Brezillon
On Thu, 6 Jul 2023 20:26:42 +0200 Boris Brezillon wrote: > On Fri, 30 Jun 2023 00:25:18 +0200 > Danilo Krummrich wrote: > > > +#ifdef CONFIG_LOCKDEP > > +typedef struct lockdep_map *lockdep_map_p; > > +#define drm_gpuva_manager_ext_assert_held(mgr) \ > > + lockdep_assert(lock_is_h

Re: [PATCH drm-next v6 02/13] drm: manager to keep track of GPUs VA mappings

2023-07-06 Thread Boris Brezillon
On Fri, 30 Jun 2023 00:25:18 +0200 Danilo Krummrich wrote: > +#ifdef CONFIG_LOCKDEP > +typedef struct lockdep_map *lockdep_map_p; > +#define drm_gpuva_manager_ext_assert_held(mgr) \ > + lockdep_assert(lock_is_held((mgr)->ext_lock) != LOCK_STATE_NOT_HELD) > +/** > + * drm_gpuva_m

Re: [PATCH drm-next v6 02/13] drm: manager to keep track of GPUs VA mappings

2023-07-06 Thread Intel
On 7/6/23 17:48, Danilo Krummrich wrote: Hi Thomas, On 7/6/23 10:49, Thomas Hellström (Intel) wrote: Hi, Danilo Some review comments below: On 6/30/23 00:25, Danilo Krummrich wrote: Add infrastructure to keep track of GPU virtual address (VA) mappings with a decicated VA space manager impl

Re: [PATCH drm-next v6 02/13] drm: manager to keep track of GPUs VA mappings

2023-07-06 Thread Boris Brezillon
On Thu, 6 Jul 2023 17:06:08 +0200 Danilo Krummrich wrote: > Hi Boris, > > On 6/30/23 10:02, Boris Brezillon wrote: > > Hi Danilo, > > > > On Fri, 30 Jun 2023 00:25:18 +0200 > > Danilo Krummrich wrote: > > > >> + *int driver_gpuva_remap(struct drm_gpuva_op *op, void *__ctx) > >> + *

Re: [PATCH drm-next v6 02/13] drm: manager to keep track of GPUs VA mappings

2023-07-06 Thread Danilo Krummrich
Hi Donald, On 7/6/23 17:45, Donald Robson wrote: On Fri, 2023-06-30 at 00:25 +0200, Danilo Krummrich wrote: +#ifdef CONFIG_LOCKDEP +typedef struct lockdep_map *lockdep_map_p; +#define drm_gpuva_manager_ext_assert_held(mgr) \ + lockdep_assert(lock_is_held((mgr)->ext_lock) != LOCK_

Re: [PATCH drm-next v6 02/13] drm: manager to keep track of GPUs VA mappings

2023-07-06 Thread Danilo Krummrich
Hi Thomas, On 7/6/23 10:49, Thomas Hellström (Intel) wrote: Hi, Danilo Some review comments below: On 6/30/23 00:25, Danilo Krummrich wrote: Add infrastructure to keep track of GPU virtual address (VA) mappings with a decicated VA space manager implementation. New UAPIs, motivated by Vulkan

Re: [PATCH drm-next v6 02/13] drm: manager to keep track of GPUs VA mappings

2023-07-06 Thread Donald Robson
On Fri, 2023-06-30 at 00:25 +0200, Danilo Krummrich wrote: > > +#ifdef CONFIG_LOCKDEP > +typedef struct lockdep_map *lockdep_map_p; > +#define drm_gpuva_manager_ext_assert_held(mgr) \ > + lockdep_assert(lock_is_held((mgr)->ext_lock) != LOCK_STATE_NOT_HELD) > +/** > + * drm_gpuva_

Re: [PATCH drm-next v6 02/13] drm: manager to keep track of GPUs VA mappings

2023-07-06 Thread Danilo Krummrich
Hi Boris, On 6/30/23 10:02, Boris Brezillon wrote: Hi Danilo, On Fri, 30 Jun 2023 00:25:18 +0200 Danilo Krummrich wrote: + * int driver_gpuva_remap(struct drm_gpuva_op *op, void *__ctx) + * { + * struct driver_context *ctx = __ctx; + * + * drm_gpuva_remap(ctx-

Re: [PATCH drm-next v6 02/13] drm: manager to keep track of GPUs VA mappings

2023-07-06 Thread Intel
Hi, Danilo Some review comments below: On 6/30/23 00:25, Danilo Krummrich wrote: Add infrastructure to keep track of GPU virtual address (VA) mappings with a decicated VA space manager implementation. New UAPIs, motivated by Vulkan sparse memory bindings graphics drivers start implementing, al

Re: [PATCH drm-next v6 02/13] drm: manager to keep track of GPUs VA mappings

2023-06-30 Thread Boris Brezillon
On Fri, 30 Jun 2023 10:02:52 +0200 Boris Brezillon wrote: > In practice, I don't expect things to deadlock, because the VM resv is > not supposed to be taken outside the VM context and the locking order > is always the same (VM lock first, and then each shared BO > taken/released independently),

Re: [PATCH drm-next v6 02/13] drm: manager to keep track of GPUs VA mappings

2023-06-30 Thread Boris Brezillon
On Fri, 30 Jun 2023 10:02:52 +0200 Boris Brezillon wrote: > Hi Danilo, > > On Fri, 30 Jun 2023 00:25:18 +0200 > Danilo Krummrich wrote: > > > + * int driver_gpuva_remap(struct drm_gpuva_op *op, void *__ctx) > > + * { > > + * struct driver_context *ctx = __ctx; > > + * > > + * d

Re: [PATCH drm-next v6 02/13] drm: manager to keep track of GPUs VA mappings

2023-06-30 Thread Boris Brezillon
Hi Danilo, On Fri, 30 Jun 2023 00:25:18 +0200 Danilo Krummrich wrote: > + * int driver_gpuva_remap(struct drm_gpuva_op *op, void *__ctx) > + * { > + * struct driver_context *ctx = __ctx; > + * > + * drm_gpuva_remap(ctx->prev_va, ctx->next_va, &op->remap); > + * > + *

[PATCH drm-next v6 02/13] drm: manager to keep track of GPUs VA mappings

2023-06-29 Thread Danilo Krummrich
Add infrastructure to keep track of GPU virtual address (VA) mappings with a decicated VA space manager implementation. New UAPIs, motivated by Vulkan sparse memory bindings graphics drivers start implementing, allow userspace applications to request multiple and arbitrary GPU VA mappings of buffe