Re: [PATCH v3] sched/fair: Add advisory flag for borrowing a timeslice

From: Khalid Aziz
Date: Tue Nov 25 2014 - 12:24:37 EST


On 11/25/2014 08:25 AM, Rik van Riel wrote:
On 11/25/2014 09:52 AM, Khalid Aziz wrote:
On 11/24/2014 07:03 PM, Rik van Riel wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 11/24/2014 03:56 PM, Khalid Aziz wrote:
sched/fair: Add advisory flag for borrowing a timeslice

This patch adds a way for a task to request to borrow one
timeslice from future if it is about to be preempted, so it could
delay preemption and complete any critical task it is in the middle
of.

This feature helps with performance on databases and has been used
for many years on other OSs by the databases. This feature helps in
situation where a task acquires a lock before performing a critical
operation on the database and happens to get preempted

Why don't the other tasks that want the lock sleep on the
lock?

I can see this "solution" help mostly with userspace spinlocks,
which are relics of a past era that need to die. There is no
way userspace spinlocks will not fail miserably on virtual
machines, and it is time to get rid of them.

This solution indeed is for userspace spinlocks. Database code has been
written with all critical locking implemented in userspace (as I have
been told by database folks. I am not a database guy).

They should fix that.

Agreed, but that is a very large task for databases for sure and potentially for java as well (think exhaustive testing as well besides code re-write). I do not see this happening except as part of major re-architecture. In the mean time, if we can give them help without impacting kernel significantly for other users, it only makes Linux a more usable platform for them.

Thanks,
Khalid
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/