From: Andrew Morton Subject: Re: [PATCH 010 of 11] knfsd: make rpc threads pools numa aware Date: Sun, 6 Aug 2006 02:47:03 -0700 Message-ID: <20060806024703.2fb9f307.akpm@osdl.org> References: <20060731103458.29040.patches@notabene> <1060731004234.29291@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Cc: nfs@lists.sourceforge.net, linux-kernel@vger.kernel.org, Greg Banks Return-path: Received: from sc8-sf-mx1-b.sourceforge.net ([10.3.1.91] helo=mail.sourceforge.net) by sc8-sf-list2-new.sourceforge.net with esmtp (Exim 4.43) id 1G9fDy-00061y-Af for nfs@lists.sourceforge.net; Sun, 06 Aug 2006 02:47:10 -0700 Received: from smtp.osdl.org ([65.172.181.4]) by mail.sourceforge.net with esmtps (TLSv1:DES-CBC3-SHA:168) (Exim 4.44) id 1G9fDx-0007KC-Gp for nfs@lists.sourceforge.net; Sun, 06 Aug 2006 02:47:10 -0700 To: NeilBrown In-Reply-To: <1060731004234.29291@suse.de> List-Id: "Discussion of NFS under Linux development, interoperability, and testing." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: nfs-bounces@lists.sourceforge.net Errors-To: nfs-bounces@lists.sourceforge.net On Mon, 31 Jul 2006 10:42:34 +1000 NeilBrown wrote: > knfsd: Actually implement multiple pools. On NUMA machines, allocate > a svc_pool per NUMA node; on SMP a svc_pool per CPU; otherwise a single > global pool. Enqueue sockets on the svc_pool corresponding to the CPU > on which the socket bh is run (i.e. the NIC interrupt CPU). Threads > have their cpu mask set to limit them to the CPUs in the svc_pool that > owns them. > > This is the patch that allows an Altix to scale NFS traffic linearly > beyond 4 CPUs and 4 NICs. > > Incorporates changes and feedback from Neil Brown, Trond Myklebust, > and Christoph Hellwig. This makes the NFS client go BUG. Simple nfsv3 workload (ie: mount, read stuff). Uniproc, FC5. + BUG_ON(m->mode == SVC_POOL_NONE); kernel BUG at net/sunrpc/svc.c:244! invalid opcode: 0000 [#1] 4K_STACKS last sysfs file: /class/net/eth1/flags Modules linked in: nfs lockd nfs_acl ipw2200 sonypi autofs4 hidp l2cap bluetooth sunrpc ip_conntrack_netbios_ns ipt_REJECT xt_state ip_conntrack nfnetlink xt_tcpudp iptable_filter ip_tables x_tables video sony_acpi sbs i2c_ec button battery asus_acpi ac nvram ohci1394 ieee1394 ehci_hcd uhci_hcd sg joydev snd_hda_intel snd_hda_codec snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device ieee80211 snd_pcm_oss snd_mixer_oss ieee80211_crypt snd_pcm snd_timer snd i2c_i801 soundcore i2c_core piix snd_page_alloc pcspkr generic ext3 jbd ide_disk ide_core CPU: 0 EIP: 0060:[] Not tainted VLI EFLAGS: 00210246 (2.6.18-rc3-mm1 #21) EIP is at svc_pool_for_cpu+0xc/0x43 [sunrpc] eax: ffffffff ebx: f59a75c0 ecx: f59a76c0 edx: 00000000 esi: f59cbc20 edi: f59a75c0 ebp: f582d5c0 esp: f59cbb98 ds: 007b es: 007b ss: 0068 Process mount (pid: 2599, ti=f59cb000 task=f59a5550 task.ti=f59cb000) Stack: f8d6e506 f59cbbb0 00000000 00200282 00000014 00000006 f59a76c0 f59a75c0 f59cbc20 f59a75c0 f582d5c0 f8d6ea83 00200286 c0270376 f582d5c0 f59a76c0 f59a75c0 c02dbbc0 00000006 f59a76c0 f5956c80 f8d6ebd7 00000001 00000000 Call Trace: [] svc_sock_enqueue+0x33/0x294 [sunrpc] [] svc_setup_socket+0x31c/0x326 [sunrpc] [] release_sock+0xc/0x83 [] svc_makesock+0x14a/0x185 [sunrpc] [] make_socks+0x72/0xae [lockd] [] lockd_up+0x82/0xd9 [lockd] [] __wake_up+0x11/0x1a [] nfs_start_lockd+0x26/0x43 [nfs] [] nfs_create_server+0x1dc/0x3da [nfs] [] wait_for_completion+0x70/0x99 [] default_wake_function+0x0/0xc [] call_usermodehelper_keys+0xc4/0xd3 [] nfs_get_sb+0x398/0x3b4 [nfs] [] __call_usermodehelper+0x0/0x43 [] vfs_kern_mount+0x83/0xf6 [] do_kern_mount+0x2d/0x3e [] do_mount+0x5b2/0x625 [] task_has_capability+0x56/0x5e [] inet_bind_bucket_create+0x11/0x3c [] inet_csk_get_port+0x196/0x1a0 [] release_sock+0xc/0x83 [] inet_bind+0x1c6/0x1d0 [] handle_IRQ_event+0x23/0x49 [] __alloc_pages+0x5e/0x28d [] common_interrupt+0x1a/0x20 [] copy_mount_options+0x26/0x109 [] sys_mount+0x72/0xa4 [] syscall_call+0x7/0xb Code: 31 c0 eb 15 8b 40 10 89 d1 c1 e9 02 8b 50 1c 8d 41 02 89 42 04 8d 44 8b 08 5a 59 5b c3 90 90 89 c1 a1 88 86 d8 f8 83 f8 ff 75 0a <0f> 0b f4 00 2c 6f d7 f8 eb 0a 83 f8 01 74 09 83 f8 02 74 0e 31 EIP: [] svc_pool_for_cpu+0xc/0x43 [sunrpc] SS:ESP 0068:f59cbb98 ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ NFS maillist - NFS@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs