From: Jeff Garzik <jeff@garzik.org>
To: Ayyappan Veeraiyan <ayyappan.veeraiyan@intel.com>
Cc: netdev@vger.kernel.org, auke-jan.h.kok@intel.com,
arjan@linux.intel.com, akpm@linux-foundation.org
Subject: Re: [PATCH] ixgbe: Introduce new 10GbE driver for Intel 82598 based PCI Express adapters...
Date: Mon, 02 Jul 2007 08:52:34 -0400 [thread overview]
Message-ID: <4688F512.3030801@garzik.org> (raw)
In-Reply-To: <20070612234431.5102.33880.stgit@localhost.localdomain>
Ayyappan Veeraiyan wrote:
> +#define IXGBE_TX_FLAGS_CSUM 0x00000001
> +#define IXGBE_TX_FLAGS_VLAN 0x00000002
> +#define IXGBE_TX_FLAGS_TSO 0x00000004
> +#define IXGBE_TX_FLAGS_IPV4 0x00000008
> +#define IXGBE_TX_FLAGS_VLAN_MASK 0xffff0000
> +#define IXGBE_TX_FLAGS_VLAN_SHIFT 16
defining bits using the form "(1 << n)" is preferred. Makes it easier
to read, by eliminating the requirement of the human brain to decode hex
into bit numbers.
> + union {
> + /* To protect race between sender and clean_tx_irq */
> + spinlock_t tx_lock;
> + struct net_device netdev;
> + };
Embedded a struct net_device into your ring? How can I put this?
Wrong, wrong. Wrong, wrong, wrong. Wrong.
> + struct ixgbe_queue_stats stats;
> +
> + u32 eims_value;
> + u32 itr_val;
> + u16 itr_range;
> + u16 itr_register;
> +
> + char name[IFNAMSIZ + 5];
The interface name should not be stored by your ring structure
> +#define IXGBE_DESC_UNUSED(R) \
> + ((((R)->next_to_clean > (R)->next_to_use) ? 0 : (R)->count) + \
> + (R)->next_to_clean - (R)->next_to_use - 1)
> +
> +#define IXGBE_RX_DESC_ADV(R, i) \
> + (&(((union ixgbe_adv_rx_desc *)((R).desc))[i]))
> +#define IXGBE_TX_DESC_ADV(R, i) \
> + (&(((union ixgbe_adv_tx_desc *)((R).desc))[i]))
> +#define IXGBE_TX_CTXTDESC_ADV(R, i) \
> + (&(((struct ixgbe_adv_tx_context_desc *)((R).desc))[i]))
> +
> +#define IXGBE_MAX_JUMBO_FRAME_SIZE 16128
> +
> +/* board specific private data structure */
> +struct ixgbe_adapter {
> + struct timer_list watchdog_timer;
> + struct vlan_group *vlgrp;
> + u16 bd_number;
> + u16 rx_buf_len;
> + u32 part_num;
> + u32 link_speed;
> + unsigned long io_base;
Kill io_base and stop setting netdev->base_addr
> + atomic_t irq_sem;
> + struct work_struct reset_task;
> +
> + /* TX */
> + struct ixgbe_ring *tx_ring; /* One per active queue */
> + u64 restart_queue;
> + u64 lsc_int;
> + u32 txd_cmd;
> + u64 hw_tso_ctxt;
> + u64 hw_tso6_ctxt;
> + u32 tx_timeout_count;
> + boolean_t detect_tx_hung;
> +
> + /* RX */
> + struct ixgbe_ring *rx_ring; /* One per active queue */
> + u64 hw_csum_tx_good;
> + u64 hw_csum_rx_error;
> + u64 hw_csum_rx_good;
> + u64 non_eop_descs;
> + int num_tx_queues;
> + int num_rx_queues;
> + struct msix_entry *msix_entries;
> +
> + u64 rx_hdr_split;
> + u32 alloc_rx_page_failed;
> + u32 alloc_rx_buff_failed;
> + struct {
> + unsigned int rx_csum_enabled :1;
> + unsigned int msi_capable :1;
> + unsigned int msi_enabled :1;
> + unsigned int msix_capable :1;
> + unsigned int msix_enabled :1;
> + unsigned int imir_enabled :1;
> + unsigned int in_netpoll :1;
> + } flags;
always avoid bitfields. They generate horrible code, and endian
problems abound (though no endian problems are apparent here).
> + u32 max_frame_size; /* Maximum frame size supported */
> + u32 eitr; /* Interrupt Throttle Rate */
> +
> + /* OS defined structs */
> + struct net_device *netdev;
> + struct pci_dev *pdev;
> + struct net_device_stats net_stats;
> +
> + /* structs defined in ixgbe_hw.h */
> + struct ixgbe_hw hw;
> + u16 msg_enable;
> + struct ixgbe_hw_stats stats;
> + char lsc_name[IFNAMSIZ + 5];
delete lsc_name and use netdev name directly in request_irq()
Will review more after you fix these problems.
next prev parent reply other threads:[~2007-07-02 12:52 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-12 23:44 [ANNOUNCE] new driver ixgbe for Intel(R) 10GbE PCI Express adapters Ayyappan.Veeraiyan
2007-06-12 23:44 ` [PATCH] ixgbe: Introduce new 10GbE driver for Intel 82598 based " Ayyappan Veeraiyan
2007-07-02 12:52 ` Jeff Garzik [this message]
2007-07-02 14:05 ` Arjan van de Ven
2007-07-02 14:25 ` Jeff Garzik
2007-07-02 14:27 ` Arjan van de Ven
2007-07-02 14:41 ` Jeff Garzik
2007-07-02 14:41 ` Arjan van de Ven
2007-07-02 15:26 ` Kok, Auke
2007-07-02 15:32 ` Jeff Garzik
2007-07-02 15:52 ` Andrew Morton
2007-07-02 16:09 ` Jeff Garzik
2007-07-02 15:54 ` Kok, Auke
2007-07-06 8:46 ` Ingo Oeser
2007-07-02 14:31 ` Arjan van de Ven
2007-07-02 19:00 ` Veeraiyan, Ayyappan
2007-07-02 19:04 ` Ayyappan Veeraiyan
2007-07-02 20:16 ` Christoph Hellwig
2007-07-02 21:09 ` Stephen Hemminger
2007-07-02 21:42 ` Christoph Hellwig
2007-07-02 22:02 ` Kok, Auke
2007-07-02 22:08 ` Jeff Garzik
2007-07-02 22:10 ` Michael Buesch
2007-07-02 22:16 ` Jeff Garzik
2007-07-02 23:57 ` Kok, Auke
2007-07-03 0:11 ` Jeff Garzik
2007-07-03 0:16 ` Inaky Perez-Gonzalez
2007-07-03 13:19 ` Jeff Garzik
2007-07-03 18:24 ` Inaky Perez-Gonzalez
2007-07-05 23:29 ` Jeff Garzik
2007-07-03 0:08 ` Veeraiyan, Ayyappan
2007-07-03 22:01 ` Ayyappan Veeraiyan
2007-07-02 22:56 ` Veeraiyan, Ayyappan
2007-07-03 12:53 ` Neil Horman
2007-07-05 12:37 ` Neil Horman
2007-07-09 14:21 ` Veeraiyan, Ayyappan
2007-07-10 0:57 ` Neil Horman
2007-06-13 23:05 ` [ANNOUNCE] new driver ixgbe for Intel(R) 10GbE " Francois Romieu
2007-06-13 23:18 ` Kok, Auke
2007-06-14 0:06 ` Ayyappan Veeraiyan
2007-06-14 20:36 ` Francois Romieu
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=4688F512.3030801@garzik.org \
--to=jeff@garzik.org \
--cc=akpm@linux-foundation.org \
--cc=arjan@linux.intel.com \
--cc=auke-jan.h.kok@intel.com \
--cc=ayyappan.veeraiyan@intel.com \
--cc=netdev@vger.kernel.org \
/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.