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

_______________________________________________
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"

Reply via email to