Re: [E1000-devel] [ixgbe] In RSS, I'd like to know algorithm that select rx packet descriptor queue.

2009-06-29 Thread 배영부
Thank you for your reply.

But, I already read it.
According to MSDN, If packets that have the same source and destination 
ip address are coming, then its processing CPU index or number should be 
the same. but, at least in Linux, It's not.
I mean current CPU (return value of smp_processor()) is not the same. 
(in fact, I'm not concern CPU number)
But there are some rules.
I've traced ixgbe device driver source code (version 1.3.64).
and I got a result like below.(I already said in my previous posting.)

If indirection table entry value have 1, then rx queue number 6,2 are 
always selected.
if it is 2, then 5 and 1. and so on.
I means every one of indirection table entry value is matched two of rx 
queue index.

at this time, It's better to say about my brief testing environment.

NIC : one of 82598EB AF 10G
CPU : two of Quad-Core Xeon (It means 8 cpu cores, 8 rx queues and 8 tx 
queue by MSI-X)
device driver : ixgbe version 1.3.56.17 (Yes, I know current version is 
2.0.x.x) without DCA and LRO, with MSI-X
OS : Linux kernel version 2.6.28-11 (Ubuntu server)

Focus of my testing is if RSS is work properly in Linux (If I have right 
understanding about RSS),
then every indirection table entry - as you already know, its index 
number is computed by RSS hash function -
should select just one of rx queue.
(I'm afraid that you are getting me wrong because of my poor English.)
If I can, there is a way, then I'd like to change it like this :
one to one mapping between indirection table entry value and rx qeueu index.
I mean if source and destination IP address is the same, posting rx 
queue have to be fixed.

Thank you.

Best regards.

Brandeburg, Jesse 쓴 글:
> http://msdn.microsoft.com/en-us/library/ms795616.aspx
>
> -Original Message-
> From: 배영부 [mailto:r...@piolink.com] 
> Sent: Monday, June 29, 2009 7:28 PM
> To: e1000-devel@lists.sourceforge.net
> Subject: [E1000-devel] [ixgbe] In RSS, I'd like to know algorithm that select 
> rx packet descriptor queue.
>
> Hi there,
>
> According to Intel 82598EB datasheet,
> "RSS is a mechanism to post each received packet into one of several 
> descriptor queues."
> but there isn't any description about algorithm to select descriptor queue.
> I'm inspecting about it. But, I can't find what is it, even digging into 
> ixgbe device driver code.
> Could anybody help me?
> If there are someone who know about it, please let me know.
> Thank you in advance.
>
> Best regards.
>
> P.S. sorry for my poor English again.
>
> --
> ___
> E1000-devel mailing list
> E1000-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/e1000-devel
>   

--
___
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel


Re: [E1000-devel] [ixgbe] In RSS, I'd like to know algorithm that select rx packet descriptor queue.

2009-06-29 Thread Brandeburg, Jesse
http://msdn.microsoft.com/en-us/library/ms795616.aspx

-Original Message-
From: 배영부 [mailto:r...@piolink.com] 
Sent: Monday, June 29, 2009 7:28 PM
To: e1000-devel@lists.sourceforge.net
Subject: [E1000-devel] [ixgbe] In RSS, I'd like to know algorithm that select 
rx packet descriptor queue.

Hi there,

According to Intel 82598EB datasheet,
"RSS is a mechanism to post each received packet into one of several 
descriptor queues."
but there isn't any description about algorithm to select descriptor queue.
I'm inspecting about it. But, I can't find what is it, even digging into 
ixgbe device driver code.
Could anybody help me?
If there are someone who know about it, please let me know.
Thank you in advance.

Best regards.

P.S. sorry for my poor English again.

--
___
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
--
___
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel


[E1000-devel] [ixgbe] In RSS, I'd like to know algorithm that select rx packet descriptor queue.

2009-06-29 Thread 배영부
Hi there,

According to Intel 82598EB datasheet,
"RSS is a mechanism to post each received packet into one of several 
descriptor queues."
but there isn't any description about algorithm to select descriptor queue.
I'm inspecting about it. But, I can't find what is it, even digging into 
ixgbe device driver code.
Could anybody help me?
If there are someone who know about it, please let me know.
Thank you in advance.

Best regards.

P.S. sorry for my poor English again.

--
___
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel


Re: [E1000-devel] [Bugme-new] [Bug 13568] New: Intel e1000 4-port NIC - unable to communicate, slowly blinking

2009-06-29 Thread Brandeburg, Jesse
On Mon, 29 Jun 2009, Andrew Morton wrote:
> (switched to email.  Please respond via emailed reply-to-all, not via the
> bugzilla web interface).
> 
> On Thu, 18 Jun 2009 13:45:38 GMT
> bugzilla-dae...@bugzilla.kernel.org wrote:
> 
> > http://bugzilla.kernel.org/show_bug.cgi?id=13568
> > 
> >Summary: Intel e1000 4-port NIC - unable to communicate, slowly
> > blinking
> >Product: Drivers
> >Version: 2.5
> > Kernel Version: 2.6.30
> >   Platform: All
> > OS/Version: Linux
> >   Tree: Mainline
> > Status: NEW
> >   Severity: high
> >   Priority: P1
> >  Component: Network
> > AssignedTo: drivers_netw...@kernel-bugs.osdl.org
> > ReportedBy: tuhar...@misbb.sk
> > Regression: No
> > 
> > 
> > Hallo,
> > 
> > I have here Tyan GT20 (B2865G20S4H) barebone server with onboard GbE NICs
> > (Broadcom BCM5721 and Marvell 88E-CAA PHY).
> > 
> > I have installed PCI-E Intel__ PRO/1000 PT Quad Port Server Adapter
> > (EXPI9404PTBLK) to gain 6 ports altogether. This is the card:
> > 
> > http://www.intel.com/products/server/adapters/pro1000pt-quadport/pro1000pt-quadport-overview.htm
> > 
> > Now, with Debian 5.0 Lenny (distributional kernel 2.6.26), only the onboard
> > cards are functional. The Intel is also recognised by the kernel, is 
> > assigned
> > ports (eth2-5), however none of them works when connected to network. The 
> > NIC
> > is aware of plugging or un-plugging the cable (displays message on console),

that part is a good sign, probably indicating interrupts are working.

> > however no communication is ever performed, and the connected port just 
> > lazily
> > blinks.
> > 
> > After some rochades hard to reproduce (plugging, unplugging, configuring
> > interfaces, resetting etc), it even worked for few seconds, and then died 
> > out
> > again forever.
> > 
> > I have also compiled fresh 2.6.30 kernel, no advance however. Interesting, 
> > that
> > ifconfig always revails huge number of errors for the port.

errors even before traffic?

looking at the ifconfig output in the bug shows lots of rx_errors, 
indicating the counter went negative,

I wonder if you're having some kind of power issue.

can you do lspci -vvv after ifconfig shows errors?  also do 
ethtool -S eth2

do you get the arp/ping requests at the remote end? tcpdump on your remote 
and see if you get the packets.

you might want to (for debugging) try booting with pci=nomsi kernel option 
to disable MSI and see if that is related.

does tcpdump -i eth2 show any packets coming in?

there is a tool at e1000.sourceforge.net called ethregs that you can 
download/build and run, I would appreciate the output of that as well 
(probably gzipped)

Jesse

--
___
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel


Re: [E1000-devel] [Bugme-new] [Bug 13568] New: Intel e1000 4-port NIC - unable to communicate, slowly blinking

2009-06-29 Thread Andrew Morton

(switched to email.  Please respond via emailed reply-to-all, not via the
bugzilla web interface).

On Thu, 18 Jun 2009 13:45:38 GMT
bugzilla-dae...@bugzilla.kernel.org wrote:

> http://bugzilla.kernel.org/show_bug.cgi?id=13568
> 
>Summary: Intel e1000 4-port NIC - unable to communicate, slowly
> blinking
>Product: Drivers
>Version: 2.5
> Kernel Version: 2.6.30
>   Platform: All
> OS/Version: Linux
>   Tree: Mainline
> Status: NEW
>   Severity: high
>   Priority: P1
>  Component: Network
> AssignedTo: drivers_netw...@kernel-bugs.osdl.org
> ReportedBy: tuhar...@misbb.sk
> Regression: No
> 
> 
> Hallo,
> 
> I have here Tyan GT20 (B2865G20S4H) barebone server with onboard GbE NICs
> (Broadcom BCM5721 and Marvell 88E-CAA PHY).
> 
> I have installed PCI-E Intel__ PRO/1000 PT Quad Port Server Adapter
> (EXPI9404PTBLK) to gain 6 ports altogether. This is the card:
> 
> http://www.intel.com/products/server/adapters/pro1000pt-quadport/pro1000pt-quadport-overview.htm
> 
> Now, with Debian 5.0 Lenny (distributional kernel 2.6.26), only the onboard
> cards are functional. The Intel is also recognised by the kernel, is assigned
> ports (eth2-5), however none of them works when connected to network. The NIC
> is aware of plugging or un-plugging the cable (displays message on console),
> however no communication is ever performed, and the connected port just lazily
> blinks.
> 
> After some rochades hard to reproduce (plugging, unplugging, configuring
> interfaces, resetting etc), it even worked for few seconds, and then died out
> again forever.
> 
> I have also compiled fresh 2.6.30 kernel, no advance however. Interesting, 
> that
> ifconfig always revails huge number of errors for the port.
> 


--
___
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel


[E1000-devel] [ixgbe] Receive Side Scaling and IRQ

2009-06-29 Thread 배영부
Hi there.

I'm evaluating RSS(Receive-Side Scaling) feature of Intel 82598EB NIC.
I'm evaluating it with two of Quad core Xeon CPUs - as a result, there 
are 4 cpu cores - and ixgbe device driver
version 1.3.56. (Yes, I know that there is newest version 2.0.34.3.)

If you know about RSS, then you maybe know that there are redirection 
table is having 128 entries.
each entry stores RSS output index. If there are 8 CPU cores, then the 
value will be one of from 0 to 7.
and If system can use MSI-X, then rx interrupt vector also will be 8.
In this condition, I have done some test. and I got a result.
Every IRQ interrupt is matched two of redirection table entry values 
like below.
index of the entry is not important.

irq 1 match entry value 7,3
irq 2 match entry value 6,2
irq 3 match entry value 5,1
irq 4 match entry value 4,0
irq 5 match entry value 7,3
irq 6 match entry value 6,2
irq 7 match entry value 5,1
irq 8 match entry value 4,0

It seems like a rule. but I can't find any code about that.
Anyway, I want to change this rule to this.
irq 1 match entry value 0
irq 2 match entry value 1
...
irq 8 match entry value 7

I mean I want to make rule that every irq interrupt have to match just 
one entry value.
could you understand me? Is it possible?
If there is just one of reference code, then please let me know.
Thank you in advance.

Best regards.

P.S. Sorry for my poor English.
If you can't understand because of my poor English, then let me know.
I'll fix them more accurately and send send again.

--
___
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel