From: Marcel Holtmann <marcel@holtmann.org>
To: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
Cc: Henrique de Moraes Holschuh <hmh@hmh.eng.br>,
Johannes Berg <johannes@sipsolutions.net>,
John Linville <linville@tuxdriver.com>,
linux-wireless <linux-wireless@vger.kernel.org>
Subject: Re: [PATCH] rfkill: create useful userspace interface
Date: Thu, 11 Jun 2009 14:01:29 +0200 [thread overview]
Message-ID: <1244721689.27363.15.camel@violet> (raw)
In-Reply-To: <4A2F779F.8070003@tuffmail.co.uk>
Hi Alan,
> >>>> I don't think we should expect userspace to know whether or not a device
> >>>> has a persistent state. Yes, it _could_ maintain whitelists, but why
> >>>> should it have to if the driver already knows?
> >>>>
> >>> If you want that, then the best approach seems an extra sysfs attribute
> >>> for this. It is not intrusive on the event API and lets udev etc. have
> >>> these information, too.
> >>>
> >> I have no problems with either approach. As long as the information of
> >> which devices have restored their initial state from NVS is available to
> >> userspace, it is enough.
> >>
> >
> > just to get the semantic right here. We are not telling userspace if a
> > state has been restored or not. We are telling userspace that this
> > specific RFKILL switch is capable of storing something in a persistent
> > state over boot. There is a difference here.
> >
> > If a RFKILL driver claims it is capable of persistent storage then it
> > better work or it should not claims it. Either it does it all the time
> > or doesn't do it at all. Otherwise we end up in policy again and that is
> > not the job of the kernel.
> >
> >
> >> Do note that this information also needs to be available for resume (state
> >> should be checkpointed to NVS on sleep, and restored from NVS on resume. I
> >> believe tpacpi does this, but if it doesn't, I will fix it eventually).
> >>
> >
> > Correct. That is the job of the driver. If it is broken, that needs
> > fixing.
> >
>
> The core needs fixing too, currently it restores state for all devices
> on resume.
>
> This is my fault again, for coming up with scenarios you probably don't
> care about :-). The problem is that suspend to disk provides a
> possibility that the state will change for _any_ driver. It's more
> obvious with rfkill-input and NVS, if the wireless toggle key is pressed
> when the disk image is being written out. But you can also contrive it
> with no NVS and rfkilld, if rfkilld gets started in the initramfs of the
> resume kernel. We took the easy way out, rather than adding resume
> handlers to all drivers, or trying to work out what the real design
> problem was :-).
>
> I hope that explains the issue. I agree with your logic, I just want to
> be clear that it needs more work on the rfkill core. Drivers with NVS
> should have a resume handler to call rfkill_set_sw_state(), but for this
> to work the core will need to stop restoring their state (for NVS
> drivers only). As a detail, I think this behaviour difference with NVS
> means it should be flagged with a more explicit API, e.g.
> rfkill_init_persistent_sw_state().
I don't see any problem here. If the driver needs extra help from the
RFKILL subsystem to express its states, that is just fine with me.
> rfkill-input would like another (even more intrusive) hack here to set
> the global state on resume. But I for one can live without it for the
> transition. I think NVS state change over suspend is much more of a
> corner case. At least on eeepc-laptop it only seems to happen if the
> user does something relatively odd. And the worst that will happen is
> they have to press the wireless-toggle key a second time before it
> starts working.
So one think is NVS states and the other are the HW switches. For the
NVS ones we need extra support for suspend/resume details, but that is
as mentioned above just fine. Also please keep in mind that NVS states
are per device and not global. If a system wants to treat them as global
that is userspace policy and not our concern from the kernel side.
For the HW states, I think they gonna store its state pretty obvious and
if we need a resume callback to poll its current state, then that seems
logical to me too.
Regards
Marcel
next prev parent reply other threads:[~2009-06-11 12:01 UTC|newest]
Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-28 15:31 [PATCH] rfkill: create useful userspace interface Johannes Berg
2009-05-28 15:44 ` [PATCH v2] " Johannes Berg
2009-05-28 15:47 ` Marcel Holtmann
2009-05-28 15:58 ` [PATCH v3] " Johannes Berg
2009-05-29 8:38 ` [PATCH v4] " Johannes Berg
2009-05-29 10:43 ` Marcel Holtmann
2009-05-31 9:13 ` [PATCH] " Alan Jenkins
2009-05-31 9:58 ` Johannes Berg
2009-05-31 12:36 ` Henrique de Moraes Holschuh
2009-05-31 13:18 ` Alan Jenkins
2009-05-31 19:01 ` Marcel Holtmann
2009-06-01 7:33 ` Johannes Berg
2009-06-01 8:17 ` Alan Jenkins
2009-06-01 12:10 ` Johannes Berg
2009-06-01 13:05 ` Alan Jenkins
2009-06-01 14:47 ` Marcel Holtmann
2009-06-01 14:57 ` Johannes Berg
2009-06-01 16:10 ` Alan Jenkins
2009-06-01 19:44 ` Marcel Holtmann
2009-06-01 22:26 ` Alan Jenkins
2009-06-02 7:38 ` Marcel Holtmann
2009-06-02 8:01 ` Johannes Berg
2009-06-02 8:18 ` Marcel Holtmann
2009-06-03 4:03 ` Henrique de Moraes Holschuh
2009-06-03 5:57 ` Marcel Holtmann
2009-06-03 21:33 ` Henrique de Moraes Holschuh
2009-06-04 4:13 ` Marcel Holtmann
2009-06-07 12:38 ` Alan Jenkins
2009-06-07 12:57 ` Henrique de Moraes Holschuh
2009-06-07 15:28 ` Alan Jenkins
2009-06-07 17:16 ` Johannes Berg
2009-06-07 17:26 ` Alan Jenkins
2009-06-08 10:14 ` [RFC] rfkill: remove set_global_sw_state() Alan Jenkins
2009-06-08 10:32 ` Johannes Berg
2009-06-08 11:10 ` Alan Jenkins
2009-06-08 11:13 ` Johannes Berg
2009-06-08 11:15 ` Alan Jenkins
2009-06-08 11:19 ` [PATCH v2] rfkill: remove set_global_sw_state Alan Jenkins
2009-06-08 11:22 ` Alan Jenkins
2009-06-08 11:24 ` [PATCH v3] " Alan Jenkins
2009-06-08 12:27 ` [PATCH v4] " Alan Jenkins
2009-06-10 1:55 ` Henrique de Moraes Holschuh
2009-06-07 15:46 ` [PATCH] rfkill: create useful userspace interface Marcel Holtmann
2009-06-07 16:04 ` Alan Jenkins
2009-06-07 16:35 ` Marcel Holtmann
2009-06-07 17:16 ` Alan Jenkins
2009-06-07 17:25 ` Johannes Berg
2009-06-10 2:05 ` Henrique de Moraes Holschuh
2009-06-10 7:13 ` Marcel Holtmann
2009-06-10 9:06 ` Alan Jenkins
2009-06-11 12:01 ` Marcel Holtmann [this message]
2009-06-11 12:56 ` Alan Jenkins
2009-06-07 17:04 ` Dan Williams
2009-06-10 2:22 ` Henrique de Moraes Holschuh
2009-06-10 7:16 ` Marcel Holtmann
2009-06-02 8:33 ` Alan Jenkins
2009-06-02 8:41 ` Marcel Holtmann
2009-06-03 4:10 ` Henrique de Moraes Holschuh
2009-06-03 6:01 ` Marcel Holtmann
2009-06-03 21:38 ` Henrique de Moraes Holschuh
2009-06-04 4:20 ` Marcel Holtmann
2009-06-03 13:03 ` Dan Williams
2009-06-03 21:40 ` Henrique de Moraes Holschuh
2009-06-04 4:24 ` Marcel Holtmann
2009-06-07 13:54 ` Henrique de Moraes Holschuh
2009-06-07 15:36 ` Marcel Holtmann
2009-06-10 2:44 ` Henrique de Moraes Holschuh
2009-06-10 7:19 ` Marcel Holtmann
2009-06-01 12:28 ` Henrique de Moraes Holschuh
2009-06-01 12:37 ` Henrique de Moraes Holschuh
2009-06-01 12:38 ` Johannes Berg
2009-06-01 12:45 ` Henrique de Moraes Holschuh
2009-06-01 12:50 ` Johannes Berg
2009-06-01 13:33 ` Henrique de Moraes Holschuh
2009-06-01 14:29 ` Johannes Berg
2009-06-01 15:36 ` Henrique de Moraes Holschuh
2009-06-01 15:37 ` Johannes Berg
2009-06-01 15:50 ` Henrique de Moraes Holschuh
2009-06-01 15:53 ` Johannes Berg
2009-06-01 17:56 ` Henrique de Moraes Holschuh
2009-06-01 19:22 ` Johannes Berg
2009-06-01 12:43 ` Johannes Berg
2009-06-01 12:49 ` Henrique de Moraes Holschuh
2009-06-01 12:53 ` Johannes Berg
2009-05-31 13:51 ` Alan Jenkins
2009-05-31 13:54 ` Johannes Berg
2009-05-31 18:22 ` Alan Jenkins
2009-05-31 19:03 ` Marcel Holtmann
2009-05-31 21:19 ` Dan Williams
2009-06-01 7:18 ` Marcel Holtmann
2009-06-01 7:27 ` Johannes Berg
2009-06-01 7:40 ` Alan Jenkins
2009-06-01 14:41 ` Marcel Holtmann
2009-06-02 8:08 ` [PATCH v5] " Johannes Berg
2009-06-02 8:33 ` Marcel Holtmann
2009-06-02 9:41 ` [PATCH v6] " Johannes Berg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1244721689.27363.15.camel@violet \
--to=marcel@holtmann.org \
--cc=alan-jenkins@tuffmail.co.uk \
--cc=hmh@hmh.eng.br \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.