lkml.org 
[lkml]   [2014]   [Dec]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH RESEND v4] sched/fair: Add advisory flag for borrowing a timeslice
On 12/23/2014 03:52 AM, Ingo Molnar wrote:
>
>
> to implement what Thomas suggested in the discussion: a proper
> futex like spin mechanism? That looks like a totally acceptable
> solution to me, without the disadvantages of your proposed
> solution.

Hi Ingo,

Thank you for taking the time to respond. It is indeed possible to
implement a futex like spin mechanism. Futex like mechanism will be
clean and elegant. That is where I had started when I was given this
problem to solve. Trouble I run into is the primary application I am
looking at to help with this solution is Database which implements its
own locking mechanism without using POSIX semaphore or futex. Since the
locking is entirely in userspace, kernel has no clue when the userspace
has acquired one of these locks. So I can see only two ways to solve
this - find a solution in userspace entirely, or have userspace tell the
kernel when it acquires one of these locks. I will spend more time on
finding a way to solve it in userspace and see if I can find a way to
leverage futex mechanism without causing significant change to database
code. There may be a way to use priority inheritance to avoid
contention. Database performance people tell me that their testing has
shown the cost of making any system calls in this code easily offsets
any gains from optimizing for contention avoidance, so that is one big
challenge. Database rewriting their locking code is extremely unlikely
scenario. Am I missing a third option here?

Thanks,
Khalid


\
 
 \ /
  Last update: 2014-12-23 16:41    [W:0.099 / U:3.164 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site