Messages in this thread | | | Date | Mon, 28 Feb 2000 17:03:26 +0100 (CET) | From | Andrea Arcangeli <> | Subject | Re: lowlatency-2.2.14-B1 + 2.2.14aa7 fixes crash, but... |
| |
On Mon, 28 Feb 2000, William Montgomery wrote:
>repeat: > entry = inode_in_use.next; > while (entry != &inode_in_use) { > struct list_head *tmp = entry; > /* > * Tough one to time-limit ... > */ > entry = entry->next; > if (!CAN_UNUSE(INODE(tmp))) { > if (current->need_resched) { > INODE(tmp)->i_count++; > spin_unlock(&inode_lock); > schedule(); > iput(tmp); > if (repeat_count) { > repeat_count--;
spin_lock() missing here.
> goto repeat; > } > } > continue; > } > list_del(tmp); > list_del(&INODE(tmp)->i_hash); > INIT_LIST_HEAD(&INODE(tmp)->i_hash); > list_add(tmp, freeable); > list_entry(tmp, struct inode, i_list)->i_state = I_FREEING; > found++; > if (!--count) > break; > } > >It appears Andrea has put in a lowlatency enhancement already in this >code by only allowing 128 inodes to be freed at a time. Perhaps we
the 2.2.x problem is that to free 128 inodes you risk to browse the whole in_use list ;)
Andrea
- 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/
| |