From: Jesper Krogh <jesper@krogh.cc>
To: David Miller <davem@davemloft.net>
Cc: jdb@comx.dk, netdev@vger.kernel.org
Subject: Re: NIU driver: Sun x8 Express Quad Gigabit Ethernet Adapter
Date: Wed, 12 Nov 2008 18:56:48 +0100 [thread overview]
Message-ID: <491B18E0.7040502@krogh.cc> (raw)
In-Reply-To: <20081112.041143.11487260.davem@davemloft.net>
David Miller wrote:
> I am guessing you're running a 32-bit x86 kernel.
>
> In such a case the driver has to define a local readq()
> and writeq() implementation.
>
> What I provide for NIU right now reads the upper 32-bits
> then the lower 32-bits of the register.
>
> Guess what that does? The packet counters live in the upper
> 32-bits and the MARK bits live in the lower 32-bits of the
> TX_CS register.
>
> So it first reads the packet counters, and as a side effect that
> clears the MARK bits in the TX_CS register. So when we read the lower
> 32-bits the MARK bits are always seen as zero.
>
> BzzaaarT!
>
> So the following patch should fix this bug. writeq() should
> be OK as-is, so doesn't need a similar change.
>
> diff --git a/drivers/net/niu.c b/drivers/net/niu.c
> index 9acb5d7..d8463b1 100644
> --- a/drivers/net/niu.c
> +++ b/drivers/net/niu.c
> @@ -51,8 +51,7 @@ MODULE_VERSION(DRV_MODULE_VERSION);
> #ifndef readq
> static u64 readq(void __iomem *reg)
> {
> - return (((u64)readl(reg + 0x4UL) << 32) |
> - (u64)readl(reg));
> + return ((u64) readl(reg)) | (((u64) readl(reg + 4UL)) << 32);
> }
>
> static void writeq(u64 val, void __iomem *reg)
On my system, I'm not in a position where I can just pull down the
server and test, but if the above seems plausible that it is the same
bug I hit using the 10GBitE card, then I'll definately try to test it out.
I sort-of reliably hit the problem after a few day of production on a 16
core, amd64 system running NFS-server.
Does it seem likely to be the same problem?
Thanks
--
Jesper Krogh
next prev parent reply other threads:[~2008-11-12 17:56 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-04 14:45 NIU driver: Sun x8 Express Quad Gigabit Ethernet Adapter Jesper Dangaard Brouer
2008-11-04 21:42 ` David Miller
2008-11-05 7:05 ` Jesper Dangaard Brouer
2008-11-05 7:33 ` David Miller
2008-11-05 9:30 ` Jesper Dangaard Brouer
2008-11-05 9:34 ` David Miller
2008-11-11 19:19 ` Jesper Krogh
2008-11-11 23:50 ` David Miller
2008-11-12 0:18 ` David Miller
2008-11-12 9:36 ` Jesper Dangaard Brouer
2008-11-12 9:49 ` David Miller
2008-11-12 10:04 ` Jesper Dangaard Brouer
2008-11-12 11:01 ` Jesper Dangaard Brouer
2008-11-12 11:52 ` David Miller
2008-11-12 12:11 ` David Miller
2008-11-12 12:49 ` Jesper Dangaard Brouer
2008-11-13 8:50 ` Jesper Dangaard Brouer
2008-11-13 22:08 ` David Miller
2008-11-14 12:38 ` NIU driver: Sun x8 Express Quad Gigabit Ethernet Adapter (rmmod BUG) Jesper Dangaard Brouer
2008-11-14 18:49 ` Jesper Dangaard Brouer
2008-11-15 0:21 ` David Miller
2008-11-19 12:10 ` Jesper Dangaard Brouer
2008-11-12 12:54 ` NIU driver: Sun x8 Express Quad Gigabit Ethernet Adapter Ben Hutchings
2008-11-12 13:21 ` Jesper Dangaard Brouer
2008-11-12 21:46 ` David Miller
2008-11-12 21:50 ` Ben Hutchings
2008-11-12 22:26 ` David Miller
2008-11-12 22:58 ` Roland Dreier
2008-11-12 17:56 ` Jesper Krogh [this message]
2008-11-12 21:43 ` David Miller
2008-11-12 21:31 ` Jesper Dangaard Brouer
2008-11-12 23:10 ` Matheos Worku
2008-11-13 9:10 ` Jesper Dangaard Brouer
2008-11-13 22:19 ` David Miller
2008-11-13 10:29 ` Jesper Dangaard Brouer
2008-11-13 22:15 ` David Miller
2008-11-19 22:58 ` NIU driver: Sun x8 Express Quad Gigabit Ethernet Adapter (perf + regression IRQs) Jesper Dangaard Brouer
2008-11-19 23:11 ` David Miller
2008-11-20 19:48 ` Regression: Bisected, IRQ and MSI allocations screwed without sparse irq Jesper Dangaard Brouer
2008-11-21 0:34 ` Thomas Gleixner
2008-11-21 10:33 ` Jesper Dangaard Brouer
2008-11-21 16:40 ` Thomas Gleixner
2008-11-21 19:35 ` Jesper Dangaard Brouer
2008-11-21 21:11 ` Thomas Gleixner
2008-11-21 23:06 ` David Miller
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=491B18E0.7040502@krogh.cc \
--to=jesper@krogh.cc \
--cc=davem@davemloft.net \
--cc=jdb@comx.dk \
--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.