Date: Fri, 13 Mar 2009 16:29:36 +0200 From: Andriy Gapon <avg@freebsd.org> To: freebsd-hackers@freebsd.org Subject: Re: intpm: multiple salves, collision ?? Message-ID: <49BA6DD0.1080407@freebsd.org> In-Reply-To: <49BA5F24.1020105@icyb.net.ua> References: <49BA5F24.1020105@icyb.net.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
on 13/03/2009 15:27 Andriy Gapon said the following: > I observe some quite odd behavior with intpm(4). > I have a program that access two slaves at a high rate (no sleeps or > long calculations). The typical pattern of access is: > 1. SMB_WRITEB slave1 reg1 > 2. SMB_READB slave1 reg2 > 3. SMB_READB *slave2* reg > 4. SMB_READB slave1 reg3 > > There are many iterations of this pattern in a tight loop. > There is definitely only one entity that uses SMBus - no other userland > programs, nothing in kernel, nothing in ACPI and BIOS. > > At random iteration smb ioctl would fail with EIO. This happens > consistently at step 4. Debugging printf in intpm gives this: > intsmb0: error = 8, status = 0x8 > That is, PIIX4_SMBHSTSTAT_BUSC translated to SMB_ECOLLI. > > Error can not be reproduced if only one slave is accessed, no matter in > what patterns. > Sorry for the noise, the problem seems to be in misbehavior on part of one of the slaves used by the original program. I wrote a minimalistic test program and ran it for several different combinations of slaves - the issue only occurs if a certain slave is accessed, no problems for any other slaves. I wonder what could be wrong with that slave. -- Andriy Gapon
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?49BA6DD0.1080407>