Re: Why can't I set the priority of softirq-hrt? (Re: 2.6.17-rt1)

From: Esben Nielsen
Date: Wed Jun 21 2006 - 06:02:33 EST




On Wed, 21 Jun 2006, Steven Rostedt wrote:

[...]
No, I think fixing the bug you found is better :)


Thomas convinced me. I don't like the design though. Moving the task priorities around isn't very healthy. It is confusing and it complicates stuff a lot. But as Thomas says, with my solution one could make DOS attack from userspace by arranging a lot of timers to timeout
simultaniously (or sufficient close to each other).
However, this is still possible, but less easy to do: In the interrupt every timer expirering is touched. I.e. by having a lot of timers you push a lot of work into the interrupt routine. In fact the interrupt routine also have to take the timer out of the binary tree, so the worst case interrupt latency is O(N log N), N being the total amount of timer in the system!!

But what about the configure option HIGH_RES_RESOLUTION ? It is barely used in the system now. But if timers closer than the resolution were batched together in a plist, then all the interrupt should do was to merge two plists, namely the list of newly timeouts and the list of stuff still pending to be executed by the softirq thread. The worst case would then be
max(O(log N), O(<number of priorities==140>), which is both fairly limited as
N can never be bigger than 1G on a 32 bit system such that log N <= 30.

Esben

-- Steve

-
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/