Shem Multinymous wrote: > Hi Tejun, > > On Thu, Sep 11, 2008 at 12:34 PM, Tejun Heo <tj@xxxxxxxxxx> wrote: > >> Hello, Shem Multinymous. >> >>> Using the input device interface for the accelerometer (as done by >>> tp_smapi's hdaps + latest hdapsd) greatly reduces the number of >>> accelerometer-related timer interrupts on tickless kernels, as >>> measured by powertop. With syscall polling you have the kernal polling >>> the hardware at ~50Hz and then the userspace hdapsd polling the kernel >>> at ~50Hz. When they're out of phase so you can get up to 100 >>> interrupts/sec. With an input device you're always at 50Hz. The phase >>> difference also induces a small extra delay in the shock handling >>> response. >>> >> That reduction comes because input device supports poll and >> sysfs_notify_event() does about the same thing. The uesrland daemon >> can just poll on a node and read data nodes when poll event on the >> node triggeres. >> > > Agreed. > There's another issue with the current sysfs interface, though: hdapsd > needs to read (x,y,timestamp) tuples, whereas sysfs provides just x > and y in separate attributes which cannot be read atomically together. > We can add a sysfs file with "x y timestamp" readouts, though this is > unusual for sysfs (and certainly incompatible with hwmon). > Assuming timestamp is always updated when the x,y values change, you can do: do { ts = read_timestamp(); x = read_x(); y = read_y(); ts2 = read_timestamp(); } while(ts != ts2); J -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html