Return-Path: linux-nfs-owner@vger.kernel.org Received: from e7.ny.us.ibm.com ([32.97.182.137]:52052 "EHLO e7.ny.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755190AbaJHQAN (ORCPT ); Wed, 8 Oct 2014 12:00:13 -0400 Received: from /spool/local by e7.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 8 Oct 2014 12:00:12 -0400 In-Reply-To: <610954AB-462F-4755-A777-3F89E3CAD5E6@primarydata.com> References: <610954AB-462F-4755-A777-3F89E3CAD5E6@primarydata.com> To: Tom Haynes Cc: linux-nfs@vger.kernel.org, linux-nfs-owner@vger.kernel.org, Marc Eshel , Trond Myklebust MIME-Version: 1.0 Subject: Re: decode_device From: Marc Eshel Message-ID: Date: Wed, 8 Oct 2014 09:00:05 -0700 Content-Type: text/plain; charset="US-ASCII" Sender: linux-nfs-owner@vger.kernel.org List-ID: linux-nfs-owner@vger.kernel.org wrote on 10/08/2014 05:46:24 AM: > From: Tom Haynes > To: Marc Eshel/Almaden/IBM@IBMUS, > Cc: Trond Myklebust , linux- > nfs@vger.kernel.org > Date: 10/08/2014 05:46 AM > Subject: Re: decode_device > Sent by: linux-nfs-owner@vger.kernel.org > > > On Oct 7, 2014, at 9:33 PM, Marc Eshel wrote: > > > I see that NFS4_PNFS_MAX_STRIPE_CNT is 4096 but when give the client a cnt > > that is bigger than 1024 it fails, is that the limitation of kcalloc() ? > > > > 366341.304362] <-- _nfs4_proc_getdeviceinfo status=0 > > [366341.304364] filelayout_get_device_info getdevice info returns 0 > > [366341.304368] decode_device stripe count 1512 > > [366341.304370] decode_device ERROR: returning NULL > > [366341.304372] NFS: decode_and_add_device: Could not decode or add device > > [366341.304428] <-- filelayout_get_device_info dsaddr (null) > > [366341.304430] --> filelayout_check_layout returns -22 > > [366341.304433] pnfs_layout_process: Could not allocate layout: error -12 > > > > decode_device() > > > > ... > > dprintk("%s stripe count %d\n", __func__, cnt); > > if (cnt > NFS4_PNFS_MAX_STRIPE_CNT) { > > printk(KERN_WARNING "NFS: %s: stripe count %d greater than > > " > > "supported maximum %d\n", __func__, > > cnt, NFS4_PNFS_MAX_STRIPE_CNT); > > goto out_err_free_scratch; > > } > > > > /* read stripe indices */ > > stripe_indices = kcalloc(cnt, sizeof(u8), gfp_flags); > > if (!stripe_indices) > > goto out_err_free_scratch; > > > > > > Thanks, Marc. > > > > Hi Marc, > > You are asking for 1512 bytes of memory. That would be looking for a 2k slab. > > What flags are being passed down in gfp_flags? > > Are you experiencing any other memory issues? Hi Tom, It was working fine for a list of up to 1024 so I assumed it was a kcalloc, I will have to add more debugging to find the problem. Thanks, Marc. > > Tom > -- > To unsubscribe from this list: send the line "unsubscribe linux-nfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >