On 11/20/2012 02:00 PM, Aaron Lu wrote: > On 11/19/2012 10:56 PM, Tejun Heo wrote: >> I really think we need a way for (auto)pm and event polling to talk to >> each other so that autopm can tell event poll to sod off while pm is >> in effect. Trying to solve this from inside libata doesn't seem >> right. The problem, again, seems to be figuring out which hardware >> device maps to which block device. Hmmm... Any good ideas? > > A possible way of doing this is using pm qos. > > We currently have 2 pm qos flags, NO_POWER_OFF and REMOTE_WAKEUP, and we > can add another one: NO_POLL, use it like the following: > 1 Set the NO_POLL pm qos flag when the underlying driver thinks it is no > longer necessary. In the ZPODD's case, it should be set when the > device is to be powered off; > 2 Clear it when poll is necessary again. In the ZPODD's case, when power > is re-gained, this flag will be cleared.
> 3 In the disk_events_workfn, check if this flag is set, if so, simply > return. It should be, skip calling disk->fops->check_events, but still queue the work for next time's poll. -Aaron > > The disk->driverfs_dev can be used to host the pm qos flag, ATA layer > can access it through ata_device->sdev->sdev_gendev. > > Is this OK? > > Thanks, > Aaron > -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html