ich watchdog vs intel smm code

2009-01-19 Thread Andriy Gapon

Some time earlier I reported that ichwd driver doesn't produce any
effect on my system with Intel DG33TL motherboard when watchdog timer is
allowed to expire.
I did some investigation and also discussed the issue with a maintainer
of Linux iTCO_wdt driver, Wim Van Sebroeck. He told me that the issue is
present on most of Intel motherboards with ICH9 chipset.

All evidence seems to point in one direction - Intel SMM code.
It seems that ICH9 always gets configured by BIOS to produce an SMI when
a watchdog timer expires. Also, ICH watchdog has a logic to cause a
reboot if its timer expires twice in a row, this is to avoid a potential
hang in SMI handler.
ICH9 allows SMI to be globally enabled and disabled. BIOS configures it
to be enabled. Sometimes this bit is locked down (by BIOS), so it's not
possible to change it, but sometimes it is not locked.
So, if we globally disable SMI, then the watchdog in ICH9 does indeed
cause a reboot. Evidently this happens after the timer expires twice in row.

My conclusion is that SMI handler installed by BIOS somehow acknowledges
watchdog SMI (e.g. clears a certain status bit, or performs watchdog
timer reload). But it doesn't execute any corrective action.

My guess is there might some configuration (or some other form of
massaging) that needs to be done in order to convince SMM code to
perform a reboot upon watchdog SMI.

It would be nice if we had some Intel insiders who could provide a
glimpse into Intel SMM code logic with respect to the watchdog.

Finally some technical details:

NMI2SMI_EN and TCO_LOCK bits of TCO1_CNT are set 1:
pmbase+0x0068: 0x1200 (TCO1_CNT)

in SMI_EN register TCO_EN bit is 1, GBL_SMI_EN is 1, End of SMI
(EOS) bit is 1 and (not sure if this matters) LEGACY_USB_EN is 1:
pmbase+0x0030: 0x203b (SMI_EN)

No Reboot (NR) bit of GCS register is zero:
0x3410: 0x00c01444


-- 
Andriy Gapon

___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: ich watchdog vs intel smm code

2009-01-19 Thread Pegasus Mc Cleaft


- Original Message - 
From: Andriy Gapon a...@icyb.net.ua

To: freebsd-hackers@freebsd.org; freebsd-a...@freebsd.org
Sent: Monday, January 19, 2009 12:11 PM
Subject: ich watchdog vs intel smm code




Some time earlier I reported that ichwd driver doesn't produce any
effect on my system with Intel DG33TL motherboard when watchdog timer is
allowed to expire.
I did some investigation and also discussed the issue with a maintainer
of Linux iTCO_wdt driver, Wim Van Sebroeck. He told me that the issue is
present on most of Intel motherboards with ICH9 chipset.

All evidence seems to point in one direction - Intel SMM code.
It seems that ICH9 always gets configured by BIOS to produce an SMI when
a watchdog timer expires. Also, ICH watchdog has a logic to cause a
reboot if its timer expires twice in a row, this is to avoid a potential
hang in SMI handler.
ICH9 allows SMI to be globally enabled and disabled. BIOS configures it
to be enabled. Sometimes this bit is locked down (by BIOS), so it's not
possible to change it, but sometimes it is not locked.
So, if we globally disable SMI, then the watchdog in ICH9 does indeed
cause a reboot. Evidently this happens after the timer expires twice in 
row.


My conclusion is that SMI handler installed by BIOS somehow acknowledges
watchdog SMI (e.g. clears a certain status bit, or performs watchdog
timer reload). But it doesn't execute any corrective action.

My guess is there might some configuration (or some other form of
massaging) that needs to be done in order to convince SMM code to
perform a reboot upon watchdog SMI.

It would be nice if we had some Intel insiders who could provide a
glimpse into Intel SMM code logic with respect to the watchdog.

Finally some technical details:

NMI2SMI_EN and TCO_LOCK bits of TCO1_CNT are set 1:
pmbase+0x0068: 0x1200 (TCO1_CNT)

in SMI_EN register TCO_EN bit is 1, GBL_SMI_EN is 1, End of SMI
(EOS) bit is 1 and (not sure if this matters) LEGACY_USB_EN is 1:
pmbase+0x0030: 0x203b (SMI_EN)

No Reboot (NR) bit of GCS register is zero:
0x3410: 0x00c01444


   I have a simmilar problem on my gigabyte motherboard (one of the X48 
ones), however, I believe the fault to be in hardware and not in firmware or 
software..


   Mentioned in the datasheet for the ICH9, the speaker pin is used as a 
configuration pin while reset it asserted. If a logic 1 is present on this 
pin when reset is deasserted, the ICH9 chip locks out the ability for 
software to enable the watchdog. With the ichwd driver for BSD, this 
condition is announced with a message like Watchdog present, but disabled 
in BIOS.  (Well.. something close to that)


~Peg 


___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: ich watchdog vs intel smm code

2009-01-19 Thread Andriy Gapon
on 19/01/2009 14:27 Pegasus Mc Cleaft said the following:
 
 - Original Message - From: Andriy Gapon a...@icyb.net.ua
[snip]
 So, if we globally disable SMI, then the watchdog in ICH9 does indeed
 cause a reboot. Evidently this happens after the timer expires twice
 in row.
[snip]
Mentioned in the datasheet for the ICH9, the speaker pin is used as a
 configuration pin while reset it asserted. If a logic 1 is present on
 this pin when reset is deasserted, the ICH9 chip locks out the ability
 for software to enable the watchdog. With the ichwd driver for BSD, this
 condition is announced with a message like Watchdog present, but
 disabled in BIOS.  (Well.. something close to that)

ICH WDT present but disabled in BIOS or hardware

I believe your issue is quite a different one, it is older and known and
 explicitly reported by the driver.
In this case the watchdog does work and does seem to generate SMI.

-- 
Andriy Gapon
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: panic: Going nowhere without my init!

2009-01-19 Thread Ed Schouten
* Garrett Cooper yanef...@gmail.com wrote:
 I still don't understand why adding a [C, etc] `comment' would cause
 these problems.

I guess if you break getpid() to not return 1 in the case of init(8), it
will just say init: already running and quit. This causes this panic
to occur.

-- 
 Ed Schouten e...@80386.nl
 WWW: http://80386.nl/


pgpgNsKwUqyHe.pgp
Description: PGP signature


Wi-Fi support - which iface works better?

2009-01-19 Thread igor krasnoselski
Hi world,

I'm up to build a little Wi-Fi network at my home. So I need to know, what 
Wi-Fi NIC is working better under FreeBSD 7.1, from the next little list:
ZyXEL G-302 EE
D-link DWA-510
ASUS WL-138g V2
TRENDnet TEW-423PI
P.S. Digging the 7.1 Hardware Notes on the Web gave me no information about 
that cards. Please note me if they are supported at all.

WBR, Igor Krasnoselski

___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: Wi-Fi support - which iface works better?

2009-01-19 Thread Ashish SHUKLA
igor krasnoselski writes:
 Hi world,

 I'm up to build a little Wi-Fi network at my home. So I need to know, what 
 Wi-Fi NIC is working better under FreeBSD 7.1, from the next little list:
 ZyXEL G-302 EE
 D-link DWA-510
 ASUS WL-138g V2
 TRENDnet TEW-423PI
 P.S. Digging the 7.1 Hardware Notes on the Web gave me no
 information about that cards. Please note me if they are supported at
 all.

It depends on the wifi chipset present in those NICs. I prefer Atheros,
as it is well supported (at least in 8-CURRENT) and has complete FOSS
drivers :). So I think you should find which NIC has which chipset.

HTH
-- 
Ashish SHUKLA


pgpZ7JnWPwE4q.pgp
Description: PGP signature


Re: Wi-Fi support - which iface works better?

2009-01-19 Thread Yuri

igor krasnoselski wrote:

I'm up to build a little Wi-Fi network at my home. So I need to know, what 
Wi-Fi NIC is working better under FreeBSD 7.1, from the next little list:
ZyXEL G-302 EE
D-link DWA-510
ASUS WL-138g V2
TRENDnet TEW-423PI
P.S. Digging the 7.1 Hardware Notes on the Web gave me no information about 
that cards. Please note me if they are supported at all.

WBR, Igor Krasnoselski
  


This depends on the card chipset. It's sometimes hard to tell by the 
card model and I don't

know which chipsets these cards have.

I used two cards with chipsets: Atheros 5212 (ath) and Ralink Technology 
RT2561S (ral).
Both of them don't work in a stable way under 71-PRERELEASE and in a 
very similar way.


Connections get broken, link goes down sporadically. 'up scan' hangs, 
pings often don't go
through after link is established, 'airdump' command stops working after 
a while on both

of them.

Based on these experiences i came to a conclusion that WiFi support 
isn't stable yet in FreeBSD.


Yuri

___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: panic: Going nowhere without my init!

2009-01-19 Thread Dag-Erling Smørgrav
Ed Schouten e...@80386.nl writes:
 I guess if you break getpid() to not return 1 in the case of init(8), it
 will just say init: already running and quit. This causes this panic
 to occur.

Who knows?  We have no idea what the OP actually did, because he didn't
bother to tell us.

DES
-- 
Dag-Erling Smørgrav - d...@des.no
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: threaded, forked, rethreaded processes will deadlock

2009-01-19 Thread Brian Fundakowski Feldman
On Fri, Jan 16, 2009 at 02:36:06PM -0800, Jason Evans wrote:
 Brian Fundakowski Feldman wrote:
   Could you, and anyone else who would care to, check this out?  It's a 
 regression
 fix but it also makes the code a little bit clearer.  Thanks!
 
 Index: lib/libc/stdlib/malloc.c
 
 Why does malloc need to change for this?  Unless there's a really good 
 reason, I don't want the extra branches in the locking functions.

Because malloc is the thing causing the regression.  It is easy enough
to optimize out the one extra fetch and branch in the single-threaded case
if I can get some consensus that the fix to it is actually fine.

-- 
Brian Fundakowski Feldman   \'[ FreeBSD ]''\
   gr...@freebsd.org   \  The Power to Serve! \
 Opinions expressed are my own.   \,,\
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: panic: Going nowhere without my init!

2009-01-19 Thread Kamlesh Patel
Hi All,

Sorry for late reply, i was out of work for a week.
I made wrong comment in Getpid():

Getpid() {

/* ..

/* ... */

 */

return()
}

I removed it and now it is working fine.

Thanks


--- On Mon, 1/19/09, Dag-Erling Smørgrav d...@des.no wrote:
From: Dag-Erling Smørgrav d...@des.no
Subject: Re: panic: Going nowhere without my init!
To: Ed Schouten e...@80386.nl
Cc: Garrett Cooper yanef...@gmail.com, shilp.ka...@yahoo.com, FreeBSD 
Hackers freebsd-hackers@freebsd.org
Date: Monday, January 19, 2009, 3:13 PM

Ed Schouten e...@80386.nl writes:
 I guess if you break getpid() to not return 1 in the case of init(8), it
 will just say init: already running and quit. This causes this
panic
 to occur.

Who knows?  We have no idea what the OP actually did, because he didn't
bother to tell us.

DES
-- 
Dag-Erling Smørgrav - d...@des.no
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to
freebsd-hackers-unsubscr...@freebsd.org




___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org