All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Christie <michaelc@cs.wisc.edu>
To: Bhanu Gollapudi <bprakash@broadcom.com>
Cc: devel@open-fcoe.org, linux-scsi@vger.kernel.org, mchan@broadcom.com
Subject: Re: [v2 PATCH 2/5] bnx2fc: Broadcom FCoE offload driver submission (header files)
Date: Thu, 13 Jan 2011 16:53:57 -0600	[thread overview]
Message-ID: <4D2F8285.8040205@cs.wisc.edu> (raw)
In-Reply-To: <1293170552.4676.572.camel@ltsjc-bprakash2.corp.ad.broadcom.com>

On 12/24/2010 12:02 AM, Bhanu Gollapudi wrote:
> diff --git a/drivers/scsi/bnx2fc/57xx_fcoe_constants.h b/drivers/scsi/bnx2fc/57xx_fcoe_constants.h
> new file mode 100644
> index 0000000..c1b4e77
> --- /dev/null
> +++ b/drivers/scsi/bnx2fc/57xx_fcoe_constants.h
> @@ -0,0 +1,261 @@
> +#ifndef __57XX_FCOE_CONSTANTS_H_
> +#define __57XX_FCOE_CONSTANTS_H_
> +
> +/**
> + * This file defines HSI constants for the FCoE flows
> + */
> +


There is a bunch of old defines and maybe structs that are not used. 
Remove them.


> +#endif /* __57XX_FCOE_HSI_LINUX_LE__ */
> diff --git a/drivers/scsi/bnx2fc/bnx2fc.h b/drivers/scsi/bnx2fc/bnx2fc.h
> new file mode 100644
> index 0000000..0ba6d2e
> --- /dev/null
> +++ b/drivers/scsi/bnx2fc/bnx2fc.h
> @@ -0,0 +1,545 @@
> +#ifndef _BNX2FC_H_
> +#define _BNX2FC_H_
> +/* bnx2fc.h: Broadcom NetXtreme II Linux FCoE offload driver.
> + *
> + * Copyright (c) 2008 - 2010 Broadcom Corporation
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation.
> + *
> + * Written by: Bhanu Prakash Gollapudi (bprakash@broadcom.com)
> + */
> +
> +#include<linux/version.h>
> +#include<linux/module.h>
> +#include<linux/moduleparam.h>
> +
> +#include<linux/kernel.h>
> +#include<linux/skbuff.h>
> +#include<linux/netdevice.h>
> +#include<linux/etherdevice.h>
> +#include<linux/ethtool.h>
> +#include<linux/if_ether.h>
> +#include<linux/if_vlan.h>
> +#include<linux/kthread.h>
> +#include<linux/crc32.h>
> +#include<linux/cpu.h>
> +
> +#include<linux/types.h>
> +#include<linux/list.h>
> +#include<linux/delay.h>
> +#include<asm/byteorder.h>
> +#include<linux/timer.h>
> +#include<linux/errno.h>
> +#include<linux/pci.h>
> +#include<linux/init.h>
> +#include<linux/dma-mapping.h>
> +#include<linux/workqueue.h>
> +#include<linux/mutex.h>
> +#include<linux/spinlock.h>
> +#include<linux/bitops.h>
> +#include<linux/log2.h>
> +
> +#include<net/tcp.h>
> +
> +#include<scsi/scsi.h>
> +#include<scsi/scsi_host.h>
> +#include<scsi/scsi_device.h>
> +#include<scsi/scsi_cmnd.h>
> +#include<scsi/scsi_eh.h>
> +#include<scsi/scsi_tcq.h>
> +#include<scsi/fc/fc_fip.h>
> +#include<scsi/fc/fc_fc2.h>
> +#include<scsi/libfc.h>
> +#include<scsi/libfcoe.h>
> +#include<scsi/fc_frame.h>
> +
> +#include<scsi/fc/fc_fcoe.h>
> +
> +#include<scsi/scsi_transport.h>
> +#include<scsi/scsi_transport_fc.h>
> +
> +#include<linux/fs.h>
> +#include<linux/mm.h>
> +#include<linux/interrupt.h>
> +#include<linux/sched.h>
> +#include<linux/uaccess.h>
> +#include<linux/io.h>

These linux includes should be with the other ones.

> +
> +#include "57xx_hsi_bnx2fc.h"
> +
> +#include "bnx2fc_debug.h"
> +#include "../../net/cnic_if.h"
> +
> +#include "fcoe_constants.h"
> +
> +#define BNX2FC_NAME		"bnx2fc"
> +#define BNX2FC_VERSION		"1.0.0"
> +
> +#define PFX			"bnx2fc: "
> +
> +#define BNX2FC_VLAN0FIX		1

Not used.

> +
> +#define BNX2X_DOORBELL_PCI_BAR                  2
> +
> +#define BNX2FC_MAX_BD_LEN		0xffff
> +#define BNX2FC_BD_SPLIT_SZ		0x8000
> +#define BNX2FC_MAX_BDS_PER_CMD		256
> +#define MAX_PAGES_PER_EXCHG_CTX_POOL	1024
> +
> +#define BNX2FC_SQ_WQES_MAX	256
> +
> +#define BNX2FC_SCSI_MAX_SQES	((3 * BNX2FC_SQ_WQES_MAX) / 8)
> +#define BNX2FC_TM_MAX_SQES	((BNX2FC_SQ_WQES_MAX) / 2)
> +#define BNX2FC_ELS_MAX_SQES	(BNX2FC_TM_MAX_SQES - 1)
> +
> +#define BNX2FC_RQ_WQES_MAX	16
> +#define BNX2FC_CQ_WQES_MAX	(BNX2FC_SQ_WQES_MAX + BNX2FC_RQ_WQES_MAX)
> +
> +#define BNX2FC_MAX_SESS		2048

Not used.

> +#define BNX2FC_NUM_MAX_SESS	128


What is the difference between this and BNX2FC_MAX_FCP_TGT below? Should 
they be the same? Seems low if you are using multipath too.



> +#define BNX2FC_NUM_MAX_SESS_LOG	(ilog2(BNX2FC_NUM_MAX_SESS))
> +
> +#ifdef CONFIG_X86_64
> +#define BNX2FC_MAX_OUTSTANDING_CMNDS	4096
> +#else
> +#define BNX2FC_MAX_OUTSTANDING_CMNDS	1024
> +#endif

Why is this different for other archs?


> +#define BNX2FC_MIN_PAYLOAD		256
> +#define BNX2FC_MAX_PAYLOAD		2048
> +
> +#define BNX2FC_RQ_BUF_SZ		256
> +#define BNX2FC_RQ_BUF_LOG_SZ		(ilog2(BNX2FC_RQ_BUF_SZ))
> +
> +#define BNX2FC_SQ_WQE_SIZE		(sizeof(struct fcoe_sqe))
> +#define BNX2FC_CQ_WQE_SIZE		(sizeof(struct fcoe_cqe))
> +#define BNX2FC_RQ_WQE_SIZE		(BNX2FC_RQ_BUF_SZ)
> +#define BNX2FC_XFERQ_WQE_SIZE		(sizeof(struct fcoe_xfrqe))
> +#define BNX2FC_CONFQ_WQE_SIZE		(sizeof(struct fcoe_confqe))
> +#define BNX2FC_5771X_DB_PAGE_SIZE	128
> +
> +#define BNX2FC_MAX_TASKS		BNX2FC_MAX_OUTSTANDING_CMNDS
> +#define BNX2FC_TASK_SIZE		128
> +/*#define BNX2FC_TASK_SIZE		(sizeof(struct fcoe_task_ctx_entry)) */
> +#define	BNX2FC_TASKS_PER_PAGE		(PAGE_SIZE/BNX2FC_TASK_SIZE)
> +#define BNX2FC_TASK_CTX_ARR_SZ		(BNX2FC_MAX_TASKS/BNX2FC_TASKS_PER_PAGE)
> +
> +#define BNX2FC_MAX_ROWS_IN_HASH_TBL	8
> +#define BNX2FC_HASH_TBL_CHUNK_SIZE	(16 * 1024)
> +
> +#define BNX2FC_MAX_SEQS			255
> +
> +#define  SIMPLE_QUEUE			0x00
> +#define  HEAD_OF_QUEUE			0x01
> +#define  ORDERED_QUEUE			0x02
> +#define  ACA_QUEUE			0x04


these look like fc_fcp.h defs.

> +#define  UNTAGGED			0x05
> +
> +#define FCP_TMF_TGT_RESET		0x20
> +

fc_fcp.h defs.


> +#define FC_SRB_READ			(1<<  1)
> +#define FC_SRB_WRITE			(1<<  0)
> +
> +#define BNX2FC_MIN_XID			0
> +#define BNX2FC_MAX_XID			(BNX2FC_MAX_OUTSTANDING_CMNDS - 1)
> +#define FCOE_MIN_XID			(BNX2FC_MAX_OUTSTANDING_CMNDS)
> +#define FCOE_MAX_XID		\
> +			(BNX2FC_MAX_OUTSTANDING_CMNDS + (nr_cpu_ids * 256))
> +#define BNX2FC_MAX_LUN			0xFFFF


Is this a hw limit?

For bnx2i it is only 512. Should one be fixed or does the fcoe function 
support a higher value?



> +#define BNX2FC_MAX_FCP_TGT		256
> +#define BNX2FC_MAX_CMD_LEN		16
> +#define BNX2FC_IOS_PER_WORK		24


Not used.



> +#define IP_V4 0
> +#define IP_V6 1

What are these for?


Could you go through the headers and removed unused stuff. I noted some 
that had interesting names to me so I was looking at them, but there are 
probably more.



  reply	other threads:[~2011-01-13 22:54 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-12-24  6:02 [v2 PATCH 2/5] bnx2fc: Broadcom FCoE offload driver submission (header files) Bhanu Gollapudi
2011-01-13 22:53 ` Mike Christie [this message]
2011-01-14 21:32   ` Bhanu Gollapudi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4D2F8285.8040205@cs.wisc.edu \
    --to=michaelc@cs.wisc.edu \
    --cc=bprakash@broadcom.com \
    --cc=devel@open-fcoe.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=mchan@broadcom.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.