Messages in this thread |  | | From | Nikita Danilov <> | Date | Fri, 21 Sep 2001 16:31:32 +0400 | Subject | Re: [reiserfs-list] Re: [PATCH] Significant performace improvements on reiserfs systems |
| |
Alan Cox writes: > > In Solaris, before spinning on a busy spin-lock, thread checks whether > > spin-lock holder runs on the same processor. If so, thread goes to sleep > > and holder wakes it up on spin-lock release. The same, I guess is going > > > > for interrupts that are served as separate threads. This way, one can > > re-schedule with spin-locks held. > > This is one of the things interrupt handling by threads gives you, but the > performance cost is not nice. When you consider that ksoftirqd when it > kicks in (currently far too often) takes up to 10% off gigabit ethernet > performance, you can appreciate why we don't want to go that path.
I guess, reasoning behind Solaris design was that you have to disable interrupts during critical sections more frequently than they would actually block in them. So, you lose on interrupt thread creation and when interrupts really block on a lock, but you gain because there is no more need to disable interrupts when accessing data shared between interrupt handler and the rest of the kernel. This can ultimately amount to some net advantage especially when coupled with some sort of lazy interrupt thread creation.
> > Our spinlock paths are supposed to be very small and predictable. Where > there is sleeping involved we have semaphores. > > As lockmeter shows we still have a few io_request_lock cases at least where > we lock for far too long
Reiserfs also likes to keep BKL while doing binary searches within nodes of a tree.
> > Alan
Nikita.
> - > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |