> > On Mon, Mar 12, 2018 at 11:13:00PM +0530, Raju Rangoju wrote: > > - This patch adds srq debugfs files > > Please implement it with rdma restrack, it can be beneficial for all > devices which are supporting SRQ. > > > - If hw supports an srq table, then export a debugfs file to dump the > > table Good point. Also, I think more debugfs in cxgb4 will be NAKed by Netdev. So remove the debugfs code, and we'll have a series to dump SRQs via the 'rdma' tool. To use rdma tool, we need provider-specific attribute support added to the core restrack code. This is in-progress, and after the core support is added, we can add the cxgb4-specific stuff. > > > > Signed-off-by: Raju Rangoju <rajur@xxxxxxxxxxx> > > Reviewed-by: Steve Wise <swise@xxxxxxxxxxxxxxxxxxxxx> > > --- > > drivers/net/ethernet/chelsio/cxgb4/Makefile | 2 +- > > drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 1 + > > drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c | 2 + > > drivers/net/ethernet/chelsio/cxgb4/srq.c | 230 > +++++++++++++++++++++ > > drivers/net/ethernet/chelsio/cxgb4/srq.h | 71 +++++++ > > 5 files changed, 305 insertions(+), 1 deletion(-) > > create mode 100644 drivers/net/ethernet/chelsio/cxgb4/srq.c > > create mode 100644 drivers/net/ethernet/chelsio/cxgb4/srq.h > > > > diff --git a/drivers/net/ethernet/chelsio/cxgb4/Makefile > b/drivers/net/ethernet/chelsio/cxgb4/Makefile > > index 53b6a02c778e..bea6a059a8f1 100644 > > --- a/drivers/net/ethernet/chelsio/cxgb4/Makefile > > +++ b/drivers/net/ethernet/chelsio/cxgb4/Makefile > > @@ -6,7 +6,7 @@ > > obj-$(CONFIG_CHELSIO_T4) += cxgb4.o > > > > cxgb4-objs := cxgb4_main.o l2t.o smt.o t4_hw.o sge.o clip_tbl.o > cxgb4_ethtool.o \ > > - cxgb4_uld.o sched.o cxgb4_filter.o cxgb4_tc_u32.o \ > > + cxgb4_uld.o srq.o sched.o cxgb4_filter.o cxgb4_tc_u32.o \ > > cxgb4_ptp.o cxgb4_tc_flower.o cxgb4_cudbg.o \ > > cudbg_common.o cudbg_lib.o cudbg_zlib.o > > cxgb4-$(CONFIG_CHELSIO_T4_DCB) += cxgb4_dcb.o > > diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h > b/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h > > index 9040e13ce4b7..1bb30b5a92a0 100644 > > --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h > > +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h > > @@ -946,6 +946,7 @@ struct adapter { > > > > /* Ethtool Dump */ > > struct ethtool_dump eth_dump; > > + struct srq_data *srq; > > }; > > > > /* Support for "sched-class" command to allow a TX Scheduling Class to > be > > diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c > b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c > > index 2822bbff73e8..e5d47aeb748b 100644 > > --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c > > +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c > > @@ -44,6 +44,7 @@ > > #include "t4fw_api.h" > > #include "cxgb4_debugfs.h" > > #include "clip_tbl.h" > > +#include "srq.h" > > #include "l2t.h" > > #include "cudbg_if.h" > > #include "cudbg_lib_common.h" > > @@ -2999,6 +3000,7 @@ int t4_setup_debugfs(struct adapter *adap) > > { "blocked_fl", &blocked_fl_fops, S_IRUSR | S_IWUSR, 0 }, > > { "meminfo", &meminfo_fops, S_IRUSR, 0 }, > > { "crypto", &chcr_stats_debugfs_fops, S_IRUSR, 0 }, > > + { "srq", &t4_srq_debugfs_fops, S_IRUSR, 0 }, > > }; > > > > /* Debug FS nodes common to all T5 and later adapters. > > diff --git a/drivers/net/ethernet/chelsio/cxgb4/srq.c > b/drivers/net/ethernet/chelsio/cxgb4/srq.c > > new file mode 100644 > > index 000000000000..b60158b11fbf > > --- /dev/null > > +++ b/drivers/net/ethernet/chelsio/cxgb4/srq.c > > @@ -0,0 +1,230 @@ > > +/* > > + * This file is part of the Chelsio T4 Ethernet driver for Linux. > > + * > > + * Copyright (c) 2017-2018 Chelsio Communications, Inc. All rights > reserved. > > + * > > + * This software is available to you under a choice of one of two > > + * licenses. You may choose to be licensed under the terms of the GNU > > + * General Public License (GPL) Version 2, available from the file > > + * COPYING in the main directory of this source tree, or the > > + * OpenIB.org BSD license below: > > + * > > + * Redistribution and use in source and binary forms, with or > > + * without modification, are permitted provided that the following > > + * conditions are met: > > + * > > + * - Redistributions of source code must retain the above > > + * copyright notice, this list of conditions and the following > > + * disclaimer. > > + * > > + * - Redistributions in binary form must reproduce the above > > + * copyright notice, this list of conditions and the following > > + * disclaimer in the documentation and/or other materials > > + * provided with the distribution. > > + * > > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY > KIND, > > + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE > WARRANTIES OF > > + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND > > + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR > COPYRIGHT HOLDERS > > + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER > IN AN > > + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF > OR IN > > + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS > IN THE > > + * SOFTWARE. > > + */ > > + > > +#include <linux/module.h> > > +#include <linux/skbuff.h> > > +#include <linux/netdevice.h> > > +#include <linux/if.h> > > +#include <linux/if_vlan.h> > > +#include <linux/jhash.h> > > +#include <linux/proc_fs.h> > > +#include <linux/seq_file.h> > > +#include <net/neighbour.h> > > +#include <net/addrconf.h> > > +#include "cxgb4.h" > > +#include "t4_msg.h" > > +#include "t4_regs.h" > > +#include "srq.h" > > + > > +struct srq_data *t4_init_srq(int srq_size) > > +{ > > + int i; > > + struct srq_data *s; > > + int size = sizeof(*s) + srq_size*sizeof(struct srq_entry); > > + > > + s = kzalloc(size, GFP_KERNEL | __GFP_NOWARN); > > + if (!s) > > + s = vzalloc(size); > > Just a note, there kvzalloc() especially for this. > > Thanks -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html