Thread (2 messages) 2 messages, 2 authors, 2016-10-06

Re: [PATCH v9 17/19] drm/virtio: kconfig: Fix recursive dependency issue.

From: Emil Velikov <hidden>
Date: 2016-10-06 10:10:17

Hi Bjorn,

On 27 September 2016 at 18:01, Bjorn Andersson
[off-list ref] wrote:
On Wed 21 Sep 05:09 PDT 2016, Emil Velikov wrote:
quoted
On 20 September 2016 at 09:32, Peter Griffin [off-list ref] wrote:
quoted
Hi Emil,

On Tue, 20 Sep 2016, Emil Velikov wrote:
quoted
On 5 September 2016 at 14:16, Peter Griffin [off-list ref] wrote:
quoted
ST_SLIM_REMOTEPROC must select REMOTEPROC, which exposes the following
recursive dependency.
quoted
quoted
From a humble skim through remoteproc, drm and a few other subsystems
I think the above is wrong. All the drivers (outside of remoteproc),
that I've seen, depend on the core component, they don't select it.
I will let Bjorn comment on the remoteproc subsystem Kconfig design, and
why it is like it is.

For this particular SLIM_RPROC I have added it to Kconfig in keeping with all
the other drivers in the remoteproc subsystem which has exposed this recursive
dependency issue.

For this particular kconfig symbol a quick grep reveals more drivers in
the kernel using 'select', than 'depend on'

git grep "select VIRTIO" | wc -l
14

git grep "depends on VIRTIO" | wc -l
10
Might be worth taking a closer look into these at some point.
The general idea here is that VIRTIO provides the "framework" and as
such drivers implementing VIRTIO do select and drivers using virtio use
depends.

This is found in several places around the kernel.
quoted
quoted
quoted
Furthermore most places explicitly hide the drivers from the menu if
the core component isn't enabled.
Remoteproc subsystem takes a different approach, the core code is only enabled
if a driver which relies on it is enabled. This IMHO makes sense, as
remoteproc is not widely used (only a few particular ARM SoC's).

It is true that for subsystems which rely on the core component being
explicitly enabled, they often tend to hide drivers which depend on it
from the menu unless it is. This also makes sense.
quoted
Is there something that requires such a different/unusual behaviour in
remoteproc ?
There's nothing unusual in remoteproc that forces us to stay with this
model; however the parts related to the REMOTEPROC config is useless by
themselves.
I'm afraid that the "supporting" arguments you're using are generic
and not specific to remoteproc. Although as Jani mentioned and pointed
to the documentation, remoteproc is {mis,ab}using 'select' leading to
issues elsewhere.

In the long term we might want to switch to 'select' and attribute
kconfig like Jani suggested.  But in the short term we want to avoid
select-ing things just for our "convenience".

Thanks
Emil
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help