Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 13 Mar 2009 15:27:00 +0200
From:      Andriy Gapon <avg@icyb.net.ua>
To:        freebsd-hackers@freebsd.org
Subject:   intpm: multiple salves, collision ??
Message-ID:  <49BA5F24.1020105@icyb.net.ua>

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

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.

-- 
Andriy Gapon




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