[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20081128185854.GA19682@elte.hu>
Date: Fri, 28 Nov 2008 19:58:54 +0100
From: Ingo Molnar <mingo@...e.hu>
To: Al Viro <viro@...IV.linux.org.uk>
Cc: Eric Dumazet <dada1@...mosbay.com>,
David Miller <davem@...emloft.net>,
"Rafael J. Wysocki" <rjw@...k.pl>, linux-kernel@...r.kernel.org,
kernel-testers@...r.kernel.org, Mike Galbraith <efault@....de>,
Peter Zijlstra <a.p.zijlstra@...llo.nl>,
Linux Netdev List <netdev@...r.kernel.org>,
Christoph Lameter <cl@...ux-foundation.org>,
Christoph Hellwig <hch@...radead.org>, rth@...ddle.net,
ink@...assic.park.msu.ru
Subject: Re: [PATCH 6/6] fs: Introduce kern_mount_special() to mount
special vfs
* Ingo Molnar <mingo@...e.hu> wrote:
> And i wouldnt expect it to hurt real-filesystem workloads.
>
> Here's the contemporary trace of a typical ext3- sys_open():
here's a sys_open() that has to touch atime:
0) | sys_open() {
0) | do_sys_open() {
0) | getname() {
0) 0.377 us | kmem_cache_alloc();
0) | strncpy_from_user() {
0) | _cond_resched() {
0) | need_resched() {
0) 0.353 us | constant_test_bit();
0) 1. 45 us | }
0) 1.739 us | }
0) 2.492 us | }
0) 3.934 us | }
0) | alloc_fd() {
0) 0.374 us | _spin_lock();
0) 0.447 us | expand_files();
0) 2.124 us | }
0) | do_filp_open() {
0) | path_lookup_open() {
0) | get_empty_filp() {
0) 0.689 us | kmem_cache_alloc();
0) | security_file_alloc() {
0) 0.327 us | cap_file_alloc_security();
0) 1. 71 us | }
0) 2.869 us | }
0) | do_path_lookup() {
0) 0.460 us | _read_lock();
0) | path_walk() {
0) | __link_path_walk() {
0) | inode_permission() {
0) | ext3_permission() {
0) 0.434 us | generic_permission();
0) 1.191 us | }
0) | security_inode_permission() {
0) 0.400 us | cap_inode_permission();
0) 1.130 us | }
0) 3.453 us | }
0) | do_lookup() {
0) | __d_lookup() {
0) 0.489 us | _spin_lock();
0) 1.525 us | }
0) 0.449 us | __follow_mount();
0) 3.115 us | }
0) | path_to_nameidata() {
0) 0.422 us | dput();
0) 1.204 us | }
0) | inode_permission() {
0) | ext3_permission() {
0) 0.391 us | generic_permission();
0) 1.223 us | }
0) | security_inode_permission() {
0) 0.406 us | cap_inode_permission();
0) 1.189 us | }
0) 3.565 us | }
0) | do_lookup() {
0) | __d_lookup() {
0) 0.527 us | _spin_lock();
0) 1.633 us | }
0) 0.440 us | __follow_mount();
0) 3.223 us | }
0) | do_follow_link() {
0) | _cond_resched() {
0) | need_resched() {
0) 0.361 us | constant_test_bit();
0) 1. 64 us | }
0) 1.749 us | }
0) | security_inode_follow_link() {
0) 0.390 us | cap_inode_follow_link();
0) 1.260 us | }
0) | touch_atime() {
0) | mnt_want_write() {
0) 0.360 us | _spin_lock();
0) 1.137 us | }
0) | mnt_drop_write() {
0) 0.348 us | _spin_lock();
0) 1.102 us | }
0) 3.402 us | }
0) 0.446 us | ext3_follow_link();
0) | __link_path_walk() {
0) | inode_permission() {
0) | ext3_permission() {
0) | generic_permission() {
0) 4.481 us | }
0) | security_inode_permission() {
0) 0.402 us | cap_inode_permission();
0) 1.127 us | }
0) 6.747 us | }
0) | do_lookup() {
0) | __d_lookup() {
0) 0.547 us | _spin_lock();
0) 1.758 us | }
0) 0.465 us | __follow_mount();
0) 3.368 us | }
0) | path_to_nameidata() {
0) 0.419 us | dput();
0) 1.203 us | }
0) + 13. 40 us | }
0) | path_put() {
0) 0.429 us | dput();
0) | mntput() {
0) 0.367 us | mntput_no_expire();
0) 1.130 us | }
0) 2.660 us | }
0) | path_put() {
0) | dput() {
0) | _cond_resched() {
0) | need_resched() {
0) 0.382 us | constant_test_bit();
0) 1. 67 us | }
0) 1.808 us | }
0) 0.399 us | _spin_lock();
0) 0.452 us | _spin_lock();
0) 4.270 us | }
0) | mntput() {
0) 0.375 us | mntput_no_expire();
0) 1. 62 us | }
0) 6.547 us | }
0) + 32.702 us | }
0) + 50.413 us | }
0) | path_put() {
0) 0.421 us | dput();
0) | mntput() {
0) 0.364 us | mntput_no_expire();
0) 1. 64 us | }
0) 2.545 us | }
0) + 54.147 us | }
0) + 55.780 us | }
0) + 59.714 us | }
0) | may_open() {
0) | inode_permission() {
0) | ext3_permission() {
0) 0.406 us | generic_permission();
0) 1.189 us | }
0) | security_inode_permission() {
0) 0.388 us | cap_inode_permission();
0) 1.175 us | }
0) 3.498 us | }
0) 4.328 us | }
0) | nameidata_to_filp() {
0) | __dentry_open() {
0) | file_move() {
0) 0.361 us | _spin_lock();
0) 1.102 us | }
0) | security_dentry_open() {
0) 0.356 us | cap_dentry_open();
0) 1.121 us | }
0) 0.400 us | generic_file_open();
0) 0.544 us | file_ra_state_init();
0) 5. 11 us | }
0) 5.709 us | }
0) + 71.181 us | }
0) 0.453 us | inotify_dentry_parent_queue_event();
0) 0.403 us | inotify_inode_queue_event();
0) | fd_install() {
0) 0.411 us | _spin_lock();
0) 1.217 us | }
0) | putname() {
0) | kmem_cache_free() {
0) | virt_to_head_page() {
0) 0.371 us | constant_test_bit();
0) 1. 47 us | }
0) 1.752 us | }
0) 2.446 us | }
0) + 84.676 us | }
0) + 85.365 us | }
Ingo
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists