When I've worked with the w1 interface before (in my Arduino days) I was able to get some extremely high performance out of the 5+ temperature probes I was using compared to the performance I get when I use this kernel module.
First, a command like "cat /sys/bus/w1/devices/28-000001d169fe/w1_slave" takes about 0.8 seconds. I assume this is because the command causes the master to (1) address the probe, (2) tell it to take a sample, and (3) get that sample after the required time has elapsed (750ms IIRC).
When I was using numerous probes, I would do something more like the following:
(1) for each probe, (a) address the probe, (b) tell it to take a temperature sample
(2) wait the required time (depends on the desired precision, I stuck with 750ms)
(3) for each probe, (a) address the probe, (b) ask the temperature
The advantage to this should be pretty clear -- in under a second, I was able to address every single probe and obtain a temperature reading with full precision.
Unless I'm missing something, this kernel module won't support that -- I need to patiently wait for every single temperature probe I have. If I'm not missing anything, any ideas for improving this? I'll be glad to help out with some programming.
Second, the desired precision affects the necessary wait time. At very low precision, a temperature probe could be read extremely quickly (something on the order of 100ms, IIRC). For some applications, this could be very desirable.
Here's a table I copied from http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf
Resolution / Max Conversion Time
9 bits : 93.75 ms
10 bits : 187.5 ms
11 bits : 375 ms
12 bits : 750 ms
With my technique described above and 9 bit precision, you could get a LOT of data from these things.