lkml.org 
[lkml]   [2004]   [Jul]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Preempt Threshold Measurements
Andrew Morton wrote:
> Con Kolivas <kernel@kolivas.org> wrote:
>
>>4ms at blkdev_put+0x48
>
>
> This can run under one of two depths of lock_kernel. filemap_fdatawrite()
> and filemap_fdatawait() both do cond_resched(), so this is odd.
>
> Try this:
>

Thanks! I'll certainly give that a shot.

> Need to see the whole trace.

Do you mean the traces from your patch or the ones that come from this
preempt test like this?

Jul 13 07:22:18 pc kernel: 4ms non-preemptible critical section violated
1 ms preempt threshold starting at exit_mmap+0x1c/0x188 and ending at
exit_mmap+0x
118/0x188
Jul 13 07:22:18 pc kernel: [<c011d769>] dec_preempt_count+0x14f/0x151
Jul 13 07:22:18 pc kernel: [<c014d0d4>] exit_mmap+0x118/0x188
Jul 13 07:22:18 pc kernel: [<c014d0d4>] exit_mmap+0x118/0x188
Jul 13 07:22:18 pc kernel: [<c011df0a>] mmput+0x61/0x7b
Jul 13 07:22:18 pc kernel: [<c01634dc>] exec_mmap+0x11d/0x248
Jul 13 07:22:18 pc kernel: [<c016364c>] flush_old_exec+0x45/0x284
Jul 13 07:22:18 pc kernel: [<c018119f>] load_elf_binary+0x3e8/0xd00
Jul 13 07:22:18 pc kernel: [<c013a9b1>] do_generic_mapping_read+0x295/0x4f2
Jul 13 07:22:18 pc kernel: [<c0164312>] search_binary_handler+0xd0/0x34c
Jul 13 07:22:18 pc kernel: [<c0180db7>] load_elf_binary+0x0/0xd00
Jul 13 07:22:18 pc kernel: [<c0164329>] search_binary_handler+0xe7/0x34c
Jul 13 07:22:18 pc kernel: [<c0164759>] do_execve+0x1cb/0x23c
Jul 13 07:22:18 pc kernel: [<c0165f39>] getname+0x55/0xb8
Jul 13 07:22:18 pc kernel: [<c0104bcf>] sys_execve+0x35/0x68
Jul 13 07:22:18 pc kernel: [<c0105fd5>] sysenter_past_esp+0x52/0x71


I can try and extract the exact points from the disassembly after some
guidance I've received (most of them seem to be buried deep in inlined
functions.) The exit_mmap one seemed to work out (as you probably saw in
my previous email) to be set off here:

profile_exit_mmap(mm);
lru_add_drain();
c014cfce: e8 18 72 ff ff call c01441eb <lru_add_drain>
spin_lock(&mm->page_table_lock);
c014cfd3: e8 16 06 fd ff call c011d5ee <inc_preempt_count>


Cheers,
Con
[unhandled content-type:application/pgp-signature]
\
 
 \ /
  Last update: 2005-03-22 14:04    [W:0.038 / U:0.424 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site