mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 0/35] W1: w1 core deadlock and oops fixes, ds2490 updates
@ 2008-03-28 12:23 David Fries
  2008-03-30 11:27 ` Evgeniy Polyakov
  0 siblings, 1 reply; 13+ messages in thread
From: David Fries @ 2008-03-28 12:23 UTC (permalink / raw)
  To: linux-kernel; +Cc: Evgeniy Polyakov

[-- Attachment #1: Type: text/plain, Size: 2453 bytes --]

The Linux one wire system allows talking to little devices, mostly
sensors.  Sensors such as temperature sensors that I want to put
around the house, but first the one wire system and ds2490 USB to one
wire controller driver needs to be stable.  After a kernel panic, I
did most all of the development inside of qemu.  I had an issue with
bulk transfers failing unless I told qemu to disconnect and reconnect
the USB device every time I reloaded, the module, but it worked really
nicely.  What follows is a long list of fixes and enhancements.  I
would like some tester feedback.  I only have the ds2490 USB to one
wire controller and ds18b20 thermometer.

This set of patches fixes bugs in the one wire driver and the ds2490
one wire USB controller.  Some of the bugs will deadlock the one wire
system and print out a message every second reminding you of this.
Others will panic the system.  One will spam with printk in an
infinite loop.  The w1_therm slave device driver would overflow the
userspace buffer, and didn't even work properly with `cat`.

In the name of being nice to the rest of the system, I've eliminated a
thread that was waking up and polling every second, for pretty much
only startup and shutdown events.  The other thread, w1_process, will
now block when there isn't anything to do, and if sleeping it will be
immediately woken for a new search or for preparing to exit.

ds2490 USB to one wire master driver has been improved.  The original
code was observed to take 3.91 seconds for a temperature conversion
and reading with 0.002s user and 3.001s system times.  The system was
very unresponsive, mostly due to some mdelay(750) calls.  Now it is
taking 0.860s elapsed with 0.004s user and 0.004s system time.  That
is pretty good considering that the temperature conversion takes 750ms
(rounded up to 752ms).  Some of the 108ms overload could be reduced by
a shorter reset period, overdrive data transfer speed, and combining
USB operations.  The driver now supports the strong pullup, which is
useful for parasite powered devices.

I was keeping track of my changes in cvs.  I've included the file, cvs
version number and log for that commit that make up the given patch.
The cvs number is just to help me keep everything organized to make
the patches.  The patches are against 2.6.25-rc4.

Signed-off-by: David Fries <david@fries.net>

--
David Fries <david@fries.net>
http://fries.net/~david/ (PGP encryption key available)

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2008-04-14 22:34 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-03-28 12:23 [PATCH 0/35] W1: w1 core deadlock and oops fixes, ds2490 updates David Fries
2008-03-30 11:27 ` Evgeniy Polyakov
2008-04-13 22:56   ` David Fries
2008-04-13 23:14     ` [PATCH 7/33 replaces 7/35] W1: feature, enable hardware strong pullup David Fries
2008-04-13 23:14     ` [PATCH 8/33 replaces 8/35 and 9/35] W1: feature, w1_therm.c use strong pullup and documentation David Fries
2008-04-13 23:14     ` [PATCH 9/33 replaces 10/35] W1: be able to manually add and remove slaves David Fries
2008-04-13 23:15     ` [PATCH 11/33 replaces 12/35] W1: new module parameter search_count David Fries
2008-04-13 23:15     ` [PATCH 12/33 replaces 13/35] W1: Document add, remove, search_count, and pullup David Fries
2008-04-13 23:15     ` [PATCH 13/33 replaces 14/35 and 15/35] W1: w1_slave_read_id multiple short read bug David Fries
2008-04-14 11:40       ` Evgeniy Polyakov
2008-04-14 22:22         ` David Fries
2008-04-13 23:15     ` [PATCH 32/33 replaces 34/35] Documentation/w1/masters/ds2490 update David Fries
2008-04-14 12:30     ` [PATCH 0/35] W1: w1 core deadlock and oops fixes, ds2490 updates Evgeniy Polyakov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome