lkml.org 
[lkml]   [1996]   [Nov]   [25]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateMon, 25 Nov 1996 19:53:59 +0100 (MET)
FromIngo Molnar <>
Subjectfilemap.c:wait_on_page() problem & question

-------------------------------------------------->
void __wait_on_page(struct page *page)
{
        struct wait_queue wait = { current, NULL };
        add_wait_queue(&page->wait, &wait);
repeat:
        run_task_queue(&tq_disk);
        current->state = TASK_UNINTERRUPTIBLE;
        if (PageLocked(page)) {
                schedule();
                goto repeat;
        }
        remove_wait_queue(&page->wait, &wait);
        current->state = TASK_RUNNING;
}
<--------------------------------------------------
now how does a process that isnt on 'tq_disk' get runnable if the page
isnt read yet? Or are all pages that are far from being complete expected
to be 'PageLocked(page)'? [if not, then whos responsibility is it to mark
them locked?]

Why i'm asking this is that i'm seeing long (and unjustified) delays in
'sys_read()'. These delays might be due to incomplete IO but not properly
locked pages?

-- mingo


\
 
 \ /
  Last update: 2005-03-22 13:37    [from the cache]
©2003-2008