Messages in this thread | | | Date | Thu, 27 May 2010 00:00:04 +0100 | From | Alan Cox <> | Subject | Re: [PATCH 2/8] PM: suspend_block: Add driver to access suspend blockers from user-space |
| |
> desired. The device node interface came about after discussions last > year and concerns that userspace could create an unbounded number of > suspend blockers.
Surely you only need one block per task (or better yet one expression of latency per task). If not can you explain why a setup which has a per task expression of latency needs (and a 'hard limit' set which you can't then bump back down except as root) isn't enough ?
I'd really like this lot to also fix the hard real time and power management problem we have today and to try an fix the "suspend is special and different" mentality in the kernel, which is getting less and less true on a variety of chips.
> > It's all an economic system, proprietary app vendors are in it to make > > money, some will therefore game the system and the rest will be forced to > > follow to keep their playing field fair. > > Untrusted (non-system) code can't directly access the device node from > userspace in the Android world -- so directly created suspend blockers
Great - but the world is not Android and even if they can't access it directly but get passed a handle they can play.
> For suspend blockers created by drivers and by trusted userspace > processes, having a meaningful name significantly helps statistics > gathering.
By drivers I agree but in the driver case the cost is minimal because there should not be many and it is bounded clearly. Again I really think 'suspend blocking' is the wrong expression.
A driver needs to express
'Don't go below this latency'
and
'Don't go below this state'
This is more generic and helps our power management do the right thing on all boxes. For example a serial port can meaningfully say 'I want X latency worst case' based upon the fact the fifo is 64 bytes and the user space just asked for 115,200 baud.
The don't go below for states out of which the device must wake but cannot. Eg if your device is being told by user space to set wake on lan and can only wake on lan from a higher state than 'off' it needs to say so.
Alan
| |