Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 26 Jul 2015 19:40:39 +0900
From:      Yonghyeon PYUN <pyunyh@gmail.com>
To:        Alnis Morics <alnis.morics@gmail.com>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: msk msk0 watchdog timeout freeze hang lock stop problem
Message-ID:  <20150726104039.GA1034@michelle.fasterthan.com>
In-Reply-To: <55B36E1A.3040806@gmail.com>
References:  <20150413081348.GA965@michelle.fasterthan.com> <A861E9C3B0586445B36C4BB29ABF2DB46B2ECE3A@XCH7.wrexham.local> <55B36E1A.3040806@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--1yeeQ81UyVL57Vl7
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Sat, Jul 25, 2015 at 02:08:10PM +0300, Alnis Morics wrote:

> Just tried 10.2-RC1 amd64 GENERIC, and the problem seems to be gone. I 
> was even able to scp a 500 MB file. Could it be related to this fix in 
> BETA2, as mentioned in the announcement, "The watchdog(4) device has 
> been fixed to print to the correct buffer."?
> 

msk(4) will show watchdog timeouts when it detects driver TX path
is in stuck condition but I believe this has nothing to do with
watchdog(4).

There was no msk(4) code change in 10.2-RC1.  If you happen to see
the watchdog timeouts again, please try attached patch and let me
know whether it makes any difference for you.  I didn't get much
feedbacks on the patch so I'm not sure whether it really fixes the
root cause.

> pciconf -lv
> [..]
> mskc0@pci0:9:0:0:    class=0x020000 card=0xc072144d chip=0x435411ab 
> rev=0x00 hdr=0x00
>     vendor     = 'Marvell Technology Group Ltd.'
>     device     = '88E8040 PCI-E Fast Ethernet Controller'
>     class      = network
>     subclass   = ethernet
> 
> 

--1yeeQ81UyVL57Vl7
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment; filename="msk.align.diff"

Index: sys/dev/msk/if_mskreg.h
===================================================================
--- sys/dev/msk/if_mskreg.h	(revision 281587)
+++ sys/dev/msk/if_mskreg.h	(working copy)
@@ -2175,13 +2175,8 @@
 #define MSK_ADDR_LO(x)	((uint64_t) (x) & 0xffffffffUL)
 #define MSK_ADDR_HI(x)	((uint64_t) (x) >> 32)
 
-/*
- * At first I guessed 8 bytes, the size of a single descriptor, would be
- * required alignment constraints. But, it seems that Yukon II have 4096
- * bytes boundary alignment constraints.
- */
-#define MSK_RING_ALIGN	4096
-#define	MSK_STAT_ALIGN	4096
+#define	MSK_RING_ALIGN	32768
+#define	MSK_STAT_ALIGN	32768
 
 /* Rx descriptor data structure */
 struct msk_rx_desc {

--1yeeQ81UyVL57Vl7--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150726104039.GA1034>