Re: [PATCH] host1x: cdma: use completion instead of semaphore
On Mon, Dec 10, 2018 at 10:51:04PM +0100, Arnd Bergmann wrote: > In this usage, the two are completely equivalent, but the > completion documents better what is going on, and we generally > try to avoid semaphores these days. > > Signed-off-by: Arnd Bergmann > --- > drivers/gpu/host1x/cdma.c | 6 +++--- > drivers/gpu/host1x/cdma.h | 4 ++-- > 2 files changed, 5 insertions(+), 5 deletions(-) Applied, thanks. Thierry signature.asc Description: PGP signature ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH] host1x: cdma: use completion instead of semaphore
On Tue, Dec 11, 2018 at 11:11:38AM +0100, Arnd Bergmann wrote: > On Tue, Dec 11, 2018 at 11:08 AM Thierry Reding > wrote: > > > > On Mon, Dec 10, 2018 at 10:51:04PM +0100, Arnd Bergmann wrote: > > > In this usage, the two are completely equivalent, but the > > > completion documents better what is going on, and we generally > > > try to avoid semaphores these days. > > > > > > Signed-off-by: Arnd Bergmann > > > --- > > > drivers/gpu/host1x/cdma.c | 6 +++--- > > > drivers/gpu/host1x/cdma.h | 4 ++-- > > > 2 files changed, 5 insertions(+), 5 deletions(-) > > > > My understanding is that potentially many userspace processes could be > > blocking on this, which I think is the reason for it being a semaphore. > > Is the completion going to work for those cases as well? > > Yes, it behaves the exact same way here. Great, I'll queue this for v4.22. Thanks, Thierry signature.asc Description: PGP signature ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH] host1x: cdma: use completion instead of semaphore
On Tue, Dec 11, 2018 at 11:08 AM Thierry Reding wrote: > > On Mon, Dec 10, 2018 at 10:51:04PM +0100, Arnd Bergmann wrote: > > In this usage, the two are completely equivalent, but the > > completion documents better what is going on, and we generally > > try to avoid semaphores these days. > > > > Signed-off-by: Arnd Bergmann > > --- > > drivers/gpu/host1x/cdma.c | 6 +++--- > > drivers/gpu/host1x/cdma.h | 4 ++-- > > 2 files changed, 5 insertions(+), 5 deletions(-) > > My understanding is that potentially many userspace processes could be > blocking on this, which I think is the reason for it being a semaphore. > Is the completion going to work for those cases as well? Yes, it behaves the exact same way here. Arnd ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH] host1x: cdma: use completion instead of semaphore
On Mon, Dec 10, 2018 at 10:51:04PM +0100, Arnd Bergmann wrote: > In this usage, the two are completely equivalent, but the > completion documents better what is going on, and we generally > try to avoid semaphores these days. > > Signed-off-by: Arnd Bergmann > --- > drivers/gpu/host1x/cdma.c | 6 +++--- > drivers/gpu/host1x/cdma.h | 4 ++-- > 2 files changed, 5 insertions(+), 5 deletions(-) My understanding is that potentially many userspace processes could be blocking on this, which I think is the reason for it being a semaphore. Is the completion going to work for those cases as well? Thierry signature.asc Description: PGP signature ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH] host1x: cdma: use completion instead of semaphore
In this usage, the two are completely equivalent, but the completion documents better what is going on, and we generally try to avoid semaphores these days. Signed-off-by: Arnd Bergmann --- drivers/gpu/host1x/cdma.c | 6 +++--- drivers/gpu/host1x/cdma.h | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/host1x/cdma.c b/drivers/gpu/host1x/cdma.c index 6bfb3e6f43d7..bdc80a303cec 100644 --- a/drivers/gpu/host1x/cdma.c +++ b/drivers/gpu/host1x/cdma.c @@ -204,7 +204,7 @@ unsigned int host1x_cdma_wait_locked(struct host1x_cdma *cdma, cdma->event = event; mutex_unlock(>lock); - down(>sem); + wait_for_completion(>complete); mutex_lock(>lock); } @@ -308,7 +308,7 @@ static void update_cdma_locked(struct host1x_cdma *cdma) if (signal) { cdma->event = CDMA_EVENT_NONE; - up(>sem); + complete(>complete); } } @@ -410,7 +410,7 @@ int host1x_cdma_init(struct host1x_cdma *cdma) int err; mutex_init(>lock); - sema_init(>sem, 0); + init_completion(>complete); INIT_LIST_HEAD(>sync_queue); diff --git a/drivers/gpu/host1x/cdma.h b/drivers/gpu/host1x/cdma.h index c628070b94d7..ba790f9bfebc 100644 --- a/drivers/gpu/host1x/cdma.h +++ b/drivers/gpu/host1x/cdma.h @@ -20,7 +20,7 @@ #define __HOST1X_CDMA_H #include -#include +#include #include struct host1x_syncpt; @@ -70,7 +70,7 @@ enum cdma_event { struct host1x_cdma { struct mutex lock; /* controls access to shared state */ - struct semaphore sem; /* signalled when event occurs */ + struct completion complete; /* signalled when event occurs */ enum cdma_event event; /* event that sem is waiting for */ unsigned int slots_used;/* pb slots used in current submit */ unsigned int slots_free;/* pb slots free in current submit */ -- 2.20.0 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel