Re: lowlatency-2.2.14-B1 + 2.2.14aa7 fixes crash, but...

From: Benno Senoner (sbenno@gardena.net)
Date: Tue Feb 22 2000 - 18:16:10 EST


On Tue, 22 Feb 2000, Andrea Arcangeli wrote:

> BTW, I just found another lowlatency patch bug:
>
> -
> + /*
> + * Tough one to time-limit ...
> + */
> entry = entry->next;
> - if (!CAN_UNUSE(INODE(tmp)))
> + if (!CAN_UNUSE(INODE(tmp))) {
> + if (current->need_resched) {
> + INODE(tmp)->i_count++;
> + spin_unlock(&inode_lock);
> + schedule();
> + spin_lock(&inode_lock);
> + INODE(tmp)->i_count--;
> + }
> continue;
> + }
>
>
> i_count-- won't release the inode correctly (think if the inode got
> deleted under the schedule).
>
> Drop the above changes and try again.
>
> Andrea

But what happens if you free zillions of inodes in this loop without
rescheduling ?
You will spend several msecs in this loop ruining latencies completely.
Is there a way to reschedule in a safe way during the freeing of inodes ?

Without time-limiting these routines we have no chance to achieve
low latencies.

As you can see from my tests stock kernels freeze up to 130ms
during heavy disk I/O on a PII400 + 256MB RAM machine.

Benno.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed Feb 23 2000 - 21:00:31 EST