Re: i8k: non-standard fan control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 09/19/2012 05:49 AM, Jean Delvare wrote:
> Hi Matthew,
> 
> On Wed, 19 Sep 2012 00:04:25 -0600, Matthew Monaco wrote:
>> I am interested in extending the i8k module's hwmon support. This module (among
>> other things) allows the status of Dell laptop fans to be controlled. The fan
>> speed is controlled via an integer from 0 (off) to 2 (fast).
> 
> You can change the desired speed of the fans, not their status.
> 
>> Is there any way to support these semantics through hwmon? I easily added a
>> fanN_status sysfs entry through hwmon that does the right thing. However the
>> _status doesn't follow all other naming conventions that I can find.
> 
> The standard fan speed control interface is through the pwm* sysfs
> attributes. However this interface wasn't designed for discrete speed
> values like the i8k driver offers, so while you can map the 3 discrete
> values to arbitrary PWM duty cycles (0%, 50% and 100%) it's somewhat
> confusing.
> 
> Still, I tried to add support for this over a year ago already:
> 
> Subject:  [PATCH 2/2] Add hwmon-style fan speed control
> http://marc.info/?l=lm-sensors&m=130270896704113&w=2
> 
> But I did not receive any feedback so it didn't go upstream. Note that
> my limited experience with Dell laptops suggests that at least some
> models don't behave like the driver claims, changing the fan speed
> setting in the user's back. That's another reason why the patch didn't
> go upstream. The problem also exists with the current driver but my
> patch would make it even more visible, as the pwm* interface is
> standardized.
> 
> Feel tree to play with my patch, but I'm not sure we really want to
> push it upstream.
> 

Yes, my hardware (Vostro 3400) will adjust my fan speed on it's own, but the
i8kmon daemon just sets it back in its next polling period. Is this a
deal-breaker for lm_sensors? The tcl-based i8kmon daemon uses way more resources
than I think is reasonable, it's typically in the top 2 or 3 processes on my
machine for CPU time; the mem usage also seems a little high.

I started writing something more efficient for my own use and noticed it was
quite a bit more efficient to read /proc/i8k and parse the temperature, for
example, than issue an ioctl. Let alone ioctls for all of the values. I wonder
if adding entries for each setting under /sys/modules/i8k would be accepted.

Your mapping make sense to me. Except I'm not sure why you have 128 as
I8K_FAN_LOW in the getter and 192 in the setter. (Also, write perms for
user(/group) would be nice for the attribute).

_______________________________________________
lm-sensors mailing list
lm-sensors@xxxxxxxxxxxxxx
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors


[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux