Re: [PATCH] eeprom: at24: Add support for large EEPROMs connected to SMBus adapters

From: Guenter Roeck
Date: Fri Mar 27 2015 - 09:14:36 EST


On 03/27/2015 06:01 AM, Wolfram Sang wrote:
On Fri, Mar 27, 2015 at 05:51:11AM -0700, Guenter Roeck wrote:
On 03/27/2015 01:09 AM, Wolfram Sang wrote:

just to give you an update: I do have some code, but it is a bit messy,
and it doesn't work well for ds2482 (the chip behind it still hangs up
if I access it in parallel through i2c-dev). On top of that, it causes
pretty significant slow-downs when accessing other devices on the same
bus at the same time. Not surprising, I guess, since it expands the scope
of the bus lock significantly.

Just to get a better idea: Did you try taking the adapter_lock before
the two SMBus command which needed to be concatenated (and use
smbus_xfer directly)?

I did. I didn't use smbus_xfer directly, though, but introduced lockless
versions of the various smbus commands, and kept using those.

And then the chip still hangs? Or was that the performance penalty here?

Parallel access to a second eeprom chip on the same bus was much slower
than before.

Also, the new code did not solve the problem for ds2482 (completely unrelated
to the at24 driver of course). Even with proper locking, the chip ended up
hanging after some parallel accesses through i2c-dev. Granted, ds2482 is
a difficult beast, but it is still annoying how access through i2c-dev
can mess it up.

The latter is what bothered me more: What is the point of all this if we
still can not ensure correct operation ?

Guenter

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/