From: John Stultz Date: Wed, 18 Dec 2013 01:04:29 +0000 (-0800) Subject: staging: ion: Avoid using rt_mutexes directly X-Git-Tag: v3.14-rc1~150^2~242 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6a72a700f44b2fa1b1d6f3529e5d492a4f71de49;p=pandora-kernel.git staging: ion: Avoid using rt_mutexes directly RT_MUTEXES can be configured out of the kernel, causing compile problems with ION. To quote Colin: "rt_mutexes were added with the deferred freeing feature. Heaps need to return zeroed memory to userspace, but zeroing the memory on every allocation was causing performance issues. We added a SCHED_IDLE thread to zero memory in the background after freeing, but locking the heap from the SCHED_IDLE thread might block a high priority allocation thread for a long time. The lock is only used to protect the heap's free_list and free_list_size members, and is not held for any long or sleeping operations. Converting to a spinlock should prevent priority inversion without using the rt_mutex. I'd also rename it to free_lock to so it doesn't get used as a general heap lock." Thus this patch converts the rt_mutex usage to a spinlock and renames the lock free_lock to be more clear as to its use. I also had to change a bit of logic in ion_heap_freelist_drain() to safely avoid list corruption. Acked-by: Colin Cross Cc: Android Kernel Team Reported-by: Jim Davis Signed-off-by: John Stultz Signed-off-by: Greg Kroah-Hartman --- Reading git-diff-tree failed